90
名古屋市営地下鉄 最小距離完乗 H.Hiro (@h_hiro_) わんくま同盟 名古屋勉強会 #39 ライトニングトーク

名古屋市営地下鉄最小距離完乗

  • Upload
    hiro-h

  • View
    211

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 名古屋市営地下鉄最小距離完乗

名古屋市営地下鉄 最小距離完乗

H.Hiro (@h_hiro_)

わんくま同盟 名古屋勉強会 #39 ライトニングトーク

Page 2: 名古屋市営地下鉄最小距離完乗

某所で研究の仕事

(情報系)をしている

H.Hiroと申します

Page 3: 名古屋市営地下鉄最小距離完乗

よろしくお願いします

Page 4: 名古屋市営地下鉄最小距離完乗

やったこと

Page 5: 名古屋市営地下鉄最小距離完乗

名古屋市営地下鉄

Page 6: 名古屋市営地下鉄最小距離完乗

一日で全線

乗り尽くしました

Page 7: 名古屋市営地下鉄最小距離完乗

それだけじゃ

大したこと

ないのですが

Page 8: 名古屋市営地下鉄最小距離完乗

最小の乗車距離で

乗り尽くしました

Page 9: 名古屋市営地下鉄最小距離完乗

名古屋市営地下鉄の路線は

全部で93.3kmある

Page 10: 名古屋市営地下鉄最小距離完乗

乗り尽くすにも

あまり余計な

乗車はしたくない

Page 11: 名古屋市営地下鉄最小距離完乗

なので

最小乗車距離で

乗り尽くす

Page 12: 名古屋市営地下鉄最小距離完乗

ルール: 「乗り尽くして、出発駅に戻る までの乗車距離」を最小にする

Page 13: 名古屋市営地下鉄最小距離完乗

「出発駅に戻るまで」

が重要

(計算が楽になる)

Page 14: 名古屋市営地下鉄最小距離完乗

93.3kmの路線網を

142.9kmで乗り尽くす。

これが最小です。

Page 15: 名古屋市営地下鉄最小距離完乗

なお、142.9kmって

名古屋~京都の

片道くらいはある ※東海道新幹線経由での実際の距離

(営業キロではない)が約134km

Page 16: 名古屋市営地下鉄最小距離完乗

14時間かけて乗り尽くしました

(駅周辺散策の時間含む)

Page 17: 名古屋市営地下鉄最小距離完乗

レポート

Page 18: 名古屋市営地下鉄最小距離完乗

ルール:

終点駅と

地下鉄同士の接続駅は

駅周辺をレポートする

Page 19: 名古屋市営地下鉄最小距離完乗

1. 中村区役所駅

(累計0.0km 9:20ごろ着)

Page 20: 名古屋市営地下鉄最小距離完乗

言うまでもなく

中村区役所の目の前

Page 21: 名古屋市営地下鉄最小距離完乗

七宝・津島へ向かうバスが

通っている

Page 22: 名古屋市営地下鉄最小距離完乗

2. 名古屋駅

(累計0.9km 9:55ごろ着)

Page 23: 名古屋市営地下鉄最小距離完乗

単に駅の中を見ても面白く ないので、KITTE名古屋へ。

まだ空きが多い

Page 24: 名古屋市営地下鉄最小距離完乗

3. 高畑駅

(累計7.5km 10:40ごろ着)

Page 25: 名古屋市営地下鉄最小距離完乗

飲み物を買うのに、スーパーが 近くにあることを期待したのだが なかった(コンビニで買った)

Page 26: 名古屋市営地下鉄最小距離完乗

4. 藤が丘駅

(累計28.1km 11:35ごろ着)

Page 27: 名古屋市営地下鉄最小距離完乗

地下鉄は上の高架です。 下に行くとリニモです。

Page 28: 名古屋市営地下鉄最小距離完乗

5. 本山駅

(累計34.5km 12:15ごろ着)

Page 29: 名古屋市営地下鉄最小距離完乗

周辺は学習塾が多かった。 名大が近い土地柄?

Page 30: 名古屋市営地下鉄最小距離完乗

オムライスおいしかった (近くの店)

Page 31: 名古屋市営地下鉄最小距離完乗

6. 今池駅

(累計37.0km 13:10ごろ着)

Page 32: 名古屋市営地下鉄最小距離完乗

近くに 「ダイエー通り」ってあるけど

Page 33: 名古屋市営地下鉄最小距離完乗

イオンに変わってしまった

Page 34: 名古屋市営地下鉄最小距離完乗

7. 丸の内駅

(累計40.9km 13:50ごろ着)

Page 35: 名古屋市営地下鉄最小距離完乗

交差する道がとても広い (伏見通・桜通)

→歩道橋もとても長い

Page 36: 名古屋市営地下鉄最小距離完乗

8. 上小田井駅

(累計47.2km 14:20ごろ着)

Page 37: 名古屋市営地下鉄最小距離完乗

高架の上を 二つの高架が跨ぐ (城北線・名二環)

Page 38: 名古屋市営地下鉄最小距離完乗

9. 名古屋港駅

(累計63.6km 15:35ごろ着)

Page 39: 名古屋市営地下鉄最小距離完乗

この日は名古屋みなと祭 だったので、ちょっとだけ 見て混まないうちに退散

Page 40: 名古屋市営地下鉄最小距離完乗

10. 金山駅

(累計69.6km 16:30ごろ着)

Page 41: 名古屋市営地下鉄最小距離完乗

これでようやく

乗車距離

半分くらい

Page 42: 名古屋市営地下鉄最小距離完乗

この写真の中に 山ちゃんが3店あります

Page 43: 名古屋市営地下鉄最小距離完乗

11. 八事駅

(累計78.8km 17:25ごろ着)

Page 44: 名古屋市営地下鉄最小距離完乗

西側だけ下り坂、他が上り坂 という山の途中

山と言われる喫茶店もそんなに遠くない

Page 45: 名古屋市営地下鉄最小距離完乗

12. 赤池駅

(累計84.2km 18:10ごろ着)

Page 46: 名古屋市営地下鉄最小距離完乗

ここは日進市です。 日進市のバスが来ます。

Page 47: 名古屋市営地下鉄最小距離完乗

12. 上前津駅

(累計95.8km 19:00ごろ着)

Page 48: 名古屋市営地下鉄最小距離完乗

あまり説明しなくていいかな…

Page 49: 名古屋市営地下鉄最小距離完乗

初めて万松寺の中に入って みたけど、改装中で、入れる スペースが限定されてた

Page 50: 名古屋市営地下鉄最小距離完乗

13. 栄駅

(14. 久屋大通駅)

(累計97.2km 19:35ごろ着)

Page 51: 名古屋市営地下鉄最小距離完乗

オアシス21のこの壁画 なぜに円周率…

Page 52: 名古屋市営地下鉄最小距離完乗

15. 平安通駅

(累計102.4km 20:15ごろ着)

Page 53: 名古屋市営地下鉄最小距離完乗
Page 54: 名古屋市営地下鉄最小距離完乗

そろそろ

疲れてきた

Page 55: 名古屋市営地下鉄最小距離完乗

でもここだと

夕食取りやすい

雰囲気が

ないので移動

Page 56: 名古屋市営地下鉄最小距離完乗

16. 上飯田駅

(累計103.2km 20:30ごろ着)

Page 57: 名古屋市営地下鉄最小距離完乗

かつての終点駅だったからか 店も多い

Page 58: 名古屋市営地下鉄最小距離完乗

駅ビルが駅がなくなっても そのまま使われたり バスターミナルが

市営住宅と一体化していたり

Page 59: 名古屋市営地下鉄最小距離完乗

17. 新瑞橋駅

(累計116.5km 21:45ごろ着)

Page 60: 名古屋市営地下鉄最小距離完乗

名城線

半周は長い!

Page 61: 名古屋市営地下鉄最小距離完乗

ここも、バスターミナルが 広かったり、店が多かったり。 なお、ここもかつての終点駅

Page 62: 名古屋市営地下鉄最小距離完乗

18. 徳重駅

(累計123.8km 22:20ごろ着)

Page 63: 名古屋市営地下鉄最小距離完乗

駅周辺から、最近整備されたと いう雰囲気が伝わってくる (道路のきれいさとか)

Page 64: 名古屋市営地下鉄最小距離完乗

19. 御器所駅

(累計134.5km 23:05ごろ着)

Page 65: 名古屋市営地下鉄最小距離完乗

家に帰る電車が

なくなるかもという

懸念発生!

Page 66: 名古屋市営地下鉄最小距離完乗

なので駅前の写真を 数枚撮って終わり!

Page 67: 名古屋市営地下鉄最小距離完乗

1. 中村区役所駅 (142.9km 23:30ごろ)

Page 68: 名古屋市営地下鉄最小距離完乗

ゴール!

Page 69: 名古屋市営地下鉄最小距離完乗

あ、家には 無事帰れました

Page 70: 名古屋市営地下鉄最小距離完乗

結論:

乗り尽くすの案外大変だよ!

Page 71: 名古屋市営地下鉄最小距離完乗

ところで

Page 72: 名古屋市営地下鉄最小距離完乗

一駅忘れてた

Page 73: 名古屋市営地下鉄最小距離完乗

伏見駅

Page 74: 名古屋市営地下鉄最小距離完乗

(´・ω・`)

Page 75: 名古屋市営地下鉄最小距離完乗

ここから

アルゴリズムの話

Page 76: 名古屋市営地下鉄最小距離完乗

計算のポイント(1)

Page 77: 名古屋市営地下鉄最小距離完乗

「出発駅に戻る」には

「行き止まりは必ず折り返す」

必要がある

Page 78: 名古屋市営地下鉄最小距離完乗

なので、行き止まりの区間は

2回乗ることが確定

(緑の線)

Page 79: 名古屋市営地下鉄最小距離完乗

計算のポイント(2)

Page 80: 名古屋市営地下鉄最小距離完乗

「出発駅に戻る」には 「どの駅も、到着回数と 離脱回数が同じ」必要

Page 81: 名古屋市営地下鉄最小距離完乗

1回通るだけでは 「到着+離脱」が奇数回になる

駅を集め、偶数回にする

丸の内 本山

八事

新瑞橋

Page 82: 名古屋市営地下鉄最小距離完乗

解:これらの駅を2つずつ 組にし、距離の合計が最小に

なるようにすればよい

丸の内 本山

八事

新瑞橋

Page 83: 名古屋市営地下鉄最小距離完乗

解:これらの駅を2つずつ 組にし、距離の合計が最小に

なるようにすればよい

丸の内 本山

八事

新瑞橋

Page 84: 名古屋市営地下鉄最小距離完乗

解:これらの駅を2つずつ 組にし、距離の合計が最小に

なるようにすればよい

丸の内 本山

八事

新瑞橋

Page 85: 名古屋市営地下鉄最小距離完乗

答え ペア1 ペア2 合計距離

パターン1 丸の内-新瑞橋

9.0km 本山-八事

3.1km 12.1km

パターン2 丸の内-八事

8.7km 本山-新瑞橋

6.6km 15.3km

パターン3 丸の内-本山

6.4km 八事-新瑞橋

3.5km 9.9km

Page 86: 名古屋市営地下鉄最小距離完乗

解:これらの駅を2つずつ 組にし、距離の合計が最小に

なるようにすればよい

丸の内 本山

八事

新瑞橋

Page 87: 名古屋市営地下鉄最小距離完乗

解:これらの駅を2つずつ 組にし、距離の合計が最小に

なるようにすればよい

丸の内 本山

八事

新瑞橋

Page 88: 名古屋市営地下鉄最小距離完乗

太線を2回ずつ それ以外を1回ずつ

通るルートが最短です。

Page 89: 名古屋市営地下鉄最小距離完乗

駅数が増えても

解き方は同じ (本当に多くなると

コンピュータに解かせないと

大変ですけどね)

Page 90: 名古屋市営地下鉄最小距離完乗

詳しくはこのあたりを

中国人郵便配達問題 – Wikipedia

(私も編集を加えてます)

https://ja.wikipedia.org/wiki/中国人郵便配達問題

Boost.GraphでJR全線乗り尽くしプランを立てる

(プログラミング生放送+CLR/H+Sapporo.cpp 勉強会@札幌)

http://www.slideshare.net/maraigue/chinese-postman