运筹学_树
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
i=1
s
100 50 30 15 5 10 15 20 50
=1× 50+2×20+3×15+4×10 × × × × =1750
i=1 i
i
100 50 30 15 5 10 15 20 50
8.9 最优检索问题
五类共100万册,A类50万册,B类20万册,C类5万册, 万册, 类 万册 万册, 类 万册 万册, 类 万册 万册, 五类共 万册 D类10万册,E类15万册,如何安排分检,使总运算 比较 万册, 类 万册 如何安排分检,使总运算(比较 万册, 比较) 类 万册 次数最少? 次数最少? m (T) = ∑ p i l i
8.9 最优检索问题
五类共100万册,A类50万册,B类20万册,C类5万册, 万册, 类 万册 万册, 类 万册 万册, 类 万册 万册, 五类共 万册 D类10万册,E类15万册,如何安排分检,使总运算 比较 万册, 类 万册 如何安排分检,使总运算(比较 万册, 比较) 类 万册 s 次数最少? 次数最少? m (T) = ∑ p l 算法) 算法 (D A Huffman算法 算法 100 50 30 15 5 10 15 20 50
v2 1 2 v0
v3 4 4 2 1 v4 5 v5
v1 1 v8 v7
v2 1 v3 2 1 v0 2 3 v6 2 1 v4 v5
四、树根及其应用
定义17 若一个有向图在不考虑边的方向时是一棵树 若一个有向图在不考虑边的方向时是一棵树, 定义 则称这个有向图为有向树 这个有向图为有向树。 则称这个有向图为有向树。 定义18 有向树 恰有一个结点入次为 其余各点 有向树T, 恰有一个结点入次为0, 定义 入次均为 则称T为根树 为根树。 入次均为1, 则称 为根树。 入次为0的点称为根 出次为0的点称为叶 的点称为根, 的点称为叶, 入次为 的点称为根 出次为 的点称为叶 v1 其它顶点称为分枝点. 其它顶点称为分枝点 v2 v1为根 v3 v4 v1, v2, v3, v4, v8为分枝点 v5 v6 v7 v8v9 v10 v2, v3, v4 的层次为 的层次为1, v11 V11的层次为 的层次为3. 定义19 根树中 若每个顶点的出次小于或等于 称这棵 根树中, 若每个顶点的出次小于或等于m, 定义 树为m叉树 若每个顶点的出次恰好等于m或零 叉树。 或零, 树为 叉树。若每个顶点的出次恰好等于 或零 则称这 棵树为完全m叉树 叉树. 棵树为完全 叉树 当m=2时, 称为二叉树、完全二叉树。 时 称为二叉树、完全二叉树。
7 2 2 5 5 5 S B D 1 3 4 1 7 C E 4
T
作业
阅读 P151 - p155
P149
6.4(a),(c).
算法2 破圈法 破圈法) 算法 (破圈法 1.从图中任选一棵树; 从图中任选一棵树; 从图中任选一棵树 A 7 2 2 2.由加上一条弦立即 由加上一条弦立即 5 5 生成一个圈, 生成一个圈,去掉圈 S 5 B D 中最大权; 中最大权; 1 3 4 1 7 C E 4 得到一棵新树,重 得到一棵新树, 复2. 再检查剩余的 弦,直至全部弦检 查完毕为至。 查完毕为至。
7 5 E 7 5 E 7 5 E
5 D 1 7
5 D 1 7
D 1 7
5
算法2 避圈法 避圈法) 算法 (避圈法 7 2 2 5 5 T S 5 T B D 1 3 4 1 7 C E 4 A 7 2 2 5 5 5 T T S B D 1 3 4 1 7 C E 4 A 7 2 2 5 5 5 T T S B D 1 3 4 1 7 C E 4
2-2、图的最小支撑树 (最小部分树 、 最小部分树) P152 最小部分树 定义15 若图 若图G=(V, E)有生成子图是一棵树 则称该树为 有生成子图是一棵树, 定义 有生成子图是一棵树 则称该树为G 部分树),。 的支撑树 (部分树 。 部分树 树图的边称为树枝, 不在生成树上的边称为弦.如边有权重 如边有权重, 树图的边称为树枝 不在生成树上的边称为弦 如边有权重 最小支撑树. 树枝总长最小的生成树称为该图的最小支撑树 树枝总长最小的生成树称为该图的最小支撑树 e1 e7 e8 e6 e5 (a) e2 e9 e 3 e4 e1 e7 e 8 (b) e2 e 9 e3 e6 e5 (c) e4
A
A 2 2 5 S B 1 3 4 C 4 A 2 2 5 S B 1 3 4 C 4 A 2 2 5 S B 1 3 4 C 4
7 5 E 7 5 E 7 5 E
5 D 1 7
A T 2 S 1 C T A 2
算法2 避圈法 避圈法) 算法 (避圈法 B 3 E min w(T*) = 14 D 1 5 T
算法2 破圈法 破圈法) 算法 (破圈法
v1
4
1 4 v8 1.从图中任选一棵树; 5 从图中任选一棵树; 从图中任选一棵树 5 2 v7 3 v6 2.由加上一条弦立即 由加上一条弦立即 生成一个圈, 生成一个圈,去掉圈 中最大权; 中最大权; 得到一棵新树,重 得到一棵新树, 复2. 再检查剩余的 弦,直至全部弦检 查完毕为至。 查完毕为至。
T
找生成树的两种方法-深探法 深探法 (1) 深探法 在点集V中任取一点 中任取一点v, ① 在点集 中任取一点 给 v 以标号 0 . 在某点u集已得标号 检查一端点为u的各边 集已得标号i 的各边, ②在某点 集已得标号 , 检查一端点为 的各边 另一 端点是否均已标号。 端点是否均已标号。 若有(u, w)边之w未标号, 则给w以标号i+1, 记下边(u, w), 记下边(u, w). 令w代u, 重复②. ② 若这样的边的另一端均已有标号, 就退到标号为i-1的r 0 点, 以r 代u ,重复②. ② 1 直到全部点得到标号为止。 2 3 1 2 8 7 6 4 10 11 7 5 0 3 8 10 13 12 6 9 11 9 12 4 5 13
(b)为(a)的生成树 为 的生成树 的生成树.
e4, e5, e6为弦 为弦. e1, e2, e3, e7, e8, e9为树枝, 为树枝
(c)为(b)的关于 的补图 为 的关于 的补图. 的关于(a)的补图
2-2、图的最小支撑树 、
(最小部分树 最小部分树) 最小部分树
P152
定理 1 图G=(V, E)中任一点 i , 若 j 是与 i 相邻点中距离最 中任一点 近的,则边[ 一定必含在该图的最小生成树内. 近的,则边 i, j ]一定必含在该图的最小生成树内 一定必含在该图的最小生成树内
找生成树的两种方法-广探法 广探法
(2) 广探法 在点集V中任取一点 中任取一点v, ① 在点集 中任取一点 给 v 以标号 0 . 令所有标号为i的点集为 检查[V, V\Vi]中的边端 的点集为V, ②令所有标号为 的点集为 检查 中的边端 点是否均已标号 对所有未标号之点均标以i+1 , 记 标号。 点是否均已标号。对所有未标号之点均标以 下这些边。 下这些边。 对标号i+1的点重复步骤②, 直到全部点得到标号为至 ② 直到全部点得到标号为至. 0 1 1 2 1 1 2 0 2 1 2 4 3 2 1 2
第六章 图与网络分析
§2 树图和图的最小部分树 1、树的性质 2、图的最小部分树 、 3、最避圈法和破圈法
一、树的概念和性质
例5 乒乓球单打 比赛抽签后, 比赛抽签后,可 H E 用图表示。 用图表示。 A BC D F G I
J K LM N
无圈的连通图称为树 。树中次为1的 无圈的连通图称为树,记作 T (V, E)。树中次为 的 称为树叶,次大于1的称为分枝点 的称为分枝点。 称为树叶,次大于 的称为分枝点。 定理 图T=(V, E),|V|=n, |E|=m, 则下列关于树的说法是等 (1) T 是一个树。 是一个树。 价的。 价的。 (2) T 无圈,且 m = n - 1 。 无圈, P152 性质 性质2 (3) T 连通,且 m = n - 1 。 连通, P152 性质 性质3 (4) T 无圈 但每加一边即得惟一一个圈。 无圈, 但每加一边即得惟一一个圈。 (5) T连通,但任舍去一边就不连通。 连通, 连通 但任舍去一边就不连通。 (6) T中任意两点有惟一链相连。 中任意两点有惟一链相连。 中任意两点有惟一链相连
1 2 3 2 3 4 3 2 2 1
3 3
三、最小生成树问题
定义16 连通图 连通图G=(V, E), 每条边上有非负权 (e). 一棵生 每条边上有非负权L 定义 成树所有树枝上权的总和, 称为这个生成树的权. 成树所有树枝上权的总和 称为这个生成树的权 具有最小 生成树称为最小生成树 最小支撑树) 简称最小树 最小生成树(最小支撑树 最小树. 生成树称为最小生成树 最小支撑树 简称最小树 v1 4 v2 1 v3 算法1 算法) 算法 (Kruskal算法 算法 1 4 2 v0 4 1 v8 v4 1.权排序 权排序 4 5 5 5 2 2.由小往大取线段 2.由小往大取线段, 由小往大取线段, v7 3 v6 2 v5 如与已取的成圈则弃之改取后者, 如与已取的成圈则弃之改取后者, v1 v2 1 v3 直至所有点连通。 直至所有点连通。 2 1 1 1 一点v, 例7 一点 给 v 以标号 0 . v8 v0 v4 1, 1, 1, 1, 2, 2, 2, 3, 3, 4, 4, 4, 4, 5, 5, 5 2 √ √ √ √ √√ √√ v7 3 v6 2 v5 定理8 算法所得子图是棵最小树。 定理 Kruskal算法所得子图是棵最小树。 算法所得子图是棵最小树
D A Huffman算法 算法_B 算法
叶子上带权的二叉树, 个叶子的权分别为p 叶子上带权的二叉树 s 个叶子的权分别为 i 根到各叶子 的距离(层次 层次) 二叉树的总权数: 的距离 层次 为l i (i=1,…,s) , 二叉树的总权数: s m (T) = ∑ p i l i i=1 算法) 算法 (D A Huffman算法 算法 例8 s=6, 其权分别为 1.s个叶子按权由小至大排序 个叶子按权由小至大排序 4,3,3,2,2,1, 求最优二 叉树。 叉树。 15 2.最小权的二个叶子合并成 2.最小权的二个叶子合并成 一个分支点, 一个分支点,其权为二者之和 将新分支点作为一个叶子。 将新分支点作为一个叶子。 9 则停; 令s←s-1,若s=1则停;否则转 若 则停 否则转(1). 5 5 6 3 6 3 1 2 2 3 3 4 4 1 2 2 3 3
D 1 7
5
Leabharlann Baidu
D 1 7
5
T
S 4
5 C
B 4
7 5 E
D 7
T
w(T ) = 32
算法2 破圈法 从图中任选一圈 破圈法) 从图中任选一圈; 算法 (破圈法 1.从图中任选一圈; 2. 去掉圈中最大权; 去掉圈中最大权; 再检查剩余的图,重复1, 直至无圈为至 直至无圈为至。 再检查剩余的图,重复 ,2.直至无圈为至。 A
把图的所有点分成V和V,两个集合, 推论 : 把图的所有点分成V和V,两个集合,则两集合之 间连线的最短边一定包含在最小则边[ 间连线的最短边一定包含在最小则边 i, j ]一定必含在该 一定必含在该 图的最小支撑树内. 图的最小支撑树内
A 2 2 5 S B 1 3 4 C 4 A 2 2 5 S B 1 3 4 C 4 A 2 2 5 S B 1 3 4 C 4
s
100 50 30 15 5 10 15 20 50
=1× 50+2×20+3×15+4×10 × × × × =1750
i=1 i
i
100 50 30 15 5 10 15 20 50
8.9 最优检索问题
五类共100万册,A类50万册,B类20万册,C类5万册, 万册, 类 万册 万册, 类 万册 万册, 类 万册 万册, 五类共 万册 D类10万册,E类15万册,如何安排分检,使总运算 比较 万册, 类 万册 如何安排分检,使总运算(比较 万册, 比较) 类 万册 次数最少? 次数最少? m (T) = ∑ p i l i
8.9 最优检索问题
五类共100万册,A类50万册,B类20万册,C类5万册, 万册, 类 万册 万册, 类 万册 万册, 类 万册 万册, 五类共 万册 D类10万册,E类15万册,如何安排分检,使总运算 比较 万册, 类 万册 如何安排分检,使总运算(比较 万册, 比较) 类 万册 s 次数最少? 次数最少? m (T) = ∑ p l 算法) 算法 (D A Huffman算法 算法 100 50 30 15 5 10 15 20 50
v2 1 2 v0
v3 4 4 2 1 v4 5 v5
v1 1 v8 v7
v2 1 v3 2 1 v0 2 3 v6 2 1 v4 v5
四、树根及其应用
定义17 若一个有向图在不考虑边的方向时是一棵树 若一个有向图在不考虑边的方向时是一棵树, 定义 则称这个有向图为有向树 这个有向图为有向树。 则称这个有向图为有向树。 定义18 有向树 恰有一个结点入次为 其余各点 有向树T, 恰有一个结点入次为0, 定义 入次均为 则称T为根树 为根树。 入次均为1, 则称 为根树。 入次为0的点称为根 出次为0的点称为叶 的点称为根, 的点称为叶, 入次为 的点称为根 出次为 的点称为叶 v1 其它顶点称为分枝点. 其它顶点称为分枝点 v2 v1为根 v3 v4 v1, v2, v3, v4, v8为分枝点 v5 v6 v7 v8v9 v10 v2, v3, v4 的层次为 的层次为1, v11 V11的层次为 的层次为3. 定义19 根树中 若每个顶点的出次小于或等于 称这棵 根树中, 若每个顶点的出次小于或等于m, 定义 树为m叉树 若每个顶点的出次恰好等于m或零 叉树。 或零, 树为 叉树。若每个顶点的出次恰好等于 或零 则称这 棵树为完全m叉树 叉树. 棵树为完全 叉树 当m=2时, 称为二叉树、完全二叉树。 时 称为二叉树、完全二叉树。
7 2 2 5 5 5 S B D 1 3 4 1 7 C E 4
T
作业
阅读 P151 - p155
P149
6.4(a),(c).
算法2 破圈法 破圈法) 算法 (破圈法 1.从图中任选一棵树; 从图中任选一棵树; 从图中任选一棵树 A 7 2 2 2.由加上一条弦立即 由加上一条弦立即 5 5 生成一个圈, 生成一个圈,去掉圈 S 5 B D 中最大权; 中最大权; 1 3 4 1 7 C E 4 得到一棵新树,重 得到一棵新树, 复2. 再检查剩余的 弦,直至全部弦检 查完毕为至。 查完毕为至。
7 5 E 7 5 E 7 5 E
5 D 1 7
5 D 1 7
D 1 7
5
算法2 避圈法 避圈法) 算法 (避圈法 7 2 2 5 5 T S 5 T B D 1 3 4 1 7 C E 4 A 7 2 2 5 5 5 T T S B D 1 3 4 1 7 C E 4 A 7 2 2 5 5 5 T T S B D 1 3 4 1 7 C E 4
2-2、图的最小支撑树 (最小部分树 、 最小部分树) P152 最小部分树 定义15 若图 若图G=(V, E)有生成子图是一棵树 则称该树为 有生成子图是一棵树, 定义 有生成子图是一棵树 则称该树为G 部分树),。 的支撑树 (部分树 。 部分树 树图的边称为树枝, 不在生成树上的边称为弦.如边有权重 如边有权重, 树图的边称为树枝 不在生成树上的边称为弦 如边有权重 最小支撑树. 树枝总长最小的生成树称为该图的最小支撑树 树枝总长最小的生成树称为该图的最小支撑树 e1 e7 e8 e6 e5 (a) e2 e9 e 3 e4 e1 e7 e 8 (b) e2 e 9 e3 e6 e5 (c) e4
A
A 2 2 5 S B 1 3 4 C 4 A 2 2 5 S B 1 3 4 C 4 A 2 2 5 S B 1 3 4 C 4
7 5 E 7 5 E 7 5 E
5 D 1 7
A T 2 S 1 C T A 2
算法2 避圈法 避圈法) 算法 (避圈法 B 3 E min w(T*) = 14 D 1 5 T
算法2 破圈法 破圈法) 算法 (破圈法
v1
4
1 4 v8 1.从图中任选一棵树; 5 从图中任选一棵树; 从图中任选一棵树 5 2 v7 3 v6 2.由加上一条弦立即 由加上一条弦立即 生成一个圈, 生成一个圈,去掉圈 中最大权; 中最大权; 得到一棵新树,重 得到一棵新树, 复2. 再检查剩余的 弦,直至全部弦检 查完毕为至。 查完毕为至。
T
找生成树的两种方法-深探法 深探法 (1) 深探法 在点集V中任取一点 中任取一点v, ① 在点集 中任取一点 给 v 以标号 0 . 在某点u集已得标号 检查一端点为u的各边 集已得标号i 的各边, ②在某点 集已得标号 , 检查一端点为 的各边 另一 端点是否均已标号。 端点是否均已标号。 若有(u, w)边之w未标号, 则给w以标号i+1, 记下边(u, w), 记下边(u, w). 令w代u, 重复②. ② 若这样的边的另一端均已有标号, 就退到标号为i-1的r 0 点, 以r 代u ,重复②. ② 1 直到全部点得到标号为止。 2 3 1 2 8 7 6 4 10 11 7 5 0 3 8 10 13 12 6 9 11 9 12 4 5 13
(b)为(a)的生成树 为 的生成树 的生成树.
e4, e5, e6为弦 为弦. e1, e2, e3, e7, e8, e9为树枝, 为树枝
(c)为(b)的关于 的补图 为 的关于 的补图. 的关于(a)的补图
2-2、图的最小支撑树 、
(最小部分树 最小部分树) 最小部分树
P152
定理 1 图G=(V, E)中任一点 i , 若 j 是与 i 相邻点中距离最 中任一点 近的,则边[ 一定必含在该图的最小生成树内. 近的,则边 i, j ]一定必含在该图的最小生成树内 一定必含在该图的最小生成树内
找生成树的两种方法-广探法 广探法
(2) 广探法 在点集V中任取一点 中任取一点v, ① 在点集 中任取一点 给 v 以标号 0 . 令所有标号为i的点集为 检查[V, V\Vi]中的边端 的点集为V, ②令所有标号为 的点集为 检查 中的边端 点是否均已标号 对所有未标号之点均标以i+1 , 记 标号。 点是否均已标号。对所有未标号之点均标以 下这些边。 下这些边。 对标号i+1的点重复步骤②, 直到全部点得到标号为至 ② 直到全部点得到标号为至. 0 1 1 2 1 1 2 0 2 1 2 4 3 2 1 2
第六章 图与网络分析
§2 树图和图的最小部分树 1、树的性质 2、图的最小部分树 、 3、最避圈法和破圈法
一、树的概念和性质
例5 乒乓球单打 比赛抽签后, 比赛抽签后,可 H E 用图表示。 用图表示。 A BC D F G I
J K LM N
无圈的连通图称为树 。树中次为1的 无圈的连通图称为树,记作 T (V, E)。树中次为 的 称为树叶,次大于1的称为分枝点 的称为分枝点。 称为树叶,次大于 的称为分枝点。 定理 图T=(V, E),|V|=n, |E|=m, 则下列关于树的说法是等 (1) T 是一个树。 是一个树。 价的。 价的。 (2) T 无圈,且 m = n - 1 。 无圈, P152 性质 性质2 (3) T 连通,且 m = n - 1 。 连通, P152 性质 性质3 (4) T 无圈 但每加一边即得惟一一个圈。 无圈, 但每加一边即得惟一一个圈。 (5) T连通,但任舍去一边就不连通。 连通, 连通 但任舍去一边就不连通。 (6) T中任意两点有惟一链相连。 中任意两点有惟一链相连。 中任意两点有惟一链相连
1 2 3 2 3 4 3 2 2 1
3 3
三、最小生成树问题
定义16 连通图 连通图G=(V, E), 每条边上有非负权 (e). 一棵生 每条边上有非负权L 定义 成树所有树枝上权的总和, 称为这个生成树的权. 成树所有树枝上权的总和 称为这个生成树的权 具有最小 生成树称为最小生成树 最小支撑树) 简称最小树 最小生成树(最小支撑树 最小树. 生成树称为最小生成树 最小支撑树 简称最小树 v1 4 v2 1 v3 算法1 算法) 算法 (Kruskal算法 算法 1 4 2 v0 4 1 v8 v4 1.权排序 权排序 4 5 5 5 2 2.由小往大取线段 2.由小往大取线段, 由小往大取线段, v7 3 v6 2 v5 如与已取的成圈则弃之改取后者, 如与已取的成圈则弃之改取后者, v1 v2 1 v3 直至所有点连通。 直至所有点连通。 2 1 1 1 一点v, 例7 一点 给 v 以标号 0 . v8 v0 v4 1, 1, 1, 1, 2, 2, 2, 3, 3, 4, 4, 4, 4, 5, 5, 5 2 √ √ √ √ √√ √√ v7 3 v6 2 v5 定理8 算法所得子图是棵最小树。 定理 Kruskal算法所得子图是棵最小树。 算法所得子图是棵最小树
D A Huffman算法 算法_B 算法
叶子上带权的二叉树, 个叶子的权分别为p 叶子上带权的二叉树 s 个叶子的权分别为 i 根到各叶子 的距离(层次 层次) 二叉树的总权数: 的距离 层次 为l i (i=1,…,s) , 二叉树的总权数: s m (T) = ∑ p i l i i=1 算法) 算法 (D A Huffman算法 算法 例8 s=6, 其权分别为 1.s个叶子按权由小至大排序 个叶子按权由小至大排序 4,3,3,2,2,1, 求最优二 叉树。 叉树。 15 2.最小权的二个叶子合并成 2.最小权的二个叶子合并成 一个分支点, 一个分支点,其权为二者之和 将新分支点作为一个叶子。 将新分支点作为一个叶子。 9 则停; 令s←s-1,若s=1则停;否则转 若 则停 否则转(1). 5 5 6 3 6 3 1 2 2 3 3 4 4 1 2 2 3 3
D 1 7
5
Leabharlann Baidu
D 1 7
5
T
S 4
5 C
B 4
7 5 E
D 7
T
w(T ) = 32
算法2 破圈法 从图中任选一圈 破圈法) 从图中任选一圈; 算法 (破圈法 1.从图中任选一圈; 2. 去掉圈中最大权; 去掉圈中最大权; 再检查剩余的图,重复1, 直至无圈为至 直至无圈为至。 再检查剩余的图,重复 ,2.直至无圈为至。 A
把图的所有点分成V和V,两个集合, 推论 : 把图的所有点分成V和V,两个集合,则两集合之 间连线的最短边一定包含在最小则边[ 间连线的最短边一定包含在最小则边 i, j ]一定必含在该 一定必含在该 图的最小支撑树内. 图的最小支撑树内
A 2 2 5 S B 1 3 4 C 4 A 2 2 5 S B 1 3 4 C 4 A 2 2 5 S B 1 3 4 C 4