第二部:環遊世界的十二面體
尤拉教我們如何優雅地走過每一座橋。但如果我們的目標不是走過橋,而是拜訪每一個城市呢?
1. 天才的木製玩具
時間來到 1857 年,愛爾蘭都柏林。
這裡有一位偉大的數學家與物理學家——威廉·盧雲·哈密頓 (William Rowan Hamilton)。他以發現「四元數」與重構經典力學(哈密頓力學)而聞名於世。但在他晚年,為了賺取一點外快,他發明了一款名為「環遊世界 (The Icosian Game)」的實體木製玩具。
這款玩具是一個正十二面體(有 20 個頂點,每個頂點代表世界上的一個著名城市,如倫敦、德里、東京等)。
遊戲規則很簡單:玩家必須從某個城市出發,沿著十二面體的邊緣前進,剛好拜訪每個城市(頂點)一次,並且最後回到出發點。
後來,數學家們將這種「剛好走過圖中每個頂點一次,並回到起點」的路徑,命名為「哈密頓迴路 (Hamiltonian Cycle)」。
2. 尤拉與哈密頓的本質差異
這聽起來是不是跟上一集的「哥尼斯堡七橋問題」很像?
讓我們來做個對比:
- 尤拉迴路 (Eulerian Cycle):要求走過每一條「線(邊)」剛好一次。
- 哈密頓迴路 (Hamiltonian Cycle):要求走過每一個「點(頂點)」剛好一次。
尤拉在 100 多年前就已經優雅地證明:要找尤拉迴路,只要檢查每個點連出去的線是不是都是偶數就好了。這是一個極度簡單且容易計算的規則。
哈密頓的玩具賣了 25 英鎊的版權費給玩具商,但他萬萬沒想到,這個尋找「哈密頓迴路」的問題,在數學本質上,竟然比尤拉迴路困難了幾百萬倍。
為什麼?因為判斷一張圖有沒有哈密頓迴路,沒有任何簡單的公式或捷徑可循。
3. 旅行推銷員的噩夢 (TSP)
當我們把哈密頓玩具上的十二面體,換成真實世界中的物流網路時,這個問題就會進化成電腦科學界最著名的難題之一:旅行推銷員問題 (Traveling Salesman Problem, TSP)。
想像一位推銷員,他必須拜訪全國的 50 個城市,並在最後回到家。每一對城市之間都有不同的距離成本。請問,他該怎麼規劃路線,才能在「拜訪所有城市(哈密頓迴路)」的前提下,讓總距離最短?
聽起來很實用對吧?今天的 FedEx 快遞、Uber 派車、甚至是晶片電路板的佈線,全部都是這個問題的變種。
但這是一個數學噩夢。
如果有 5 個城市,路線有 12 種組合,你用心算就能解開。 如果有 10 個城市,路線飆升到 18 萬種,電腦一秒就能算完。 但如果城市增加到 50 個 呢?
可能的路線組合數大約是 $10^{60}$ 種!就算你有一台能每秒計算一億次的超級電腦,從宇宙大爆炸那一天開始算,算到今天都還算不完其中微小的一部分。
4. P vs NP:世紀千禧難題
旅行推銷員問題,正是著名的 NP 完全問題 (NP-Complete) 的代表作。
在電腦科學中:
- P 類問題:代表電腦可以「快速解開」的問題(例如尋找尤拉迴路)。
- NP 類問題:代表如果別人給你一個答案,電腦可以「快速驗證」答案對不對,但電腦自己卻很難快速解開的問題(例如拼圖、密碼破解、尋找哈密頓迴路)。
目前所有的電腦科學家都強烈懷疑 P $\neq$ NP,也就是說,世上確實存在那些「容易驗證,卻永遠無法快速解開」的世紀難題。但至今沒有任何人能給出嚴謹的數學證明。這也是美國克雷數學研究所懸賞 100 萬美元的「千禧年大獎難題」之一。
從哈密頓的一個小木製玩具開始,圖論中的點與線,最終觸及了人類計算機運算能力的絕對極限。
下一集:如果走點和走線都這麼麻煩,那我們來「畫圖」吧!19 世紀的一位植物學家,在為英國地圖上色的時候,不經意地提出了另一個折磨數學界長達百年的世紀詛咒。