2012年3月14日水曜日

C言語版プログラムでどこまで計算できるのか


前回
  • 3路線 : 東山線、桜通線、名城線
  • 4路線 : 東山線、桜通線、名城線、名港線
  • 5路線 : 東山線、桜通線、名城線、名港線、上飯田線
まで計算した。

同じ1路線でも、1区間だけの名港線や上飯田線と鶴舞線では検索ルート数が大きく異なるはず。
今後改善を進めていくにあたり、路線の順序を決めることにした。

路線は開通順に、
  1. 東山線(1957年)
  2. 名城線(1965年)
  3. 名港線(1971年)
  4. 鶴舞線(1977年)
  5. 桜通線(1989年)
  6. 上飯田線(2003年)
に追加していく。

開通順とは言っても、ほとんどの路線は部分開通から徐々に延伸して全線開通しているので実際にはもっと複雑になるが、今回はそこまでは考えずに路線として最初に最初の区間が開通した順ということで上記の順とした。

スタート駅は藤が丘駅で始めているので藤が丘駅(東山線)
それと、JR、名鉄、近鉄のターミナル駅でもある名古屋駅(東山線、桜通線)の2駅。

計算時間は10分で打ち切り
10分経っても計算が終わらなければ、「計算できず」とする。

まずは藤が丘駅スタート。

3路線、東山線、名城線、名港線
藤が丘 ~( 東山線 )~ 高畑
高畑 ~( 東山線 )~ 栄
栄 ~( 名城線 )~ 金山
金山 ~( 名港線 )~ 名古屋港

藤が丘-(東山線)-本山-(東山線)-今池-(東山線)-栄-(東山線)-伏見-(東山線)
-名古屋-(東山線)-高畑-(東山線)-名古屋-(東山線)-伏見-(東山線)-栄-(名城
線)-上前津-(名城線)-金山-(名城線)-新瑞橋-(名城線)-八事-(名城線)-本山-
(名城線)-平安通-(名城線)-久屋大通-(名城線)-栄-(名城線)-上前津-(名城線
)-金山-(名港線)-名古屋港

所要時間: 155(分)

乗車時間: 125(分)
乗換回数: 2(回)×10(分)
折返回数: 1(回)×10(分)

intMakeRouteNum = 159
intRouteNumMax = 28

--
処理時間: 0(秒)

intMakeRouteNum = 862
intRouteNumMax = 28

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

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

所要時間: 245(分)

乗車時間: 185(分)
乗換回数: 3(回)×10(分)
折返回数: 3(回)×10(分)

intMakeRouteNum = 15693
intRouteNumMax = 40

--
処理時間: 1(秒)

intMakeRouteNum = 529845
intRouteNumMax = 40

5路線、東山線、名城線、名港線、鶴舞線、桜通線
計算できず。

6路線、東山線、名城線、名港線、鶴舞線、桜通線、上飯田線
計算できず。

続いて名古屋駅スタート。


3路線、東山線、名城線、名港線
名古屋 ~( 東山線 )~ 高畑
高畑 ~( 東山線 )~ 栄
栄 ~( 名城線 )~ 金山
金山 ~( 名港線 )~ 名古屋港
名古屋港 ~( 名港線 )~ 金山
金山 ~( 名城線 )~ 栄
栄 ~( 東山線 )~ 藤が丘

名古屋-(東山線)-高畑-(東山線)-名古屋-(東山線)-伏見-(東山線)-栄-(名城
線)-上前津-(名城線)-金山-(名港線)-名古屋港-(名港線)-金山-(名城線)-新
瑞橋-(名城線)-八事-(名城線)-本山-(名城線)-平安通-(名城線)-久屋大通-(
名城線)-栄-(東山線)-今池-(東山線)-本山-(東山線)-藤が丘

所要時間: 183(分)

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

intMakeRouteNum = 825
intRouteNumMax = 28

--
処理時間: 0(秒)

intMakeRouteNum = 2985
intRouteNumMax = 28

4路線、東山線、名城線、名港線、鶴舞線
名古屋 ~( 東山線 )~ 高畑
高畑 ~( 東山線 )~ 藤が丘
藤が丘 ~( 東山線 )~ 本山
本山 ~( 名城線 )~ 金山
金山 ~( 名港線 )~ 名古屋港
名古屋港 ~( 名港線 )~ 金山
金山 ~( 名城線 )~ 八事
八事 ~( 鶴舞線 )~ 赤池
赤池 ~( 鶴舞線 )~ 上小田井

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

所要時間: 264(分)

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

intMakeRouteNum = 16695
intRouteNumMax = 40

--
処理時間: 4(秒)

intMakeRouteNum = 1705788
intRouteNumMax = 40

5路線、東山線、名城線、名港線、鶴舞線、桜通線
計算できず。

6路線、東山線、名城線、名港線、鶴舞線、桜通線、上飯田線
計算できず。

これを基準に名古屋市営地下鉄全6路線最短完乗ルートの検索ができるように改善を進める。


つづく。

0 件のコメント:

コメントを投稿