文稿算法5-回溯法_第1页
文稿算法5-回溯法_第2页
文稿算法5-回溯法_第3页
文稿算法5-回溯法_第4页
文稿算法5-回溯法_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

1、学习要学习要23回溯回溯。4回溯回溯。4问题的解空显约束:对分量xi5n=3时的问题的解空显约束:对分量xi5n=3时的0-1背包问题用完全二叉树表示的解空生成问题状态的基本方死结点:状态生成法:如果对一个扩展结点R,一生成问题状态的基本方死结点:状态生成法:如果对一个扩展结点R,一产生了它的一个儿子C,就把C当做新的扩展结点。在完C(以C为根)的穷尽搜索之后,将R重新对成扩展结点,继续生成R的下一个儿子(如果存在要不断地利用限界函数(boundingfunction)上不可能产生所需解的活结点,以减少问题的计算量。6回溯法的基。h(n),则回溯法回溯法的基。h(n),则回溯法所需的计算空间通

2、常为O(h(n)。而显式整个解空间则需要O(2h(n)或O(h(n)!)内存空间7归回递归回voidbacktrack if(tn)output(x); fori=f(n,t);in)output(x); fori=f(n,t);i0)iffor代回迭代回voiditerativeBacktrack while(t0)iffori=f(n,t);in)output(x); 子集树与排列遍历子集树需O(2n)计算时voidbacktrackvoidbacktrackif(tn)output(x); if(tn)output(x); forfor=if(legal(t)if(legal(t)bac

3、ktrack(t+1); swap(xt, xi);装载问有一批共n个集装箱要装上2艘载重量分别为c1和c2n中集装箱i的重量为wi, c1 装上这2(1)装载问有一批共n个集装箱要装上2艘载重量分别为c1和c2n中集装箱i的重量为wi, c1 装上这2(1)首先将第一艘轮船尽可能装满(2)将剩余的集装箱装上第二艘轮船ns.t.wixi 用回溯法设计解装载问题的O(2n)n 载问装载问nxi ci1当前载重量cw+剩余集装箱的重量r当前最优载重量void载问装载问nxi ci1当前载重量cw+剩余集装箱的重量r当前最优载重量voidbacktrack/ 搜索第i层结if(in) 到达叶结r -

4、= wi;if(cwwic搜树,装载的情cw+=backtrack(i+cw-=if(cwrbestw) xi = 0; / 搜索右 backtrack(i + 1);r+=批处理作业调给定个作业的集合J。每个作业必须先由机器处理,然后由机器处理。作业需要机器的处理时间为t。对于一个确定的作业调度,设批处理作业调给定个作业的集合J。每个作业必须先由机器处理,然后由机器处理。作业需要机器的处理时间为t。对于一个确定的作业调度,设是作业i在机器j上完成处理的时间。所有作业在机器上完成处理的时间和称为该作业调度的完成时间和。批处理作业调度问题要求对于给定的nt 这3个作业的6种可能的调度方案是3,1

5、,2;3,2,1;它们所相应的完成时间和分别是19,19。易见,最佳调度方案,,其完成时间和为18机器机器作业作业232113批处理作业调voidif(i n) forj = 1; j n) forj = 1; j = n; bestxj=xj; bestf = f;for j= i; j f1)?f2i-classFlowshopfriendFlow( if (f if (tn) sufor形问题的回溯算法所需的计算时间为O(n2n)。j=2;jn)sum+; fori=1;i=n;i+)if Place Backtrack t+1 背包-背包问nxi ci1template 背包-背包问n

6、xi ci1template / Typewcleftccw; / Typepb=/ while(i=n&wi=cleft) cleft -= wi;b+=pi; / if(i= n) b+= pi/wi * return最大团问最大团问如果UV且对任意u,vU有(u,v)E,则称U是G的空子图1221335445U是G的最大团当且仅当U是G的最大独立集最大团问解空间:子集可行性约束函数:顶点i到已选入的顶点集中每一个顶点都有边相连最大团问解空间:子集可行性约束函数:顶点i到已选入的顶点集中每一个顶点都有边相连中找到更大12void/ 3if (in/ forj= 1;j / xi = 进一步

7、改进一步改图问图问图的图问解向量:(x1x2xn)表示顶点i所着颜色void复杂度分nif (tn for m图的图问解向量:(x1x2xn)表示顶点i所着颜色void复杂度分nif (tn for min1 m innmmn)mif ibool/ forif(akj=1)&(xj=xk)returnfalse; return true;i旅行售货员问templateclassvoidif (i = n) 复杂度分旅行售货员问templateclassvoidif (i = n) 复杂度分最优解O(n-1 ! 次,每次更新bestxe/ 是否可进入?if(axi 1xj != NoEdge(c

8、c+axi-1xi n)Compute(); forj = t; j = n; j+) f1, ,2,1这种互为镜像的排列具有相同的圆排列长度,只计for i=1;in)Compute(); forj = t; j = n; j+) f1, ,2,1这种互为镜像的排列具有相同的圆排列长度,只计for i=1;i=n;i+)if xi -ri high)if hi h-in=hi h-floatfloatfor j=1;jt;j+)连续邮资问连续邮资问连续邮资问可行性约束函数:已选定x1:i-1,最大连续邮资问可行性约束函数:已选定x1:i-1,最大连续邮资区间是如何确定rfor=j=xi-2*(m-iffork=1;k=m-if(y

温馨提示

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

评论

0/150

提交评论