分支限界法 ppt课件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
➢ 优先队列式分支限界法:优先队列式分支限界法将活结点表组织成一个 优先队列,按优先队列中规定的结点优先级选取优先级最高的下一个结 点成为当前扩展结点。常用堆来实现优先队列
分支限界法的基本思想
算法实现时,通常用极大(小)堆来实现最大(小)优先队列,提取堆中下一
中,导致不可行解或导致非最优解的儿子结点被舍弃,其余儿子结点被加入 活结点表中。 从活结点表中取下一结点成为当前扩展结点,并重复上述结点扩展过程 这个过程一直持续到找到所求的解或活结点表为空时为止。
活结点表:具有先进先出的性质,是队列。 两个重要机制:产生分支(解空间树)
产生一个界限,能够终止许多分支(剪枝)
分支限界法引言
分支限界法与回溯法的不同搜索方式:
回溯法以深度优先的方式搜索解空间树,而分支限界法则以广度优先或以 最小耗费优先的方式搜索解空间树。
分支限界法的搜索策略:在扩展结点处,先生成其所有的儿子结点(分 支),然后再从当前的活结点表中选择下一个扩展对点。为了有效地选择 下一扩展结点,以加速搜索的进程,在每一活结点处,计算一个函数值 (限界),并根据这些已计算出的函数值,从当前活结点表中选择一个最 有利的结点作为扩展结点,使搜索朝着解空间树上有最优解的分支推进, 以便尽快地找出一个最优解。
上限。求出一种方案使得背包中存放物品的价值最高。 分析:0-1背包问题的解空间树是一棵子集树,所要求的解具有
最优性质。
分支限界法的Fra Baidu bibliotek本思想
采用回溯法解决0-1背包问题的搜索策略
1
1 B0
A
0
1 C0
D
1
0
E
1
0
F
1
0
G
1
0
H I J KL MN O
• 只要一个结点的左孩子结点是一个可行结点就搜索其左子树; • 而对于右子树,需要构造一个上界函数,只在这个上界函数的值超过当前最
分析: ➢ n后问题的解空间树是一棵排列树,解与解之间不存在优劣的分别。直到搜 索到叶结点时才能确定出一组解。 ➢ 采用回溯法可以系统地搜索问题的全部解。 ➢ 考虑使用分支限界法?
分支限界法的基本思想
既可以采用回溯法也可以采用分支限界法解决的问题 — 0-1背包 问题 问题定义:给定若干物品的重量和价值,以及一个背包的容量
分支限界法的基本思想
分支限界法的适用范围:
分支限界法类似于回溯法,有一些问题其实无论用回溯法还是分支限界法都 可以得到很好的解决,但是另外一些则不然。
下表列出了回溯法和分支限界法的一些区别:
方法
对解空间树的 存储结点的常用
搜索方式
数据结构
结点存储特性
常用应用
回溯法 深度优先搜索 栈
活结点的所有可行子 找出满足约束条件的所 结点被遍历后才被从 有解 栈中弹出
排列树(Permutation Trees):当所给问题是确定n个元素满足某种性质的排 列时,相应的解空间树称为排列树。在排列树中,通常情况下,|S0|=n, |S1|=n-1,…,|Sn-1|=1,所以,排列树中共有n!个叶子结点,因此,遍历排 列树需要O(n!)时间。
分支限界法的基本思想
在分支限界法中,每一个活结点只有一次机会成为扩展结点。 活结点一旦成为扩展结点,就一次性产生其所有儿子结点。在这些儿子结点
图的广度优先遍历
广度优先搜索过程
广度优先生成树
广度优先遍历序列:ABCDEFGHI
图的广度优先遍历
广度优先搜索是一种分层的搜索过程,每向前走一步可能访问一 批顶点。因此,广度优先搜索不是一个递归的过程,其算法也不 是递归的。
为了实现逐层访问,算法中使用了一个队列,以记忆正在访问的 这一层和上一层的顶点,以便于向下一层访问。
分支限界法的基本思想
分支限界法通常以广度优先或以最小耗费(最大效益)优先的方式搜索问 题的解空间树。
问题的解空间树是表示问题解空间的一棵有序树,常见的有子集树和排列 树。
分支限界法的基本思想
两种典型的解空间树:
子集树(Subset Trees):当所给问题是从n个元素的集合中找出满足某种性 质的子集时,相应的解空间树称为子集树。在子集树中,|S0|=|S1|=…=|Sn1|=c,即每个结点有相同数目的子树,通常情况下c=2,所以,子集树中共有 2n个叶子结点,因此,遍历子集树需要O(2n)时间。
分支限 广度优先或最 队列、优先队列 每个结点只有一次成 找出满足约束条件的一
界法 小消耗优先搜
为扩展结点的机会 个解或特定意义下的最

优解
分支限界法的基本思想
适合采用回溯法解决的问题 — n后问题
问题定义:在n×n的国际象棋棋盘上摆下n个皇后,使所有的皇后都不能攻击 到对方,找出所有符合要求的情况。
优解时才进入搜索。
• 随着搜索进程的推进,最优解不断得到加强,对搜索的限制就越来越严格。
分支限界法的基本思想
分支限界法两种方式:
从活结点表中选择下一扩展结点的不同方式导致不同的分支限界法。 最常见的有以下两种方式:
➢ 队列式(FIFO)分支限界法:队列式分支限界法将活结点表组织成一个 队列,并按队列的先进先出原则选取下一个结点为当前扩展结点。
分支限界法
第六章
分支限界法
学习要点
理解分支限界法的剪枝搜索策略 掌握分支限界法的算法框架
队列式(FIFO)分支限界法 优先队列式分支限界法 通过应用范例学习分支限界法的设计策略 0-1背包问题
图的广度优先遍历
对于图G=(V,E), 从任意一点r开始,依次检查所有与r有关联的边(r,a1),(r, a2),…,(r,ak),当上面k条边检查完毕后,再依次检查所有与a1,a2,…,ak相 关联的(a1,a11),(a1,a12),…,(a1,a1m),(a2,a21),(a2,a22),…, (a2,a2m),……,(ak,ak1),(ak,ak2),…,(ak,akm)。依次类推,直到所有的边 被检查,即所有顶点均被访问为止。
为避免重复访问,需要一个辅助数组 visited [ ],给被访问过的顶 点加标记。
分支限界法引言
分支限界法与回溯法的不同求解目标:
回溯法的求解目标:找出解空间树中满足约束条件的所有解; 分支限界法的求解目标:找出满足约束条件的一个解,或是在满足约束条
件的解中找出使用某一目标函数值达到极大或极小的解,即在某种意义下 的最优解。
相关文档
最新文档