Arc consistency in CSPs
定义
Definition:
定义:如果一个弧<x,r(x,y)>对于dom(X)在dom(Y)中有一些值y,使得r(x,y)是满意的。如果一个网络的所有弧都是弧一致的,那么它是弧一致的。
其实按照我的理解 就有点像初高中学的函数F(x)函数,每个x都有与之一个y与之对应。
举个例子:
A的值域是{1,2,3}
B的值域是{2,3}
约束条件是A<B
我们来判定是否是弧一致性
先看左边
A中的1 小于b中的2(也可以是3)(只要有一个就行)
A中的2 小于b中的3
A中的3 没有小于b中的任何一个值
所以左边不是弧一致性
来看右边
b中的2大于a中的1
b中的3大于a中的2
所以右边是弧一致性
所以整体不是弧一致性
如何实现弧一致性
(删除不满足的值域值就行)
还是拿上面的图为例子
A中的3 不满足弧一致性 那就把3移除
左边已经满足 弧一致性
这里要注意 虽然在第一次的时候
右边已经满足弧一致性
但是当移除一个值之后,要重新检查
检查后
右边依然满足弧一致性
因此此时整体满足弧一致性
再举个例子把
先看左边
X的2小于Y中的3
X的3 找不到
X的4 找不到
所以我们要删除 X中的3和4
再看右边
Y中的1 在X中找不到比它小的数
Y中的2 也找不到
Y中的3 大于X中的2
所以删除Y中的1和2
此时满足弧一致性