【问题标题】:Boolean expression solver/simplifier [closed]布尔表达式求解器/简化器
【发布时间】:2012-11-24 23:40:05
【问题描述】:

我正在为非常大(但不复杂)的代数寻找布尔表达式求解器,例如: 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 我想从乘法开始。有人有想法吗?

【问题讨论】:

  • 没有代码,但是 wolfram 可以simplify boolean expressions。我敢打赌,像 Sage 这样的免费 CAS 也可以处理。
  • 谢谢rombo,我知道wolfram可以做到。但是我的程序需要一些东西。如果那里什么都没有,我必须自己编码。 ://

标签: java c++ boolean eval solver


【解决方案1】:

我最喜欢处理此类任务的工具是Logic Friday 1。 非商业用途免费。

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

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

【讨论】:

    猜你喜欢
    • 2016-07-13
    • 2016-02-20
    • 1970-01-01
    • 2011-08-16
    • 1970-01-01
    相关资源
    最近更新 更多