Re: [新聞] 超狂數學教授活用演算法 高鐵分段買票竟

作者: orz8809ed (薑絲豬人)   2017-08-15 14:30:54
小弟學店資工系 簡單介紹一下這個演算法
作者在文中已經有提到是dijkstra's algorithm 戴克斯奧拉演算法
主要用在最短路徑的探討上
其實可以應用在很複雜的鐵路系統
可惜台灣高鐵連一圈都沒有連起來 所以簡單很多
範例影片 https://www.youtube.com/watch?v=5GT5hYzjNoo&t=5s
我們拿高鐵台北站來作範例
影片中會有無限符號可以想成無法直接買到那站的車票 要轉車所以暫時是未知
票價圖
http://imgur.com/K7isTxw
先把台北站可以到達的票價都先列出來
http://imgur.com/FOe9ktS.jpg
這是從台北坐到各站的價錢
台北->南港再到各站的價錢 比對之後沒有比較便宜的 所以照抄下來
台北到南港已經是最便宜 用紅色底標註
http://imgur.com/JkfckeI.jpg
然後比對從台北->板橋 再到各站的價格有無較便宜
剛剛忘記放數據了 這裡開始會放 未標註地名的是代表台北到該站再到各站的價錢
像下圖是台北到板橋再到各站 (台北到板橋:40 + 板橋到各站:x)
有標註地名的是表示從哪一站過來的
http://imgur.com/jbwwya3.jpg
所以可以看到從台北直達還是都比較便宜
下一站 桃園
台北->桃園->各站
http://imgur.com/rFdOmkp.jpg
這裡可以看到某些站的價格已經打平了
不過打平還不夠
http://imgur.com/NbdF4Qy.jpg
下一站 新竹
台北->新竹->各站
http://imgur.com/fw24NFz.jpg
還是打平的狀態
下一站 苗栗
各位同胞們我們在台北->苗栗->嘉義終於省了10塊錢啦(用藍色標註
http://imgur.com/5ArhDaB.jpg
所以嘉義那邊地名改成苗栗 以後到嘉義都要先到苗栗轉車
苗栗忘記打出來了= ="
下一站 台中
還是打平 這邊要注意到嘉義都要在苗栗轉車 所以到嘉義路徑是
台北->苗栗->台中->嘉義
http://imgur.com/IY7W54s.jpg
下一站 彰化
還是一樣 數據忘記截= =" 抱歉
http://imgur.com/NRoNMMJ.jpg
下一站 雲林
http://imgur.com/KAKClN9.jpg
還4一樣
http://imgur.com/Pat5ivk.jpg
下一站 嘉義
由於前面知道 台北到嘉義在苗栗轉車會比較便宜 所以剩下的台南和高雄都會在苗栗轉車
也就是 台北->苗栗->嘉義->各站 這樣子
http://imgur.com/pMFUDvp.jpg
左營再便宜了10元
下一站 台南
http://imgur.com/qPVVWyR.jpg
沒有比較便宜
http://imgur.com/ouAOTQh.jpg
所以根據dijkstra's 演算法
台北->苗栗->嘉義->左營
這樣轉車到左營的確可以便宜20元
不過這是沒有考慮時間的問題
如果考慮進時間的話
相信絕對還是是台北高雄直達CP值最高的
在此做個簡單的介紹 有誤還請指正
如果變成考題學弟妹不要怪我030
作者: seafox5566 (老貓)   2017-08-15 14:32:00
1f帥
作者: shiburin (廢文製造機)   2017-08-15 14:32:00
嗯跟我想的一樣
作者: mcmcmc (mcmcmc)   2017-08-15 14:34:00
操作不難 難的是證明為何是對的
作者: Cybershit (BMI<18der肥宅)   2017-08-15 14:34:00
高鐵路線基本上只是一條鍊 看不出Dijkstra's的特點
作者: seuil ( )   2017-08-15 14:35:00
演算法厲害 可以算出便宜20元 跟我用紙筆算的一樣
作者: wemee (方天畫)   2017-08-15 14:35:00
樓下跳針貪婪法則跟旅行背包解高鐵問題
作者: hipab (嗨趴)   2017-08-15 14:40:00
樓下負cycle shortest path 讓高鐵無限迴圈
作者: end81235 (21)   2017-08-15 14:49:00
在說什麼啊,每條路的成本不同,要看成不同的路啊
作者: fate201 (Licht)   2017-08-15 14:52:00
每條路的票價當成距離就好了 最終移動距離都相同啊
作者: end81235 (21)   2017-08-15 14:52:00
和一條鍊有什麼關係?路徑畫出來就是一張網
作者: Cybershit (BMI<18der肥宅)   2017-08-15 14:53:00
樓上 你有聽過最短路徑樹嗎還一張網勒...
作者: end81235 (21)   2017-08-15 14:54:00
…台北到台中,台中再到高雄,和台北到高雄是三條線講這樣夠白了吧…
作者: Cybershit (BMI<18der肥宅)   2017-08-15 14:56:00
不是很明白你想表達什麼 Dijkstra's只會留下到某個點
作者: end81235 (21)   2017-08-15 14:56:00
最短路徑樹是說,由某一個起點的角度來看的結果
作者: end81235 (21)   2017-08-15 14:57:00
和高鐵是直的是彎的,有沒有分枝沒有關係
作者: Cybershit (BMI<18der肥宅)   2017-08-15 14:57:00
這求的是單源最短路徑 我想你指的是all pairs
作者: Cybershit (BMI<18der肥宅)   2017-08-15 15:00:00
3樓? 你現在是在想證明嗎
作者: end81235 (21)   2017-08-15 15:01:00
4樓啦,看錯
作者: Cybershit (BMI<18der肥宅)   2017-08-15 15:02:00
這樣說好了 假設a到b有5種相異路徑 成本不盡相同演算法跑完 只會留下一種成本最低的路徑 其他的都不管單源最短路徑的情況下啦假設起點就是a 那Dijkstra's一旦走到了b 走法肯定是成本最低 所以之後再有路徑可以到b都無視 因為不會改善a到b 或是a經過b到其他點的距離在一條鍊的情況下這看不出來 因為只會一直往前鑽
作者: end81235 (21)   2017-08-15 15:08:00
……
作者: Cybershit (BMI<18der肥宅)   2017-08-15 15:08:00
哦應該說我錯了 這不算是一條鍊 因為各站間可以直達我誤會你了 你是對的
作者: end81235 (21)   2017-08-15 15:09:00
感謝原po補充
作者: Cybershit (BMI<18der肥宅)   2017-08-15 15:09:00
所以原圖的確是一張網 不是一條鍊
作者: end81235 (21)   2017-08-15 15:10:00
不會,互相討論
作者: zzzz8931 (肥宅)   2017-08-15 15:18:00
時間複雜度?

Links booklink

Contact Us: admin [ a t ] ucptt.com