假設我有一個變量(a,b,c,d,e,f,g)
的CNF表達式。考慮到{a,b,c,g} = {1,0,0,1}
和{a,b,c,g} = {1,1,1,1}
,如何使用SAT解算器找到(d,e,f)
的作業?如果這是一個假設,那麼調用座標求解器來尋找{d,e,f}
的分配將是直接的(例如,通過向CNF添加單位子句)。但是如果我有多重假設呢?這可能嗎?用多種假設求解
Q
用多種假設求解
1
A
回答
2
下面是哈羅德試圖向你描述什麼(我想)的步驟。你在變量a,b,c,d,e,f和g上有一些CNF公式F.
- 重複該式中,主叫重複G.
- 在G,與AA BB與替換變量a,B,C與cc,並且與GG克。
- 將單位從句添加到F中,使(a,b,c,g)=(1,0,0,1)。
- 將單位從句添加到G中,使(aa,bb,cc,gg)=(1,1,1,1)。
- 連接公式F和G並將結果輸入到SAT解算器中。
求解器將找到與(a,b,c,g)和(aa,bb,cc,gg)的預設值一致的令人滿意的賦值。
0
這是不是很清楚,如果你想要一個實際的答案或有趣的理論上的答案。我會去實際的。
對於每組假設,調用一個座標解算器,該座標解算器支持在假設條件下(example)的假設。在同一個求解器實例上按順序執行此操作。
優點:
- 你不要混用互相排斥的集合假設滿足性。如果一組假設A對公式F滿足,而另一組A'對於F不滿足,那麼對求解器的每次調用都會告訴你這些假設是否爲飽和/不滿。
- 來自第一個電話的已知條款可能會停留在第二個電話。中級學習語句談論相同的變量。 (注意:如果你有一個不相交的公式
F & G
其中F超過了變量X,G超過了變量Y和X而Y沒有共享變量,分辨率 - CDCL中使用的推理規則 - 不能得出混合F和G的子句。是兩個混合在一起,而不是分開分裂他們,除非一個實例是很容易證明不飽和度,並停止早期沒有明顯的增益)
缺點:
- 如果實例的難以解決練習但A'是微不足道的,你可能會卡在A.
- 它不是平行的,所以如果你有更多的實例比兩個你想盡快解決,你需要更多的機制。
我知道這是一個明顯的答案,但值得一試。如果失敗了,你可以嘗試做更有趣的事情,比如解決w.r.t.假設A union A'
,並且只有這樣才能解決這個A和A'的策略。這對你的例子沒有幫助,因爲(a,b,c,g) = (1,0,0,1)
和(a,b,c,g) = (1,1,1,1)
是互斥的。
相關問題
- 1. 解釋Thread.Yield假設
- 2. 應用求解各種rowsa
- 3. Primefaces自動完成多種與forceSelection假
- 4. 數獨求解器多種解決方案
- 5. 是否有一種在Z3中添加假設假設的一般方法?
- 6. pyramid_formalchemy關於請求的假設
- 7. 代碼合同 - 假設vs要求
- 8. 用多種型號設計
- 9. 多種貨幣請求類
- 10. 添加假設不在當前假設
- 11. 假HTTP GET請求
- 12. 如何計算用戶每組假設多對多的關係?
- 13. InstanceVariableAssumption:UsersController假設實例變量太多'@user'
- 14. Coq:如何將一個假設應用於另一個假設
- 15. 解析器可用於多種格式和多種操作(設計模式可用?)
- 16. WolframAlpha:解決多種功能
- 17. TFS並使用多種解決方案
- 18. 使用SymPy的新假設
- 19. 簡化假設
- 20. C#MSTest假設
- 21. 解釋爲什麼這種情況下「」 &&假將返回'
- 22. Z3 SAT求解器的隨機種子
- 23. 兩種工藝求解算法1
- 24. 適用於多種設備的Android UI
- 25. 使用Pexpect的多種設備
- 26. SSAS多選用假尺寸
- 27. 多種語言設置codeigniter
- 28. Magento設置多種貨幣
- 29. 爲什麼我的參數假設是另一種類型的?
- 30. 我可以假設NSObject是Cocoa-touch中的一種CFType嗎?
你能解釋一下你的意思嗎?到目前爲止,它看起來並不令人滿意(例如b不能同時爲0和1) – harold
假設a,b,c,d =(1,0,0,1)和a,b,c,d =(1,1,1,1)是兩個'觀測值'。我怎樣才能給(d,e,f)賦值,使得這些觀察值是一致的? –
該編輯令它再次令人迷惑。這是否意味着比「允許abcg爲1001或1111,哪一個能夠獲得滿意的模型」更復雜?或者相同的def必須爲集合中的所有abcg向量工作? – harold