2

我需要一个库/算法,它可以将包含范围谓词的任意逻辑表达式转换为简化的不相交范式。

示例: (x > 40) & ( (x > 50) | (y > 10)) -> (x > 50) | (x > 40) & (y > 10)

基本上,我想要简单的这样一个表达式,以便尽可能快地进行评估。

任何人都可以帮助我吗?

4

2 回答 2

1

Wolfram Alpha 可以很好地处理您的表达式:

看这里

... 意味着 Mathematica 适合这样做,开箱即用。但是,您可能不想为这样一个相对简单的问题使用那么大的程序。

于 2009-12-16T19:47:04.940 回答
0

ANTLR这样的工具将帮助您为表达式构建解析树。然后,您可能能够根据运算符的交换属性“展平”树。我个人不知道会执行此操作的算法或库。

于 2009-12-16T19:35:10.787 回答