-1

我正在为非常大(但不复杂)的代数寻找布尔表达式求解器,例如: Boolsche Ausdrücke vereinfachen (Axiome) 我想要一些代码(c++ 或 java [或库])来简化巨大的布尔表达式。我还没有发现什么。我只想做一些“简单”的转换,比如:

a && ~a -> 0

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

但要长得多。我现在想使用符号(a、b、c1、d1..)而不是 TRUE、FALSE、0 或 1。先感谢您。

编辑: 如果我自己编写,我可以使用 Javaluator 并进行评估。当我有:(adb+c) && d我想从乘出开始。任何人的想法?

4

1 回答 1

1

对于此类任务,我最喜欢的工具是Logic Friday 1. 它可免费用于非商业用途。

Logic Friday 1 接受布尔表达式作为公式和真值表。它包括 Berkeley 工具Espresso和 misII 的编译二进制文件。后者用于多级功能。

另一个工具是bc2cnf。它将布尔表达式(或一组表达式)读取为“电路”并将其转换为合取范式(CNF),基本上是 OR 表达式的产物。bc2cnf 在此翻译过程中应用了一些简化规则。对于中等大小的表达式,可以选择将 CNF 转换为析取范式(DNF) 并使用 Espresso 来获得最小化的形式。

于 2013-01-02T10:07:51.370 回答