如何优化逻辑表达式

时间:2011-02-14 02:17:18

标签: c++ algorithm

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

有什么想法吗?感谢。

1 个答案:

答案 0 :(得分:0)

您还需要考虑每种可能结果的频率。也就是说,如果各种结果/结果的出现频率高度偏离,那么你真的想让常见的情况更快,即使代价可能会大大增加不常见案例的运行时成本。

例如,假设您要检查四个条件是否为真:

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

现在假设A == true,概率为0.9,B == true,概率为0.3,C == true,概率为0.7,D == true,概率为0.1。鉴于C / C ++短路规则,我们希望重新排序等式,以便我们尽快“退出”测试。即最有效的测试是:

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

如果没有您拥有的表达类型的示例,以及每个术语的各种结果频率和联合概率频率,基本上无法帮助您。