五、回溯与分支.pdf

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

2.4 回溯(backtrack) 一、回溯算法的基本思想和适用条件 以系统的方法隐含搜索所有可能的解的技术称为回溯。回溯算法用于求解组 合搜索问题(包括优化问题) 例 1 八后问题 有 92 个解,每个解可以表示成一个 8 维向量,x , x , …, x , 其中 x 表示 1 2 8 i 第i 行放置皇后的位置(列号)。例如4,2,7,1,3,5,8,6, 表示第一行放在第4 列,…, 第八行放在第 6 列。使用回溯算法从1,1,…, 1开始,到8,8,…, 8为止,按照 字典顺序隐含搜索所有的解向量。所有的向量构成一棵树,称为搜索空间。 8 搜索空间的树有 8 层,最下层的节点数有 8 个,其中代表解的结点有 92 个。所 谓回溯就是按照深度优先的原则从根开始搜索这棵树,在搜索过程中不是真正遍 历所有的结点,如果发现向下搜索不可能达到解结点,就回头。 例 2 0-1 背包问题 V={12,11,9,8}, W={8,6,4,3}, B=13 每个结点是一个向量x , x , …, x ,第一层左子树是 x =1,右子树是 x =0.如 1 2 k 1 1 果 x =1,则将物品 i 装入背包;x =0 ,则不装。到达树叶时向量扩张为x , x , …, x , i i 1 2 n 是最终选入物品子集的特征向量。搜索树为二叉树,称为子集树。因为有 2n 个 子集,该树有 2n 个树叶。 例 3 巡回售货员问题 TSP 搜索树为排列树,从根到叶结点的一条路经对应了{1,2,…,n}的一个排列, 各层分支数不同。第一层有 n 个分支,第二层有 n-1 个分支,…,第 n-1 层有 1 个分支。 回溯算法的共同特征: 1.解搜索问题(含优化问题在内). 搜索问题:一个搜索问题π有实例集 Dπ, 对于π中的任何实例I ,有一个有穷 的解集合 Sπ[I]. 如果存在算法 A ,对于任何实例 I ∈Dπ , A 都停机,并且如果 S [I]=∅,则回答无解,否则给出 S [I]中的一个解,那么称A 解搜索问题π. π π 2.搜索空间是一棵树,每个结点对应了部分解向量,树叶对应了可行解 (满 足约束条件的解,在优化问题中不一定是最优解)。 3.搜索过程一般采用深度优先策略隐含遍历搜索树 搜索策略:深度优先,宽度优先,函数优先,宽深结合等 隐含遍历:不是真正访问每个结点,要从搜索树中进行裁减; 4.判定条件 (分支与回溯条件):满足约束条件分支扩张解向量;不满 足约束条件,回溯到该结点的父结点。 回溯算法应用的必要条件多米诺性质。 设 P(x , x , …, x ) 表示向量x , x , …,x 中i 个皇后放置在彼此不能攻击的 1 2 i 1 2 i 位置。那么,P(x , x , …, x )为真蕴含 P(x , x , …, x )为真。 1 2 i+1 1 2 i

文档评论(0)

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

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

1亿VIP精品文档

相关文档