私は、私が変更を続け、Z3を使って増分的にチェックする必要があるAIG(およびインバーターグラフ)を持っています。私はAIGのCNF表現を生成することができ、理想的にはこれらの節を直接ソルバに供給し、コードから繰り返し呼び出すことが望ましいでしょう。 C/C++ APIを使用してZ3ソルバーに句(またはAIG)を直接追加できる方法はありますか?z3ソルバーに直接節を追加する
0
A
答えて
0
はい、内部的に句に変換される新しいアサーションをアサートするだけで済みます。
多くの漸進的な解決問題では、Z3は市販の専用SATソルバーを使用していませんが、SATソルバーの機能の一部を組み込んだSMTソルバーです。非ブール問題を処理します。したがって、ソルバーをハッキングして直接節を挿入すると、パフォーマンスが大幅に向上することは必ずしもありません。
Z3には専用のブール型SATソルバもあり、純粋にブール型の問題を解決している場合、このソルバははるかに高速です。 (check-sat)
を(check-sat-using sat)
に置き換えるか、「sat」という戦術を実行することで、このソルバーを強制的に使用することができます。このソルバーの実装はsat_solver.h/.cppにあります。ハックしたい場合は、周りを見回すのが一番です。
Z3では、一部の戦術では前処理ステップとしてAIG独自の実装を使用しています(aig_tactic.h/.cppを参照)。
関連する問題
- 1. Z3ソルバーZ3_parse_smtlib2_file - Z3 C APIプッシュポップ
- 2. Z3 Z3をSATソルバーとして使用する極性
- 3. Z3ソルバー差ロジックのpython API
- 4. アドレスに直接値を追加する
- 5. Z3 QBFの式をpcnfに直接変換する
- 6. Hangfire:DBに直接ジョブを追加
- 7. SWテストにZ3 SMTソルバーを使用できますか
- 8. プリロードにGroup By節を追加する
- 9. ソルバーオブジェクトのインターフェイスを作成して使用する方法(Z3ソルバー)
- 10. pythonでzipに直接ファイルを追加するには?
- 11. ワードドキュメントに2つのテーブルを直接重ねて追加する
- 12. gitシェルから直接.gitignoreにファイルを追加する
- 13. リストにオブジェクトを直接追加するときのメモリオーバーヘッド
- 14. Breeze:質問にODataを直接送信/追加する
- 15. C++で直接(cin)の後にcharを追加する方法
- 16. リアクションアプリを正しい方法でボディに直接追加する
- 17. Z3から外部SATソルバーを呼び出す
- 18. z3:アサーションで変数宣言を追加
- 19. vbaソルバー - 反復に遅延を追加する
- 20. Angularjs:HTMLテンプレートに直接追加するVS NG-バインドhtmlの違い
- 21. java.awt.Imageをitextに直接追加します
- 22. nodejsから直接HTMLに子を追加しますか?
- 23. Visual Studioコード拡張で直接キーバインディングを追加する方法
- 24. データベースから直接ユーザーを追加する[UserFrosting 0.3.1]
- 25. UUIDフォルダを追加せずに直接フォルダに置く
- 26. 共有リンクを壁に直接メールのニュースレターに追加
- 27. cmakeのリスト変数にソースを追加するか、add_executableに直接追加するか
- 28. Android:TextViewに垂直スクロールを追加する
- 29. htmlのスタイルタグで直接「フォーカス」を追加できますか?
- 30. ButtonをScrolledCompositeに直接追加することはできますか?