- 1、本文档共28页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2.5分枝界限法-Read
§2.5 分枝界限法;整个的搜索过程可以用树表示。
树的根就是搜索的开始,根包含所有的可能解。
对可能解的组成作出限制将所有的可能解划成子集,在树中用根的子节点表示。
对这些子集再作限制,又可将子集划成更小的子集,在树中得到更多的子节点。
有时,对可能解作了某些限制以后,可以确定得到的子集中所有的可能解都不是问题的解,
则可以停止对这个子集的可能解作进一步的限制,即不必产生这个节点的子节点了,
可以停止对以这个节点为根的子树(即可能解的子空间)的搜索。;树中各节点被考虑的次序如是任意的,则为盲目搜索,
为加速搜索过程,须按某种原则规定节点被考虑的次序,搜索的速度就大大加快了。;在巡回售货员问题中,如用BEST表示当前所搜寻到的最好结果,即包含所有城市的最短回路的长度。
考虑树的节点,即可能解的子集时,可能解的回路长度的下限如不小于BEST的值。
则这个节点(或可能解的这个子集)就不必进一步考虑了(称为剪枝)。为加速搜索过程,希望
(i)BEST的值小一点,即当前搜寻到的结果尽可能接近问题的最佳解。这样能及早停止对某些节点的搜索,要搜索的空间缩小了,搜索过程就加速了。
(ii)对可能解子集的回路长度的下限估计得精确些(因为只有用穷尽法才能得到下限的准确值),
目的同样是为了及早停止对某些节点的搜索,加快整个搜索过程。如果限制条件选择得好,子节点所包含的可能解的数目比父节点会少得多。; 巡回售货员问题的搜索树兹述如下:根结点表示所有可能解的集合,每一个结点至多有两个子节点
对父节点的可能解按是否含有某一特定边,将父节点的可能解划成两个子集,由此得到两个子节点
对树中的节点(即可能解的子集),估算其回路长度的下限,如估算值不小于BEST,则停止产生这个节点的子节点。
节点被考虑的次序是这样决定的,选择下限估算值最小的节点,产生它的子节点。
至于按哪条边划分子集,则循事先规定的次序。以边ab为例,标以ab的节点表示相应的子集中的回路都含有边ab,标以ab的节点则表示相应的子集中的回路都不包含边ab.
子节点继承父节点的性质。; 节点ac的集合中的回路不仅包含边ac,还含有边ab,因为其父结点的标记为ab.
树中有些节点不必产生,如节点ac处,不必考虑其子节点ad,因为节点ac相应的可能解集合中的每条回路已经包含边ab和ac,从而必不可能再含有一条与城市a相关联的边。
产生子节点时有这样的考虑,如选择边xy,按包含边xy或排斥边xy产生子节点,
1.如包含边xy,城市x或y有多于两条边与之相关,则不能产生子节点xy.
2.如排斥边xy ,城市x或y最多只能有一条边与之相关,则不能产生子节点xy;现在讨论如何估算可能解集合的回路长度的下限。考虑如下可能解
V1,V2,···,Vn
令Nl=C[V1][V2]+C[Vn ][ V1]
Ni=C[Vi-l ][ Vi]+C[Vi ][ Vi+1] (i=2,3,···,n-1)
Nn=C[Vn-1 ][ Vn]+C[Vn ][ V1]
Ni为在回路中与节点i相关的两条边的权的和.
则回路长度
COST= 1/2 ∑ Ni
如用Mi表示联接城市i的两条最短边的权之和,则
COST= 1/2 ∑Mi
此为下限。;;;树根
17.5;搜索树中节点旁的数字表示节点产生的次序,
节点内有限制的信息(即包含某条边、或排斥某条边)及回路长度的下限。
在节点2和节点3中,先考虑节点2,
因节点被考虑的次序按其下限值,每次总是先考虑下限值最小的节点。;继续这个过程,得下图的搜索树。
树中节点8所受的限制为包含边ab,ad,bc,排斥边ac,由于边ab,ad,bc一定被包含,
可知节点8对应的可能解子集中只含一个可能解,即为回路
a bced a (*)
其长度为23,因为(*)是第一次得到的回路,所以其长度就是BEST的第一个值。
节点7的下限值如图所示为23,与BEST值相同,因此就不必考虑它的子节点了,
图中用×号表示。;;1;;同样,节点9的限制为包含边ab、ad,排斥边ac、bc,
由于包含了边da、ab,因此必不能包含边db,因此边be必须被包含,从而节点9也只含一个可能解
d a b e c d
其长度为21,比BEST值小,因此须更新BEST的值为21.
节点4的下限为20.5,因为边长都为整数所以节点4的下限应为21,等于BEST现在的值,从而节点4的子节点也不必考虑了。
因此图中只有节点3需要考虑。;按
文档评论(0)