我试图在实际编码之前了解 DPLL 程序。
例如,我有这些条款:
C1 : {c, !d, !b}
C2 : {d, a}
C3: {b, !d, !a}
C4: {d, c, b, a}
C5: {c, !d, !b}
C6: {d, c, b}
C7: {c}
现在我将决策变量设为 d = 0, b = 0。子句现在看起来像这样。
C1: {c, 1, 1}
C2: {a}
C3: {1, !a}
C4: {c, a}
C5: {c, 1, 1}
C6: {c}
C7: {c}
单元传播和纯文字规则如何在这里发挥作用?
此外,在C3 : {1, !a}
- 当我服用 时a = 1
,这变成了{1, 0}
。该子句的最终值应该是多少?应该是{1}吗?
如果任何子句具有 value {!b}
,即对文字的否定,在应用决策变量之后,那么如何进行?