网路与多媒体试验口头专题报告-计算理论试验室.DOC

网路与多媒体试验口头专题报告-计算理论试验室.DOC

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
网路与多媒体试验口头专题报告-计算理论试验室

網路與多媒體實驗 口頭報告書面資料 Graph Theory (Applications in daily life) 姓名:王文斕 學號:組別:第二組 本報告以口頭報告之內容為基礎,並對其內容作更詳細之說明和解釋。故以下就圖論的這四個範疇作較詳細的理論探討: 一、圖的點著色(Vertex Coloring) 何謂圖的點著色?簡單的說,就是對圖的點著顏色。基於實際的問題內容(如一個人不能在同一時間參加兩個會議),還會要求任意有邊相連的兩點不可以著相同的顏色。這樣的一個著色方式稱之為圖的一個點著色法。如圖3.1和圖3.2各用了三個顔色。如果每個點都著不一樣的顏色,則一定是一個點著色法。問題是給定一個圖G,存在一個點著色法的最少顏色數是多少呢?而這個數目就稱為圖的點著色數,記作X(G)。求圖的點著色數是一個NP - Complete的問題,到目前仍未完全解決。不過,對於一些特殊類型的圖,則有不少的結果。例如在此我們所要討論的點著色數為2的圖,這類圖通稱為二部圖(Bipartite graph)。 圖3.2用了三個顔色,不過如果以紅綠兩個顏色依序對點著色就會是一個點著色法。因此圖3.2是一個二部圖。事實上,所有的偶圈都是二部圖。而一個二部圖是否為偶圈呢?答案是否定的。如圖3.3。 那麼如何判斷一個圖是否為二部圖呢?圖3.1是一個長度為5的奇圈,它的點著色數為3。事實上,所有奇圈的點著色數都是3。因此,一個含有奇圈的圖,其點著色數必定大於或等於3,這保證了此圖一定不是二部圖。換句話說,一個二部圖一定不含有奇圈。可是,一個不含奇圈的圖是否為二部圖呢?1936年,Konig證明了如下的定理: 定理:一個圖G是二部圖若且唯若G不含有奇圈。 給定一個不含奇圈的圖,要說明此圖是二部圖,其實就是要找一個恰好用兩個顏色的點著色法,這並不難做到。方法是先任選一點v,著紅色,而跟v相連的點則著綠色,假設u與v相連,則跟u相連的點都著紅色。依此類推,直到所有的點都著了顔色。如圖3.4所示。 至於演算法要如何敘述呢?因為我們只用兩個顔色,所以如果點v已著色,則跟v相連的點一定要著另一個顏色。接下來該如何繼續呢?方法是將跟v相連的點著色,然後將這些點依序放在一個叫做queue的地方,記作Q(一個queue就像火車上放塑膠茶杯的管子,先放進去的茶杯先拿出來使用,亦即FIFO)。執行演算法時,先找出Q中的第一個點v,從Q中去掉點v,再找出所有跟v相連且未著色的點,將這些點著跟v不同的顏色,並依序放在Q的末端。重覆這樣的步驟直到所有的點都著了顔色。 以上的演算法就是所謂的廣度搜尋(Breadth-First Search)的主要做法,它也常用來解決圖論的一些問題(例如找一個連通圖的生成樹也可以用廣度搜尋)。 依據上述的想法,可將演算法敘述如下: Breadth-First Search Input:一個不含奇圈的連通圖。 Step1:令Q=ψ。 Step2:任選一點v,將v著紅色並放進Q中。 Step3:令u是Q中的第一個點。從Q中去掉u。 Step4:找出所有跟u相連且未著色的點,將這些點著跟u不一樣的顏色並把這些點依序放在Q的末端。 Step5:如果所有點都已著色,則輸出結果,否則重覆Step3。 我們用圖3.5及表3.1來說明執行廣度搜尋法的過程和最後結果。 二、最小生成樹(Minimum Spanning Tree) 在口頭報告中我用了電信局配接電纜的問題來說明最小生成樹的應用實例,下面我將以圖論中的最小生成樹來模擬此問題,並藉以解釋找出最小生成樹的演算法: 要解決此問題,我們可以先建構一個賦權圖再加以討論。首先令圖的點集是由所有的電信局所構成,任意兩點連一個邊並在邊上給一個權值,也就是造價(造價太高的邊,可以不予考慮),這樣就構成了一個賦權圖。重點有兩項,一是連通性,要保留多少邊才能保持連通性;二是經費,在連通性的要求下,要保留那些邊才能使花費經費最小。由圖論的定理得知,一個n個點的連通圖至少要有n-1個邊,而一個n個點的樹圖恰有n-1個邊,故我們只須找到一個生成樹便能保持圖的連通性,而把生成樹上的權值加總,就是所需的經費。直覺上,考慮所有可能的生成樹,找出一個經費最少的生成樹,問題就解決了,但此做法可不可行呢?1857年,Cayley證明了如下的定理: 定理:設n≧2,則不一樣的n個點的樹圖共有nn-2個。 由上面的定理得知,如果電信局的數目為30個,則需要考慮的生成樹共有3028個!這是一個天文數字,用最快速的電腦也沒辦法檢驗。 在1956年,Kruskal解決了這個問題,他主要的想法是從邊著手。給定一個n個點的連通賦權圖,首先找一個權值最小的邊,放進T中(T是用來記錄最小生成樹的邊)。在執行Kruskal演算法的過程

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档