约束满足中的回溯搜索

一、回溯搜索的变量赋值顺序

1-最少剩余值启发式(MRV)

最大受限变量(具有最少合法赋值的变量),优先赋值

2-最大约束变量

约束其他未赋值变量最多的变量

3-最小约束值

选择好变量后,选择一个 最小约束值来对变量赋值

最小约束值:对其他未赋值变量的合法赋值影响最小的值

二、回溯搜索的前向检查和约束传播(弧相容原则)

1-前向检查

跟踪未赋值变量的合法赋值,如果发现有变量没有合法赋值,搜索停止

(前向检查表)

2-弧相容-约束传播一种方法

前向检查不能提前检测到所有失败

弧相容:弧x->y是相容的当且仅当,对于变量x的每一种赋值,变量y都存在一个合法赋值

把弧x->y从不相容变成相容:删除x的一个剩余合法值

当变量x删除了一个合法赋值,那么它的邻居变量需要重新检查,

即:从x的邻居变量出发到x的弧需要检查

3-弧相容算法AC-3

时间复杂度:n平方*d立方

n:变量个数,d:取值个数

n2*d,检查每一条弧(加上重复检查的,最多n(n-1)条弧,每条弧最多检查d次)

单条弧的相容性检查d2(对于d个xi和d个xj),

四、

偏好约束通常被计入个体变量赋值的耗散。

约束传播的一种形式:边界传播

后向跳转:基于失败的原因回溯
冲突指导的后向跳转

 

朝闻道
原文地址:https://www.cnblogs.com/wander-clouds/p/8544647.html