林婉聽了江凡的話,趕忙拖著餐盤做到江凡旁邊的位置,

江凡把手機放兩人中間,給她解釋道:

“這就是一個旅行商問題,用的是圖論的知識,

我們可以把它抽象成一個點線的圖,點代表7個城市,線代表彼此之間的航程,

線有權重,就代表他們之間的機票......”

江凡說的這個就是數學建模的一般思路,把現實的問題抽象成數學問題,

藉助數學的一些方法以及計算機的算力進行解決,然後可以反過來指導現實的生產。

而他們手裡的旅行商問題又是其中很經典且實用範圍很廣的問題,屬於最佳化組合範疇,是經典的NP難題,

包括電路佈線、輸油管路鋪設、連鎖店的貨物配送路線等,經過簡化後建模都可以變成旅行商問題,所以有很大的應用價值。

當然,解決思路也很多,但江凡不想給林婉講太複雜的,就選其中理解起來最簡單的一個‘蠻力演算法’來給她講,

於是接著道:“把這個問題抽象成一個完全圖後,算一下它的全排列個數,把這些可能都列出來,比較一下它們的大小就行了。”

說的同時也用手機畫圖軟體把點線權重圖給畫出來了。

接著給林婉提了問題:“你覺得有多少種組合?”

林婉這個簡單的還是會的,手機計算器算了下:

7!=7*6*5*4*3*2=5040種。

“這麼多啊。”林婉嘴抽抽。

“真需要這麼多嗎?”江凡引導,看她想不出來,就直接解釋了:

“這個問題最後會形成一個哈密爾頓迴路,額,就是指可以一筆都把連起來,

所以從哪個點開始是無所謂的,也就是隻需要算6的全排列,這樣就只有720種可能了。

又因為我們關心的迴路是沒有方向性的,因此在這些排列中兩個對稱的也只需要考慮一個,所以還可以再除以2,這樣就只剩下360個了。”

江凡循循善誘道。

“可是360個也很多啊,要一個個算出來嘛。”林婉還是很苦惱。

“你聽你剛才那個學長說的,只用給解題思路就行了。”江凡知道建模這東西結果不重要,反正有計算機去算,重要的是思路。

“對哦。”林婉也反應過來,喜出望外,拍了一下江凡胳膊:“凡哥,你太棒了。”

江凡心想我這兩天胳膊快被你拍廢了。

問題解決,吃完午飯,兩人找了間教室趴著休息了一會,下午按點去機房,

兩個學長已經在裡面了,江凡找了個角落繼續玩他的遊戲,

林婉則到黃偉學長旁邊,給他講了上午問題的分析思路。

黃偉還問了非完全圖怎麼弄以及花費最小和訪問每個節點恰好一次是否衝突之類的衍生問題,

因為江凡猜到對方可能會提,也提前跟林婉講了,所以林婉依然對答如流,

這讓黃偉學長稍稍覺得有些意外,以前問她題目,給的都是一些粗淺的理解,甚至有時給出的思路連題目都沒看全,

結果這次的問題,雖然也很基礎,但相比較她之前的表現簡直有點天差地別,長進了啊。

林婉能夠察覺到學長的表情是微微有些訝異的,心裡也很得意,還得是凡哥。