分支限界法(课堂PPT)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

i1
i1,k
rj U
3.基于分支限界法的思想,从根结点开始依次计算 目标函数值加入待处理结点表中直至叶子结点。
[14,16]
∞3 1 5 8 3∞ 6 7 9 1 6∞ 4 2 5 7 4∞ 3 8 9 2 3∞
k1
lb (2 c[ri]r[i1] ri行不在路素 径 上 rj行 的 最 最 小 小 的 )/2 元 两
(b) 无向图的代价矩阵
图 9.5 无向图及其代价矩阵
1.确定问题的上界16,下界14。
如何设计求上、下界策略?
2.确定限界函数计算方法
一般情况下,假设当前已确定的路径为U=(r1, r2, …, rk), 即路径上已确定了k个顶点,此时,该部分解的目标函数 值的计算方法如下:
k1
lb (2 c[ri]r[i1] ri行不在路素 径 上 rj行 的 最 最 小 小 的 )/2 元 两
i1
i1,k
rj U
算法描述:
1. 根据限界函数计算目标函数的下界down;
➢ 确定目标函数值的计算方法(限界函数)。
➢ 基于上、下界,按分支限界法设计思想,搜索解 空间树,得到最优解。
图9.5(a)所示是一个带权无向图,(b)是该图的代价矩阵。
3
1
2
56
81
79
3
4
4
2
3
5
∞3 1 5 8
3∞ 6 7 9 C= 1 6 ∞ 4 2
5 7 4∞ 3
8 9 2 3∞
(a) 一个无向图
➢ 如何确定最优解的各个分量。(提示:跳跃式处理 解空树结点,必须保存搜索过程中经过的路径信息。)
回溯法与分支限界法区别?
回溯法从根结点出发,按照深度优先策略遍历问 题的解空间树。 分支限界法按广度优先策略搜索问题的解空间树。
二者与蛮力法区别?
9.1.2 分支限界法的时间性能
类比回溯法分析分支限界法的时间性能 一般情况下,在问题的解向量X=(x1, x2, …, xn)
9.2 图问题中的分支限界法
9.2.1 TSP问题 9.2.2 多段图的最短路径问题
9.2.1 TSP问题
问题描述:TSP问题是指旅行家要旅行n个城市,要 求各个城市经历且仅经历一次然后回到出发城市, 并要求所走的路程最短。
想法:
➢ 确定目标函数的界[down, up] 。(提示:如何确 定上、下界?)
➢ 分支限界法适用于求解最优ห้องสมุดไป่ตู้问题。
9.1.1 分支限界法的设计思想
➢ 确定一个合理的限界函数,并根据限界函数确定目 标函数的界[down, up]。
➢ 按照广度优先策略搜索问题的解空间树,在分支结 点上,依次扩展该结点的所有孩子结点,分别估算这 些孩子结点的目标函数的可能取值,某孩子结点的目 标函数的可能取值超出目标函数的界,则将其丢弃; 否则,将其加入待处理结点表(以下简称表PT)中。
例如:对于n=3的0/1背包问题解空间树
1 1
2
1
0
0
9
1
0
3
1
0
4
5
6
1
0
7
8
10
1
0
11 12
3
1
0
14 15
图8.2 0/1背包问题的解空间树
对物品1的选择 对物品2的选择 对物品3的选择
分支限界法和回溯法实际上都属于蛮力穷举法,当 然不能指望它有很好的最坏时间复杂性,遍历具有指 数阶个结点的解空间树,在最坏情况下,时间复杂性 肯定为指数阶。
中 , 分 量 xi (1≤i≤n) 的 取 值 范 围 为 某 个 有 限 集 合 Si={ai1, ai2, …, airi},因此,问题的解空间由笛卡儿 积 A=S1×S2×…×Sn 构 成 , 并 且 第 1 层 的 根 结 点 有 |S1|棵子树,则第2层共有|S1|个结点,第2层的每个 结点有|S2|棵子树,则第3层共有|S1|×|S2|个结点,依 此 类 推 , 第 n+1 层 共 有 |S1|×|S2|×…×|Sn| 个 结 点 , 他们都是叶子结点,代表问题的所有可能解。
与回溯法不同的是,分支限界法首先扩展解空间树 中的上层结点,并采用限界函数,有利于实行大范围 剪枝,同时,根据限界函数不断调整搜索方向,选择 最有可能取得最优解的子树优先进行搜索。所以,如 果选择了结点的合理扩展顺序以及设计了一个好的限 界函数,分支界限法可以快速得到问题的解。
分支限界法的较高效率是以付出一定代价为基础的,其 工作方式也造成了算法设计的复杂性。首先,一个更好的限 界函数通常需要花费更多的时间计算相应的目标函数值,而 且对于具体的问题实例,通常需要进行大量实验,才能确定 一个好的限界函数;其次,由于分支限界法对解空间树中结 点的处理是跳跃式的,因此,在搜索到某个叶子结点得到最 优值时,为了从该叶子结点求出对应的最优解中的各个分量, 需要对每个扩展结点保存该结点到根结点的路径,或者在搜 索过程中构建搜索经过的树结构,这使得算法的设计较为复 杂;再次,算法要维护一个待处理结点表PT,并且需要在表 PT中快速查找取得极值的结点,等等。这都需要较大的存储 空间,在最坏情况下,分支限界法需要的空间复杂性是指数 阶。
第九章 分支限界法
1 概述 2 图问题中的分支限界法 3 组合问题中的分支限界法 4 小结
9.1 概述
9.1.1 分枝限界法的设计思想 9.1.2 分枝限界法的时间性能 9.1.3 一个简单例子
---圆排列问题
➢ 分支限界法按广度优先策略搜索问题的解空间树,
在搜索过程中,对待处理的结点根据限界函数估算目 标函数的可能取值,从中选取使目标函数取得极值 (极大或极小)的结点优先进行广度优先搜索,从而 不断调整搜索方向,尽快找到问题的解。
➢ 依次从表PT中选取使目标函数取得极值的结点成为 当前扩展结点,重复上述过程,直至找到最优解。
分支限界法需要解决的关键问题
➢ 如何确定合适的限界函数。(提示:计算简单,减 少搜索空间,不丢解)
➢ 如何组织待处理结点表。(提示:表PT可以采用 堆的形式,也可以采用优先队列的形式存储。各有什 么特点?)
9.1.3 一个简单的例子—圆排列问题
问题描述:给定n个圆的半径序列,将这些圆放 到一个矩形框中,各圆与矩形框的底边相切,则 圆的不同排列会得到不同的排列长度,要求找出 具有最小长度的圆排列。
想法:采用分支限界法求解圆排列问题,首先 设计限界函数,然后在搜索过程中选择使目标 函数取得极值的结点优先进行扩充。
相关文档
最新文档