圖論演演算法
專業術語
圖論演演算法,專業術語,拼音為tú lùn suàn fǎ,在計算機科學中扮演著很重要的角色,它提供了對很多問題都有效的一種簡單而系統的建模方式。很多問題都可以轉化為圖論問題,然後用圖論的基本演演算法加以解決。
一、求出這個圖的補圖(1)輸入無向圖的各邊所關聯的頂點對,確定每個頂點度,以及圖的最大度數和最小度數,求出這個圖的補圖。
(2)輸入有向圖的各邊所關聯的頂點對,確定每個頂點的出度和入度。
二、編寫一個程序,要求於無向圖和有向圖都能做到:輸入圖的鄰接矩陣和正整數n,求長度為n的鏈和圈。
四、輸入圖的邊,確定這是否為連通圖。
(1)若不是連通圖,則確定連通分圖的個數;
(2)若是連通圖,判斷是否存在割邊和割點,若存在各是什麼?
五、輸入一個多重圖各邊關聯的頂點對。
(1)判斷它是否存在歐拉圈,若存在,則求出一個歐拉圈;
(2)若不存在,則判斷是否存在一個歐拉鏈,若存在則求之。
六、輸入一個簡單圖的邊列表。
(1)確定是否存在哈密爾頓圈,若存在求該哈密爾頓圈;
(2)若不存在,判斷是否存在哈密爾頓鏈,若存在則求之。
七、自選一個演演算法求貨郎擔問題。
八、給定帶權連通簡單圖的邊及權列表,輸入圖中兩個頂點,求兩點是否可達?若可達距離為多少?並輸出這條最短的鏈。
提示:
可以使用Dijkstra演演算法——迪傑斯特拉演演算法)
九、給定無向圖的邊列表,對該圖進行著色,求著色數。
十、輸入一個加權無向簡單圖的邊及權列表,求最小生成樹,以及這棵最小生成樹的權。
十一、輸入一段文章,全部用小寫字母,求各字母的哈夫曼編碼。
十二、要給n個人分配m個資源,輸入每個人可以獲得的資源情況,求最大匹配,
要求所有資源在滿足儘可能多的人獲得的情況下,全部分配出去。
有向無迴路圖
有向無迴路圖經常用於說明事件發生的先後次序,圖1給出一個實例說明早晨穿衣的過程。必須先穿某一衣物才能再穿其他衣物(如先穿襪子后穿鞋),也有一些衣物可以按任意次序穿戴(如襪子和短褲)。
圖中說明經拓撲排序的結點以與其完成時刻相反的順序出現。因為深度優先搜索的運行時間為θ(V+E),每一個v中結點插入鏈表需佔用的時間為θ(1),因此進行拓撲排序的運行時間θ(V+E)。
為了證明演演算法的正確性,我們運用了下面有關有向無迴路圖的重要引理。
有向圖G無迴路當且僅當對G進行深度優先搜索沒有得到反向邊。
證明:→:假設有一條反向邊(u,v),那麼在深度優先森林中結點v必為結點u的祖先,因此G中從v到u必存在一通路,這一通路和邊(u,v)構成一個迴路。
←:假設G中包含一迴路C,我們證明對G的深度優先搜索將產生一條反向邊。設v是迴路C中第一個被發現的結點且邊(u,v)是C中的優先邊,在時刻d[v]從v到u存在一條由白色結點組成的通路,根據白色路徑定理可知在深度優先森林中結點u必是結點v的後裔,因而(u,v)是一條反向邊。(證畢)
Topological_Sort(G)演演算法可產生有向無迴路圖G的拓撲排序
證明
假設對一已知有問無迴路圖G=(V,E)運行過程DFS以確定其結點的完成時刻。那麼只要證明對任一對不同結點u,v∈V,若G中存在一條從u到v的有向邊,則f[v]引理1矛盾。
因此,v必定是白色或黑色結點。若v是白色,它就成為u的後裔,因此f[v]
我想很多學習圖論的人都知道J.A. Bondy和U.S.R. Murty著的《Graph Theory with Application》(Elsevier,1976)是圖論教材中的經典,時至今日,仍不失為初學者較好的入門書。還記得蘭州交通大學的張忠輔教授說過,國內第一屆圖論學會就是把大家集中起來學習邦迪的《Graph Theory with Application》,由此可見這本書對國內圖論屆的影響是如此之大。吳望名等人將其譯成中文版本《圖論及其應用》(北京:科學出版社,1984),1988年張克民等人編寫了該書的參考答案《圖論及其應用習題解答》(清華大學出版社,1988)。
在2008年J.A. Bondy和U.S.R. Murty出了新書《Graph Theory》(GTM 244, Springer, 2008), 大家可不妨將其看成是《Graph Theory with Application》的第二版,這本書在內容上做了重新調整,畢竟在第一版出版后的近30年裡湧現出了很多新的結果,所以《Graph Theory》在內容上加進了一些新的結果,這本書我只是讀了其中的幾章,覺得寫的非常棒,建議大家能夠讀讀,這裡也值得一提的是將第一版最後提出的50個問題進行了更新,並補充了一些新的問題。總之,我個人認為,《Graph Theory》的確是一部很優秀的圖論教材。
中國科學技術大學出版社出版的《圖論及其演演算法》,融有向圖和無向圖為一整體,系統地闡述了圖論的基本概念、理論、方法及其演演算法,內容包括圖的基本概念、Euler圖與Hamilton圖、圖論演演算法、樹及其應用、平面圖、獨立集與匹配、網路流和Petri網。書中附有大量例題和習題,而且大部分習題有詳細解答。該書選材精鍊全面,內容處理恰當且有新意,立論嚴謹,敘述條理清晰,語言流暢。該書可用作高校計算機、電子、信息、管理、數學等專業本科生必修課教材,也可供相關專業的研究人員、教師及圖論工作者參考。
圖論演演算法是我們經常用來求解實際問題的一種方法,在數學建模的求解過程中也經常應用
目錄