- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
旅行售货员问题 从状态空间树的根出发,定义非根结点x的估值函数如下: 若x不是解结点,则: 第 07 章 限 界 剪 枝 法 限界剪枝法与回溯法相似,也是对状态空间树进行搜索求解,不同的是限界剪枝法的求解目标是要找到使得某一目标函数极大或极小的一个解结点,即某种意义下的最优解。 在算法设计上,限界剪枝法不仅通过约束条件来控制搜索路径,还通过目标函数的限界来减少搜索规模;限界剪枝法在搜索时,通常先进行广度扩展,将满足约束条件且不越过目标函数的子结点加入到活结点表中等待搜索; 常见的活结点表有队列式(FIFO)、栈式(LIFO)和优先队列式(PQ); * 最小耗费搜索法 求解以定义在状态空间树T的解结点集A上的耗费函数为目标函数的最优问题,即求解A中耗费最小的解结点。 设A中的结点x所需的耗费为D(x),在T上构造耗费函数:C(x) = min{D(y)|y∈Tx∩A} Tx∩A ≠{} C(x) = ∞ Tx∩A = {}Tx表示以x为根的子树;易见,子结点的耗费函数值不小于父结点的耗费函数; 理想情况下,以耗费值作为优先级建立优先队列,按优先顺序扩展搜索,就可以很快找到具有最小求解耗费的解结点; 然而在实际情况中,通常是求解过程中才能得到求解的耗费,因此可以采用一个耗费的估计值~C(x)作为C(x)的近似解; * * 《算法设计与分析》第6章 限界剪枝法 第六章 分支限界法 本章主要知识点 6.1 分支限界法的基本思想 6.2 单源最短路径问题 6.3 装载问题 6.4 布线问题 6.5 0-1背包问题 6.6 最大团问题 6.7 旅行售货员问题 6.8 电路板排列问题 6.9 批处理作业调度 * 一 限界剪枝法的基本思想 1. 限界剪枝法与回溯法的不同 (1)求解目标:回溯法的求解目标是找出解空间树中满足约束条件的所有解,而分支限界法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出在某种意义下的最优解。 (2)搜索方式的不同:回溯法以深度优先的方式搜索解空间树,而分支限界法则以广度优先或以最小耗费优先的方式搜索解空间树。 2. 限界剪枝法基本思想 分支限界法常以广度优先或以最小耗费(最大效益)优先的方式搜索问题的解空间树。 在分支限界法中,每一个活结点只有一次机会成为扩展结点。活结点一旦成为扩展结点,就一次性产生其所有儿子结点。在这些儿子结点中,导致不可行解或导致非最优解的儿子结点被舍弃,其余儿子结点被加入活结点表中。 此后,从活结点表中取下一结点成为当前扩展结点,并重复上述结点扩展过程。这个过程一直持续到找到所需的解或活结点表为空时为止。 3. 常见的两种分支限界法 (1)队列式(FIFO)分支限界法 按照队列先进先出(FIFO)原则选取下一个节点为扩展节点。 (2)优先队列式分支限界法 按照优先队列中规定的优先级选取优先级最高的节点成为当前扩展节点。 基本思想 2、启发式搜索 3、提前剪去不含最优解的分枝 1、以回溯为基础,求最优解 二 最小耗费搜索法 x x y2 y1 D(y2) C(x) = min{D(y)|y∈Tx∩A} D(y1) C(x) = ∞ 最小耗费搜索法 10 5 12 7 14 9 17 最小耗费搜索法 10 5 12 7 14 9 17 5 5 ∞ 14 9 9 ∞ 14 5 ∞ 10 10 ∞ ∞ 5 ∞ ∞ ∞ 最小耗费搜索法 下界估值函数~C(x) ~C(x)是C(x)的下界估值 ~C(x)可即时计算 当x为解结点时,~C(x)=C(x)=D(x) 下界估值越小,分枝含有最优解的可能越大。 优先搜索下界估值最小的结点,则第一个待扩展的解结点为最优解。 最小耗费搜索法 最小耗费搜索法 最小耗费搜索法的算法描述 设T为状态空间树的根结点;~C(x)为耗费估计函数;初始化优先队列Q; 计算~C(T),并将T入队; 循环,直到队列Q空(无解): 结点e出队; 若e是回答结点,则 输出解或求解路径,求解结束; 否则 检查e的所有子结点x: 若x满足约束条件,则 计算~C(x),并将x入队; 记录搜索路径; 当~C(x)满足:~C(x)≤C(x),C(x)单调,解结点的~C(x)=C(x)时,上述算法可以正确找到C(x)的最小耗费解; 对活结点表中的任一结点x,有~C(e)≤~C(x), 对x分枝中的任一解结点y,有~C(x)≤C(y)=D(y), 又知:~C(e)=C(e)=D(e),则D(e)≤D(y)
文档评论(0)