10244圖論

Zander_Zhao發表於2019-06-16

  圖論是近年來發展迅速而又應用廣泛的一門新興學科。它最早起源於一些數學遊戲的難題研究。如1736年尤拉(L . Euler)所解決的哥尼斯堡七橋問題;以及在民間廣為流傳的一些遊戲問題:例如迷宮問題、棋盤上馬的行走路線問題等等。

  這些古老的問題當時吸引了許多學者的注意,從而在這些問題研究的基礎上,又提出了著名的四色猜想和環遊世界各國的問題。

  圖論不斷髮展,它在解決運籌學,網路理論,資訊理論,控制論,博奕論以及電腦科學等各個領域的問題時,顯示出越來越大的效果。

  對於這樣一門應用廣泛的學科,其包含的內容是豐富的,本篇我們只准備介紹基本的概念和定理,為今後有關學科及課程的學習和研究提供方便。

 

 

1.圖

 1.1定義

定義:一個圖 G 是一個三元組< V(G) , E(G) , ΦG >
       其中 V(G) 是非空的結點(頂點)集合,

  E(G) 是的集合,

  ΦG 是從邊集 E 到結點偶對集合上的函式。

 

討論定義:
(1) V(G) ={ v1 , v2 , … , vn }是非空的結點集合,vi 稱為結點,簡稱V是點集

(2) E(G)={e1 , … , em}為邊的集合,ei 稱為邊,簡稱 E 為邊集

(3) ΦG 是從邊集 E 到結點偶對集合上的函式。即對於每條邊 ei ,都存在V中的結點偶對與之相對應。

  例如       ΦG (ei) = (vi , vj)

(4) 定義中的結點偶對可以是有序偶對 <vi , vj> ,也可以是無序偶對 (vi , vj) 。

  ①若邊 e 對應有序偶對 <vi , vj> ,則稱邊 e 是有向邊(弧)

       結點 vi 稱為有向邊的起點,結點 vj 稱為有向邊的終點,統稱為 e 的端點

     也稱 e 是關聯於結點vi 和 vj 的,結點vi 和 vj 是鄰接的(相鄰的)

  ②若邊 e 對應無序偶對 (vi , vj),則稱邊 e 是無向邊(稜)

(5) 每條邊都是有向邊的圖,稱為有向圖
   每條邊都是無向邊的圖,稱為無向圖
(6) 若令 e= <vi , vj> 或 e= (vi , vj),即以結點偶對來表示圖的邊,這樣可把圖簡化成:
      G=<V,E >.

 

 

專有名詞:

(1) ( n , m) 圖:具有 n 個結點,m 條邊的圖。

(2)有向完全圖:在 n 個結點的有向圖
  G = <V , E> 中,如果 E=V×V,則稱G為有向完全圖。

 例如

 

注:對於有向簡單完全圖:其有向邊條數 m= 2 Cn2 = n(n-1)  (除去自迴路)

(3)無向完全圖:每兩個結點之間均有連線的無向圖。
    具有 n 個結點的無向完全圖的邊數為:m= Cn2 = n(n-1)/2

例如

(4)混合圖:既有有向邊,又有無向邊的圖。
(5)互相鄰接的邊:連線於同一結點的二條(或若干條)邊。

 例如

 

 

(6) 自迴路:圖中起始且終止於同一結點的邊。
(自迴路的箭頭方向是沒有意義的 )

(7)多重邊(平行邊):二個結點之間方向相同的二條(多條)邊。

 例如

 

(8)含有多重邊的圖稱為多重圖,非多重圖稱為線圖

  例如

 

 

 

(9) 簡單圖:無自迴路的線圖稱為簡單圖。
               即簡單圖是沒有自迴路和多重邊的圖。

(10) 賦權圖G是一個三元組〈V , E , g〉或四元組〈V , E , f , g 〉,
其中 V 為結點集合,E 為邊的集合,f 是定義在集合 V上的函式,g 是定義在集合 E 上的函式。

實際上,賦權圖可以用一句話概括:每一條邊或結點均註上數字的圖(數字可以為整數、正實數)

 

(11)孤立結點:不與任何結點相連線的結點。
(12)零圖:僅包含孤立結點的圖,記為 ( n , 0 ).
(13)平凡圖:只有一個結點的圖(1 , 0).

 

1.2節點的次數

1.2.1定義

有向圖 G 中,對於任何結點 v,
①以 v 為始點的邊的條數,稱為結點 v 的引出次數出度),記作 deg+(v) ;
②以 v 點為終點的邊的條數稱為 v 的引入次數入度),記作 deg-(v) ;
③結點 v 的引入次數和引出次數之和稱為結點 v 的次數度數),記作 deg(v),即
deg(v) = deg+(v) + deg-(v) .

 

對於無向圖

結點 v 的度數等於與該結點 v 相關聯的邊的條數,也記為 deg(v) 。

 

正則圖:所有結點的度數均相同的簡單無向圖。

例如

 

 1.2.2定理

定理1

設 G 是一個 (n , m) 圖,它的結點集合為 V ={ v1 , v2 , … , vn } ,則

即所有結點度數的總和等於邊數的兩倍。

 

推論:

在任何圖中,
(1) 所有結點的度數之和必為偶數;
(2) 度數為奇數的結點必有偶數個。

 

定理2

在任何有向圖中,所有結點的入度之和等於所有結點的出度之和。

 

1.3路與迴路

1.3.1路徑

定義:

在一個圖中,從結點 v0 到結點 vn 的一條路徑 P 是:圖的一個點邊交替序列
( v0 e1 v1 e2 v2 … en vn )。
即從結點 v0 出發經過某些結點,而最終到達終點 vn 的點邊交替序列稱為圖的路徑

討論定義:
⑴ 從一個結點到某一結點的路徑(若有的話),不一定是唯一的;

例如:設有向圖G,求起始於1,終止於3的路徑。

 

專有名詞:

(1)穿程全部結點的路徑:經過圖中所有結點的路徑。
(2)簡單路徑:在某一路徑中,如果同一條邊僅出現一次的路徑。
(3)基本路徑:在某一路徑中,如果同一頂點僅出現一次的路徑。

(4)迴路:如果某路徑的起點 v0 和終點vn 相重合,則稱此路徑為迴路。
(5)簡單迴路:通過每條邊不超過一次的迴路。
(6)基本回路:通過每個結點不超過一次的迴路。
(7)非迴路圖:沒有任何迴路的簡單有向圖。

討論:

①迴路不包含自迴路。
②不是基本路徑的任何路徑都會包含迴路,而去掉這些迴路就可以得到基本路徑。

 

1.3.2路徑的表示方法

(a)邊的序列表示法:設G = <V , E> 為一有向圖,vi ∈ V ,則路徑可以表示成:
      (< v1 , v2 > , < v2 , v3 > , … , < vk-1 , vk >)
(b)結點表示法: 在非多重圖中,也可用頂點序列 (v1 , v2 , … , vk ) 表示路徑。

1.3.3路徑長度

 若兩個結點之間有一條路經P,則路徑 P 的長度|P|=P中邊的條數。

 

1.4圖的性質

1.4.1可達性

定義: 

設圖G為簡單有向圖,且 vi , vj V,若從 vi 到 vj 存在任何一條路徑的話,則稱 vi 到 vj 是可達的

 注:

可達性一定滿足:自反性;可傳遞性

 

定義:

 從 vi 到 vj 的最短路徑的長度稱為距離,並記作: d<vi , vj> 

討論定義:
(1) d<vi , vi> = 0
(2) d<vi , vj> ≥ 0
(3) d<vi , vj> + d<vj , vk> ≥ d<vi , vk>
(4)規定:若 vi 到 vj 是不可達的,則d<vi , vj> = ∞.
(5) 在有向圖中,若 vi 到 vj 是可達的,且 vj 到 vi 也是可達的,
     但 d<vi,vj> 不一定等於 d<vj, vi>。

例如

d< c, a > = 1,
d< a, c > = 2

 

1.4.2聯通性

定義:

 對於無向圖 G,如果任何兩個結點是相互可達的,則稱圖G是連通的

 對於有向圖來講,如果兩結點均是互相可達的,則稱此圖是強連通的

 若圖中任何結點偶對中至少有一點到另一結點是可達的,則稱此圖是單側連通

 對於簡單有向圖的伴隨無向圖(底圖),若是連通的,則稱此圖為弱連通

注:伴隨無向圖即為去掉箭頭方向的圖。

 定理:

一個有向圖是強連通的充要條件是它包含一個迴路,且該回路至少包含每個結點一次

 

定義:

設G = <V , E>為一簡單有向圖,且G’是G的子圖。

對於某一性質而言,若沒有其他包含G’的子圖具有這種性質,

則稱子圖G’是相對於該性質的極大子圖

具有強連通性質的極大子圖G’稱為強分圖
具有單側連通性質的極大子圖G’稱為單側分圖
具有弱連通性質的極大子圖G’稱為弱分圖

定理:

在任一簡單有向圖G=<V,E>中,有向圖的每一個結點恰好處於一個強分圖之中。

 

1.5圖的矩陣表示

矩陣是研究圖的有關性質的最有效的工具,可運用圖的矩陣運算求出圖的路徑、迴路和其它一些性質

1.5.1圖的鄰接矩陣表示

定義:

設G = <V , E>是簡單有向圖,其中V={v1, v2, … , vn}。定義一個 nn 的矩陣 A,並把其中各元素 aij 表示成:

則稱矩陣 A 為圖 G 的鄰接矩陣

例如:設圖 G = <V , E>
如圖所示

則圖 G 的鄰接矩陣為

 

討論定義:

⑴ 圖G的鄰接矩陣中的元素為0和1,
∴又稱為布林矩陣;

⑵ 圖G的鄰接矩陣中的元素的次序是無關緊要的,

只要做 行和行、列和列的交換,則可得到相同的矩陣。

∴若有二個簡單有向圖,則可得到二個對應的鄰接矩陣,

若對某一矩陣做行和行、列和列之間的交換後得到和另一矩陣相同的矩陣,則此二圖同構。

⑶ 當有向圖中的有向邊表示關係時,鄰接矩陣就是關係矩陣;
⑷ 零圖的鄰接矩陣稱為零矩陣,即矩陣中的所有元素均為0;

⑸ 在圖的鄰接矩陣中,
①行中1的個數就是行中相應結點的引出次數(出度).
②列中1的個數就是列中相應結點的引入次數(入度).

 

1.5.2 矩陣的計算

設有向圖 G = <V , E>的鄰接矩陣為 A,

則G的逆圖 = <V , > 的鄰接矩陣就是 AT

 

 

1.5.2.1AAT 的元素的意義

設有向圖 G = <V , E> 的鄰接矩陣為 A,並令 B = AAT,則

 

分析:元素 aik = 1 意味著存在邊<vi , vk> .
  元素 ajk = 1 意味著存在邊<vj , vk> .

結論:如果從結點 vi 和 vj 兩者引出的邊,能共同終止於某些結點 vk ,則這些終止結點 vk 的數目就是 bij 的值,

  特別地,當 i = j 時,元素 bii 的值就是結點 vi 的引出次數

 

主對角線上的數,表示結點 i 的引出次數。

1.5.2.2ATA 的元素的意義

設有向圖 G = <V , E> 的鄰接矩陣為 A,並令 B = ATA,則

 

分析:元素 aki = 1 意味著存在邊<vk , vi> .
  元素 akj = 1 意味著存在邊<vk , vj> .

結論:如果從某些結點 vk引出的邊,能同時終止於結點 vi 和 vj ,則這些起始結點 vk 的數目就是 bij 的值,

  特別地,當 i = j 時,元素 bii 的值就是結點 vi 的引入次數

 

主對角線上的數,表示結點 i 的引入次數

 1.5.2.3A(n) 的元素的意義

 設有向圖 G = <V , E> 的鄰接矩陣為  A = ( aij ),則 A(2) 的元素

分析:元素 aik = 1 意味著存在邊<vi , vk> .
  元素 akj = 1 意味著存在邊<vk , vj> .

所以,元素 aij(2) 的值表示從結點 vi 到 vj 存在長度為 2 的不同路徑的條數。

結論: A(n) 的元素 aij(n) 的值表示從結點 vi 到 vj 存在長度為 n 的不同路徑的條數。
特別,對角線上的元素 aii(n) 表示經過結點 vi的長度為 n 的不同迴路的條數。

 例如

A2 表示 i 和 j 之間具有長度為2的路徑數

A3 表示 i 和 j 之間具有長度為3的路徑數

A表示 i 和 j 之間具有長度為4的路徑數

 

1.5.2.4可達性矩陣

 

注:bij 表示從結點 vi 到 vj 有長度分別為 1,2,3,4 的不同路徑總數。
此時, bij ≠ 0,表示從 vi 到 vj 是可達的。
bij = 0,表示從 vi 到 vj 是不可達的。因此, bij 表明了結點間的可達性。

 定義:

設 G = <V , E> 是簡單有向圖,其中 |V|=n( n  I+),定義一個 nn 矩陣 P,它的元素為:

則P稱為圖G的可達性矩陣

 

注:由矩陣 Bn 可計算出可達性矩陣 P,其方法是:若 Bn中(i , j)元是非“0”元素,則令對應的 pij = 1,否則令 pij = 0 。

 例如:若

 

 

1.5.2.5可完全關聯矩陣

 定義:

設無向圖G = <V , E> ,
V = {v1 , v2 , … , vn}, E = {e1 , e2 , … , em},
令 B = ( bij )n×m,其中

 

則稱B為無向圖G的完全關聯矩陣

討論定義:

⑴ 完全關聯矩陣為布林矩陣;
⑵ 對應B中行均為0的結點為孤立結點,只有一個“1”的行的結點一定為懸掛的邊,且一定不在任一回路中;
⑶ 全部為1的行的結點必定聯結圖中所有的結點。

例如

 

 

1.6特殊圖

1.6.1尤拉圖

定義:

尤拉路徑:穿程於圖 G 的每條邊一次且僅一次的路徑。
尤拉回路:穿程於圖 G 的每條邊一次且僅一次的迴路。
尤拉圖:具有尤拉回路的圖。

 

定理:

 無向連通圖 G 具有一條尤拉路徑,當且僅當 G 具有零個或兩個奇數度數的結點。

推論:

無向連通圖 G 具有一條尤拉回路(尤拉圖),當且僅當圖G 所有結點度數全為偶數。

例如:用定理解決哥尼斯堡橋的問題

 

 

定理:

有向連通圖 G 具有尤拉回路,當且僅當 G中每一個結點的引入次數等於引出次數,即Deg+(v)= Deg-(v) .

 

 定理:

有向連通圖 G 具有尤拉路徑,當且僅當除了二個結點(其中一個的引入次數比引出次數大1,

另一個的引入次數比引出次數小1)以外的所有結點的引入次數等於引出次數,即Deg+(v)= Deg-(v) .

 

 1.6.2 哈密爾頓圖

定義

哈密爾頓路徑:穿程於無向圖 G 的每一個結點一次且僅一次的路徑。
哈密爾頓迴路:穿程於無向圖 G 的每一個結點一次且僅一次的迴路。
哈密爾頓圖:具有哈密爾頓迴路的圖。

到目前為止,還沒有找到哈密爾頓路徑存在的充分必要條件。下面介紹兩個定理。

 

定理:

設 G = < V , E > 是具有n 個結點的簡單無向圖,若在 G 中每一對結點次數之和大於或等於(n-1),

則在 G 中一定存在一條哈密爾頓路徑。

 注:此定理是充分條件,而不是充分必要條件

例如:n=7,G = <V , E > 見圖:每對結點次數為4<7-1=6,但確有一條漢密爾頓路徑。

 

定理:

若圖 G = < V , E > 是哈密爾頓圖,則對於結點集 V 的每個非空真子集 S 均有
W( G ―S ) ≤ |S| 成立,
其中 W(G-S) 表示從G中刪除S後,所得圖的連通分圖個數; |S| 表示 S 中的結點數。

 

2.樹與生成樹

2.1無向樹(樹)

2.1.1定義

連通的且無簡單迴路的無向圖稱為無向樹,簡稱

 

專用名詞
樹葉(終點):樹中度數為1的結點。
分枝點(內點):樹中度數大於1的結點。
森林:每個連通分圖均為樹的無向圖。

2.1.2樹的性質

設T是一棵樹,vi,vj 為T中兩個不同的結點,則:
1) vi 和 vj 僅有一條路徑相連通。
2) 在T中加一條邊{ vi , vj },則由此而形成 的圖,僅有一個迴路。

 

在一棵(n , e)樹中有e=n-1。(n表示結點數,e表示邊數)

設F是由 t 棵樹組成的(n , e)森林,則有e=n-t。

 

在結點大於2的(n , e)樹中,所有結點的度數之和為2(n-1)

 

在任一(n ≥ 2)的樹T中,至少有二片樹葉。

 

2.2生成樹

2.2.1定義

一個無向圖G的生成子圖是樹TG,則稱TG是G的生成樹(支撐樹)。

討論定義:

1) G的生成樹不是唯一的。

2)如何在連通圖G中尋找一棵生成樹:

①若G沒有迴圈,則G本身就是一棵樹;

②若G僅有一條迴圈,從此迴圈中刪去一條邊,仍保持圖的連通性,得到一棵生成樹。

③若G有多條迴圈,則逐個對每條迴圈重複②中操作,直到打斷G中所有迴圈,得到一棵生成樹為止。

 

定理:

任何連通無向圖至少有一棵生成樹

給定一個連通圖,尋找其生成樹的數目是圖論中樹的計數問題

含 n (n>1)個結點的標記完全圖Kn 有 nn-2 棵標記生成樹

 

定義:

生成樹T中的邊稱為樹枝,不在生成樹T中但屬於圖G的邊,稱為樹T的弦,弦的集合稱為樹T的補。

在一個連通賦權圖中,樹枝的權之和為最小的生成樹稱為最小生成樹。

 

Kruskal演算法:

設G有n個結點,m條邊,先將G中所有邊按權的大小次序進行排列,不妨設:

W(e1) < W(e2) < … < W(em),

①k←1,A←Ø。

②若AU{ek}匯出的子圖中不包含簡單迴圈,則A ← A U{ek}

③若A中已有n-1條邊,則演算法終止,否則K← K+1,轉至②。

這一演算法假設G中權均不相同,對於邊權任意情況也完全適用。這時求得的最小生成樹不唯一

 

2.3有向樹與根樹

定義:

若有向圖在不考慮邊的方向時是一棵樹,稱之為有向樹。

定義:

一棵有向樹,如果恰有一個結點的入度為0,其餘所有結點的入度都為1,則稱為根樹。入度為0的結點稱為根,出度為0的結點稱為葉,出度不為0的結點稱為分枝點或內點。任何結點的級(高度)是從根出發到該結點的路徑長度(邊的條數)。

定義:

指明瞭根樹中結點或邊的次序的樹為有序樹。在有序樹中,如每個結點有明確級,同一級的結點排在同一行,並明確它們位置,則這樣的樹稱位置樹

定義:

在根樹中,若每一個結點的出度小於或等於m,則稱這棵樹為m叉樹。若每個結點的出度恰好等於m或零,則稱這棵樹為完全m叉樹,若其所有樹葉層次相同,稱為正則m叉樹。

特別,當m=2時,稱為二叉樹。

很多實際問題可用二叉樹或m叉樹表示。任何一棵有序樹都可以把它改寫為一棵對應的二叉樹。

定義:

在有向樹T中,由結點V和它的所有子孫所構成的結點子集V’以及從V出發的所有有向路中的邊所構成的邊集E’組成T的子圖

方法:

設有序樹T中結點Vi 的r棵子樹有根Vi1, Vi2 , …, Vir,其順序自左向右,則在二叉樹T’中Vi1是Vi 的左兒子,Vi2是Vi1的右兒子,Vi3是Vi2的右兒子….,Vir是Vir-1的右兒子。

 

相關文章