Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 布尔可满足性算法_Algorithm_Satisfiability - Fatal编程技术网

Algorithm 布尔可满足性算法

Algorithm 布尔可满足性算法,algorithm,satisfiability,Algorithm,Satisfiability,我有一个布尔公式:(x{1}或x{2})和(x{3}或x{4})以及。。。。。和(x{2r-1}或x{2r},其中x{i}属于集合:{p{1},p{2},

我有一个布尔公式:(x{1}或x{2})和(x{3}或x{4})以及。。。。。和(x{2r-1}或x{2r},其中x{i}属于集合:{p{1},p{2},x{i}公式的某些值是否为真


我知道这在一般计算上是困难的。但是有没有什么快速的方法可以解决这个问题呢?到目前为止,我已经尝试过回溯——也就是说,在递归中,我对每个可能变量的每个可能值(0或1不是很多)进行替换,而每个还没有得到值的变量都是非常正确的。在深入研究递归之前,我先检查公式(即使不是每个变量都有一个值),如果它为false,我也不会深入研究。但是它太慢了。有什么想法吗?我将非常感谢您的帮助。

如果每个OR子句只有两个变量,那么您就有了,它有一个线性时间解决方案。

听起来是一个有趣的问题,但也许可以在算法开发方面帮助您更多。我们将帮助您实现它!