2011-02-14 148 views
0

我们有很多逻辑表达式来计算,现在我们已经将这些表达式转换为后缀表达式。 (后缀表达更快)。但是,我们需要更快地优化逻辑表达式的评估。如何优化逻辑表达式

任何想法?谢谢。

+4

欢迎来到Stack Overflow!你能澄清你的意思是“逻辑表达”吗?这是一个只使用AND,OR,NOT,XOR等的数学表达式吗?或者比布尔电路更复杂?您提供的细节越多,我们就可以提供更好的帮助。 – templatetypedef 2011-02-14 02:20:43

回答

0

您还需要考虑每种可能结果的频率。也就是说,如果各种结果/结果的出现频率高度偏离,那么你确实想要快速地制作常见情况,即使代价可能会大大增加非常见情况的运行时间成本。

例如,假设您要检查四个条件:

result = A && B && C && D; 

现在假设A ==概率为0.9,B真==概率0.3,C ==真与真正的概率为0.7,D ==为真,概率为0.1。考虑到C/C++短路规则,我们想重新排列方程,所以我们尽快“退出”测试。即最有效的测试将是:

result = D && B && C && A; 

没有每一项的类型,您有表情的例子,和各种结果的频率和联合概率频率,这基本上是不可能帮助你。