我有一個假設的問題。假設我有一堆彼此相連的城市。這個問題純粹是假設的,所以我們如何連接它們並不重要(我們可以將它們看作某種圖形)。城市之間有巴士連接,但這些連接並不十分可靠。他們增加或刪除一段隨機時間,直到我們期望他們離開一個城市的時間,以及他們到達另一個城市的時間。我如何找到一種方法將一個人從一個城市帶到另一個城市儘可能快/相對較快但有更大的可能性? 我應該閱讀什麼樣的算法來解決這個問題?找到兩個城市之間的連接
回答
這是一個非常棘手的問題,可以用博弈論的方式來解決。
想到的最好的紙張是Botea 等的Multi-modal Journey Planning in the Presence of Uncertainty。人
本文的主旨是:
- 交通(步行,公交車或出租車)的每一種模式都有一定的時間範圍內才能讓你到達目的地,以及相應的機率。
- 您需要在時間Y的X地點,因此您假定每種交通方式的最壞情況
- 假設最差,您按最可能到達目的地的路線出發。
所以,如果出租車需要60-90分鐘之間,讓你到你的目的地,但乘坐巴士70總,你需要得到您的目的地在接下來的80分鐘,你會乘坐公交車。
但是,如果您需要在接下來的65分鐘內到達目的地,您需要乘坐出租車,因爲這是唯一可以準時到達目的地的方式。
我在想你可以適應你的方法。每個城市都通過巴士路線與K個其他城市連接,這些巴士線路有相應的持續時間和這些持續時間的概率。您可以將每條公交線路都視爲不同的交通方式。
另一種方法是在你的圖上使用A *,試圖尋求最小化不確定性和持續時間。
第二種方法(不完全相同但相關)的相關論文是FIRM: Feedback controller-based Information-state Roadmap - A framework for motion planning under uncertainty。
雖然本文涵蓋了很多關於動力系統的內容,但關於通過路線圖(圖)提取路徑以最小化不確定性的部分將會很有用。也許你可以適應這一點,以納入速度的某些方面。
如果變異確實是隨機的,那麼對我來說,你可以做的最好的事情就是找到連接數最少的路徑。這可以通過Breadth First Search完成。
看看路由算法,如Distance Vector Routing Protocol。它們旨在用於此目的。找到其他節點的方法,即使圖形發生變化。 您可以做什麼的簡短摘要如下:
- 每個城市都存儲它到達的所有城市的列表。隨着它存儲的距離,並通過它到達城市的鄰居節點。每個城市然後告訴它的鄰居它可以到達哪個節點。如果新近接收到的鄰居信息改變了當前可能的連接,則該城市更新其列表並將該信息傳播給其他人,直到列表不再改變。
- 每當城市發現與鄰居的連接斷開或恢復時,它會更新列表並將此信息傳送給其餘所有鄰居。每個鄰居然後更新他們的列表並將信息傳播給其他鄰居。
- 注意的「無窮計數問題」
我不認爲這是一個可能的解決方案爲這樣的問題。然而,在一個隨機性的世界裏(例如現實世界),每一次移動都會失敗,這裏有一個模型。嘗試使用離散時間馬爾可夫鏈(DTMC)。
你的每個城市都是馬爾可夫國家。 當你試圖從城市A轉移到城市B時,有成功和失敗的可能性。 失敗意味着你留在同一個城市。
使用DTMC,您可以計算出您需要製作多少個動作,以一定概率實現您的最終城市。
- 1. Android - 兩座城市之間的距離
- 2. 如何計算兩個城市之間的旅行時間?
- 3. 如何計算兩個國家之間的距離以及國家與城市之間以及城市與城市之間的距離?
- 4. php中的兩個城市之間的距離
- 5. 如何計算城市中兩個區域之間的距離
- 6. SQL Server查詢找到從城市A到城市B的所有轉接
- 7. 找到一個城市的州,州
- 8. Swift:Json解析兩個pickerView在國家和城市之間
- 9. 試圖找到所有沒有直飛城市的城市(PostgreSQL)
- 10. 找到位於每個城市SQL
- 11. 找到在同一個城市
- 12. 獲取兩個城市A和B之間的城市列表的解決方案
- 13. 集覆蓋城市之間的貨運
- 14. 序言:城市之間的距離
- 15. 通過道路獲取直接連接城市的城市列表
- 16. 查找城市所連接的最大地塊的算法?
- 17. 如何在Prolog中查找城市之間的距離?
- 18. 使用字典查找城市之間的最低溫度
- 19. 導軌 - 在它連接城市表
- 20. 是否可以在Google地圖中獲取城市A和城市B之間的城市列表
- 21. 如何計算城市X和城市Y之間的路線? #maps
- 22. 兩個橢圓之間的連接線
- 23. 兩個連接表之間的關係
- 24. 兩個用戶之間的連接
- 25. 兩個表之間的內部連接
- 26. 如何找到兩個城市之間的距離(以公里或米爲單位)
- 27. 選擇兩個城市的概率C++
- 28. RecordNotFound:無法找到ID = 0的城市
- 29. 找到像oodle.com最近的城市
- 30. 的MapReduce代碼找到城市
我選擇了這個答案,因爲它鏈接到有用的論文。但是,我想感謝你的答案。 – Lukasz