降低java可满足性的算法
是否有任何算法可以减少sat问题 可满足性是确定给定布尔公式的变量是否可以以使公式计算为真的方式分配的问题。同样重要的是确定是否不存在这样的赋值,这意味着公式表示的函数对于所有可能的变量赋值都是相同的错误。在后一种情况下,我们会说函数是不可满足的;否则是可以满足的。为了强调这个问题的二元性,它经常被称为布尔或命题可满足性。速记“SAT”也常用来表示它,它隐含着函数及其变量都是二进制值的理解降低java可满足性的算法,java,algorithm,performance,genetic-algorithm,Java,Algorithm,Performance,Genetic Algorithm,是否有任何算法可以减少sat问题 可满足性是确定给定布尔公式的变量是否可以以使公式计算为真的方式分配的问题。同样重要的是确定是否不存在这样的赋值,这意味着公式表示的函数对于所有可能的变量赋值都是相同的错误。在后一种情况下,我们会说函数是不可满足的;否则是可以满足的。为了强调这个问题的二元性,它经常被称为布尔或命题可满足性。速记“SAT”也常用来表示它,它隐含着函数及其变量都是二进制值的理解 我使用了遗传算法来解决这个问题,但如果先减少,则会更容易?您可能可以对公式进行深度优先路径树搜索,以确定“
我使用了遗传算法来解决这个问题,但如果先减少,则会更容易?您可能可以对公式进行深度优先路径树搜索,以确定“路径”-即,对于(ICanEat&&(IHaveSandwich | IHaveBanana)),如果“ICanEat”为假,则括号中的值无关紧要,可以忽略。所以,在这里你可以丢弃一些边和节点 而且,如果在生成此深度优先搜索时,当前节点解析为True,则您已经找到了解决方案。您所说的“减少”到底是什么意思?我假设你指的是某种预先的预处理,可能先消除或简化一些变量或子句 这完全取决于你想做多少工作。当然,你应该这样做,直到它完成。你还可以做其他更昂贵的事情。有关一些示例,请参见本页的预处理部分。请查看(ROBDD)。它提供了一种将布尔表达式压缩为简化标准形式的方法。有很多软件用于执行BDD缩减,上面关于ROBDD的wikipedia链接在文章底部包含了一个很好的外部链接列表,指向其他相关软件包