哈密爾頓道路與哈密爾頓迴路

2022-05-02 11:15:12 字數 2708 閱讀 4836

簡介

2023年愛爾蘭數學家哈密爾頓發明了「周遊世界」玩具,用乙個正十二面體的20個頂點表示世界上20個大城市,30條稜代表這些城市之間的道路。要求遊戲者從任意乙個城市(即頂點)出發,延稜行走經過每個城市一次且只經過一次,最終返回出發地。哈密爾頓將此問題稱為周遊世界問題,並且作了肯定的回答。

以下是一種走法

與之等價的可以做成平面圖,按這個編號走是可行的

哈密爾頓道路與哈密爾頓迴路

哈密爾頓道路:

通過圖g中每個頂點一次且僅一次的道路稱作該圖的一條哈密爾頓道路.

哈密爾頓迴路:

通過圖g中每個頂點一次且僅一次的道路稱作該圖的一條哈密爾頓迴路.

哈密爾頓圖:存在哈密爾頓迴路的圖稱作哈密爾頓圖.

由定義可以看出,是否存在自環和重邊不影響哈密爾頓道路/迴路的存在性,因此以後只需考慮簡單圖的情況。(自己想為什麼)

儘管尤拉圖問題和哈密爾頓問題類似(前者是經過每條邊一次且僅且一次,後者是經過每個頂點一次且僅且一次),但後者卻要困難得多。哈密爾頓問題的判定和構造都困難得多(它是2023年證明得第一批npc問題),至今尚未找到乙個簡單得充分必要條件去判定乙個圖是否是哈密爾頓圖。

一些充分條件

基本判斷:

1、哈密爾頓圖一定不存在懸掛邊,至多存在哈密爾頓道路

2、哈密爾頓圖中不存在孤立頂點

3、n≥2時,kn是哈密爾頓圖,kn表示n階完全圖

我們有乙個直觀的感受——只要圖g中有「足夠多」得邊,那麼它就會是哈密爾頓圖

定理1:假設g是乙個n(n≥2)階簡單圖,如果g中任意一對頂點u和v,都滿足dge(u) + deg(v) ≥ n-1,則g中存在哈密爾頓道路  證明略(推薦)

定理2:假設g是乙個n(n≥3)階簡單圖,如果g中任意一對頂點u和v,都滿足dge(u) + deg(v) ≥ n則g中存在哈密爾頓迴路     

推論1:假設g是乙個n(n≥3)階簡單圖,

如果g中任意頂點的次數都至少是n/2,則g是哈密爾頓圖

推論2:假設g是乙個(n,m)簡單圖,若m≥(n^2 - 3n + 6)/2,則g是哈密爾頓圖

注意,上述都只是充分條件,不是必要條件

充要條件

首先引入乙個定義

定義:設無向簡單圖g,若存在一對不相鄰頂點u,v,使得deg(u)+deg(v)≥n,則構造g』 = ;再在g』上重複上述過程直至不再存在度數之和大於或等於n的不相鄰的頂點對為止,稱這樣所得到的圖稱為圖g的閉包,記為c(g).

如圖所示,右邊c(g)是左邊g的閉包.

定理1:設無向簡單圖g,且對g中任意一對不相鄰的頂點(u,v),有deg(u)+deg(v)≥n,則g是哈密爾頓圖的充分必要條件是g』 = 是哈密爾頓圖

定理2:設無向簡單圖g,則g是哈密爾頓圖的充分必要條件是c(g)是哈密爾頓    該定理可由定理1直接得到

應用例項

例項一:

假設在n(n≥4)個人中,任意兩個人合在一起都能認識其餘的n-2個人。證明他們可以圍成一圈,使相鄰者相互認識。

證:以每個人為頂點,相識者之間加邊,便構成乙個圖g,問題轉化為證明圖g是哈密爾頓圖。

分類討論,對任意兩個頂點u,v,若u,v認識,deg(u)+deg(v)≥n-2+1+1=n;若u,v不認識,考慮與u相識的w,w與v必定相識,否則的話,與u,v在一起能認識n-2個人矛盾,所有可以得出結論,u,v認識的人相同(n-2個),deg(u)+deg(v)=n-2+n-2≥n,由前面定理2知,圖g為哈密爾頓圖。

例項二:

地圖不存在相交的邊界。如果乙個地圖存在哈密爾頓迴路,則可以用四種不同的顏色對它的域進行染色,使相鄰的域染不同的顏色。

證:設h是圖g中一條哈密爾頓迴路,則h將g的域劃分成內域和外域兩部分,內域和外域均用兩種顏色染色,則四種顏色即可。

如果內域和外域不能用兩種顏色著色,則必然出現三個或三個以上的域相鄰的情況,這是,內域(外域)中定有乙個域的交點,它沒有被h穿過,與h是哈密爾頓迴路矛盾.

例項三:

有七名科學家參加乙個會議,已知a會將英語,b會將英語和中文,c會將英語、義大利語、俄語,d會將日語、中文,e會德語和義大利語,f會將法語、日語、俄語,g會將德語、法語。是否可以安排他們在乙個圓周圍桌,使得相鄰的科學家都可以用相同的語言交流?

解:頂點表示科學家,如果兩個科學家會共同的語言,則連一條邊,原問題轉化為求圖的哈密爾頓迴路。如圖

任取其中一條哈密爾頓迴路(可能不唯一)就是圍桌方案

1、中國大學mooc 離散數學 劉鐸

2、

哈密爾頓迴路

include define maxn 1000 using namespace std int n,nex maxn 3 mp maxn 3 maxn 3 n個點,nex存路徑,mp鄰接陣 bool expend int s else 若y的nex陣列未更新 1 當前x未更新nex陣列就把x的ne...

哈密爾頓迴路 C

突然記起來我大二寫了個哈密爾頓迴路.於是共享之.任務 求出全部的哈密爾頓迴路 完成感想 根據乙個 的演算法寫的,如果有高手可以提出改進的話,請發郵件到我的qq 409169964 ps 中國的 好多都是抄來抄去,只是名字改了.include include include include inclu...

哈密爾頓環

尤拉迴路是指不重複的走過所有路徑的迴路,而哈密爾頓環是指不重複地走過所有的點,並且最後還能回到起點的迴路。使用簡單的深度優先搜尋,就能求出一張圖中所有的哈密爾頓環,下面給出一段參考程式 include include include include include include include u...