查找约束网络 - 弧一致性

Find Constraint network - arc-consistency

我有一个关于弧一致性网络示例的问题。它与代码无关。

我有一个网络 R,其变量 X = {x1, x2, x3, x4, x5, x6, x7, x8} 和域 D = {1,2,3,4}。 这是我的约束:

我从我的教授那里得到了解决方案。但我不明白 C24 发生了什么/为什么 C24 没有发生任何事情。

我认为 D2 是 2,3,4,D4 默认是 1,2,3,4。如果 x2 不等于 x4 (C24),则 x4 应该为 1。希望有人能帮助我。

约束 c(xi,xj) 是弧一致的当且仅当对于每个值 a∈Di 存在一个值 b∈Dj 使得 c(a,b) 为真(反之亦然,i 和 j 交换).

如果你的约束是xi < xj,那么情况Di={1,2,3}, Dj={1,2,3, 4} 不是弧一致的,因为没有 xi∈{1,2,3} 使得 xi < 1 为真。要获得弧一致性,必须从 Dj 中减去 1。

然而,在约束 xi ≠ xjDi={1,2,3} 的情况下,Dj={1,2,3,4} 你已经有了弧一致性,因为对于每个 xj∈{1,2,3,4} 存在一个 xi∈{1,2 ,3} 使得 xi ≠ xj 为真(并且对于每个 xi∈{1,2,3} 存在一个xj∈{1,2,3,4} 这使得 xi ≠ xj 为真)。