2009-12-16 66 views
2

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

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

基本上,我想简单地这样表达以便尽可能快地评估。

任何人都可以帮到我吗?

回答

0

ANTLR这样的工具将帮助您为表达式构建一个分析树。您可能能够根据您的运算符的交换属性“平坦化”树。我个人不知道会这样做的算法或库。

1

Wolfram Alpha的处理你的表情相当不错:

see here

......这意味着Mathematica适用于开箱即用。然而,你可能不想为这样一个相对简单的问题使用那么大的程序。