《算法设计与》第09章解读.ppt
《《算法设计与》第09章解读.ppt》由会员分享,可在线阅读,更多相关《《算法设计与》第09章解读.ppt(66页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、算法设计与分析算法设计与分析DeSign and Analysis of AlgorithmsIn C+“十一五十一五”国家级规划教国家级规划教材材 陈慧南陈慧南陈慧南陈慧南 编著编著编著编著电子工业出版社电子工业出版社电子工业出版社电子工业出版社 南京邮电大学计算机学院南京邮电大学计算机学院 2008 2008年年3 3月月第第2部分部分算法设计策略算法设计策略 南京邮电大学计算机学院南京邮电大学计算机学院 2008 2008年年3 3月月第第9章章分支限界法分支限界法 南京邮电大学计算机学院南京邮电大学计算机学院 2008 2008年年3 3月月9.19.1一般方法一般方法一般方法一般方法
2、9.29.2求最优解的分枝限界法求最优解的分枝限界法求最优解的分枝限界法求最优解的分枝限界法 9.39.3带时限的作业排序带时限的作业排序带时限的作业排序带时限的作业排序 9.40/19.40/1背包背包背包背包 9.59.5旅行商问题旅行商问题旅行商问题旅行商问题 9.69.6批处理作业调度批处理作业调度批处理作业调度批处理作业调度 南京邮电大学计算机学院南京邮电大学计算机学院 2008 2008年年3 3月月9.1一般方法一般方法 南京邮电大学计算机学院南京邮电大学计算机学院 2008 2008年年3 3月月9.1.1分枝限界法概述分枝限界法概述采采用用广广度度优优先先产产生生状状态态空空
3、间间树树的的结结点点,并并使使用用剪剪枝枝函函数数的的方方法法称称为为分分枝枝限限界界法法。按按照照广广度度优优先先的的原原则则,一一个个活活结结点点一一旦旦成成为为扩扩展展结结点点(E-结结点点)R后后,算算法法将将依依次次生生成成它它的的全全部部孩孩子子结结点点,并并将将它它们们一一一一加加入入活活结结点点表表,此此时时R自自身身成成为为死死结结点点。算算法从活结点表中另选一个活结点作为法从活结点表中另选一个活结点作为E-结点。结点。南京邮电大学计算机学院南京邮电大学计算机学院 2008 2008年年3 3月月不不同同的的活活结结点点表表形形成成不不同同的的分分枝枝限限界界法法,分分为为:
4、FIFO分分枝枝限限界界法法、LIFO分分枝枝限限界界法法和和LC(leastcost)分分枝枝限限界界法法。三三种种不不同同的的活活结结点点表表,规规定定了了从活结点表中选取下一个从活结点表中选取下一个E-结点的不同次序。结点的不同次序。FIFO分枝限界法分枝限界法的活结点表是先进先出队列的活结点表是先进先出队列LIFO分枝限界法分枝限界法的活结点表是堆栈;的活结点表是堆栈;LC分分枝枝限限界界法法的的活活结结点点表表是是优优先先权权队队列列,LC分分枝枝限限界界法法将将选选取取具具有有最最高高优优先先级级的的活活结结点点出出队队列列,成为新的成为新的E-结点。结点。南京邮电大学计算机学院南
5、京邮电大学计算机学院 2008 2008年年3 3月月例例91(4-皇后问题皇后问题)FIFO分枝限界法求解分枝限界法求解 南京邮电大学计算机学院南京邮电大学计算机学院 2008 2008年年3 3月月【程序【程序91】分枝限界算法】分枝限界算法templatestructNodeTcost;Node*parent;南京邮电大学计算机学院南京邮电大学计算机学院 2008 2008年年3 3月月templatevoidBranchBound(Node*t)LiveListNode*lst(mSize);Node*x,*E=t;dofor(对结点对结点E的每个不受限的孩子的每个不受限的孩子)x=n
6、ewNode;x-parent=E;if(x是一个答案结点是一个答案结点)输出从输出从x到到t的一条路径;的一条路径;return;lst.Append(x);南京邮电大学计算机学院南京邮电大学计算机学院 2008 2008年年3 3月月if(lst.IsEmpty()cout“没有答案结点没有答案结点”;return;lst.Serve(E);while(1););南京邮电大学计算机学院南京邮电大学计算机学院 2008 2008年年3 3月月9.1.2LC分枝限界法分枝限界法代价函数代价函数c()若若X是是答答案案结结点点,则则c(X)是是从从根根结结点点到到X的的搜搜索索代代价价;若若X不
7、不是是答答案案结结点点且且子子树树X上上不不含含任任何何答答案案结结点点,则则c(X)=;若若X不不是是答答案案结结点点但但子子树树X上上包包含含答答案案结结点点,则则c(X)等等于于子子树树X上上具具有有最最小小搜搜索索代代价价的的答答案结点的代价。案结点的代价。南京邮电大学计算机学院南京邮电大学计算机学院 2008 2008年年3 3月月相对代价函数相对代价函数g()衡衡量量一一个个结结点点X的的相相对对代代价价一一般般有有两两种种标标准准:在在生生成成一一个个答答案案结结点点之之前前,子子树树X上上需需要要生生成成的的结结点点数数目目;在在子子树树X上上,离离X最最近近的的答答案案结结点
8、点到到X的的路路径径长长度度。容容易易看看出出,如如果果采采用用标标准准,总总是是生生成成最最小小数数目目的的结结点点;如如果果采采用用标标准准,则则要要成成为为E-结结点点的的结结点点只只是是由由根根到到最最近近的的那那个个答答案案结结点点路路径径上上的的那些结点。那些结点。南京邮电大学计算机学院南京邮电大学计算机学院 2008 2008年年3 3月月 南京邮电大学计算机学院南京邮电大学计算机学院 2008 2008年年3 3月月相对代价估计函数相对代价估计函数(.)(X)作作为为g(X)的的估估计计值值,用用于于估估计计结结点点X的的相相对对代代价价,它它是是由由X到到达达一一个个答答案案
9、结结点点所所需需代代价价的的估估计计函函数数。一一般般地地,假假定定(X)满满足足如如下下特特性性:如如果果Y是是X的的孩子,则有孩子,则有(Y)(X)。代价估计函数代价估计函数(.)(X)是是代代价价估估计计函函数数,它它由由两两部部分分组组成成:从从根根到到X的的代代价价f(X)和和从从X到到答答案案结结点点的的估估计计代代价价(X),即即(X)=f(X)+(X)。一一般般而而言言,可可令令f(X)等等于于X在在树树中的层次。中的层次。南京邮电大学计算机学院南京邮电大学计算机学院 2008 2008年年3 3月月9.1.315谜问题谜问题在一个在一个4 4 4 4的方形棋盘上放置了的方形棋
10、盘上放置了1515块编了号的牌,块编了号的牌,还剩下一个空格。问题要求对于任意给定的一种还剩下一个空格。问题要求对于任意给定的一种初始排列,通过一系列的合法移动,将给定的初初始排列,通过一系列的合法移动,将给定的初始排列转换成目标排列。始排列转换成目标排列。南京邮电大学计算机学院南京邮电大学计算机学院 2008 2008年年3 3月月初初始始状状态态和和目目标标状状态态,从从任任意意初初始始状状态态,经经一一系系列列的的空空格格移移动动,到到达达目目标标状状态态。空空格格可以最多有前、后、左和右四种移动方式。可以最多有前、后、左和右四种移动方式。共共有有16!种种不不同同的的排排列列。这这个个
11、状状态态空空间间树树是是相相当当大大的的。有有必必要要判判定定当当前前到到达达的的状状态态是是否属于该状态空间树。否属于该状态空间树。南京邮电大学计算机学院南京邮电大学计算机学院 2008 2008年年3 3月月定理定理9-1对给定的初始状态,当且仅当对给定的初始状态,当且仅当为偶数时,可以由此初始状态到达目标状态,其中,为偶数时,可以由此初始状态到达目标状态,其中,i和和j分别是空格在棋盘上的行和列下标。分别是空格在棋盘上的行和列下标。南京邮电大学计算机学院南京邮电大学计算机学院 2008 2008年年3 3月月 15 15谜问题的部分状态空间树谜问题的部分状态空间树(FIFOBB)南京邮电
12、大学计算机学院南京邮电大学计算机学院 2008 2008年年3 3月月 15 15谜问题的部分状态空间树谜问题的部分状态空间树(LCBB)南京邮电大学计算机学院南京邮电大学计算机学院 2008 2008年年3 3月月9.2求最优解的分枝限界法求最优解的分枝限界法 南京邮电大学计算机学院南京邮电大学计算机学院 2008 2008年年3 3月月9.2.1上下界函数上下界函数定定义义9-1 状状态态空空间间树树上上一一个个结结点点X X的的代代价价函函数数c c()定定义义为为:若若X X是是答答案案结结点点,则则c c(X X)为为X X所所代代表表的的可可行行解解的的目目标标函函数数值值;若若X
13、 X为为非非可可行行解解结结点点,则则c c(X X)=)=;若若X X代代表表部部分分向向量量,则则c c(X X)是是以以X X为为根根的的子子树树上上具具有有最最小小代代价价的的结结点点代代价价。显显然然,这这样样定定义义的的c c(X X)也也是是难难以以计计算的,它的计算难度与求得问题最优解的难度相当算的,它的计算难度与求得问题最优解的难度相当定定义义9-2 函函数数u()和和()分分别别是是代代价价函函数数c()的的上上界界和下界函数。对所有结点和下界函数。对所有结点X,总有总有(X)c(X)u(X)。南京邮电大学计算机学院南京邮电大学计算机学院 2008 2008年年3 3月月基
14、于上下界函数的分枝限界法的限界方法基于上下界函数的分枝限界法的限界方法 U的值可以按下列原则修正:的值可以按下列原则修正:如如果果X是是答答案案结结点点,cost(X)是是X所所代代表表的的可可行行解解的的目目标标函函数数值值,u(X)是是该该子子树树上上最最小小代代价价答答案案结结点点代代价的上界值,则价的上界值,则U=mincost(X),u(X)+,U;如果如果X代表部分向量,则代表部分向量,则U=minu(X)+,U。使用使用(X)U 剪除多余分枝。剪除多余分枝。南京邮电大学计算机学院南京邮电大学计算机学院 2008 2008年年3 3月月9.2.2FIFO分枝限界法分枝限界法temp
15、latetemplateNode*FIFOBB(Node*t,T&U)Node*FIFOBB(Node*t,T&U)LiveListNode*lst(mSize);LiveListNode*lst(mSize);Node*ans=NULL,*x,*E=t;Node*ans=NULL,*x,*E=t;dodofor(for(对结点对结点对结点对结点 E E的每个孩子的每个孩子的每个孩子的每个孩子 x)x)if(if(x)U)(x)parent=E;x=newNode;x-parent=E;南京邮电大学计算机学院南京邮电大学计算机学院 2008 2008年年3 3月月 lst.Append(x);
16、lst.Append(x);if(xif(x是一个答案结点是一个答案结点是一个答案结点是一个答案结点&cost(x)U)cost(x)U)if(u(x)+if(u(x)+cost(x)U=u(x)+cost(x)U=u(x)+;elseU=cost(x);ans=x;elseU=cost(x);ans=x;elseif(u(x)+elseif(u(x)+U)U=u(x)+U)U=u(x)+;dodoif(lst.IsEmpty()returnans;if(lst.IsEmpty()returnans;lst.Serve(E);lst.Serve(E);while(while(E)U);(E)U
17、);whilewhile(1 1););););南京邮电大学计算机学院南京邮电大学计算机学院 2008 2008年年3 3月月9.2.3LC分枝限界法分枝限界法 【程序【程序9-3】基于上下界的基于上下界的LC分枝限界法分枝限界法templateNode*LCBB(Node*t,T&U)LiveListNode*lst(mSize);Node*ans=NULL,*x,E=*t;dofor(对结点对结点E的每个孩子的每个孩子x)if(x)parent=E;lst.Append(x);南京邮电大学计算机学院南京邮电大学计算机学院 2008 2008年年3 3月月if(x是一个答案结点是一个答案结点
18、&cost(x)U)if(u(x)+cost(x)U=u(x)+;elseU=coxt(x);ans=x;elseif(u(x)+U)U=u(x)+;if(!lst.IsEmpty()lst.Serve(E);if(E)U)returnans;elsereturnans;while(1););南京邮电大学计算机学院南京邮电大学计算机学院 2008 2008年年3 3月月9.3 带时限的作业排序带时限的作业排序 南京邮电大学计算机学院南京邮电大学计算机学院 2008 2008年年3 3月月9.3.1问题描述问题描述对对于于单单处处理理机机的的带带时时限限作作业业排排序序问问题题,如如果果每每个个
19、作作业业具具有有相相同同的的处处理理时时间间,则则可可以以用用贪贪心心法法求求解解。如如果果每每个个作作业业的的处处理理时时间间允允许许不不同同,带带时时限限的的作作业业排排序序问问题题可可描描述述为为:设设有有n个个作作业业和和一一台台处处理理机机,每每个个作作业业所所需需的的处处理理时时间间、要要求求的的时时限限和和收收益益可可用用三三元元组组(ti,di,pi),0in表表示示,其其中中,作作业业i的的所所需需时时间间为为ti,如如果果作作业业i能能够够在在时时限限di内内完完成成,将将可可收收益益pi,求求使使得总收益最大的作业子集得总收益最大的作业子集J。南京邮电大学计算机学院南京邮
20、电大学计算机学院 2008 2008年年3 3月月例例例例9 91 1设设 有有 带带 时时 限限 的的 作作 业业 排排 序序 实实 例例:n=4,(p0,d0,t0)=(5,1,1),(p1,d1,t1)=(10,3,2),(p2,d2,t2)=(6,2,1)和和(p3,d3,t3)=(3,1,1),求求使使得得总总收收益益最最大的作业子集大的作业子集J。南京邮电大学计算机学院南京邮电大学计算机学院 2008 2008年年3 3月月9.3.2分枝限界法求解分枝限界法求解可可变变大大小小元元组组(x0,x1,xk)表表示示解解,xi为为作作业业编号。编号。问问题题的的显显式式约约束束为为:x
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法设计与 算法 设计 09 解读
限制150内