我有ANTLR表达式分析器,其可以评估的形式的表达式|使用所生成的访问者(A &(B C))。 A,B和C可以采用2值true
或false
中的任意值。然而,我面临着寻找所有A,B和C组合的挑战,因为这些表达是真实的。我试图通过以下方法解决这个问题。ANTLR - 布尔satisfiabilty
- 评估取为3个变量表达真假每个
- 这涉及到8点的组合,因为2^3是8
- 我评价给予像000,001,010的值..... .. 111到变量和使用访问者评估
虽然这种方法有效,但随着变量数量的增加,此方法变得计算密集。因此,对于具有20个变量的表达式,需要计算1048576。我怎样才能优化这种复杂性,以便获得所有真实的表达式?我希望这符合Boolean satisfiabilty problem
这是一个很好的答案,仍然需要我的研究。我正在等待,看看是否会有更多的答案 – ssdimmanuel