当前课程知识点:算法设计与分析 >  3 Graph >  3.1 Basic Definitions and Applications >  Basic Definitions and Applications

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

Basic Definitions and Applications在线视频

Basic Definitions and Applications

下一节:Graph Traversal

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

Basic Definitions and Applications课程教案、知识点、字幕

图论是数学的一个分支

其中有很多算法问题值得讨论

我们先介绍基本定义和应用

无向图G=(V,E)

其中V是节点的集合

E是边的集合

每条边是一个节点对

无向图刻画了对象两两间的关系

表示图的规模的参数有节点个数

常用n来表示

和边的条数

常用m来表示

我们来看这个例子

节点为标号从1到8的这8个点

共有11条边

包括连接节点1和2、1和3、2和3的边等等

我们再来了解一下图的一些应用

比如交通问题中

节点表示街道的交叉路口

边表示公路

通信网络中

节点表示计算机

边表示连接它们的线缆

在WWW网络

节点表示web网页

边表示它们之间的链接关系等等

下面我们来介绍图的表示方法

可以用邻接矩阵来表示

它是一个n乘n的矩阵

如果(u,v)是一条边的话

那么 A_uv=1

下面的图和矩阵给出了一个例子

该图有8个节点

邻接矩阵就为8乘8的矩阵

邻接矩阵的特点是

1 每一条边被表示了两次

如这个例子所示

节点2和4之间有边

则矩阵的第2行第4列

和第4行第2列的元素都为1

2 占用的空间正比于n的平方

3 检验(u,v)是否是一条边需要花Θ(1)的时间

确定所有边的时间为Θ(n^2)

还可以用邻接表来表示图

邻接表是节点索引数组的列表

还以刚才的图为例

其邻接表表示如这里所示

每一个节点的数组中

都列出了与其相邻的节点

邻接表的特点为

1 每一条边同样被表示了两次

如在这个例子中

节点2的数组中包含节点4

而节点4的数组中也包含节点2

2 所占的空间正比于m+n

检验(u,v)是否是一条边

需要花O(deg(u))的时间

其中deg(u)表示节点u的度

即u的邻居的数目

4 确定所有边的时间为Θ(m+n)

我们再来介绍图的一些基本概念

无向图G(V,E)中的一条路径

被定义为具有下述性质的节点

v_1, v_2, …, v_k-1, v_k的序列P

其中每一对连续的节点v_i, v_i+1

由E中的一条边相连

一条路径称为是简单的

如果它的所有节点都是不同的

一个无向图称为是连通的

如果对于每一对节点u和v

都存在它们之间的路径

我们来看下面的图

节点序列1、2、5、6中

1和2、2和5、5和6都有边相连

所以1、2、5、6是一条路径

并且是简单的

节点8到9没有路径

所以整个图不是连通的

圈是包含多于两个点的路径

v_1, v_2, …, v_k-1, v_k

并且v_1=v_k

并且前k-1个节点都是不同的

例如 在这个图中

包含圈C=1-2-4-5-3-1

一个无向图被称为是一棵树

如果它是连通的

并且不包含圈

可以证明

G是一个包含n个节点的无向图

以下任意的两个命题可以推出第三个

G是连通的

G不包含圈

G有n-1条边

也就是说

这三条中的任意两条可以作为树的定义

下面的图给出了树的一个实例

下面我们介绍有根树的概念

给定一棵树T

选择一个根节点r

向外展开各条边

定义节点v的父亲为从r到v的路径上

直接先于v的节点u

同时就有v是u的孩子

如下图所示

左图中是一棵树

选定顶点1为它的根

然后依次向外展开

可得到如右图所示的样子

也就是说

左右图表示的是同一棵树

对于节点7

节点1是它的父亲

节点9是它的孩子

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

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

Basic Definitions and Applications笔记与讨论

也许你还感兴趣的课程:

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