- 1、本文档共40页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章回溯法重点讲义
6.3 回溯法的一般框架 二、回溯法的一般框架 1.递归形式 Algorithm BACKTRACKRECInput:Explicit or implicit description of the sets X1, X2,…, Xn.Output:A solution vertice v=( x[1], x[2],…, x[i]),0≤i≤n.1. v←{ }2. flag←false3. advance(1)4. if flag then output? v5. else output? “no solution”Procedure advance(k)?? 1. for each x∈Xk?? 2.???? x[k]←x; append x[k] to v?? 3.????????? if v is a final solution then set flag←true and exit?? 4.????????? else if c is partial then advance(k+1)?? 5. end for 6.3 回溯法的一般框架 二、回溯法的一般框架 2.迭代形式 Algorithm BACKTRACKITERInput: Explicit or implicit description of the sets X1, X2,…, Xn.Output:A solution vertice v=( x[1], x[2],…, x[i]),0≤i≤n.1. v←{ }2. flag←false3. k←14. while k≥15.??? while Xk is not exhausted?6.?????? x[k]←next element in Xk; append x[k] to v7.?????? if v is a final solution then set flag←true and exit8.?????? else if c is partial then k←k +1????????????????? {advance}9.??? end while10.?? Reset Xk so that the next element is the first.11.?? k←k-1?????????????????????????????????????? {backtrack}12.end while?13.if flag then output v14.else output? “no solution” 6.3 回溯法的一般框架 三、回溯法的最坏时间和空间复杂度 1.时间性能 最坏的情况要搜索整个解空间,是复杂度是指数型。但若剪枝操作有力,则平均性能往往很好。 2.空间性能 ??? 回溯法的附加空间为O(从开始结点起最长路径的长度)。 6.4 m-着色问题 1.问题描述 图的m着色问题是指,任给简单无向图G及正整数 m,问是否存在对图G的顶点的合法m着色?若一个图 最少需要m种颜色才能使对图进行合法着色,则称m为 该图的色数。 图的着色优化问题是指,求图的色数m的问题 6.4 m-着色问题 2.回溯算法的基本要素 解的形式 ??? X= (x1,x2,…,xn),其中 1≤xi≤m,( 1≤i≤n)??? 解的树形表示:满m叉树 剪枝操作:第i个结点着色第xi号颜色不可行当且仅当与第i个结点有边相连的某个结点j(1≤ji)满足xi=xj 6.4 m-着色问题 3.回溯算法 1).递归形式 Algorithm 3-COLORRECInput:An undirected graph G=(V,E)Output:A 3-coloring c[1..n] of the vertices of G, where each c[j] is 1,2,or 3.1. for k←1 to n2.????? c[k]←03. end for4. flag←false5. graphcolor(1)6. if flag then output? c7. else output? “no solution” 6.4 m-着色问题 3.回溯算法 1).递归形式Procedure graphcolor(k)?? 1. for color←1 to 3?? 2.???? c[k]←color?? 3.??????????if c is a legal coloring then set flag←true and exit?? 4.?
文档评论(0)