上一篇文章我们回顾了图论的基础集合论,这篇文章将会对工业互联网中一个重要数学部分图论进行讲述
我们将无向图G定义成一个三元组(V,E,γ),其中
我们规定用n代表顶点数,m代表边数,这样的一个边数为m的n阶图可简称为(n,m)图
图论中研究的图是可以任意游走的,边的形状,相对位置没有实际意义,关注点在其中的关系,所以一个图的表示方法不唯一
在无向图 ( G , V , γ ) (G,V,\gamma) (G,V,γ)中, e ∈ E e\in E e∈E,如果 γ ( e ) = { u , v } \gamma(e)=\{u,v\} γ(e)={u,v},则称e是u和v的一条边,u和v是相邻顶点,并称边e分别与u和v相关联,如果u=v,则称e为一个字环或者环
在无向图 ( G , V , γ ) (G,V,\gamma) (G,V,γ)中,如果G的两条边 e 1 , e 2 e_1,e_2 e1,e2都与同一个顶点相关联,那么我们称 e 1 , e 2 e_1,e_2 e1,e2是邻接的
在无向图 ( G , V , γ ) (G,V,\gamma) (G,V,γ)中,若G中关联同一对顶点的边多于一条,我们称这些边叫做重边或者平行边,同时我们称边的条数为重数
在无向图 ( G , V , γ ) (G,V,\gamma) (G,V,γ)中, v ∈ V v\in V v∈V,顶点v的度数表示为 deg ( v ) \deg(v) deg(v),度数表征的是G中与顶点v所关联的边的数目(自环时计量度数为2),而图G中最大的点度数与最小的点度数分别记为 Δ ( G ) 和 δ ( G ) \Delta(G)和\delta(G) Δ(G)和δ(G)
在无向图 ( G , V , γ ) (G,V,\gamma) (G,V,γ)中,度数为0的顶点叫做孤立顶点,度数为1的点叫做悬挂点,与悬挂点相连的边叫做悬挂边,所有顶点都是孤立顶点的图叫零图或离散图
如果所有顶点的度数均相等,这种无向图叫做正则图
任意两个相异的顶点都相邻地简单图叫做完全图,n阶完全图记作 K n K_n Kn,也就是说顶点全连接,同时也是n-1度正则图(因为每个顶点的度数都为n-1)
不存在自环和重边的无向图称为简单图
n阶完全图中的边数是 n ( n − 1 ) 2 \frac{n(n-1)}{2} 2n(n−1)
假设 V = { 1 , 2 , . . . , n } ( n ≥ 3 ) , E = { ( u , v ) ∣ 1 ≤ u , v ≤ n , u − v ≡ 1 ( m o d n ) } V=\{1,2,...,n\}(n\geq 3),E=\{(u,v)|1\leq u,v\leq n,u-v\equiv 1 (mod \quad n)\} V={1,2,...,n}(n≥3),E={(u,v)∣1≤u,v≤n,u−v≡1(modn)},则称简单图G为圈图,记作 C n C_n Cn
假设 V = { 1 , 2 , . . . , n } ( n ≥ 3 ) , E = { ( u , v ) ∣ 1 ≤ u , v ≤ n , u − v ≡ 1 ( m o d n ) 或 者 u = 0 , v ≥ 1 } V=\{1,2,...,n\}(n\geq 3),E=\{(u,v)|1\leq u,v\leq n,u-v\equiv 1 (mod \quad n)或者u=0,v\geq 1\} V={1,2,...,n}(n≥3),E={(u,v)∣1≤u,v≤n,u−v≡1(modn)或者u=0,v≥1},则称简单图G为轮图,记作 W n W_n Wn(本质上是圈图中加了一个顶点将所有的顶点连接起来)
如果简单图中存在一个划分 { V 1 , V 2 } \{V_1,V_2\} {V1,V2}使得G中任意一条边的两端分属这两个个划分,我们称G为二部图,如果 V 1 V_1 V1中每个顶点都与 V 2 V_2 V2中每个顶点相邻,那么就叫做完全二部图,简单来说划分为同一类的顶点间互相没有连线
二部图的画法技巧可以用交替空心点与实数点来进行,也就是我们说的把点进行划分,同类点无连线,不同类的点相连,像下面这个图也是一个典型的二部图
握手定理是图论的基本定理,其定理形式为:
在无向图 ( G , V , γ ) (G,V,\gamma) (G,V,γ)中, ∑ v ∈ V deg ( v ) = 2 ∣ E ∣ \sum\limits_{v\in V}\deg(v)=2|E| v∈V∑deg(v)=2∣E∣,表示的是总的度数是所有边数的两倍
并且其有一个些重要的推论:
在任何无向图中,奇数度的顶点数必是偶数(因为总的度数是偶数,偶数度的顶点数无论是奇数还是偶数,其算出来的度数都是偶数,所有对于奇数度而言其产生的总度数也应该是偶数,所以无线图中奇数度的顶点数量也是一个偶数)
我们将有向图G定义成一个三元组(V,E,γ),其中
问题意义:很多的图的差异仅仅在于边与顶点名称的差异,但是从邻接关系上看,它们都是一样的,所以我们要找出这些同类的图,也叫作图的同构,方便我们去归类分析
定义:无向图 ( V 1 , E 1 , γ 1 ) , ( V 2 , E 2 , γ 2 ) (V_1,E_1,\gamma_1),(V_2,E_2,\gamma_2) (V1,E1,γ1),(V2,E2,γ2)中,如果存在 V 1 到 V 2 V_1到V_2 V1到V2的双射f和 E 1 , E 2 E_1,E_2 E1,E2的双射g,对于任意的 e ∈ E 1 , γ 1 ( e ) = { u , v } e\in E_1,\gamma_1(e)=\{u,v\} e∈E1,γ1(e)={u,v},则 e ∈ E 2 , γ 2 ( g ( e ) ) = { f ( u ) , f ( v ) } e\in E_2,\gamma_2(g(e))=\{f(u),f(v)\} e∈E2,γ2(g(e))={f(u),f(v)},则称两个图是同构的,也就是说两个图是一个等价关系
而对于有向图而言,也是同样成立的
判断标准:没有可行的方法判断是否同构,只有一些满足同构图的必要条件
G = ( V 1 , E 1 , γ 1 ) , H = ( V 2 , E 2 , γ 2 ) G=(V_1,E_1,\gamma_1),H=(V_2,E_2,\gamma_2) G=(V1,E1,γ1),H=(V2,E2,γ2)是两个图,如果满足 V 2 ⊆ V 1 、 E 2 ⊆ E 1 V_2\subseteq V_1、E_2\subseteq E_1 V2⊆V1、E2⊆E1,并且 γ 2 = γ 1 ∣ E 2 \gamma_2=\gamma_1|_{E_2} γ2=γ1∣E2,也就是说对于任何的 e ∈ E 2 e\in E_2 e∈E2都有 γ 2 ( e ) = γ 1 ( e ) \gamma_2(e)=\gamma_1(e) γ2(e)=γ1(e),我们称H是G的子图
如果 V 2 = V 1 V_2=V_1 V2=V1,也就是说两者顶点集相同,那么就说H是G的生成子图,该子图包含了图的所有顶点
如果 V 2 = V 1 , E 2 = E 1 或 者 E 2 = ∅ V_2=V_1,E_2=E_1或者E_2=\emptyset V2=V1,E2=E1或者E2=∅时我们称H是G的平凡子图,该子图只有顶点没有边或者就是其本身
H = ( V 2 , E 2 , γ 2 ) 是 G = ( V 1 , E 1 , γ 1 ) H=(V_2,E_2,\gamma_2)是G=(V_1,E_1,\gamma_1) H=(V2,E2,γ2)是G=(V1,E1,γ1)的子图,如果 E 2 = { e ∣ γ 1 ( e ) = { u , v } ⊆ V 2 } E_2=\{e|\gamma_1(e)=\{u,v\}\subseteq V_2\} E2={e∣γ1(e)={u,v}⊆V2},也就是说这个子图包含了G图中关于 V 2 V_2 V2的所有边,这叫做导出子图
事实上,构造生成子图只需要保留所有顶点,适量的删除边数量即可,而构造导出子图则需要删除与某删除顶点相连的所有边即可
定义:
无向图一些性质:
有向图的一些性质:
这部分相对来说不容易在这里表示,我们将简单描述一下一些重点内容
a i j = { m , 存 在 m 条 从 顶 点 v i 到 顶 点 v j 的 有 向 边 0 , 不 存 在 有 向 边 a_{ij}= \begin{cases} m,存在m条从顶点v_i到顶点v_j的有向边 \\ 0,不存在有向边 \\ \end{cases} aij={m,存在m条从顶点vi到顶点vj的有向边0,不存在有向边
所以每一行的和代表的是顶点 v i v_i vi的出度数之和,每一列的和代表的是顶点 v i v_i vi的入度数之和
重要定理:邻接矩阵A的k次幂 A k A^k Ak的 a i j k a^k_{ij} aijk的元素代表的是,顶点 v i v_i vi到顶点 v j v_j vj所需长度为k的有向路径数量
直观理解:我们以幂次为k=2来举例。邻接矩阵的每一行的元素 a i m , i 是 常 数 a_{im},i是常数 aim,i是常数,代表的从顶点 v i v_i vi到顶点 v m v_m vm的出度的数量,而每一列的元素 a m j , j 是 常 数 a_{mj},j是常数 amj,j是常数,代表的是顶点 v j v_j vj从不同的顶点 v m v_m vm入度的数量。而新的幂矩阵中, a i m ∗ a m j a_{im}*a_{mj} aim∗amj代表的意思是从顶点 v i v_i vi经过中间顶点 v m v_m vm到顶点 v j v_j vj的可选路径(此时的路径长度为2)数量,将所有的中间顶点的可选路径数量相加则为从顶点 v i v_i vi到顶点 v j v_j vj的可选路径(路径长度为2)数量。而幂的次数则决定了路径长度
无向图与有向图类似,但是无向图的邻接矩阵是一个对称阵(可看做满足两两对称的有向图邻接矩阵)
问题引入:哥尼斯堡七桥问题(一笔画问题)
通过图G中每条边一次且仅一次的道路叫做一条欧拉道路,而通过图G中每条边一次且仅一次的回路叫做一条欧拉回路,存在欧拉回路的图叫做欧拉图。
问题引入:“”周游世界玩具“”,每个城市看作一个顶点,城市间有多条交通线路,我们需要挑战者利用这些交通线路去经过每个城市,但每个城市只能经过一次,最终返回出发地
定义:
通过图G中每个顶点一次且仅一次的道路叫做哈密顿道路,通过每个顶点一次且一次的回路称作该图的一条哈密顿回路,存在哈密顿回路的图称为哈密顿图
与欧拉图区别:
欧拉图需要经过所有的路径但允许顶点重复,而哈密顿图可以不经过全部路径但一定不允许顶点重复
假设在n个人中,任意两个人合在一起都能认识其余的n-2个人,则他们可以围成一圈,使邻者认识。
问题分析:
n个人可以看作n个顶点,认识的关系可以看作边集,围成一圈,邻近的人互相认识,也就可以建模成一个哈密顿回路,遍历所有顶点各一遍并且不重复
建模分析:
问题描述:有一个推销员,要到n个城市推销商品,这n个城市两两之间的距离是已知的,他希望找到一条最短的路线,走遍所有的城市,再回到出发的城市。
抽象建模:有n个顶点,并且n个顶点间的权重是已知的,希望在满足哈密顿回路的条件下,找到一个权重最小的哈密顿回路
问题引出:如果我们想我们的链路设计尽量避免无交叉,或者说让交叉尽量减少,那我们就必须研究一种拓扑结构,这种结构就是平面图
定义:如果可以将无向图G画在平面上,使得除端点外,各边彼此不相交,则称G是具有平面性的图,称为平面图
设图G可以画在平面上并且满足无边相交,G的边将平面划分为若干个封闭区域,称为G的面,其中包围面的边叫做边界,面的边界条数叫做面的次数(桥计算为两条边),并且很明显桥一定只对应着一个面的边界,因为非桥必定是两个面的共享边界,这就是为什么桥要计算成两条边的原因,两个以同一个边相邻的面叫做相邻面
我们设两个图 G , G ∗ G,G^* G,G∗,如果满足以下条件,我们称 G ∗ G* G∗是G的对偶图
下面是对偶图的画法:
定义:假设 G = ( V , E ) G=(V,E) G=(V,E)是无向简单图, D ⊆ V D\subseteq V D⊆V,若对于任意的 v ∈ V − D v\in V-D v∈V−D,都存在 u ∈ D u \in D u∈D,使得 u v ∈ E uv\in E uv∈E,则称D是一个支配集。如果D的任何真子集都不再是支配集,则称D为一个极小支配集,而如果图G的支配集D对于G的任何支配集D’而言都有 ∣ D ∣ ≤ ∣ D ′ ∣ |D|\leq |D'| ∣D∣≤∣D′∣,那么我们称D是G的一个最小支配集,记作 γ ( G ) \gamma(G) γ(G)
实际问题:在一个分布式计算系统中,每个节点都有一台计算服务器,有些节点存放储存器,节点之间使用数据线连接,为了提高速度,要求每个节点都可以直接访问到数据存储器,但是我们要求这样的存储器越少越好,也就是我们的极小支配集
定义:设 G = ( V , E , γ ) G=(V,E,\gamma) G=(V,E,γ)是一个无向图, S ⊆ V S\subseteq V S⊆V,若对任意 u , v ∈ S u,v\in S u,v∈S,都有u与v不相邻,那么我们称S是G的一个点独立集,也叫独立集。如果对任意独立集T都有 S ⊈ T S \nsubseteq T S⊈T,则称S是一个极大独立集,而具有最大基数的独立集叫做最大独立集,而最大基数为G的独立数 α ( G ) \alpha(G) α(G)
性质:
实际问题:在某个通信系统中,如果存在电磁干扰,输入与输出可能不同,但是一定在某个范围内,我们就将这些输入和输出可能发生的情况划分为一个集合,通信系统只能使用这些里面的集合进行输出,如果集合中任意两个顶点有相同的输出,我们就将这两个顶点连起来,最后我们找到最大独立集,里面的每个元素都是不同输出的代表元素,也就是代表符号
定义:设 G = ( V , E ) G=(V,E) G=(V,E)是一个简单图, V ∗ ⊆ V V^*\subseteq V V∗⊆V,对任意的 e ∈ E e\in E e∈E,都存在 v ∈ V ∗ v\in V^* v∈V∗,使得v是e的一个端点,则称 V ∗ V* V∗为G的点覆盖集。如果D的任何真子集都不再是点覆盖集,则称 V ∗ V^* V∗为一个极小点覆盖,而如果图G的覆盖集 V ∗ V^* V∗对于G的任何支配集 V ′ V' V′而言都有 ∣ V ∗ ∣ ≤ ∣ V ′ ∣ |V^*|\leq |V'| ∣V∗∣≤∣V′∣,那么我们称 V ∗ V^* V∗是G的一个最小支配集,记作 β ( G ) \beta(G) β(G)
性质:
问题引入:考虑一个调度问题:有m个节点和n个流,但每个节点不一定能处理所有的流,也就是说每个节点处理流的能力各异,但一个节点只能同时处理一个流,而一个流也只能分配一个人去同时处理,那么要如何进行安排,才能使更多的节点处理更多的流呢?这个同时也是一个负载均衡的问题
模型抽象:用顶点 { x 1 , x 2 , . . . , x m } \{x_1,x_2,...,x_m\} {x1,x2,...,xm}表示m个节点,顶点 { y 1 , y 2 , . . . , y n } \{y_1,y_2,...,y_n\} {y1,y2,...,yn}表示n个流,如果节点 x i x_i xi可以处理流 y j y_j yj,则将其连线,很快我们就得到了一个二部图,我们的目标是找到最大匹配,也就是让尽可能多的节点都进行工作
定义:设 G = ( V , E ) G=(V,E) G=(V,E)是一个简单图, M ⊆ E M\subseteq E M⊆E,而M中的任何两条边都不邻接,则称M是G中的一个匹配或边独立集,设顶点 v ∈ V v\in V v∈V,存在 e ∈ E e\in E e∈E,使得v是e的一个端点,则称v是M-饱和的,否则称M-非饱和的。
如果匹配M满足对任意 e ∈ E − M , M ∪ { e } e\in E-M,M\cup\{e\} e∈E−M,M∪{e}不再构成匹配,则称M是G的一个极大匹配。如果图G的匹配M满足对于G的任何匹配M’都有 ∣ M ∣ ≥ ∣ M ′ ∣ |M|\geq |M'| ∣M∣≥∣M′∣,则称M是G的一个最大基数匹配,而匹配数记作 v ( G ) v(G) v(G)
设M是G中的一个匹配,若G中一条初级道路是由M中的边与E-M中的边交替出现组成的,那我们就叫做交替道路,若一条交错道路的始点与终点都是M-非饱和顶点,那么称其为M-可增广道路(长度一定是奇数)
伯奇引理:匹配M为图G=(V,E)的最大匹配当且仅当G中不存在M-可增广道路
伯奇引理有助于给出二部图中最大匹配的算法,基本思想是从任意一个初始匹配开始,然后不断寻找增广道路从而扩大匹配的基数,直到不能扩大为止
本文主要介绍了图论里面的内容,作为图拓扑的一个基础数学知识,图论的重要性不言而喻,在很多物理建模问题里面都能遇到。