152.圖論

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

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

  圖論不斷髮展,它在解決運籌學,網絡理論,信息論,控制論,博奕論以及計算機科學等各個領域的問題時,顯示出愈來愈大的效果。函數

  對於這樣一門應用普遍的學科,其包含的內容是豐富的,本篇咱們只准備介紹基本的概念和定理,爲從此有關學科及課程的學習和研究提供方便。工具

 

 

1.圖

 1.1定義

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

  E(G) 是的集合,學習

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

 

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

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

(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的右兒子。

 

 

 

相關文章
相關標籤/搜索