6约束满足问题解析_第1页
6约束满足问题解析_第2页
6约束满足问题解析_第3页
6约束满足问题解析_第4页
6约束满足问题解析_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、约束满足问题(约束满足问题(CSP)概要概要 CSP定义 标准搜索 方法改进 回溯 向前查看 约束传播 启发式算法 变量排序 值排序 CSP实例 树结构CSP 解CSP的局域搜索CSP:定义:定义范例:图形着色范例:图形着色 考虑一个图形中的N个结点。 把变量V1,VN的值赋给N个结点。 值取自R,G,B 约束:如果i与j之间有边,则Vi与Vj必不同。范例:图形着色范例:图形着色CSP定义定义 CSP=V,D,C 变量:V=V1,VN 例如:图中结点的值 域:每个变量能取的d个值的集 例如:D=R,G,B 约束:C=C1,CK 每个约束由一组变量与一列该组变量允许取的值组成 例如:(V2,V3

2、),(R,B),(R,G),(B,R),(B,G),(G,R),(G,B) 通常隐式地定义约束,即,定义一个函数来测试一组变量是否满足该约束 例如:对每条边(i,j),有ViVjCSP定义定义 CSP的解:每个变量有一个满足所有相关约束的值 特点: 状态的分解表示:一组变量及其值 利用状态的结构和通用启发方式 通过确定违反约束的变量与值组合可取消大部分搜索空间二元二元CSP 如果变量V与V出现在一个约束中,则它们是有联系的。 V近邻=与V有联系的变量。 V域,记为D(V),为变量V可取值的集。 Di=D(Vi) 二元CSP问题的约束图: 结点是变量 连线代表约束 与图形着色问题相同实例:实例:

3、N个皇后个皇后 变量:Qi 域:Di=1,2,3,4 约束 Qi Qj,即不能在同一行 |Qi Qj| |i j|,即不能在对角上 (Q1,Q2)的合法值是(1,3),(1,4),(2,4),(3,1),(4,1),(4,2)实例:密算(实例:密算(Cryptarithmetic)S E N D M O R EM O N E Y 变量:D,E,M,N,O,R,S,Y 域:0,1,2,3,4,5,6,7,8,9 约束 M 0,S 0,单元约束 Y = D E 或Y = D E 10 D E,D M,D N 等更多实例更多实例 调度 产品设计 资产分配 电路设计 受约束机器人的规划 CSP:标准搜

4、索:标准搜索搜索空间搜索空间 状态:给出k个变量赋值,而第k+1,N个变量未赋值。 后续态:通过给第k+1个变量赋值,而保持其它变量不变,来获得一个态的后续态。 始态: (V1=?,V2=?,V3=?,V4=?,V5=?,V6=?) 终态:所有变量已赋值,且约束也已满足。 无任何关于转换代价的概念。即,只想找到一个解,而不担心是怎样找到的。样本状态:(V1=G,V2=B,V3=?,V4=?,V5=?,V6=?)V1V2V3V4V5V6B?V1V2V3V4V5V6R?V1V2V3V4V5V6G?V1V2V3V4V5V6BB?V1V2V3V4V5V6?坏值值次序:(B,R,G)深度优先搜索(深度优

5、先搜索(DFS) 采用递归方式:对D中每个可能值:为后续态中的下个未赋值变量赋该值赋值后,评估当前态的后续态一旦找到解,就停止V1V2V3V4V5V6B?V1V2V3V4V5V6R?V1V2V3V4V5V6G?V1V2V3V4V5V6BB?V1V2V3V4V5V6?值次序:(B,R,G)DFS 改进: 只评估那些赋值,它们不违反任何与目前已赋值相关的约束。 不搜索那些明显不可能通往解的分枝。 预测合法的赋值。 控制变量与值的次序。CSP:改进:改进V1V2V3V4V5V6B?V1V2V3V4V5V6BR?V1V2V3V4V5V6BRRB?V1V2V3V4V5V6BB?V1V2V3V4V5V6?

6、V1V2V3V4V5V6BRRBG?值次序:(B,R,G)回溯回溯DFSV1V2V3V4V5V6B?V1V2V3V4V5V6BR?V1V2V3V4V5V6BRRB?V1V2V3V4V5V6BB?V1V2V3V4V5V6?V1V2V3V4V5V6BRRBG?值次序:(B,R,G)不考虑该树枝,因为V2=B与目前已赋值相关的约束不符。回溯到前一个状态,因为不能给V6赋合法的值。回溯回溯DFS 对D中每个可能值x: 如果将x赋给下个未赋值变量Vk+1后,不违反与k个已赋值变量相关的任何约束: 给Vk+1赋x。 赋值后,评估当前态的后续态。 如果找不到合法赋值,则回溯到前一个状态。 一旦找到解,就停止

7、。回溯回溯DFS评论评论 额外的计算:每步都需评估与当前候选赋值(变量=值)相关的约束。 用预测来改进不知情搜索: 一个变量的赋值对所有其它变量有什么影响? 下一个应赋值的变量是谁?并且应遵循什么次序来评估值? 当一条路径失败,怎样避免犯同样错误?向前查看向前查看 对未赋值的变量,跟踪余下的合法值。 当变量无合法值时,回溯。V1V2V3V4V5V6R?B?G?值次序:(R,B,G)向前查看向前查看 对未赋值的变量,跟踪余下的合法值。 当变量无合法值时,回溯。V1V2V3V4V5V6ROX?XX?B?G?向前查看向前查看 对未赋值的变量,跟踪余下的合法值。 当变量无合法值时,回溯。V1V2V3V

8、4V5V6RO?XX?BOX?X?G?向前查看向前查看 对未赋值的变量,跟踪余下的合法值。 当变量无合法值时,回溯。V1V2V3V4V5V6ROOXXXBO?X?G?向前查看向前查看 对未赋值的变量,跟踪余下的合法值。 当变量无合法值时,回溯。V1V2V3V4V5V6ROOXXBOOXXG?向前查看向前查看 对未赋值的变量,跟踪余下的合法值。 当变量无合法值时,回溯。V1V2V3V4V5V6ROOXBOOXGOX无合法值能赋给V6,因此需要回溯约束传播(约束传播(CP) 向前查看不检查所有不一致性,因为它只能查看那些与该当前赋值变量相关的约束。 能查看得更远些吗?V1V2V3V4V5V6ROO

9、XXBOOXXG?在该处已可看出,此路径不通向解,因为域中剩余值在赋给V5与V6后不能保持一致性。约束传播约束传播 V=在搜索的当前层次,需赋值的变量。 将D(V)中的一个值赋给V 对与V相连的每个变量V: 去掉D(V )中与已赋值变量不一致的值 对与V 相连的每个变量V”: 去掉D(V”)中不再可能的候选值 对与V” 相连的每个变量: 直到不再有能被去掉的值为止注:清理D(V )是属于已有的向前查看清理D(V”)则是属于新的约束传播解图形着色问题的解图形着色问题的CPPropagate(node, color)1. 从node的所有近邻的值域中去掉color2. 对每个近邻N:if 第1步后

10、,D(N)中只剩一种颜色,即D(N)=c:Propagate(N, c)V1V2V3V4V5V6ROX?XX?B?G?在传播(V1,R)后:V1V2V3V4V5V6ROXXX?BOX?XXG?X?X在传播(V2,B)后:传播次序:23546365354注: 在设置V2后,无需更多搜索,只需一步CP就直接得到一个解。 一些问题甚至可无需任何搜索,直接由CP来解。V1V2V3V4V5V6ROXXX?BOX?XXG?X?X在传播(V2,B)后:更一般的更一般的CP:边一致性:边一致性 A=活跃边(Vi,Vj)的队列 当A不空时,重复执行: (Vi,Vj)A的下一个组元 对D(Vi)中每个x: 如果D

11、(Vj)中无y能使(x,y)满足Vi,与Vj间的约束,则从D(Vi)中去掉x 如果D(Vi)有改变: 添加所有(Vk,Vi)对到A中,其中Vk (kj) 是Vi的一个近邻更一般的更一般的CP:k一致性一致性 查看含有k个变量组之间的一致性,而不是变量偶对(边)之间一致性。 权衡: CP时间随k增加而迅速增加 搜索时间随k增加可能会下降,但可能不会像上面那样快 完全约束传播,时间开销是问题尺寸的指数CSP:启发方式:启发方式变量与值的启发式算法变量与值的启发式算法目前,是以一个固定次序来选择下一个变量和下一个值。问题:有更好的方法来选择下一个变量吗?有更好的方法来选择下一个赋给当前变量的值吗?C

12、SP启发式算法:变量排序启发式算法:变量排序1V1V2V3V4V5V6V7R?CSP启发式算法:变量排序启发式算法:变量排序1 最多约束变量(MCV) 选择一个贡献最多约束数的变量,会对其它变量有极大的影响。因此,有希望修剪掉大部分搜索。 这要求:在约束图形中找到与最多变量相连接的变量。V1V2V3V4V5V6V7R?变量V5影响5个变量。变量V2、V3或V4只影响较少的变量。CSP启发式算法:变量排序启发式算法:变量排序2V1V2V3V4V5V6V7ROXXX?OBO?X?G?CSP启发式算法:变量排序启发式算法:变量排序2 最少余下值(MRV) 选择一个候选值最少的变量,由此,极可能导致一

13、个早期失败(失败优先启发方式)。V1V2V3V4V5V6V7ROXXX?OBO?X?G?变量V5是最受约束的变量,并且最可能用来剪枝搜索树。CSP启发式算法:值排序启发式算法:值排序V1V2V3V4V5V6GR?四种颜色:D=R,G,B,YCSP启发式算法:值排序启发式算法:值排序 最少约束值(LCV) 选择使相邻变量可用值减少最少的值 优先选用最可能的值(也即为随后的变量赋值提供最大灵活性)来获得一个解V1V2V3V4V5V6GR?四种颜色:D=R,G,B,Y要给V3赋哪个值?CP实例:白描解释实例:白描解释凹边凹边凸边凸边?假设假设 无阴影 公共面之间无边 一般观察点 只考虑三面顶点特殊观

14、察点一般观察点不允许的边3种可能的边标记种可能的边标记 +:凸边 :凹边 :边界按规定,当沿着箭头方向看时,面在右侧。4种可能的交点类型种可能的交点类型TVYW1+2-3-4-5- 存在34342=208种可能的边标记与交点类型的组合。 例如,在一个Y交点处,有43种可能的边标记组合。但仅有5种实际上可能的组合。1+2-3-4-5-CSP形式形式 域D=18种交点构形的字典。 约束:连接两交点的线必须是,+,中的某单一标记。 问题:把值赋给所有交点,从而所有边都被标记。 用约束传播来求解:Waltz标记算法。+-+-+-+VYTW 仅有18种可能的交点构形 Huffman-Clowes交点字典

15、+-+-+BA+-+CCBDA+-D(B,A)+-+-+BA+-+CCBDA+-D(C,B)+-+-+BA+-+CCBDA+-D(D,C)+-+-+BA+-+CCBDA+-D(A,D)+-+-+BA+-+CCBDA+-D(B,A)+-+-+BA+-+CCBDA+-D+-标记标记 扩展:处理阴影与切点接触。有10种交点类型,且大得多的合法构形。 关键点:随边的增加,计算呈线性增长。例子:调度例子:调度 需完成一组N项任务J1,JN。 每项任务j是由顺序执行的一组Lj项操作Oj1,OjLj组成。 每项操作Oji有一个已知的时间段Tji。 操作可能需要从一项有M个资源R1,RM的库中使用资源。 一个

16、资源不能同时被两项操作使用。 所有的任务必须在时间t之前完成。 问题:用离散时间0,T来安排每项操作的起始时间Sji。 4项任务 4个资源 10项操作优先约束:S11+T11S12S12+T12S13.交付约束:S13+T13tS22+T22tS33+T33t.容量约束:S11+T11S21或者S21+T21S11操作(1,1)和(2,1)享用同一资源R1。因此,要么(1,1)在(2,1)之前全部完成,要么(2,1)在(1,1)之前完成。一般的一般的CSP解解 重复直到所有变量已被赋值为止: 采用一个一致性实施程序 向前查看 约束传播 if 无解: 回溯到前一个变量 else 选择下一个需赋值

17、的变量利用变量排序启发 选择一个值赋给该变量利用值排序启发CSP:树结构:树结构CSP重要特例:约束树重要特例:约束树 约束图形是一棵树:两变量由一条路径相连。 能用变量数的线性时间来求解。V2V1V4V5V7V3V6V8将变量排序,使得在序列中一个结点的父结点总出现在该结点之前如果父域中所有的值与所有子域中的值相一致,则很容易从树根开始来选择一致性的值。根约束树算法约束树算法1.由叶向上到根:由叶开始,对每个变量Vi:Vj=parent(Vi)去掉D(Vj)中所有与D(Vi)不一致的值x2.从根向下到叶:给根赋一个值对每个变量Vi:选择D(Vi)中一个值x,它应与赋给parent(Vi)的值

18、是一致的注:由叶向上到根,只访问每个变量一次:N为去掉不一致值,在最坏场合,需查看每对赋值:d2总时间复杂性:O(Nd2)类树类树 一旦为V6选择一个值后,约束图形就变成约束树。 不知道要选那个值。因此,尝试所有可能值。更一般场合更一般场合G 去掉由p个变量组成的连接群G,从而把图形转换成一个可有效求解的树问题。G称为循环割集(cycle cutset) 不知道怎样为G中变量赋值: 对于每次可能的为G中变量的一致性赋值:将树算法应用于其余变量 总体算法称为割集调节(cutset conditioning)G 去掉由p个变量组成的连接群G,从而把图形转换成一个可有效求解的树问题。 G称为循环割集 不知道怎样为G中变量赋值: 对于每次可能的为G中变量的一致性赋值:将树算法应用于其余变量 总体算法称为割集调节(cutset conditioning)注:为实现一次为G中变量的一致性赋值,在最坏场合下,需查看G中所有可能赋值:dp树算法: (N-p)d2总时间复杂性:O(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论