-1

Boolsche Ausdrücke vereinfachen (Axiome) 巨大なブール式を単純化するコード (c++ または Java [またはライブラリ]) が必要です。私は何かを見つけていません。次のような「単純な」変換を行いたいだけです。

a && ~a -> 0

a || a && (b || c) -> a

しかし、もっと長い。そして、現時点ではTRUE、FALSE、0、または1ではなく、シンボリック(a、b、c1、d1 ..)を使用したいと考えています。前もって感謝します。

編集: 自分で書いた場合、Javaluatorを使用して評価できます。私が持っているとき:(adb+c) && d私は掛け算から始めたいと思います。誰でもアイデアはありますか?

4

1 に答える 1

1

そのようなタスクのための私のお気に入りのツールは ですLogic Friday 1。非商用の場合は無料です。

ロジック フライデー 1 は、ブール式を数式および真理値表として受け入れます。これには、Berkeley ツールEspressoおよび misII のコンパイル済みバイナリが含まれています。後者は、マルチレベル機能に使用されています。

別のツールはbc2cnfです。ブール式 (または式のセット) を「回路」として読み取り、それを基本的に OR 式の積である結合正規形(CNF) に変換します。bc2cnf は、この変換中にいくつかの単純化規則を適用します。適度なサイズの式の場合、CNF を選言標準形(DNF)に変換し、Espresso を使用して最小化された形式を取得するオプションがあります。

于 2013-01-02T10:07:51.370 に答える