当前课程知识点:算法设计与分析 > 3 Graph > 3.1 Basic Definitions and Applications > 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.1 Introduction
-1.2 A First Problem: Stable Matching
--A First Problem: Stable Matching
-1.3 Gale-Shapley Algorithm
-1.4 Understanding Gale-Shapley Algorithm
--Understanding Gale-Shapley Algorithm
-Homework1
-Lecture note 1
--Lecture note 1 Introduction of Algorithm
-2.1 Computational Tractability
-2.2 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.1 Basic Definitions and Applications
--Basic Definitions and Applications
-3.2 Graph Traversal
-3.3 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
-4.1 Coin Changing
-4.2 Interval Scheduling
-4.3 Interval Partitioning
-4.4 Scheduling to Minimize Lateness
--Scheduling to Minimize Lateness
-4.5 Optimal Caching
-4.6 Shortest Paths in a Graph
-4.7 Minimum Spanning Tree
-4.8 Correctness of Algorithms
-4.9 Clustering
-Homework4
-Lecture note 4
--Lecture note 4 Greedy Algorithms
-5.1 Mergesort
-5.2 Counting Inversions
-5.3 Closest Pair of Points
-5.4 Integer Multiplication
-5.5 Matrix Multiplication
--Video
-5.6 Convolution and FFT
-5.7 FFT
--FFT
-5.8 Inverse DFT
-Homework5
-Lecture note 5
--Lecture note 5 Divide and Conquer
-6.1 Weighted Interval Scheduling
--Weighted Interval Scheduling
-6.2 Segmented Least Squares
-6.3 Knapsack Problem
-6.4 RNA Secondary Structure
-6.5 Sequence Alignment
-6.6 Shortest Paths
-Homework6
-Lecture note 6
--Lecture note 6 Dynamic Programming
-7.1 Flows and Cuts
-7.2 Minimum Cut and Maximum Flow
--Minimum Cut and Maximum Flow
-7.3 Ford-Fulkerson Algorithm
-7.4 Choosing Good Augmenting Paths
--Choosing Good Augmenting Paths
-7.5 Bipartite Matching
-Homework7
-Lecture note 7
-8.1 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
-8.5 Problems in NP
-8.6 NP-Completeness
-8.7 Sequencing Problems
-8.8 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.1 Load Balancing
-9.2 Center Selection
-9.3 The Pricing Method: Vertex Cover
--The Pricing Method: Vertex Cover
-9.4 LP Rounding: Vertex Cover
-9.5 Knapsack Problem
-Homework9
-Lecture note 9
--Lecture note 9 Approximation Algorithms
-10.1 Landscape of an Optimization Problem
--Landscape of an Optimization Problem
-10.2 Maximum Cut
-10.3 Nash Equilibria
-10.4 Price of Stability
-Homework10
-Lecture note 10
--Lecture note 10 Local Search
-11.1 Contention Resolution
-11.2 Linearity of Expectation
-11.3 MAX 3-SAT
-11.4 Chernoff Bounds
-Homework11
-Lecture note 11
--Lecture note 11 Randomized Algorithms
-Exam