约束满足问题:复杂性与算法解读
1. 原始正定义
原始正定义是理解约束满足问题(CSP)的基础概念。设Γ是有限集A上的一组关系(谓词),若关系R满足$R(x) = ∃y Φ(x, y)$,其中Φ是涉及Γ中的谓词和相等关系的合取式,则称R在Γ中是原始正(pp - )可定义的,该公式即为R在Γ中的pp - 定义。若约束语言Δ中的每个关系都在Γ中是pp - 可定义的,则称Δ在Γ中是pp - 可定义的,这种定义方式也可用于关系结构。
例如,对于一个3元素完全图$K_3 = ([3], E)$,其边关系是[3]上的二元不等关系。通过pp - 公式:
$Q(x, y, z) = ∃t, u, v, w(E(t, x) ∧E(t, y) ∧E(t, z) ∧E(u, v) ∧E(v, w) ∧E(w, u) ∧E(u, x) ∧E(v, y) ∧E(w, z))$
可以定义关系Q,它由[3]中恰好包含2个不同元素的所有三元组组成。
原始正定义与非均匀CSP之间的可归约性存在关联。若约束语言Δ有限且在Γ中是pp - 可定义的,则$CSP(Δ)$可在多项式时间内归约到$CSP(Γ)$,后来发现这里的pp - 可定义性可被更一般的pp - 可构造性概念所替代。
2. 多态性和不变量
多态性为原始正可定义性提供了简洁的刻画。对于关系$R ⊆A^n$,若操作$f : A^k →A$满足对于任意$a_1, …, a_k ∈R$,元组$f(a_1, …, a_k)$也属于R,则称f是R的多态性。这里$f(a_1, …, a_k)$表示$(f(a_1[1], …, a_k[1]), …, f(a_1[n], …, a_k[n]))$。若f是约束语