第七章 分枝-限界法.ppt
《第七章 分枝-限界法.ppt》由会员分享,可在线阅读,更多相关《第七章 分枝-限界法.ppt(34页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第七章第七章 分枝分枝-限界法限界法一般方法一般方法n分枝分枝-限界法是在生成当前限界法是在生成当前E-结点全部结点全部儿子之后,再生成其他活结点的儿子,儿子之后,再生成其他活结点的儿子,并且使用限界函数帮助避免生成不包含并且使用限界函数帮助避免生成不包含答案结点子树的状态空间的检索方法。答案结点子树的状态空间的检索方法。n根据对状态空间树中结点检索次序的不根据对状态空间树中结点检索次序的不同,可将分枝同,可将分枝-限界的设计策略分为:限界的设计策略分为:FIFO检索,活结点采用一张检索,活结点采用一张先进先出表先进先出表LIFO检索,活结点采用一张检索,活结点采用一张先进后出表先进后出表2例
2、例7.1:4-皇后问题皇后问题39553n本例本例考察用一个考察用一个FIFO分支分支-限界算法检索限界算法检索4-皇后问题的状态空间树的基本过程。皇后问题的状态空间树的基本过程。n起初,只有一个活结点,即结点起初,只有一个活结点,即结点1。这表。这表示没有皇后被放在棋盘上。示没有皇后被放在棋盘上。n扩展这个结点,生成它的儿子结点扩展这个结点,生成它的儿子结点2,18,34和和50。这些结点分别表示皇后。这些结点分别表示皇后1在在第第1行的行的1,2,3,4列情况下的棋盘。列情况下的棋盘。n现在仅有的活结点是现在仅有的活结点是2,18,34和和50。如果。如果按这样的次序生成这些结点,则下一个
3、按这样的次序生成这些结点,则下一个E-结点就是结点结点就是结点2。扩展结点。扩展结点2,生成结点,生成结点3,8和和13。利用限界函数,结点。利用限界函数,结点3立即被杀立即被杀死,将结点死,将结点8和和13加到活结点队列。加到活结点队列。4结点结点18变成下一个变成下一个E-结点,生成结点结点,生成结点19,24和和29,限界函数杀死结点,限界函数杀死结点19和和24,结点,结点29被加到被加到活结点队列。下一个活结点队列。下一个E-结点是结点是34。图中显示了由图中显示了由FIFO分枝分枝-限界检索生成图限界检索生成图6.2中的那棵树的一部分。由限界函数杀死的那些中的那棵树的一部分。由限界
4、函数杀死的那些结点的下方有一个结点的下方有一个B字。结点内的数与图字。结点内的数与图6.2所所示的结点内的数对应。示的结点内的数对应。结点外的数给出了用结点外的数给出了用FIFO分枝分枝-限界法生成限界法生成结点的次序。结点的次序。在到达答案结点在到达答案结点31时,仅剩下活结点时,仅剩下活结点38和和54。比较图比较图6.6和图和图7.1可以看出,对于这个问题可以看出,对于这个问题回回溯法占优势。溯法占优势。57.1.1 LC-检索检索n问题:问题:在在LIFO和和FIFO分枝分枝-限界法中,对下限界法中,对下一个一个E-结点的选择规则相当死板,在某种意结点的选择规则相当死板,在某种意义上是
5、盲目的。义上是盲目的。n方法:方法:对活结点使用一个对活结点使用一个“有智力有智力”排序函排序函数数 c(.)来选取下一个来选取下一个E-结点往往可以加快到结点往往可以加快到达一答案结点的速度。达一答案结点的速度。n对任意结点对任意结点X,可用两种标准来量度:可用两种标准来量度:在生成一个答案结点之前,子树在生成一个答案结点之前,子树X需要生成的结点需要生成的结点数数在子树在子树X中离中离X最近的那个答案结点到最近的那个答案结点到X的路径长的路径长度度6使用后一种度量,图使用后一种度量,图7.1中树的根结点付出中树的根结点付出的代价是的代价是4。结点(。结点(18和和34),(),(29和和3
6、5)以及(以及(30和和38)的代价分别是)的代价分别是3,2和和1。所有在所有在2,3和和4级上剩余结点的代价应分别级上剩余结点的代价应分别大于大于3,2和和1。以这些代价作为选择下一个。以这些代价作为选择下一个E-结点的依据,则结点的依据,则E-结点依次为结点依次为1,18,29和和30。得以生成的其它结点仅是得以生成的其它结点仅是2,34,50,19,24,32和和31。易于看出,如果使用度量。易于看出,如果使用度量1,则对于,则对于每一种分枝每一种分枝-限界算法,总是生成最小数目限界算法,总是生成最小数目的结点。的结点。7如果使用度量如果使用度量2,则要成为,则要成为E-结点的结点结点
7、的结点只是由根到最近的那个答案结点路径上的只是由根到最近的那个答案结点路径上的那些结点。那些结点。以后用以后用C(.)表示表示“有智力的有智力的”排序函数,有称排序函数,有称为结点的成本函数。其定义如下:为结点的成本函数。其定义如下:如果如果X是答案结点,则是答案结点,则C(X)是由是由状态空间树的根状态空间树的根结点到结点到X的成本;如果的成本;如果X不是答案结点且子树不是答案结点且子树X不不包含任何答案结点,则包含任何答案结点,则C(X)=;否则否则C(X)等于等于子树子树X中具有最下成本的答案结点的成本。中具有最下成本的答案结点的成本。但要指出的是:要得到结点成本函数但要指出的是:要得到
8、结点成本函数C(.)所用的所用的计算工作量与解原问题具有相同的复杂度,所以计算工作量与解原问题具有相同的复杂度,所以要得到精确的成本函数一般是不现实的。要得到精确的成本函数一般是不现实的。8n解决方法:解决方法:考虑在算法中检测活结点的次序通考虑在算法中检测活结点的次序通常可以根据能大致估计结点成的函数常可以根据能大致估计结点成的函数g(.)来排来排出。出。n设设g(X)是由是由X到达一个答案结点所需做的附加到达一个答案结点所需做的附加工作的估计函数。工作的估计函数。n但是单纯使用函数但是单纯使用函数g(.)并不合适,它会导致算并不合适,它会导致算法偏向于作纵深检查。法偏向于作纵深检查。n假设
9、结点假设结点X是当前的是当前的E-结点且它的儿子为结点且它的儿子为Y,由由于通常要求于通常要求g(Y)g(X),因此,活结点表因此,活结点表中其它结点的成本估计值均大于中其它结点的成本估计值均大于g(Y),于是于是Y将在将在X之后变成之后变成E-结点;结点;n然后然后Y的儿子中有一个变成的儿子中有一个变成E-结点;接着结点;接着Y的一的一个孙子变成个孙子变成E-结点等等,直到子树结点等等,直到子树X全部检索全部检索完毕才可能生成那些除完毕才可能生成那些除X子树以外的子树结点。子树以外的子树结点。9n如果如果g(X)就是就是C(X),这种纵深检索正是所这种纵深检索正是所希望的,因为这样可以用最下
10、成本到达离根最希望的,因为这样可以用最下成本到达离根最近的答案结点,其它子树的结点无需生成。近的答案结点,其它子树的结点无需生成。n但是但是g(X)仅是精确成本的估计值,因此仅是精确成本的估计值,因此偏向于纵深检查可能导致不能很快找到偏向于纵深检查可能导致不能很快找到更接近根的答案结点。更接近根的答案结点。n例如,对于结点例如,对于结点W和和Z完全可能有这样一完全可能有这样一种情况,种情况,g(W)g(Z)且且Z比比W更接更接近答案结点。此时若使用近答案结点。此时若使用g(.)给给结点排结点排序,必然导致对序,必然导致对W子树作纵深检查,结子树作纵深检查,结果显然是不理想的。果显然是不理想的。
11、10n解决方法:解决方法:不仅考虑结点不仅考虑结点X到一个答案结点的到一个答案结点的估计成本值,还应考虑由根结点到结点估计成本值,还应考虑由根结点到结点X的成的成本本h(X)。n用用c(.)来表示新的成本估计函数,使得:来表示新的成本估计函数,使得:c(X)=f(h(X)+g(X)n 用用f(.)不等于不等于0可以减少算法作偏向于纵深检查可以减少算法作偏向于纵深检查的可能性,它可以使算法在结点的可能性,它可以使算法在结点W和和Z之间优之间优先检索更靠近答案结点但又离根较近的结点先检索更靠近答案结点但又离根较近的结点Z。n用成本估计函数用成本估计函数c(X)=f(h(X)+g(X)选择下一选择下
12、一个个E-结点的检索策略总是选取结点的检索策略总是选取c(.)值值最小的活最小的活结点作为下一个结点作为下一个E-结点。结点。n因此这种检索策略称之为最小成本检索,简称因此这种检索策略称之为最小成本检索,简称LC-检索。检索。11例:例:15-谜问题谜问题134152512761114891013123456789101112131415abc问题描述:在一个分成问题描述:在一个分成16格的方形棋盘上,放有格的方形棋盘上,放有15块编了号码的牌(见下图)。对这些牌给定一块编了号码的牌(见下图)。对这些牌给定一种初始排列如图种初始排列如图7.2(a),要求通过一系列的合法移要求通过一系列的合法移
13、动将这一初始排列转换成图动将这一初始排列转换成图7.2(b)所示的那样的目所示的那样的目标排列。标排列。图图7.2 15-谜的排列图谜的排列图12例:例:15-谜问题谜问题 图图7.2(a)所示的初始排列有四种可能的移动,所示的初始排列有四种可能的移动,可以将编号为可以将编号为2,3,5或或6的任何一块牌移到空格。的任何一块牌移到空格。在作了这次移动之后,可作其他的移动。每在作了这次移动之后,可作其他的移动。每移动一次,就产生一种新的排列。这些排列称移动一次,就产生一种新的排列。这些排列称为这个谜问题的状态。为这个谜问题的状态。初始排列和目标排列叫做初始状态和目标状初始排列和目标排列叫做初始状
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第七章 分枝-限界法 第七 分枝 限界
限制150内