布尔可满足性-算法

6
我有一个布尔公式:(x_{1} 或 x_{2}) and (x_{3} 或 x_{4}) and ..... and (x_{2r-1} 或 x_{2r}),其中x_{i}属于集合:{p_{1}, p_{2}, ... p_{99} , ~p_{1}, ~p_{2}, ... ~p_{99} },我必须确定对于一些给定的x_{i}值,是否可以使该公式为真。

我知道通常情况下这是计算上困难的。但是有没有一种相当快速的方法可以解决这个特定的问题?到目前为止,我尝试了回溯法 - 在递归中,我替换每个可能的变量的每个可能的值(0或1,因此不多),并且每个尚未具有值的变量都是显然为真的。在我深入递归之前,我检查公式(即使不是每个变量都有值),如果它是假的,我就不会继续深入。但是这太慢了。有什么想法吗?非常感谢您的帮助。


2
听起来是一个有趣的问题,但也许Math.StackExchange能够更好地帮助您开发算法。不过我们会帮助您实现它! - Corey Ogburn
1个回答

5

如果每个OR条件只有两个变量,那么你就拥有了2-SAT问题,它有一个线性时间的解决方案。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接