2012年3月22日木曜日

改善:最短所要時間予測により検索ルート削減 ~ 5路線、6路線


改善版のプログラムでは、4路線の最短完乗ルートの検索を、藤が丘駅スタートで0秒、名古屋駅スタートで1秒で計算できた。

路線を増やして計算。

まずは藤が丘駅スタート


続いて名古屋駅スタート。
5路線、東山線、名城線、名港線、鶴舞線、桜通線

10分以上掛かってるので「時間切れ」で計算できず
1億5千万ルート以上を計算して終わらない。

4路線(東山線、名城線、名港線、鶴舞線)は 97,105ルート を0秒で計算。
桜通線は、名古屋、丸の内、久屋大通、今池、御器所、新瑞橋の6駅で他路線と交差しているので、それぞれの駅で乗り換えの可能性があることになる。
交差なので4分岐。
単純計算で、4の6乗 = 4096倍 のルート数。
4路線で 97,105ルートなので、97,106×4,096 = 397,742,080 で約40億ルート計算すれば終わる?
そんな単純な計算じゃないかな。

路線の順序を決めたばかりだけど、5路線目を上飯田線にして計算してみることにした。
上飯田線は、1区間だけで平安通駅から分岐している路線。
分岐が1つ増えるだけなので計算できそう。

5路線、東山線、名城線、名港線、鶴舞線、上飯田線
藤が丘 ~( 東山線 )~ 高畑
高畑 ~( 東山線 )~ 伏見
伏見 ~( 鶴舞線 )~ 上小田井
上小田井 ~( 鶴舞線 )~ 赤池
赤池 ~( 鶴舞線 )~ 上前津
上前津 ~( 名城線 )~ 平安通
平安通 ~( 上飯田線 )~ 上飯田
上飯田 ~( 上飯田線 )~ 平安通
平安通 ~( 名城線 )~ 金山
金山 ~( 名港線 )~ 名古屋港

藤が丘-(東山線)-本山-(東山線)-今池-(東山線)-栄-(東山線)-伏見-(東山線)-
名古屋-(東山線)-高畑-(東山線)-名古屋-(東山線)-伏見-(鶴舞線)-丸の内-(鶴
舞線)-上小田井-(鶴舞線)-丸の内-(鶴舞線)-伏見-(鶴舞線)-上前津-(鶴舞線)-
御器所-(鶴舞線)-八事-(鶴舞線)-赤池-(鶴舞線)-八事-(鶴舞線)-御器所-(鶴舞
線)-上前津-(名城線)-金山-(名城線)-新瑞橋-(名城線)-八事-(名城線)-本山-(
名城線)-平安通-(上飯田線)-上飯田-(上飯田線)-平安通-(名城線)-久屋大通-(
名城線)-栄-(名城線)-上前津-(名城線)-金山-(名港線)-名古屋港

所要時間: 277(分)

乗車時間: 187(分)
乗換回数: 5(回)×10(分)
折返回数: 4(回)×10(分)

intMakeRouteNum = 28236
intRouteNumMax = 42

--
処理時間: 2(秒)

intMakeRouteNum = 594340
intRouteNumMax = 42

今度は2秒で計算。
ルート数は 594,340ルート なので、 97,105ルート約6倍
こんなもんかな。


つづく。

0 件のコメント:

コメントを投稿