2012-02-18 48 views
-1

我有3輛公共汽車與3條路線讓我們的巴士與公交車A,公共汽車B,公共汽車C和他們的路線與r1,r2,r3 ..所以,那些地方是包括在他們的路線是如何找到兩個地方的路線

bus-A route is r1 
bus-B route is r2 
bus-C route is r3 

r1:[badoc,pin,curri,bat,san,laoag](vise versa) 
r2:[pag,bang,bur,pas,bac,laoag](vise versa) 
r3:[ban,mar,ding,san,laoag](vise versa) 

,我想找到最近的路線

CURRENT LOCATION:badoc 
TARGET LOCATION:laoag 

請幫我的算法應該怎麼弄的路線......非常感謝!

+0

'壞'甚至沒有在其中的路線.... – Nick 2012-02-18 12:45:58

+0

噢支持,應該是「badoc」 – 2012-02-18 12:59:35

+0

所以編輯你的問題,請 – Nick 2012-02-18 13:18:25

回答

1

您的問題可以使用Dijkstra's Algorithm來解決。將公交車站視爲節點,併爲每條邊使用加權。

+0

謝謝尼克...我可能會嘗試...我會在PHP中實現算法...你認爲它們是兼容的嗎? – 2012-02-18 13:01:12

+0

它看起來類似於統一的搜索算法吧? – 2012-02-18 13:02:54

+0

由於它是一種算法,即一組抽象的指令,它肯定與PHP兼容,與任何其他語言一樣 – Nick 2012-02-18 13:20:58

1

由於對這個問題進行建模的圖不是加權的,所以這裏不需要Dijkstra算法。

BFS也會找到最短路徑 - 並且更容易編碼並且會更快地找到解決方案。

模塊的圖形作爲G=(V,E)這樣V = { all stops }E = {(v,u) | u follows v as a stop in some bus }

創建圖表後,只需運行一個BFS - 由BFS找到了解決辦法是guaranteed to be optimal

+0

PHP中的任何示例代碼與BFS技術? im lil confused.thanks – 2012-02-18 14:33:19

+0

@NjLac:對不起,我對php一無所知[希望我會在明年夏天修復]。但BFS非常簡單,最多可以寫幾十行。 [有些語言甚至少於十幾種]。嘗試閱讀維基百科頁面,瞭解其工作原理。如果你對它不瞭解 - 你可以隨時發佈一個關於它的問題! – amit 2012-02-18 14:42:13

相關問題