当前课程知识点:算法设计与分析 >  4 Greedy Algorithms >  4.7 Minimum Spanning Tree >  Minimum Spanning Tree

返回《算法设计与分析》慕课在线视频课程列表

Minimum Spanning Tree在线视频

Minimum Spanning Tree

下一节:Correctness of Algorithms

返回《算法设计与分析》慕课在线视频列表

Minimum Spanning Tree课程教案、知识点、字幕

这节我们来学习最小支撑树

给定一个连通图G=(V,E)

令边e的权重为c_e

包含所有节点的树

我们称为一棵支撑树

所有支撑树中

其包含的边总权重最小的树

称为最小支撑树

简称为MST

在下面这个例子中

选择所标示的这几条边

我们得到一个目标值为50的支撑树

最小支撑树问题

是一个基本问题

有众多的理论和实际应用

比如说在网络设计中

电话 电视的电路设计

电脑线路布局

道路设计等

都存在最小支撑树问题

它还广泛应用于一些

困难问题的算法设计分析中

比如说旅行商问题 斯坦纳树问题等

它还有很多并不明显的应用

比如说

在我们后面要介绍的聚类分析中

也有最小支撑树的应用

我们将介绍两个算法

Kruskal算法和Prim算法

它们都是基于贪婪策略

Kruskal算法

首先令T是空集

它把边按照权重升序排列

对于当前的边

如果和T中的边不形成圈的话

就把它加入到T

我们来演示一下Kruskal算法

把边按照权重升序排列

依次考虑各条边

如果加入后不形成一个圈的话

那么就加入这条边

否则就考虑下一条边

我们先把长度为1的边加入

再加入长度为2的边

长度为3的边和4的边

在这个过程中都没有形成圈

当考虑加入长度为5的边时

形成了圈

那么考虑下一条长度为6的边

加入后仍然形成圈

再考虑下一条长度为7的边

不形成圈

加入该边

此时已加入了5条边

已得到了支撑树

而之后的长度为8和9的边加入后

都形成了圈

最后算法得到的最小支撑树如图

Prim算法

它令某一个节点s为根节点

从s出发贪婪地生成树T

在每一步

它从恰好有一个端点在T中的边中

选取权重最小的边加入到T

我们来演示一下Prim算法

令任意一个节点s为根节点

从s出发贪婪地生成树T

在每一步

它从恰好有一个端点属于T的边中

选取权重最小的边加入T

如图 我们选中所标示的节点

关联的3条边的长度为3,5,11

最小的边长为3

把这条边加入T中

此时 恰好有一个端点属于T的边有5条

最小的长度为5

把该边加入

继续进行

相关联的边中

最小长度为2

加入这条边

然后 最小长度依次为7,1,4,9

加入这几条边

得到了最小支撑树

我们说

这些算法都能够产生最小支撑树

为了证明算法的正确性

我们需要圈和割这两个图中的基本概念

圈是一条首尾相连的路

而且中间的节点没有重复

也可以看成是一些首尾相连的边的集合

比如 在这个图中

圈C包含边1-2,2-3,3-4,4-5,5-6,6-1

定义割S是点的一个子集

所有恰好有一个端点在S中的边构成的集合

称为S对应的割集

比如这个图中 我们取S={4,5,8}

那么它对应的割集为5-6,5-7,3-4,3-5,7-8

对于圈和割集

有这样简单的性质

圈和割集的交集一定包含偶数条边

给定圈C和割S

如图 我们可以看出

圈C中的边

离开集合S和进入集合S的次数一定是相等的

所以 C和S对应的割集的交集中

一定包含偶数条边

算法设计与分析课程列表:

1 Introduction of Algorithm

-1.1 Introduction

--Introduction

-1.2 A First Problem: Stable Matching

--A First Problem: Stable Matching

-1.3 Gale-Shapley Algorithm

--Gale-Shapley Algorithm

-1.4 Understanding Gale-Shapley Algorithm

--Understanding Gale-Shapley Algorithm

-Homework1

-Lecture note 1

--Lecture note 1 Introduction of Algorithm

2 Basics of Algorithm Analysis

-2.1 Computational Tractability

--Computational Tractability

-2.2 Asymptotic Order of Growth

--Asymptotic Order of Growth

-2.3 A Survey of Common Running Times

--A Survey of Common Running Times

-Homework2

-Lecture note 2

--Lecture note 2 Basics of Algorithm Analysis

3 Graph

-3.1 Basic Definitions and Applications

--Basic Definitions and Applications

-3.2 Graph Traversal

--Graph Traversal

-3.3 Testing Bipartiteness

--Testing Bipartiteness

-3.4 Connectivity in Directed Graphs

--Connectivity in Directed Graphs

-3.5 DAG and Topological Ordering

--DAG and Topological Ordering

-Homework3

-Lecture note 3

--Lecture note 3 Graph

4 Greedy Algorithms

-4.1 Coin Changing

--Coin Changing

-4.2 Interval Scheduling

--Interval Scheduling

-4.3 Interval Partitioning

--Interval Partitioning

-4.4 Scheduling to Minimize Lateness

--Scheduling to Minimize Lateness

-4.5 Optimal Caching

--Optimal Caching

-4.6 Shortest Paths in a Graph

--Shortest Paths in a Graph

-4.7 Minimum Spanning Tree

--Minimum Spanning Tree

-4.8 Correctness of Algorithms

--Correctness of Algorithms

-4.9 Clustering

--Clustering

-Homework4

-Lecture note 4

--Lecture note 4 Greedy Algorithms

5 Divide and Conquer

-5.1 Mergesort

--Mergesort

-5.2 Counting Inversions

--Counting Inversions

-5.3 Closest Pair of Points

--Closest Pair of Points

-5.4 Integer Multiplication

--Integer Multiplication

-5.5 Matrix Multiplication

--Video

-5.6 Convolution and FFT

--Convolution and FFT

-5.7 FFT

--FFT

-5.8 Inverse DFT

--Inverse DFT

-Homework5

-Lecture note 5

--Lecture note 5 Divide and Conquer

6 Dynamic Programming

-6.1 Weighted Interval Scheduling

--Weighted Interval Scheduling

-6.2 Segmented Least Squares

--Segmented Least Squares

-6.3 Knapsack Problem

--Knapsack Problem

-6.4 RNA Secondary Structure

--RNA Secondary Structure

-6.5 Sequence Alignment

--Sequence Alignment

-6.6 Shortest Paths

--Shortest Paths

-Homework6

-Lecture note 6

--Lecture note 6 Dynamic Programming

7 Network Flow

-7.1 Flows and Cuts

--Flows and Cuts

-7.2 Minimum Cut and Maximum Flow

--Minimum Cut and Maximum Flow

-7.3 Ford-Fulkerson Algorithm

--Ford-Fulkerson Algorithm

-7.4 Choosing Good Augmenting Paths

--Choosing Good Augmenting Paths

-7.5 Bipartite Matching

--Bipartite Matching

-Homework7

-Lecture note 7

--Lecture note 7 Network Flow

8 NP and Computational Intractability

-8.1 Polynomial-Time Reductions

--Polynomial-Time Reductions

-8.2 Basic Reduction Strategies I

--Basic Reduction Strategies I

-8.3 Basic Reduction Strategies II

--Basic Reduction Strategies II

-8.4 Definition of NP

--Definition of NP

-8.5 Problems in NP

--Problems in NP

-8.6 NP-Completeness

--NP-Completeness

-8.7 Sequencing Problems

--Sequencing Problems

-8.8 Numerical Problems

--Numerical Problems

-8.9 co-NP and the Asymmetry of NP

--co-NP and the Asymmetry of NP

-Homework8

-Lecture note 8

--Lecture note 8 NP and Computational Intractability

9 Approximation Algorithms

-9.1 Load Balancing

--Load Balancing

-9.2 Center Selection

--Center Selection

-9.3 The Pricing Method: Vertex Cover

--The Pricing Method: Vertex Cover

-9.4 LP Rounding: Vertex Cover

--LP Rounding: Vertex Cover

-9.5 Knapsack Problem

--Knapsack Problem

-Homework9

-Lecture note 9

--Lecture note 9 Approximation Algorithms

10 Local Search

-10.1 Landscape of an Optimization Problem

--Landscape of an Optimization Problem

-10.2 Maximum Cut

--Maximum Cut

-10.3 Nash Equilibria

--Nash Equilibria

-10.4 Price of Stability

--Price of Stability

-Homework10

-Lecture note 10

--Lecture note 10 Local Search

11 Randomized Algorithms

-11.1 Contention Resolution

--Contention Resolution

-11.2 Linearity of Expectation

--Linearity of Expectation

-11.3 MAX 3-SAT

--MAX 3-SAT

-11.4 Chernoff Bounds

--Chernoff Bounds

-Homework11

-Lecture note 11

--Lecture note 11 Randomized Algorithms

Exam

-Exam

Minimum Spanning Tree笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。