「尤拉迴路」與「哈密爾頓迴路」

2021-05-26 14:06:33 字數 1692 閱讀 6941

「尤拉迴路」與「哈密爾頓迴路」

1.尤拉迴路

17世紀的東普魯士有一座哥尼斯堡(konigsberg)城(現為**的加里寧格勒(kaliningrad)城),城中有一座奈佛夫(kneiphof)島,普雷格爾(pregol)河的兩條支流環繞其旁,並將整個城市分成北區、東區、南區和島區4個區域,全城共有7座橋將4個城區相連起來,如圖1所示。人們常通過這7座橋到各城區遊玩,於是產生了乙個有趣的數學難題:尋找走遍這7座橋,且只許走過每座橋一次,最後又回到原出發點的路徑。該問題就是著名的「哥尼斯堡七橋問題」。

圖1  哥尼斯堡地圖

2023年,大數學家列昂納德·尤拉(l.euler)發表了關於「哥尼斯堡七橋問題」的**—《與位置幾何有關的乙個問題的解》(solutio problematis ad geomertriam situs pertinentis),他在文中指出,從一點出發不重複地走遍七橋,最後又回到原出發點是不可能的。

為了解決哥德斯堡七橋問題,尤拉對該問題進行了抽象,用4個字母a、b、c、d代表4個城區,用7條線表示7座橋,如圖2所示。這樣做抽象出了問題中最本質的東西,忽視問題非本質的東西(如橋的長度、寬度等),從而將哥尼斯堡七橋問題抽象為乙個數學問題,即經過圖中每邊一次且僅一次的迴路問題。尤拉在**中論證了這樣的迴路是不存在的,後來,人們把有這樣迴路的圖稱為尤拉圖。

尤拉在**中將問題進行了一般化處理,即對給定的任意乙個河道圖與任意多座橋,判定可能不可能每座橋恰好走過一次(不一定回到原出發點),並用數學方法給出了3條判定的規則:

(1)如果通奇數座橋的地方不止兩個,滿足要求的路線是找不到的。

(2)如果只有兩個地方通奇數座橋,可以從這兩個地方之一出發,找到所要求的路線。

(3)如果沒有乙個地方是通奇數座橋的,則無論從**出發,所要求的路線都能實現。

上述3條判定規則包含了任一連通無向圖是否存在「尤拉路徑(euler path)」和「尤拉迴路(eulercircuit)」的判定條件。根據判定規則(3)可以得出,任一連通無向圖存在尤拉迴路的充分必要條件是圖的所有頂點均有偶數度。

圖2  圖

2.哈密爾頓迴路

「哈密爾頓迴路問題」問題是愛爾蘭著名學者威廉·哈密爾頓爵士(w.r.hamilton)2023年提出的乙個數學問題。其大意是:在任一給定的圖中,能不能找到這樣的路徑,即從一點出發不重複地走過所有的結點(不必通過圖中每一條邊),最後又回到原出發點。

3.尤拉迴路與哈密爾頓迴路的區別

「哈密爾頓迴路問題」與「尤拉迴路問題」看上去十分相似,然而卻是完全不同的兩個問題。「哈密爾頓迴路問題」是訪問除原出發結點以外的每個結點一次且僅一次(圖2有哈密爾頓迴路,如b到c到a到d再到b就是乙個迴路),而「尤拉迴路問題」是訪問每條邊一次且僅一次;對任一給定的圖是否存在「尤拉迴路」尤拉已給出了充分必要條件,而對任一給定的圖是否存在「哈密爾頓迴路」至今仍未找到滿足該問題的充分必要條件。

4.例題

賽納河流經巴黎的這一段河中有兩個島,河岸與島間架設了15座橋。如下圖所示。問:(l)能否從某地出發,經過這15座橋各一次後再回到出發點?

(2)若不要求回到出發點,能否在一次散步中,穿過所有的橋各一次?若可以,請把路徑寫出。

解:將該問題進行抽象,如下圖所示.(1)就變成了是否存在尤拉迴路的問題了;(2)就變成了是否存在尤拉路徑的問題了.

a和b是通偶數座橋的地方,c和d是通奇數座橋的地方,滿足尤拉給出的判定規則(2),即如果只有兩個地方通奇數座橋,可以從這兩個地方之一出發,找到尤拉路徑;但不滿足規則(3),即不存在尤拉迴路。

哈密爾頓迴路

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...

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

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

哈密爾頓迴路 C

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