1.41k likes | 1.64k Vues
第八章 圖形. 8.1 圖形和圖學模型. 定義: 圖形 (graph) G = ( V , E ) 是由頂點 (vertex) (或稱結點 node )的非空集合 V ,以及邊 (edge) 的集合 E 所構成。每一個邊都相關於一個或兩個頂點,稱為這個邊的端點 (endpoint) 。而我們稱此邊連通它的端點。
E N D
8.1 圖形和圖學模型 • 定義:圖形(graph)G = (V, E)是由頂點(vertex)(或稱結點node)的非空集合V,以及邊(edge)的集合E所構成。每一個邊都相關於一個或兩個頂點,稱為這個邊的端點(endpoint)。而我們稱此邊連通它的端點。 • 定義:方向圖(directed graph or digraph)(V, E)是由一個頂點組成之非空集合V和有向邊(directed edges或arcs)的集合E所形成。每一個有方向之邊(u, v)相關於一對有序的頂點,始於u而終於v。
底特律 紐約 芝加哥 華盛頓 丹佛 舊金山 簡單圖 多重圖 洛杉磯 偽圖 有向圖 有向多重圖
三個主要的問題能幫助我們了解圖形之結構: • 圖形中的邊有無方向性? • 如果圖形是無方向性的,那是否會有重邊出現?同樣的,若是個有向圖,圖中是否會出現多重有向邊? • 圖中是否會產生迴圈?
圖學模型 • 例:生態學中的食物鏈 • 圖形被用於表現生物界中不同物種間之互動。例如,生態學中各種動物間的競爭關係,能以食物鏈圖形來表現。每個頂點代表一個物種;兩頂點間的無向邊,代表這兩個物種間存在著競爭(也就是說,牠們的食物來源會重疊)。食物鏈圖是個簡單圖,沒有迴圈,也沒有重邊。右圖表現的是森林中的生態。從圖中,可以發現松鼠和負鼠間有競爭關係,而烏鴉和地鼠間則無。
例:社交關係圖 • 我們能用圖形來表現兩人是否相識。社群中的每個個人都為一個頂點;兩頂點間若連接著無向邊,代表這兩個人互相認識對方。圖形中不會出現重邊,通常也沒有迴圈(除非我們希望包括自我認識)。下圖表現出一個小型的社交圖。
例:影響關係圖 • 在研究群體行為時發現特定人士能影響其他人的想法。一個稱為影響關係圖的有向圖,能用來顯示這種行為的模式。團體中的個人都是個頂點。一個有向邊從頂點a指向頂點b,表示個人a將對個人b產生影響。這種圖形不會包含迴圈,也不會有重邊。右圖即為某團體之影響關係圖。在這個團體中,黛博拉會影響布萊恩、福瑞德和琳達。但是沒有人能影響她。此外,我們也發現伊凡與布萊恩間會互相影響。
例:好萊塢圖 • 在好萊塢圖中,頂點代表的是演員,兩個演員曾經合作演出同一齣電影時,便在這兩個頂點間聯結一個邊。很明顯的,這個圖是個簡單圖,因為它沒有方向、沒有重邊,也不會有迴圈。根據網際網路電影資料庫(the Internet Movie Database),在2006年一月時,好萊塢圖包含了637,099個演員,他們出現在339,896齣電影中。而圖中邊的數目超過了兩千萬。稍後,我們將再度討論好萊塢圖中的某些面向。
例:循環賽圖 • 在賽程中,任意兩個參賽隊伍都將對壘一次的方式稱為循環賽。這種賽程的結果可以用圖形來表示。每個頂點代表一個參賽隊伍,(a, b)這個有向邊表示a隊打敗了b隊。這類圖形是個簡單方向圖,沒有迴圈與重邊(因為沒有兩隊對壘超過一次)。右圖所表現的就是這種方向圖。我們可以觀察到隊伍1在整個賽程中是全勝的,而隊伍3則完全沒贏過。
例:合作關係圖 • 合作關係圖是用來表現學術論文中共同作者的關係圖。圖中的頂點代表的是人(也許能將之局限於某個學術領域的社群),而邊所聯結的兩個人,表示他們曾經合作過論文。這種圖是個簡單圖,沒有方向,也沒有迴圈與重邊。在數學研究領域中所形成的合作關係圖包含了超過400,000個頂點和675,000個邊。
例:電話通話圖 • 圖形也能建構電話通話記錄的網路模型。以電話號碼為頂點,當由某個號碼打給另一個號碼時,便產生一條聯結這兩個頂點的有向邊。這樣一來,就產生了一個含多重有向邊的方向圖。 下圖(a)是個包含七個電話號碼的小型電話通路圖。。當我們只關心兩個號碼間是否曾經通過話時,便能將圖形轉換成沒有方向的圖,如圖(b)。
例:循序圖 • 當某些電腦語句能平行處理時,電腦程式的執行便能更加快速。但是,此時便須注意某些需要其他語句執行後所得結果的語句。這些電腦語句間的依賴關係可以用方向圖來展現。每一個語句是一個頂點,若一個有向邊的始點尚未執行,則其終點的頂點(語句)將無法執行。這類的圖形,如右圖,稱為循序圖(Precedence graph)。圖中可以看出當S1,S2與S4尚未執行時,S5將無法被執行。
8.2 圖學術語和特殊形態的圖形 • 定義:在無向圖G中,稱兩頂點u與v鄰接(adjacent or neighbors)。若這兩個頂點為同一個邊的兩個端點。若e相關於{u,v},則稱邊e接合著(incident with)頂點u與頂點v;或是邊e連通(connect) u與v。而頂點u與v稱為相關於{u,v}之邊的端點(endpoints)。 • 定義:一個無向圖之頂點的分支度(degree)為接合著此頂點之邊的數目,但是一個迴圈則提供此頂點兩個分支度。頂點v的分支度記為deg(v)。 • 一個頂點的分支度為0時稱為孤立的(isolated);一個頂點稱為垂懸的(pendant)若且唯若其分支度為1。
例:請找出下面圖形G與H之所有頂點的分支度。 垂懸的頂點 垂懸的頂點 (4) (1) (4) (4) (1) (6) (5) (6) (2) (4) (3) (0) 孤立的頂點 G H
握手定理(the Handshaking Theorem) • 令G = (V, E)為包含e個邊的無向圖。則 (注意:就算圖形允許重邊和迴圈的存在,此定理依然成立。)
例:若圖形中共有10個頂點,而每個頂點的分支度都為6,則此圖形包含多少個邊?例:若圖形中共有10個頂點,而每個頂點的分支度都為6,則此圖形包含多少個邊? • 解:因為所有頂點之分支度總和為6 · 10 = 60。 所以2e = 60,即e = 30。
定理:一個無向圖中,分支度數目為奇數的頂點有偶數個。定理:一個無向圖中,分支度數目為奇數的頂點有偶數個。 • 證明:令V1與V2分別表示圖形G = (V, E)中分支度為奇數與分支度為偶數之頂點所成之集合。則 偶數 偶數 由於,在V2中每個頂點的分支度皆為奇數,因之可以判斷 V2中的頂點個數為偶數。也就是說,分支度數目為奇數的 頂點有偶數個。 ■
定義:當(u, v)代表圖形G中有方向的邊時,稱u鄰接向(adjacent to) v,而v鄰接自(adjacent from) u。頂點u稱為(u, v)之始點(initial vertex),頂點v稱為(u, v)之終點(terminal or end vertex)。一個迴圈則有相同的始點與終點。
定義:在有向圖中,頂點u的入分支度(in-degree)代表以頂點u為終點之邊的數目,記為deg(u)。頂點u的出分支度(out-degree)代表以頂點u為始點之邊的數目,記為deg(u)+。(注意:一個迴圈對其相同的端點各貢獻一個入分支度和一個出分支度。)定義:在有向圖中,頂點u的入分支度(in-degree)代表以頂點u為終點之邊的數目,記為deg(u)。頂點u的出分支度(out-degree)代表以頂點u為始點之邊的數目,記為deg(u)+。(注意:一個迴圈對其相同的端點各貢獻一個入分支度和一個出分支度。)
例:試找出下圖中有向圖G各頂點的入分支度和出分支度。例:試找出下圖中有向圖G各頂點的入分支度和出分支度。 (2), [4] (2), [1] (2), [2] (3), [3] (in-degree) [out-degree] (2), [1]
Theorem 3 • 定理:令G = (V, E)為有向圖。則 • 許多有向圖的性質其實與其有方向的邊並不相關,所以我們經常會忽視邊的方向性。因忽視邊之方向性而考慮的無向圖形,稱之為隱藏性無向圖(underlying undirected graph)。一個包含有方向邊之圖形與其隱藏性無向圖有著一樣多數目的邊。
特殊簡單圖形 • 完全圖(Complete Graphs) 包含n個頂點的完全圖,記為Kn,是個簡單圖,其中任意兩個相異的頂點都接合著恰巧一個邊。
圈圖(Cycles) 圈圖Cn,n 3,包含n個頂點和n個邊。
輪狀圖(Wheels) 當我們在圈圖Cn中加上一個與其他各頂點都有邊相連的頂點時,便形成了輪狀圖Wn。
n-立方圖(n-Cubes) • n-立方圖,記為Qn,是用來表現長度為n之二元字串(string)的圖形。兩頂點間有邊相連若且唯若這兩頂點所代表的字串中只恰恰有一個位元(bit position)是不一樣的。我們能利用Qn來製造Qn+1。只要複製兩個Qn,然後重新標示其頂點,一個Qn在其字串前都加上0,另一個Qn在其字串前都加上1。最後再用邊連接新字串中之相差一個位元的字串頂點,即可形成Qn+1。右圖的Q3便能以此方法產生。
二分圖 • 定義:一個簡單圖稱為二分圖(bipartitle),如果能將頂點的集合V分成兩個不相交的子集V1和V2,使得圖中每一個邊都分別連結一個V1的頂點和一個V2的頂點(也就是說,沒有一個邊同時連結V1或V2中的兩個頂點)。當一個圖形擁有這樣的條件時,稱(V1, V2)為圖形G之頂點集合V之二分子集對(bipartition)。 • 完全二分圖記為Km, n K2, 3 K3, 5
例:C6是個二分圖,如右圖所示。因為頂點能被分為兩個集合V1和V2。而C6中的每一個邊都連結一個V1的頂點和一個V2中的頂點。 v1 v2 v6 v3 v5 v4
例:K3不是個二分圖。 為證明這一點,將頂點分為兩個不相交的子集,則其中一個子集必然包含兩個不同的頂點。若圖形是個二分圖,則此二頂點必然不會相連結。但是在K3中,任意兩頂點必相連結。故K3不可能是二分圖。
例:圖形G與H是否為二分圖? Yes. No.
定理:一個簡單圖為二分圖,若且唯若能利用兩種不同顏色來為所有的頂點著色,使得兩相鄰之頂點皆不同色。定理:一個簡單圖為二分圖,若且唯若能利用兩種不同顏色來為所有的頂點著色,使得兩相鄰之頂點皆不同色。 • 證明:首先,假設G = (V, E)為二分簡單圖。V = V1V2,其中V1和V2為不相交子集,且每個E中的邊都連結一個V1中的頂點和一個V2中的頂點。若我們將*的每個頂點都塗上一種顏色,而V2中的頂點則塗上另一種顏色即為所求。
現在假設能利用兩種顏色為所有的頂點著色,使得認兩相鄰的頂點皆不同色。讓其中一種顏色的頂點形成集合V1,而另一種顏色的頂點為V2。則V1和*為不相交的集合,而且V = V1V2。不只如此,每個邊都連結一個V1的頂點和一個V2的頂點,因為沒有任何相鄰的頂點同時在V1或在V2中。如此一來,圖形即為二分圖。
例:利用定理來判定例圖形G與H是否為二分圖。例:利用定理來判定例圖形G與H是否為二分圖。 二分圖 不是二分圖
特殊圖形的應用 • 工作分派 某團體打算進行一項計畫,其中參與的四個人員為:阿爾發、博科、陳和戴維斯;四項必須完成的工作是:基本調查、規劃、執行與測試。其中,阿爾發曾受過基本調查和測試的訓練;博科接受過規劃、執行與測試的訓練;陳則受過基本調查、規劃與執行的訓練;戴維斯只會做基本調查。我們依每個僱員的能力做出一個二分圖如下。為了完成此計畫,每種工作必須有一位僱員負責,而每位僱員只負責一件工作。
區域網路 一棟建築物內的各種電腦,如:微電腦和個人電腦,以及週邊設備,如:印表機與繪圖機等,都能用區域網路將其連結。此類之區域網路能以二分圖K1, n來表示,如圖(a)。也有的區域網路其連結方式為環狀拓樸(ring topology) 。每個設備都恰恰聯接另兩個設備。此類之區域網路以圈圖Cn來表示,如圖(b)。還有些區域網路混合了上述兩種拓樸資訊的傳輸。可以透過中控設備向外,也能繞經所有設備。這樣一來,資訊的傳輸變得更可靠。這種重複的區域網路以輪狀圖Wn來表示,如圖(c)。
從已知圖形得到新圖形 • 定義:當圖形H = (W, F)稱為圖形G = (V, E)之子圖時,其中W V且F E。如果H G,子圖H為圖形G之真子圖(proper subgraph)。 • 例:下面之圖形皆為K5之子圖。
8.3 圖形的表現與圖形的同構 • 定義:兩個簡單圖G1 = (V1, E1)和G2 = (V2, E2)之聯集圖也是個簡單圖,其中頂點的集合為V1V2,而邊的集合為E1E2。 G1和G2之聯集圖記為G1G2。 • 例:找出G1與G2的聯集圖。 G1 G2 a b c d e f a b c d f G1G2
表現圖形 • 鄰接表列法(adjacency list) • 鄰接矩陣 (Adjacency Matrices) • 投引矩陣(incidence matrix) 頂點鄰接頂點 a b, c, d b a, c, d c a, b d a, c 頂點鄰接頂點 a a b a, c c a, b, d a, c a b c d
鄰接矩陣 • 所謂圖形G的鄰接矩陣(adjacency matrix) A (or AG)是個零-壹矩陣。當頂點vi和頂點vj鄰接時,令第(i, j)個元素為1。反之,當此二頂點不相鄰接時,令第(i, j)個元素為0。換句話說,若鄰接矩陣為A = [aij],則 a b c d a b c d a b c d
例:畫出下列鄰接矩陣的圖形 。給定頂點順序為 a, b, c, d。 a b c d ab c d a b c d
例:利用鄰接矩陣來表現下面的偽圖。 a b c d a b d c a b c d
例:給定鄰接矩陣,繪出矩陣來表現的圖形。 a b c d a b d c a b c d
投引矩陣 • 令G = (V, E)為一無向圖,其中|V| = n而且|E| = m。則 M = [mij]nm 稱為圖形G的投引矩陣,其中 • 例:找出下圖之投引矩陣。 1 2 3 4 5 6 a b c d e a b c d e 6 3 1 2 4 5
圖形的同構 • 定義:稱兩個簡單圖G1 = (V1, E1)和G2 = (V2, E2)為同構的(isomorphic),如果存在一個從V1到V2的一對一函數f,使得對所有在V1中的頂點a到b,當它們在圖G1中鄰接時,若且唯若f(a)和f(b)在圖G2中亦相鄰。 • 這個函數f 稱為同構函數(isomorphism)。
範例 A B A D 同構的 注意:檢查每個頂點的分支度能幫助我們判斷兩圖形是否同構。 D C C B 非同構的 沒有分支度為1的頂點 分支度為1
例:判斷下面所示的兩個圖形是否同構。 • 解:圖形G和H同樣都有8個頂點和10個邊。它們也一樣擁有4個分支度為2的頂點和4個分支度為3的頂點。因為已知的不變量都相符,我們還是不知道它們是否同構。 其實,G和H是不同構的。我們發現在G中,deg(a) = 2,而a必然對應於H中之*或y。因為在H中它們的分支度都是2。但是,這四個頂點在H中都鄰接一個分支度為2的頂點。而頂點a在圖形G中,並沒有這樣的性質。
還有另一種方法也能看出G和H是不同構的。 • 讓我們分別考慮G和H中由分支度是3的頂點及其連通的邊所成的兩個子圖。如果G和H是同構的,那其子圖也應該同構。然而,如右所示,其子圖並不同構。
範例 A B A B 同構的 D C D C 相同 注意:圖形的鄰接矩陣也能幫助我們判斷兩圖形是否同構。
判定兩個簡單圖是否同構是相當困難的。當圖形有n個頂點時,可以找到n!種對應方式。如果n相當大時,要一一檢驗對應後是否仍保持鄰接關係幾乎是不可行的。判定兩個簡單圖是否同構是相當困難的。當圖形有n個頂點時,可以找到n!種對應方式。如果n相當大時,要一一檢驗對應後是否仍保持鄰接關係幾乎是不可行的。 • 到目前為止,還沒有找出一組有用的不變量能夠用來有效地判斷兩個圖形是否同構。
但有時並不難看出兩圖形並非同構的。特別是,當我們能找出某種同構函數能保持的性質只有其中一個圖形擁有,而另一個並沒有時。圖形的同構函數保持的性質稱為圖形不變量(graph invariant)。 • 相同的頂點數目 • 相同的邊數 • 對應頂點的分支度也必須相同 • 等等