1

私は sat4j ソルバーがまったく初めてで、ブール値の満足可能な問題を研究しています。そして私は立ち往生しています。ブール式の整数変数を解くプログラムを作りたいです。

x1 < x2 + x3 ユーザーがその数式を入力すると、私のプログラムは x1 = 5 、 x2 = 3 、 x3 = 4 のようにこの数式を満たします (true を返します)。したがって、数式は true を返し、ユーザーは数式を満たすこの整数値を取得します。私はJavaでEclipseで作業しているため、sat4jで作成することは可能です。

4

1 に答える 1

2

SAT4J が SMT 解決を行うかどうかは不明です... 線形演算をサポートする SMT ソルバーを探す必要があります (あなたのケースでは差分ロジックのみが機能するようです)。Z3 (Microsoft の SMT ソルバー)、CVC4、および Yices を確認できます。より広範なリストはこちら: https://en.wikipedia.org/wiki/Satisfiability_modulo_theories

お役に立てれば...

于 2015-11-18T09:47:02.613 に答える