第 260 回 PTT のお知らせ


日時: 2000年5月25日(木) 18:30 から
場所: 東京大学情報基盤センター4階会議室
    地下鉄千代田線根津駅下車.綾瀬にむかっていちばん前の改札口を通って地
  上に出る.右手すぐに"根津一丁目"という交差点が見えるので,そこを右折し
  て(ゲームセンター跡と薬屋の間の道)坂を登る.信号の少し手前左にある東大の
  入り口を入って直進するとつき当たり付近に大型計算機センターがあります.
  その建物の4階です.http://web.yl.is.s.u-tokyo.ac.jp/ut/maps/hongo.html
  のマップを参考にして下さい. 通常の入口が閉まった後は守衛さんのいる出入口
  で記帳をする必要があります. 


話者: 葛西 隆也(東京大学大学院工学系研究科計数工学専攻)
話題: 全探索で最長片道きっぷに挑む
概要:
最長片道きっぷとは、文字どおり片道きっぷのうち最も長いもののこと をさす。発着駅と途中の経路はいずれも自由で、「一筆書き」に近い、 片道乗車券の「発売条件」を満たしさえすればよい。

JRの最長片道きっぷがどのようなものになるかを求めるにはいくつか の方法があるが、今回は無謀にも全探索で巨大な路線網に挑んだ。悪戦 苦闘のすえ、「最長経路は北海道発九州着になる」という仮定のもとで ではあるが、最長ルートを見つけ出すことができた。「組合せ爆発」と CPU との壮絶な戦いの一端をご覧にいれようと思う。



第260回 PTTメモ


日 時:2000年 5月25日 (木) 18:30 から
場 所:東京大学情報基盤センター4階会議室
出席者:和田英一(富士通研究所)、山下伸夫(Time Intermedia)、 佐々木崇郎()、金東虎(理研)、森本武資、宮澤慎一、 鈴木信吾、元野智幸、豊泉敦也、山之内暢彦、福田伸彦、 山田浩之、佐藤喬、鷲谷公憲、多田好克、中村嘉志、唐野雅樹 (電通大)、根岸??()、村山慎也()、石畑清(明大)、 伊知地宏(富士ゼロックス)、斎藤隆文(農工大)、岩崎英哉、 宮代隆平、副田俊介、丸山一貴、寺田実、田中哲朗(東大)
題 目:全探索で最長片道きっぷに挑む
話 者:葛西 隆也(東京大学大学院工学系研究科計数工学専攻)
概 要:
 購入可能なJRの片道乗車券のうち最も距離の長いもの、いわゆる 「最長片道きっぷ」の発着駅および経路を、ごく単純な全探索で求めて みた。その結果、「最長経路は北海道と九州を通る」という仮定のもと での厳密解を求めることに成功した。計算時間は、今時の「ふつうの」 パソコンで約1日だった。

 全探索のアルゴリズムが非常に単純なので、組合せ爆発を避けるため、 問題をかなり細かく分割する必要が生じた。主にその分割方法、および 統合方法が見どころといえる。

 なお、発表後の懇親会にて、「募金を集めて実際に最長片道きっぷの ルートを旅行しよう(=話者に旅行させよう)」という話が持ち上がり、 どうやら実行に移されるもようである。


質疑応答:
Q. 本州と九州の間は新幹線と在来線の2本が通っているが、1本と数 えていいのか?

A. 新幹線と在来線の双方を使って本州・九州間を往復することも可能 だが、その場合には発着駅や経路などに大きく制限を受けるため、 経路全体の距離が著しく短くなってしまう。このため、どちらか1 本だけを考慮すれば十分である。(新幹線と在来線の営業キロは同 じなので、どちらを利用してもよい。)

Q. 最長片道きっぷを使っての旅行は何日位で達成可能か?

A. 以前にざっと調べたところでは約20日。その後、実際に旅行するた めにもう少しまじめに調べてみたところ、やはり20日あれば旅行で きると思われる。

Q. 全探索といっても、終点へ到達するパスがあるかの判定、終点へ到 達するパスの最大値の上限などの計算を入れれば、もっと速くなる のではないか?

A. その可能性は高い。発表後の雑談の中で、メモリ64KBの計算機で 最長ルートを計算した人が過去にいたということが判明したので、 今後はこうした「頭を使った全探索」によって計算量を減らし、 PC-8801FA と N88-BASIC でも最長ルートを求めてみたい。 (幸い、眠っていた手持ちの PC-8801FA はきちんと動作した。)

Q. 運賃計算の特例のチェックはどのように行ったのか?

A. 明らかに適用されることが分かるものはグラフに反映し、そうでな いものは、実際に算出された最長ルートが特例の対象になるかどう かを見てから対処した。 たとえば前者の例としては森・大沼間、後者の例としては天王寺・ 京橋間が挙げられる。 後者について補足。特例を何も考えずに最長ルートを求めると、天 王寺・京橋間は天王寺→西九条→大阪→京橋というルートになる。 しかし、大阪環状線内(+α)を通過する場合には、その区間内を 最短経路で運賃計算せねばならないという特例があるため、実際に このルートで乗ろうと思うと天王寺→鶴橋→京橋という近道で運賃 計算せざるを得ない。そこで、「天王寺・西九条・大阪・京橋のう ち、いずれかの区間に乗車しない経路のうちで最長のもの」を求め たところ、「最初に求まった経路の距離−特例による短縮分」を上 回れないことが判明したため、特例により縮められてもなお、最初 に求めた解が最長であるということがいえた。

Q. 最長片道きっぷはどんなところで買えるのか?

A. 建前上は、JRの乗車券を発売できる旅行会社等などではどこでも (乗車日の1カ月前から)購入できるはずだが、機械発券は不可能 なので、発券には熟練を要し、ほとんどの発行所では断られる公算 が大きい。(なお、複数名から「某旅行社の某支店がよい」とのア ドバイスがあった。) ちなみに、機械発券できるのは経路数(経由する路線の数)が20程 度までの場合である。「機械発券できる中で最長のきっぷはどんな ものだろう」ということでしばし盛り上がった。(発駅が決まれば たかだか深さ20程度の探索をやればいいので、全探索で求めてもそ れほど難しくないし、問題をわざわざ分割することもないだろうと いう結論に達した。)

Q. 実際に旅行すると、途中で列車を降りている時間はどのくらいある のか。

A. 具体的な数字は分からないが、都市から遠ざかるほど長くなるであ ろうことは想像できる。もし最短時間で旅行しようと考えると、首 都圏は(待ち時間が少ないので)かなり過酷なことになりそう。

Q. 鉄道は本来「いかに早く目的地に着くか」を考えて運営されている ものなのだから、最短経路を求める問題を考えるべきでは?

A. 道楽とはそういうもの。:-) あと、実際問題としてある2地点間の最短経路を求める問題は非常 にかんたんだと思われる。

 このほか、「ある2駅を選んで、その駅間の最短経路と最長経路の比 を最大にするにはどうしたらよいか」「近所の小学生が『60円旅行』を 自由研究の課題にしていた」「JR各社にまたがる乗車券の運賃の配分 について」「鉄道と郵便貯金」など、質疑応答の最後のほうはさながら プレ懇親会といった状況だった。