1

在 Java 中,我有一组表达式,例如 cond1 AND (cond2 OR cond3) AND (cond 4 OR cond5)。我想将其转换为树,然后评估最终的布尔答案。我尝试在 java BDD 周围搜索很多,但没有得到任何结果。对示例代码有什么建议吗?

4

3 回答 3

4

5 秒的Google 搜索返回了一些看起来合理的结果:

这不是你要找的吗?

于 2011-01-19T17:06:21.797 回答
3

他的意思是二元决策图。

我一直在修补JavaBDDJBDD/JDD。两者都基于 BuDDY(一个 C 库)——JBDD 实际上使用 C DLL 来提高性能。

在我看来,JavaBDD 的功能更全面(例如,它支持组合 BDD,这正是我所需要的)。但是也没有它的教程,虽然类文档并不糟糕,但坦率地说,我不知道如何将它用于最基本的布尔运算(比如你提出的问题)。

JBDD/JDD 要求您使用手动垃圾收集,并且会做一些奇怪的事情,例如将 BDD 对象存储在 Java 整数中——显然是从 C 中继承而来的。但它有一组教程。

于 2011-12-06T16:30:15.743 回答
0

如果您想运行自己的解析器,请查看 JavaCC。这是一个很好的教程,可以帮助您入门。有点旧,但仍然有效:

http://www.javaworld.com/jw-12-2000/jw-1229-cooltools.html

于 2011-01-19T17:17:33.290 回答