我们知道DPLL算法是回溯+单位传播+纯文字规则。
我有个例子。有一个例子可以用DPLL解决下面的可满足性问题。如果将"0“赋值给变量之前是将"1”赋值给变量,那么Unit Clause (UC)还是Pure Literal (PL)中的哪一个用于解决这个特定示例?
{~A \/ B \/ C}, {A \/ ~B \/ C}, {A \/ B \/ ~C}, {A \/ B \/ C}在本例中,使用其中的两个(PL and UC)编写。为什么他们中的两个被选中了?知道吗?
发布于 2016-02-20 12:39:16
下面是如何使用DPLL来求解示例公式:
A。A=0并进行传播。这将导致
{1 \/ B \/ C}, {0 \/ ~B \/ C}, {0 \/ B \/ ~C}, {0 \/ B \/ C}
== {~B \/ C}, {B \/ ~C}, {B \/ C}B应用拆分规则。-设置B=0并宣传:
{1 \/ C}, {0 \/ ~C}, {0 \/ C}
== {~C}, {C}
-这个公式由两个单元子句组成,因此可以应用单元传播,这导致了{},因此我们回溯。
-设置B=1并进行传播。{0 \/ C}, {1 \/ ~C}, {1 \/ C}
== {C}
-同样,单位传播是适用的,但现在却产生了一个空洞的公式,这是可以满足的。
哪一个单位条款(UC)或纯文字(PL)是用来解决这个具体的例子?
使用单位子句传播来解决这个例子。由于公式的对称性,选择不同顺序的分裂字会得到相同的结果。
https://stackoverflow.com/questions/35522867
复制相似问题