约束传播

约束传播
一。约束传播的核心思想:局部相容性。
局部相容性主要包括:结点相容 ,弧相容,路径相容以及k相容。
(1)结点相容
结点相容针对一元约束(约束只涉及一个变量),如果单个变量值域中的所有取值都能够满足该变量的一元约束,则称该变量是结点相容的。
通过运行结点相容总是能够消除CSP中的所有一元约束,因此通常只定义只含有二元约束的CSP求解器。
(2)弧相容
弧相容针对二元约束,如果如果单个变量值域中的所有取值都能够满足该变量的二元约束,则称该变量是弧相容的。
弧相容最经典的算法为AC-3算法。AC-3算法的目的是要达到所有变量都是弧相容,其基本思路如下:
将图中的所有弧加入到队列中,从队列中取出弧(xi,xj),先使得xi对xj弧相容,如果这是对于xi的值域Di没有影响,则检查下一条弧。如果使得Di变化(变小),则所有指向xi的弧(Xk,Xi)都要重新加入队列准备检验,因为Di的变小可能会导致Dk的变小,所以需重新检查。直至弧队列为空,得到解或者无解。
弧相容能够缩小变量的值域,有时甚至能够直接找到解,但某些情况下,弧相容检查并不会起到作用。
弧相容通过弧(二元约束)紧缩 变量的域值(一元约束)。
(3)路径相容
路径相容通过观察变量隐式约束来加强二元约束。如(Xi,Xj)相对Xk相容,表示的是对(xi,xj)中的每一个赋值,在Xk值域中的某些取值能够使得(xi,xk),(xk,xj)是相容的,这样的称之为路径相容。类似于Xi途径xk到达xj的一条路径。
(4)K相容
如果对于任何一个k-1个变量的相容赋值,第K个变量总能够被赋予一个和前一个k-1变量相容的赋值,则csp问题满足k相容。

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值