1. 程式人生 > >圖論(七)哥尼斯堡七橋問題

圖論(七)哥尼斯堡七橋問題

1736年,年僅29歲的數學家尤拉來到普魯士的古城哥尼斯堡(哲學家康德的故鄉,今俄羅斯加里寧格勒)。普瑞格爾河正好從市中心流過,河中心有兩座小島,島和兩岸之間建築有七座古橋。
這裡寫圖片描述
尤拉發現當地居民有一項消遣活動,就是試圖每座橋恰好走過一遍並回到原出發點,但從來沒人成功過。

尤拉證明了這種走法是不可能的。現在看來,尤拉的證明過程非常簡單,但他對七橋問題的抽象和論證思想,開創了一個新的學科:圖論(Graph)。

如今,無論是數學、物理、化學、天文、地理、生物等基礎科學,還是資訊、交通、經濟乃至社會科學的眾多問題,都可以應用圖論方法予以解決。圖論還是電腦科學的資料結構和演算法中最重要的框架(沒有之一)。
這裡寫圖片描述


首先能想到的證明方法是把走七座橋的走法都列出來,一個一個的試驗,但七座橋的所有走法共用7!=5040種,逐一試驗將是很大的工作量。尤拉作為數學家,當然沒那樣想。尤拉把兩座島和河兩岸抽象成頂點,每一座橋抽象成連線頂點的一條邊,那麼哥尼斯堡的七座橋就抽象成下面的圖:
這裡寫圖片描述
假設每座橋都恰好走過一次,那麼對於A、B、C、D四個頂點中的每一個頂點,需要從某條邊進入,同時從另一條邊離開。進入和離開頂點的次數是相同的,即每個頂點有多少條進入的邊,就有多少條出去的邊,也就是說,每個頂點相連的邊是成對出現的,即每個頂點的相連邊的數量必須是偶數。

而上圖中A、C、D四個頂點的相連邊都是3,頂點B的相連邊為5,都為奇數。因此,這個圖無法從一個頂點出發,遍歷每條邊各一次。

尤拉的證明與其說是數學證明,還不如看作是一個邏輯證明。一個曾難住那麼多人的問題,竟然是這樣一個簡單的出人意料的推理,還開創了一個新的學科。尤拉非常巧妙的把一個實際問題抽象成一個合適的數學模型,這種研究方法就是我們應該掌握的數學模型方法。這並不需要運用多麼深奧的理論,但能想到這一點,卻是解決問題的關鍵。