tarjan的2-sat算法基于真相:

如果且仅当没有属于与其否定相同的强度连接的组件的变量时,才能满足2-CNF公式。

但我找不到向左方向的任何原因。这种变量的不安全如何保证CNF的满足感?

我试图遵循算法的步骤,我在这里暂时了:

在反向拓扑顺序中的每个组件,如果其变量尚未具有真实性分配,请将组件中的所有文字设置为true。这也会导致互补组件中的所有文字设置为false。

是否可能会有错误地分配变量?当我们继续从后面分配真实时,我们在中间分配错误,但是将要分配给下一个变量。在这种情况下,可行性断裂。

当然这种情况永远不会发生,因为算法是正确的,很多人都很好地使用该算法。但是这么多帖子将其作为琐碎的东西说。

    我认为可以与图形的偏差对称条件相关的原因,因为(x - >〜x - > y - >〜y)永远不会有真正的作业。

没有正确的解决方案

其他提示

2-cnf公式,如果且才有才能且才有没有属于与其否定相同的变量的变量。

但我找不到向左方向的任何原因。这种变量的不安全如何保证CNF的满足感?

对某些不可挑例的2星级实例识别可变分配。这意味着一定或多个条款必须保持不满意的任何作业。您更改一个或多个变量的设置以满足这些条款,但这是不可避免的,因为实例不可或缺,因此不可避免地离开了一些新子句或条款。满足实例的更改失败意味着其他其他变量的值必须更改。您再次又一次地重复该过程,将其他变量更改为含义需求,但从未成功满足所有条款。最终,因为变量的数量是有限的,失败意味着您更改您已经访问过的变量的值......这是您 $ x $ < / span>到 $ \ bar {x} $ 返回 $ x $ 。没有循环暗示,您最终将到达蕴涵链的末尾并具有令人满意的作业。不达到链条末端的唯一方法是链条在变量和否定之间是圆形的。

许可以下: CC-BY-SA归因
不隶属于 cs.stackexchange
scroll top