通过单元传播实现广义弧一致性
在约束满足问题(CSP)的求解中,广义弧一致性(GAC)和单元传播(UP)是两个重要的概念。本文将深入探讨如何利用单元传播来实现广义弧一致性,介绍相关的背景知识、实现方法以及具体的约束编码。
1. 背景知识
- 广义弧一致性(GAC) :
- 设变量序列 $V = {V_1, \ldots, V_n}$,每个变量 $V_i$ 有有限的可能值域 $dom[V_i]$。约束 $C$ 是作用于变量序列 $scope(C)$ 上的函数,其作用是将 $dom[scope(C)]$ 中的元组映射为真或假。
- 若对于 $scope(C)$ 中的每个变量 $X$ 和 $dom[X]$ 中的每个值 $d$,都存在一个元组 $\tau \in dom[scope(C)]$,使得 $X = d \in \tau$ 且 $C(\tau) = true$,则称约束 $C$ 是广义弧一致的。满足条件的元组 $\tau$ 被称为 $X = d$ 的支持。
- GAC 传播是使问题中的部分或全部约束达到广义弧一致的过程。如果要使多个约束达到 GAC,这将是一个迭代过程,因为使一个约束达到 GAC 可能会导致另一个约束不再满足 GAC。不过,由于强制执行 GAC 是一个从变量值域中移除无支持值的单调过程,传播最多在多项式步数内收敛。
- 单元传播(UP) :
- 单元传播作用于以合取范式(CNF)表示的命题公式。CNF 公式是子句的合取,每个子句是文字的析取,每个文字
超级会员免费看
订阅专栏 解锁全文
11

被折叠的 条评论
为什么被折叠?



