第6章 回溯法.ppt

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章回溯法重点讲义

6.3 回溯法的一般框架 二、回溯法的一般框架 1.递归形式 Algorithm BACKTRACKREC Input: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←false 3. advance(1) 4. if flag then output? v 5. 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 BACKTRACKITER Input: 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←false 3. k←1 4. while k≥1 5.??? while Xk is not exhausted? 6.?????? x[k]←next element in Xk; append x[k] to v 7.?????? if v is a final solution then set flag←true and exit 8.?????? else if c is partial then k←k +1????????????????? {advance} 9.??? end while 10.?? Reset Xk so that the next element is the first. 11.?? k←k-1?????????????????????????????????????? {backtrack} 12.end while? 13.if flag then output v 14.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-COLORREC Input: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 n 2.????? c[k]←0 3. end for 4. flag←false 5. graphcolor(1) 6. if flag then output? c 7. 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)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档