z3py

    1熱度

    1回答

    我正在考慮使用z3來最小化涉及正方形的問題。但是,當我寫這個簡單的例子(在Python 3 z3opt): from z3 import * a = Real('a') b = Real('b') cost = Real('cost') opt = Optimize() opt.add(a + b == 3) opt.add(And(a >= 0, a <= 10)) opt.

    0熱度

    1回答

    我有一套巨大的線性實數算術約束來解決,我逐漸將它們餵給解算器。一段時間後Z3似乎總是卡住。 Z3內部是否會改變其解決約束的策略,例如從Simplex算法轉移到另一個等等,還是我必須明確指示Z3這樣做?我正在使用Z3py。

    0熱度

    1回答

    爲了解決SAT問題,我決定使用Microsoft和Python 3的Z3解算器。目標是獲取長模型(多達500,000個特徵)並找到所有可能的解決方案。要找到它們,我想將第一個解S1添加到初始方程中,並排除S1等等。我會用while循環來做。 解決SAT問題對我來說很重要,因爲我想分析特徵模型。 但是我面臨着在初始方程中增加某些問題。我將分享一個最小的例子: # Import statements

    2熱度

    1回答

    我對z3py很新。我想在z3py中編寫下面的對數表達式。 log(x,y) 我沒有搜索堆棧溢出很多,並遇到類似的問題,但不幸的是我不能得到足夠滿意的答案。請幫幫我!

    1熱度

    1回答

    我使用Z3Py來開發一些工具,並且在我的代碼中,我維護多個dictionaries以跟蹤某些信息。 注意,有時我需要使用z3表達某些字典的關鍵,因爲z3表達是不是可哈希(?我說的對),我在做什麼現在的問題是: 翻譯使用Python str函數將z3表達式轉換爲字符串。 將string表示爲字典的關鍵字。 然而,一些分析和觀察顯示,從z3表達string翻譯需要相當多的時間,它已經成爲我的代碼的瓶頸

    1熱度

    1回答

    我正在使用Z3來處理一些彙編程序分析任務。我被困在模擬x86操作碼bsf的語義。 bsf operand1 operand2的語義定義爲在源操作數(操作數1)中搜索最低有效集位(1位)。 其語義可以C模擬爲: if(operand1 == 0) { ZF = 0; operand2 = Undefined; } else { ZF = 0; Tempor

    1熱度

    1回答

    我發現有限域排序的綁定變量行爲令人費解。以下代碼顯示它們不滿足 is_finite_domain_sort謂詞。任何想法爲什麼? from z3 import * U=FiniteDomainSort('U', 3) V=FiniteDomainSort('V', 2) u=Const('u', U) x=Const('x', U) y=Const('y', V) p=Functi

    0熱度

    3回答

    我試圖執行金額如下: list=[b_{i}{j}=SUMMATION(|d_{i}{j}| - |g_{j}{k}|)] or simply list=[SUMMATION(|d_{i}{j}| - |g_{j}{k}|)] 此使用列表理解我嘗試以下操作: d=Function ('d', IntSort(), IntSort(),RealSort()) g=Function ('g'

    3熱度

    1回答

    我目前使用Z3py來推導出一些不變量,它們被編碼爲喇叭子句的連詞,同時也爲不變量提供了一個模板。如果你看到下面的代碼片段,我先從一個簡單的例子開始。 x = 0; while(x < 5){ x += 1 } assert(x == 5) 這轉化成喇叭子句 X = 0 => INV(X) X < 5/\ INV(X)=​​> INV(X 1) 不(X < 5)/ \ INV(X

    -2熱度

    1回答

    我試圖找到構成最大和的列表或向量中的最小條目數。有沒有辦法找到它?我嘗試如下,但並不成功: D=[[Real('d%s%s' % (i+1,j+1)) for j in range(input)] for i in range (input)] dr=[D[i][j]== randint(1,5) for i in range (input) for j in range (input)]