2013-01-21 62 views
1

的要求是,假設一個人去商場,他希望去特定的商店,從他目前的位置的兩個存儲之間繪製,所以應用程序會給他兩個選項可供選擇,當前商店和預定商店,在選擇這兩個選項後,地圖將彈出,顯示所選商店之間的最短路徑,即商店可能不同。地板。 由於沒有拉長可以使用,因爲商店是在同一商場我怎麼能這樣做,有些身體請幫助我。最短路徑在同一個商場

+0

一家商店是一個遊戲商店和其他一家酒吧對嗎?有沒有涉及的鞋子或服裝店? – trojanfoe

+0

@trojanfoe:任何類型的商店都可以在那裏,因爲商店在商場中,商場有各種商店。 – iShwar

+0

啊 - 真遺憾。這不是一個小問題。您需要有關商場的詳細模型信息,並需要設計一個複雜的路徑尋找算法。祝你好運。 – trojanfoe

回答

2

的溶液。將創建表示該商場加權圖:

  • 節點是所述存儲和路徑交叉點(即,樓層之間自動扶梯)

  • 邊緣是所述路徑連接它們

  • 邊緣的權重是節點之間行走的距離/時間

然後實現類似Dijkstra's algorithm找到兩個節點(門店)之間的最短路徑。

該溶液然後可以繪製爲疊加於地圖上的商場。

這是一個Shortest Path Problem的一個例子,這是經典的Travelling salesman problem

這個討論有客觀的C代碼的鏈接,可以幫助一個子集:Easy way to apply a shortest path alghoritm in objective c