1. 程式人生 > >各種圖論模型及其解答(轉)

各種圖論模型及其解答(轉)

歐拉公式 否則 但是 至少 接下來 分解 聯系 均可 競賽圖

原文轉自Jelline blog

http://blog.chinaunix.net/uid-9112803-id-411340.html

摘要:

本文用另一種思路重新組織《圖論及其應用》相關知識。首先,用通俗化語言闡述了如何對事物間聯系的問題進行圖論建模;接著從現實例子出發,給出 各種典型圖論模型,每種圖論模型對應於圖論一個重要內容;再者,介紹相關知識對上述提到的圖論模型涉及的問題進行解答;最後,補充一些圖論其他知識,包括 圖論分支、易混概念。

符號約定:

Q(Question)表示對問題描述,M(Modeling)表示數學建模過程,A(Answer)表示原問題轉化為何種圖論問題。

一、引言

圖論是研究點、線間關系的一門學科,屬於應用數學的一部分。現實生活中,凡是涉及到事物間的關系,都可以抽象為圖論模型。點表示事物,連線表示事物間的聯系。整個求解過程如下:

原問題——>圖論建模——>運用圖論相關理論求解——>轉化為原問題的解

整個過程關鍵在於圖論建模,所謂圖論建模,就是明確點表示什麽,連線表示什麽,原問題轉化為圖論中的什麽問題。存在以下兩種情況:

①若事物間聯系是可逆的(比如雙行道,朋友),則抽象成無向圖

②若事物間聯系是不可逆的(比如單行道,狀態轉化不可逆),則抽象成有向圖

如果需要進一步刻畫事物間的聯系(比如城市間的距離),就給連線賦一個權值,從而抽象成賦值圖。

綜上,根據實際問題,可建模成下列圖論模型的一種:無向賦權圖、有向賦權圖、無向非賦權圖、有向非賦權圖。

例1.宴會定理:任何一宴會中,一定存在兩個人有相同的數量朋友

M:點表示人,連線表示當且僅當該兩個人是朋友

A:問題轉化為任何一個圖一定存在兩個頂點的度相等

二、圖論模型

接下來介紹若幹典型的圖論模型,每種模型幾乎對應於圖論的一個重要內容,這些內容將在第三章進行討論,也就給出了這些模型的解答思路。

2.1 偶圖模型

凡涉及兩類事物間的聯系(即只考慮兩類事物間的聯系,而不考慮同類事物間的聯系),均可抽象成偶圖模型。作圖時,將兩類事物分成兩行或者兩列。這類模型通常被包含在後續的模型中,但因許多現實問題可抽象成該模型,所以單列出來討論。

(1) 倉庫與銷售間

M:點代表倉庫或銷售點,連線代表倉庫與銷售店間的關聯

(2) 上課安排問題

Q:學校有6位教師將開設6門課程。六位教師的代號是Xi(i=1,2,3,4,5,6),六門課程代號是Yi (i=1,2,3,4,5,6)。已知,教師X1能夠勝任課程Y2和Y3;教師X2能夠勝任課程Y4和Y5;教師X3能夠勝任課程Y2;教師X4能夠勝任課程Y6和Y3;教師Y5能夠勝任課程Y1和Y6;教師X6能夠勝任課程Y5和Y6。

M:點表示教師或者課程,連線表示當且僅當該教師能勝任該課程

2.2 最短路模型

凡涉及到最小狀態轉換問題,均可轉化為最短路模型。點表示允許的狀態,連線表示狀態的轉換(可逆與不可逆分別對應於無向圖、有向圖)。

(1) 最短航線

M:點表示城市,連線表示當且僅當兩城市有直達航線,並在該線上註明兩城市的距離,即權值

A:問題轉化為求兩點間的最短路徑

(2) 狀態轉換

Q:某兩人有一只8升的酒壺裝滿了酒,還有兩只空壺,分別為5升和3升。求最少的操作次數能均分酒。

M:設x1,x2,x3分別表示8,5,3升酒壺中的酒量,則

點表示組合(x1,x2,x3) ,連線表示當且僅當可通過倒酒的方式相互變換

A:問題轉化為在該圖中求點(8,0,0)到點(4,4,0)的一條最短路

(3) 狼羊菜渡河

Q:在一河岸有狼,羊和卷心菜。擺渡人要將它們渡過河去,由於船太小,每次只能載一樣東西。由於狼羊,羊卷心菜不能單獨相處。問擺渡人至少要多少次才能將其渡過河?

M:但是以下組合不能允許出現:狼羊菜,羊菜,狼羊,人,人狼,人菜,共6種。岸上只能允許出現10種組合:人狼羊菜,人狼羊,人狼菜,人羊,空,菜,羊,狼,狼菜,人羊菜。

點表示可允許的組合,連線當且僅當兩種情況可用載人(或加一物)的渡船相互轉變。

A:問題轉化為求由頂點“人狼羊菜”到頂點“空”的一條最短路。

2.3 最小生成樹模型

道路鋪設

Q:道路鋪設,使得任意兩個地方均可達,並且費用最小

M:點表示工廠(假設是工廠),任意兩點連線,並標出鋪設需要的費用

A:問題轉化為求該圖的最小生成樹

2.4 歐拉圖模型

通俗地講,G是歐拉圖當且僅當G存在經過每條邊恰好一次,並且回到起始點的跡。

(1) 哥尼斯堡七橋問題

Q:能否從一點出發,走遍7座橋,且通過每座橋恰好一次,最後仍回到起始地點

M:點表示陸地,連線表示橋

A:問題轉化為G是否存在E圖

(2) 中國郵遞員問題

Q:郵遞員必須走過他投遞範圍內的每一條街道至少一次,選擇一條盡可能短的路線

M:點表示路口,連線表示當且僅當兩路口有直達街道

A:若G是E圖,通過Fleury算法構造Euler環遊,即為所求。否則,按一定規則添加重復邊,再用Fleury算法構造Euler環遊。

2.5 哈密爾頓圈模型

(1) 旅行售貨員問題——TSP

一售貨員要到若幹城市去售貨,每座城市只經歷一次,問如何安排行走路線,使其行走的總路程最短。

例子:

Q:一電腦代理商要從她所在城市出發,乘飛機去六個城市,然後回到出發點,如果要求每個城市只經歷一次,能否辦到?給出行走方案。

M:點表示城市,連線表示兩城市有直達航線

A:該圖是否存在H圈

(2) 圓桌會議座位安排

Q:若幹人圍圓周開會,每個人會不同的語言,如何安排座位,使得每個人能夠和他身邊的交流

M:點表示人,連線表示當且僅當兩個人能交流,即至少會同一種語言。(可能你一下子想到的偶圖模型,的確該問題可以抽象成偶圖模型,但很難轉化為圖論問題)

A:給出該圖的一個H圈

2.6 匹配模型

(1) 旅遊座位安排

Q:有一個旅行團要組織一批人去旅遊,其中一些人是朋友他們要乘坐公共汽車去,而車上的位子是成對的。因此為了讓大家旅途更愉快,旅行團負責人需要將成對的朋友安排在一起。給出一種安排方案。

M:點表示旅行團的人,連線表示當且僅當兩人是朋友

A:求該圖的最大匹配

(2) 研究生找工作

Q:學生能找到理想工作嗎?

M:點表示研究生或者工作,連線表示當且僅當學生申請了該工作

A:問題轉化為求飽和每個頂點的一個匹配,即完美匹配

(3) 最優分派問題

M:點表示工作或者人員,構造完全偶圖,邊的權值表示該工人做此份工作的效率

A:問題轉化為求該圖的最優匹配

2.7 平面圖模型

平面模型可以這樣理解,交通網絡,使得不交叉,且無需修高架橋、隧道(這裏的隧道顯然跟山洞不同)

(1) 電路板設計問題

Q: 連接電路元件間的導線間不能交叉。否則,當絕緣層破損時,會出現短路故障。

M;點表示電路元器件,連線表示元器件間的連接

A;該圖是否可平面

(2) 景區空調管道的設計

M:點表示景區,連線表示當且僅當兩景點間要鋪設空調管道

A:能否把上圖畫在平面上,使得邊不會相互交叉?

(3) 3間房子和3種設施問題

Q:要求把3種公用設施(煤氣,水和電)分別用煤氣管道、水管和電線連接到3間房子裏,要求任何一根線或管道不與另外的線或管道相交,能否辦到?

M:點表示公用設施或者房子,連線表示該類公用設施連接到該房子

A:抽象出來的圖是否可平面嵌入

2.8 著色模型

點著色問題對應於頂點集合的一種劃分方式,對應於分類問題。邊著色對應於邊集合的一種劃分方式,也對應於分類問題。區分點著色模型和邊著色模型,主要在於抽象出來的模型,是相鄰的頂點還是相鄰的邊不能著同一種顏色。

(1) 點著色模型

① 考試時間安排

Q:使得學生們不會有相互沖突的考試,最小安排數

M:點表示待考的課程,連線表示至少有一個學生同時選擇這兩門課

A:問題轉化為求該圖的點色數(把互不沖突的課程、考試安排在同一個時間段完成)

② 課程安排問題

Q: 學生選擇課程中,使得學生選課不會發生沖突,如何制訂一張課時數盡可能小少的課表

M:點表示課程,連線表示當且僅當有某個學生同時選了這兩門課程

A:問題轉化為求該圖的點色數

③ 交通燈的相位設置問題

Q:為了(最終)讓所有的車輛都能夠安全通過路口,對於交通燈來說,所需要的相位的最小數是多少

M:點表示車道,連線當且僅當兩個車道上的車不能同時安全地進入路口

A:問題轉化為求該圖的點色數

(2)邊著色模型

① 排課表問題

Q:設有m位教師,n個班級,其中教師xi要給班級yj上pij節課。求如何在最少節次排完所有課。

M:令X={x1,x2,…,xm}, Y={y1,y2,…,yn},xi與yj間連pij條邊,得偶圖G=(X, Y)。

A:問題轉化為求該圖的邊著色數

(2) 比賽安排問題

Q:最少天完成比賽

M:點表示參賽人,連線當且僅當兩人有比賽

A:問題轉化為求一種最優邊著色,即用最少色數進行正常邊著色

2.9 覆蓋模型

覆蓋模型,對應於控制問題,通俗地講點覆蓋對應於用最少的點來控制所有邊(即任一邊至少有一個頂點在點獨立集中),邊覆蓋對應於用最少的邊控制所有的點。均對應於控制問題。

(1) 哨站設計

Q:城市設置哨崗,使得哨兵能監管所有街道的最少哨崗數

M:點表示交叉口,連線表示存在直達街道

A:問題轉化為求該圖的點覆蓋

2.10 強連通性定向圖模型

(1) 城市交通網設計問題

Q:一座城市為某種需要,要把所有街道改為單行道,使得人們在任意兩個位置都可以相互到達。如何設計單行道方向

M:頂點表示街道交叉口,連線當且僅當存在直達街道

A:問題等價於在模型圖中給出其強連通定向

(2) 競賽圖

M:循環比賽的結果可以用所謂的“競賽圖”來表示。u隊戰勝了v隊,則由點u向v畫一條有向邊。顯然,“競賽圖”是完全圖的一種定向圖。

三、模型求解

現針對上述的模型給出求解過程,每個模型幾乎對應於圖論的一個主要內容。

3.1 偶圖模型

正如上文所說,偶圖模型只是建模方式,並沒有與直接問題關聯起來。

3.2 最短路算法

(1) Dantjig算法——頂點標號法

在已選定的集合A的臨近點集合B(不包含A集合的點),選擇符合條件(選擇的點不會構成回路,邊權值最小)的點加入集合A。叠代,直到終點出現在集合A中。
3.3最小生成樹算法
(1) Kruskal(克魯斯克爾)算法

從G中的最小邊開始,進行避圈式擴張。從符合擴展邊(新加入的邊不會構成回路)選擇權值最小的邊進行擴展。

(2) 管梅谷的破圈法

不斷破圈(從賦權圖G的任意圈開始,去掉該圈中權值最大的一條邊,稱為破圈),直到G中沒有圈為止,最後剩下的G的子圖為G的最小生成樹。
(3) Prim算法
對於連通賦權圖G的任意一個頂點u,選擇與點u關聯的且權值最小的邊作為最小生成樹的第一條邊e1。在接下來的邊e2,e3,…,en-1 ,在與一條已經選取的邊只有一個公共端點的的所有邊中,選取權值最小的邊。

3.4 Euler環遊

(1) Euler環遊判定

連通圖G是Euler圖 <==> G的每個頂點的度為偶數

連通圖G有Euler跡 <==> G最多有兩個奇點
(1) 構造歐拉環遊(Fleury算法)
該算法解決了在歐拉圖中求出一條具體歐拉環遊的方法。方法是盡可能避割邊行走。
(2) 最優環遊算法(中國郵路問題)
若G是Euler圖,則G的任何環遊都是最優環遊(最優環遊是指在具有非負權的賦權連通圖中找出一條最小權的環遊)。

若G不是Euler圖,則G的任何環遊,通過某些邊不止一次,通過以下方法求

添加重復邊(其一,每條邊最多重復一次,得到一個Euler多重圖;其二,在該多重圖的每一個圈上,如果重復經過的邊數目超過圈長度的一半,則交換重復邊與不重復邊),而後Fleury算法求得。
3.5 Hamilton圖

(1) H圖判定

H圖判定至今沒有平凡的充要條件,不過可以通過如下定理輔助判斷。

必要條件

G是H圖 ==> 對於V的每個非空真子集S,均有ω(G-S)≤|S|,即若去k個點,得到連通分支數比k大,則不是H圖(逆否命題)。(顯然有割點的圖不是H圖)

充分條件

① 設G是n(n≥)階簡單圖,δ≥n/2 ==> G是H圖

② G是簡單圖,對於任意不相鄰的頂點,滿足d(u)+d(v)≥n,G是H圖 <==> G+uv是H圖

③ G是H圖 <==> G的閉包是H圖(若G的閉包是完全圖,則G是H圖。但一個圖的閉包不一定是H圖)

閉包構造過程:將度數之和≥圖的頂點個數的非鄰接頂點對遞歸連接起來,直到不再有這樣的頂點對存在。

(2) 最優H圈

在一個賦權完全圖中,找出一個有最小權的H圖,稱這個圈為最優H圈。目前沒有有效算法,但可以通過如下近似算法求得近似值:

首先求出一個H圈,通過替換邊不斷改善上界。通過求最小生成樹獲得其下界。

3.6 匹配模型

(1)匹配判定

①最大匹配判定:

G的匹配M是最大匹配 <==> G不包含M可擴充路

② 偶圖匹配判定

設G為具有二分類(X,Y)的偶圖,對於X的每個子集S ,G包含飽和X的每個頂點的匹配 <==> |N(S)|≥|S|

G是k正則偶圖 ==> G有完美匹配

在偶圖中,最大匹配的邊數等於最小覆蓋的頂點數

③ 完美匹配判定

G有完美匹配 <==> 對於V的每個非空真子集S,奇分支數ο(G-S)≤|S|

每個沒有割邊的3正則圖都有完美匹配

G有完美匹配 <==> G有1因子 (圖的一個1因子的邊集等價於圖的一個完美匹配)

④1-因子分解

完全圖K2n是1-可因子化 (除2n外,其余的每個數按箭頭方向移動一個位置,在每個位置,同一行的兩點鄰接就得到一個1因子)

任一正則偶圖是1-可因子化(不斷減去完美匹配的方式求得所有1因子)

任一個具有H圈的3正則圖是1-可因子化 (一個偶數個頂點的H圈可以分解為兩個1-因子的並)

若3正則圖有割邊,則不可1-因子分解

(2)匈牙利算法——尋找偶圖的最大匹配

從任一匹配M開始,若M飽和X中的每一個頂點,則M即為所求。否則,從在X在找一個非飽和點u,通過構造紮根於u的M交錯樹來尋找一條可擴路。交換邊,得到一個更大的匹配。
(3)最優匹配(最優分派問題)

最優匹配即在賦權完全偶圖中尋找一個具有最大權的完美匹配。可以通過Kuhn-Munkres最優匹配算法進行求解,該算法采用頂點標號修改策略。

3.7 平面性模型

(1)平面性判定

① 對於簡單圖G=(n, m),如果m>3n-6,則G是非可平面的;
② 對於連通圖G=(n, m),如果每個面次數至少為l≥3,且m>(n-2)l/(l-2),則G是非可平面
③ G是可平面的 <==> G不含有與K5或K3,3同胚的子圖 (庫拉托斯基定理)
④ G是可平面的 <==> G不含有能夠收縮成K5或K3,3的子圖 (瓦格納定理)
⑤ 通過平面性算法判定

⑥ 觀察法判斷,試圖通過移動邊,判斷是否可平面

(2) 平面性算法(DMP算法)

3.8 著色模型

(1) 求點色數

① 任意的圖G,均有χ≤Δ+1

② G是簡單連通圖,且G既不是完全圖也不是奇圈,則χ≤Δ

③ G是非空簡單圖,則χ≤Δ2+1 (找出所有頂點度≥其相鄰的頂點度 的頂點,在余下的頂點中找最大度的點,即為次大度,不等同於第二大度)

④ G是非空簡單圖,若G中度數最大的點互不相鄰,則χ≤Δ

⑤ 對任意的平面圖,均有χ≤5

⑥ 通過色多項式求得,即最小k使得Pk(G)不等於0

上面的各種方法都很繁瑣,僅給出了上界。在實際求解過程中,可以求得Δ2+1作為上界,即次大度加1。通過觀察是原圖是否存在Kn的子圖,若存在,則下界為n。例如,若原圖存在K3即三角形,則點色數至少為3。

(2) 求邊色數

① G是簡單圖,則χ’=Δ或Δ+1

② G是偶圖,則χ’=Δ

③ G是簡單圖,若n=2k+1且m>kΔ,則χ’=Δ+1

④ G是奇階Δ正則簡單圖,則χ’=Δ+1

⑤ 設無環圖G中邊的最大重數為μ,則χ’=Δ+μ

(3) 著色算法

對色集標號,每次給頂點著符合條件(相鄰的頂點不能著相同顏色)的最小顏色數。該算法只能保證最多用Δ+1種顏色給一個圖正常著色,但不能保證使用的顏色數一定是最少。

(4) 著色計數(求色多項式)

縮邊、加邊遞推法

① G為n階空圖,則 Pk(G)=kn

② Pk(Kn)=k(k-1)(k-2)…(k-n+1)

③ 若d(u)=1,則 Pk(G)=(k-1) Pk(G-u)

④ 加邊遞推法Pk(G-e) = Pk(G)+ Pk(G.e)

減邊遞推法Pk(G)= Pk(G-e)- Pk(G.e)

理想子圖法

理想子圖法改進
3.9覆蓋模型

(1)點覆蓋

一個圖的點獨立集(簡稱獨立集)是指圖中一些互不相鄰的點構成的點子集。含點數最多的獨立集稱最大獨立集,最大獨立集所含的頂點數稱為G的獨立數,記為α(G),簡記為α

G的一個覆蓋是指G的一個頂點子集K,使得G的每條邊都至少有一個端點屬於K。G的最小覆蓋的點數稱G的覆蓋數,記為β(G),簡記為β

(2) 邊覆蓋

G的最大匹配的邊數稱為G的邊獨立數,記為α’(G),簡記為α’。

設L是G的一個邊子集

G的一個邊覆蓋是指G的一個邊子集L,使得G的每個點均為L中某條邊的端點。G的最小覆蓋的邊數稱G的邊覆蓋數,記為β’(G),簡記為β’

(3) 點覆蓋與邊覆蓋關系

① 對任意n階圖G,均有α+β=n

② 對任意n階圖G,且δ(G)>0均有α’+β’=n

③ G是δ(G)>0的偶圖,則α=β’

3.10 強連通定向算法
(1) 存在性問題
定理3( 羅賓斯,1939) 非平凡連通圖G具有強連通定向<==> G是2邊連通的。
(2) 強連通定向算法
從已標號集合L中選擇其與未標號集合U有鄰點的最高標號的點v,擴展該點u,並標點u為點v標號值加1。對所有未賦方向的邊,由標號值大的頂點指向標號值小的頂點

3.11 點邊面關系運算

① 握手定理:圖G= (V, E)中所有頂點的度的和等於邊數m的2倍

② 設T是(n, m)樹,則:n=m-1

③ 設G=(n,m)是平面圖,則∑deg(f) = 2m

④ 平面圖歐拉公式:設G=(n,m)是連通平面圖,φ是G的面數,則n-m+φ=2

四、圖論分支

4.1 網絡圖論

網絡圖論又稱為網絡拓撲學,用圖的理論,對電路的結構及其連接性質進行分析和研究。

4.2 極值圖論

主要研究與圖相關的極大極小問題。比如最短路徑、最小生成樹、最大匹配、最小覆蓋、最大流等問題。更多信息,請參考維基百科Extremal Graph Theory。

4.3 代數圖論

用代數方法研究圖論問題。更多信息,請參考維基百科Algebraic Graph Theory。

4.4 拓撲圖論

直接看英文吧,It studies the embedding of graphs in surfaces, spatial embeddings of graphs, and graphs as topological spaces.It also studies immersions of graphs.更多信息,請參考維基百科Topological Graph Theory。

4.5 隨機圖論

研究以某種隨機方式產生點數、邊數以及邊的圖(英文原文:A random graph is a graph in which properties such as the number of graph vertices, graph edges, and connections between them are determined in some random way.)。更多信息,請參考維基百科Random Graph。

4.6 結構圖論

結構圖論的核心是哈密頓問題[3]。

五、幾組易混概念

5.1 圖論與拓撲學

圖論以前是作為拓撲學一章來講解,現在已經發展為獨立的學科。百度百科詞條拓撲學,說拓撲學是近代發展起來的一個研究連續性現象的數學分支。很費解對吧,看新浪愛問知識人一回答,說“拓撲學”主要研究的是出於數學分析的需要而產生的一些幾何問題。發展至今,拓撲學主要研究拓撲空間在拓撲變換下的不變性質和不變量。 維基百科詞條圖論,說圖論的研究對象相當於一維的拓撲學。

5.2 途徑、跡、路

5.3 歐拉閉跡 歐拉環遊 歐拉回路

5.4 H路 H圈 H圖

註:這幾個,等再看一遍書後再總結。

六、進一步閱讀

老師PPT給出如下參考文獻,我們用的是研究生教材(張先迪,李正良.圖論及其應用[M].北京:高等教育出版社.2005.2),感覺該教材主要是抄[1]的,難怪不是著而是主編。我看過[2]的,比較淺顯易懂,而且給出很多人物背景介紹,讀起來比較有意思。[3]我們老師也推薦比較多。

[1]美,幫迪《圖論及其應用》

[2]美,Gary Chartrand《圖論導引》,人民郵電出版社,2007

[3]Bela Bollobas,《現代圖論》,科學出版社,2001 中國科學院研究生教學叢書

[4]美,Fred Buckley《圖論簡明教程》,清華大學出版社,2005 李慧霸 王風芹譯

[5] 李尉萱,《圖論》,湖南科學技術出版社,1979

[6] 美,Douglas B.West《圖論導引》,機械工業出版社,2007 李建中,駱吉洲譯

[7] 楊洪,《圖論常用算法選編》,中國鐵道出版社,1988

[8] 陳樹柏,《網絡圖論及其應用》,科學出版社,1982

[9] Chris Godsil,Gordon Royle 《Algebraic Graph Theory》,世界圖書出版公司北京公司,2004

[10] 王朝瑞,《圖論》,高等教育出版社,1983

各種圖論模型及其解答(轉)