布尔表达式生成器的任何实现

Any realization for Boolean expression builder

提问人: 提问时间:9/4/2015 最后编辑:Kai 更新时间:9/4/2015 访问量:255

问:

假设我需要创建由谓词(任何返回 true/false 的函数)组成的布尔表达式构建器。

我想创建一些像链一样的构建器:

$chainA = new Chain(predicateA1());
$chainA->add(AND, predicateX());
$chainB = new Chain(predicateB1());
$chainB->add(AND, predicateX());

$chain = new Chain($chainA);
$chain->add(OR, $chainB);

所以我得到了这样的表达式(A1 和 X)或(B1 和 X),这东西非常简单,但我需要一个功能 - 将一些布尔变换为共轭/析取形式,例如:

(A1 和 X)或(B1 和 X)->(A1 或 B1)和 X。

我不知道如何实现这些东西。

php 或 java 中是否有任何模式或库可以解决这个问题?

php 逻辑布尔 运算

评论

0赞 Unex 9/4/2015
您可以使用二叉树。左边的儿子是&&,右边的儿子是||。
0赞 Peter Lawrey 9/4/2015
有许多树优化工具,但它们通常用于构建编译器,使用起来并不简单。我认识一个使用 LLVM 的人,2 年后他对它很有信心。

答: 暂无答案