第6章 约束满足问题.ppt
《第6章 约束满足问题.ppt》由会员分享,可在线阅读,更多相关《第6章 约束满足问题.ppt(66页珍藏版)》请在课桌文档上搜索。
1、第6章 约束满足问题,第部分 问题求解,本章内容,6.1 约束满足问题6.2 约束传播:CSP中的推理6.3 CSP的回溯搜索6.4 CSP的局部搜索6.5 问题的结构,例1、澳大利亚地图染色问题(1),澳大利亚地图染色问题:用红绿蓝3色标出各省,相邻者颜色不同。,对应于澳大利亚地图的约束图,相互关联的节点用边连接。,西澳大利亚 WA北领地 NT南澳大利亚 SA昆士兰 Q新南威尔士 NSW维多利亚 V塔斯马尼亚 T,例1、澳大利亚地图染色问题(2),一组满足约束的完全赋值:WA=R,NT=G,Q=R,SA=B,NSW=G,V=R,T=R,约束满足问题的定义,约束满足问题(Constraint
2、Satisfying Problem,CSP):由一个变量集合X1Xn和一个约束集合C1Cm定义;每个变量都有一个非空可能值域Di;每个约束指定了包含若干变量的一个子集内各变量的赋值范围。例如:地图染色问题,N-皇后问题。CSP的一个状态:对一些或全部变量的赋值 Xi=vi,Xj=vj,。,CSP问题的解,一个不违反任何约束的对变量的赋值称为相容赋值或合法赋值。对每个变量都进行赋值称为完全赋值。一个(一组)对变量的赋值,若既是相容赋值又是完全赋值,则这个(组)赋值是CSP问题的解。某些CSP问题要求问题的解能使目标函数最大化约束优化。CSP问题常常可以可视化,表示为约束图,更直观地显示问题,帮
3、助思考问题的答案。,CSP问题的分类,根据变量的类型划分:离散值域和连续值域。变量离散值域 有限值域,如地图染色问题,八皇后问题。无限值域,如整数集合或者字符串集合。例如,对于作业规划问题,无法枚举所有可能取值,要使用约束语言(线性约束/非线性约束)描述,如StartJob1+5StratJob3。有限值域CSP问题包括布尔CSP问题,它的变量的取值可以是true或false。布尔CSP包括一些典型NP完全问题,如3-SAT问题(命题逻辑语句的可满足性问题),最坏情况下不能指望低于指数级时间复杂性解决该问题。,CSP问题的分类,变量连续值域最著名的连续值域CSP是线性规划问题。线性规划中的约束
4、必须是构成一个凸多边形的一组线性不等式。线性规划问题可以在变量个数的多项式时间内求解。,CSP问题的分类,根据约束的类型划分:线性或非线性约束。一元或多元约束。一元约束:只限制一个变量的取值二元约束与2个变量相关高阶约束:涉及3个或更多变量。通过引入辅助变量,转为二元约束。绝对约束 vs 偏好约束。我们仅讨论绝对约束。,高阶约束的例子,算式T W O+T W O F O U R,例2、密码算术问题。每个字母表示不同的数字。目标是找到能使如下加法式子成立的数字,附加的约束条件是最前面的数字不能为0。,高阶约束的例子,算式T W O+T W O F O U RF=1。如不考虑O/U有进位:R/U/
5、O均为偶数,R=4,6,8,O=2?,3?,4!。R=8/O=4,则T=7(由O/R/U/W共同限制)。T=7,则U=6/W=3,由此得到一组解1468|734。考虑O/U有进位:R=0,2,4,6,8,O=5,6,7,8,9。若R=0/O=5(有进位),则T=7/W=6/U=3,由此得到一组解=1530|765。,四列算式约束:O+O=R+10*X1X1+W+W=U+10*X2X2+T+T=O+10*X3X3=F对应的约束超图如右图。六个变量互不相等约束可化为两两不等约束额的二元约束。,高阶约束的例子,每个约束在图中用方块表示,连接至它所约束的变量。,CSP问题求解的复杂度,CSP问题的求解
6、目标是找到相容的完全赋值,最朴素的想法是依次取变量的赋值组合并检查其是否满足约束条件。若CSP问题的任何一个变量的最大值域为d,那么可能的完全赋值数量为O(dn)。指数级计算量。,本章内容,6.1 约束满足问题6.2 约束传播:CSP中的推理6.3 CSP的回溯搜索6.4 CSP的局部搜索6.5 问题的结构,约束传播,约束传播:使用约束来减小一个变量的合法取值范围,从而影响到与此变量有约束关系的另一变量的取值。弧相容:依次检验约束图中各个相关节点对。注意,弧是有向弧。例如,给定SA/NSW当前值域,如果对于SA的每个取值x,NSW都有某个y和x相容,则SA到NSW的弧是相容的;反过来是NSW到
7、SA的弧相容。,弧相容,在地图染色约束的赋值过程中:第4行SA=blue,NSW=red,blue,则SA的取值有一个NSW=red与之相容;反过来NSW=blue,则SA为空值,即不相容,通过删除NSW值域中的blue可使其相容。弧相容检测也能较早发现矛盾,如第4行SA和NT值域均为blue,则必须删去SA=blue,其值域变为空。用弧相容能够更早地检测到矛盾。,WA=redQ=greenV=blue,蓝色字体为赋值结果,弧相容算法思想,用队列记录需要检验不相容的弧。每条弧Xi,Xj依次从队列中删除并被检验。如果Xi值域中的任何一个值需要删除,则每个指向Xi的弧Xk,Xi都必须重新插入队列进
8、行检验。因为指向这个变量的弧可能产生新的不相容(原来可能就是因为这个值产生了它们之间的相容)。时间复杂度:二元CSP约束至多有O(n2)条弧;每条弧至多插入队列d次(d个取值),检验一条弧为O(d2),因此算法的最坏情况下为O(n2d3)。,弧相容算法AC-3,function AC-3(csp)returns the CSP,possibly with reduced domains inputs:csp,a binary CSP with variables X1,X2,.,Xn local variables:queue,a queue of arcs,initially all the
9、 arcs in csp while queue is not empty do(Xi,Xj)Remove-First(queue)if RM-Inconsistent-Values(Xi,Xj)then for each Xk in NeighborsXi do add(Xk,Xi)to queuefunction RM-Inconsistent-Values(Xi,Xj)returns true iff remove a value removed false for each x in DomainXi do if no value y in DomainXj allows(x,y)to
10、 satisfy constraint(Xi,Xj)then delete x from DomainXi;removed true return removed,弧相容的使用,弧相容检验可以用作开始搜索之前的预处理。弧相容检验也可以在搜索过程中每次赋值后用作一个约束传播步骤。即反复检测某个变量值域中的不相容弧,进行值删除,直到不再有矛盾。称为保持弧相容(MAC)。,从弧相容推广到k相容,如果对于任何k1个变量的相容赋值,第k个变量总能被赋予一个与前k1个变量相容的值,那么该CSP问题是k相容的。1相容是指每个单独的变量自己是不矛盾的,也称为节点相容。弧相容2相容。3相容是指任何一对相邻的变量
11、总可以扩展到第三个邻居变量,也称为路径相容。如果一个图是k相容的,也是k-1相容的、k-2相容的,直到1相容,那么这个图是强k相容的。,从弧相容推广到k相容,如果一个CSP问题有n个结点,而且它是强n相容的,则不需要回溯就能求解这个问题。可以在O(nd)时间内找到解。No free Lunch:任何建立n相容的算法在最坏情况下必须花费n的指数级时间。从弧相容到n相容:执行较强的相容性检验会花费更多的时间,但是会更有效地降低分支因子和检测出矛盾的不完全赋值。,特殊约束,实际问题中出现的特殊约束,用专用算法处理其效率要比通用的约束处理算法高很多。,特殊约束,例如,AllDiff约束,变量取值各不相
12、同假设约束涉及m个变量,所有变量共有n个取值,如果mn,则此约束不能被满足。引出相应的算法:删除约束中只有单值值域的变量,将这些变量的取值从其余变量值域中删去;对单值变量重复此过程;如果得到空的值域或剩下的变量数大于取值数,则产生矛盾。,特殊约束,资源约束,有时称为atmost约束。例如,用PA1,PA4表示分配给四项任务的人员个数,人员数总计不超过10人的约束记为atmost(10,PA1,PA4)。如果每个变量的赋值为3,4,5,6,就不能满足atmost约束。通过检验当前值域中的最小值之和就能检测出矛盾。,特殊约束,对于大型的整数值的资源限制问题,用整数集合来表示每个变量的值域然后通过相
13、容性检验方法逐步削减集合,通常是不可能的。取代办法:值域用上界和下界来表示,并通过边界传播来管理。例、假设有2次航班,271和272,它们分别有165和385个座位。每次航班可承载的初始值域为Flight2710,165,Flight2720,385。设又增加一个约束,两次航班所承载的总乘客数必须是420。通过边界传播约束,可以把这两个值域削减到Flight27135,165,Flight272255,385。如果对于每个变量X和它的取值的上下界,每个变量Y都存在某个取值满足X和Y之间的约束,我们称该CSP问题是边界相容的。,本章内容,6.1 约束满足问题6.2 约束传播:CSP中的推理6.3
14、 CSP的回溯搜索6.4 CSP的局部搜索6.5 问题的结构,CSP的回溯搜索,CSP问题具有一个性质:可交换性,变量赋值的顺序对结果没有影响。所有CSP搜索算法生成后继节点时,在搜索树每个节点上只考虑单个变量的可能赋值。CSP问题的求解:深度优先的回溯搜索。每次给一个变量赋值,当没有合法赋值(不满足约束时)就要推翻前一个变量的赋值,重新给其赋值,这就是回溯。,简单回溯法生成的搜索树,澳大利亚地图染色问题的搜索树,一个简单的回溯算法(深度优先),function BackTracking-Search(csp)returns a solution,or failure return Recur
15、sive-BackTracking(,csp)function Recursive-BackTracking(assignment,csp)returns a solution,or failure if assignment is complete then return assignment varSelect-Unassigned-Variable(Variablescsp,assignment,csp)for each value in Order-Domain-Values(var,assignment,csp)do if value is consistent with assig
16、nment according to Constraintscsp then add var=value to assignment result Recursive-BackTracking(assignment,csp)if result!=failure then return result remove var=value from assignment return failure,回溯搜索的通用算法,需改善无信息回溯搜索算法的性能。通用改进方法的思路:下一步该给哪个变量赋值,按什么顺序给该变量赋值?每步搜索应该做怎样的推理?当前变量的赋值会对其他未赋值变量产生什么约束,怎样利用这种
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第6章 约束满足问题 约束 满足 问题

链接地址:https://www.desk33.com/p-748354.html