最長片道きっぷの経路を求める
[付録1-3] 2002年12月版(新戦略編)

このページのあらまし

 約3年ぶりに「全面的な再計算」を行うのにあたり、 3年前と同じでは芸がないので、新たな「計算戦略」を導入しました。
 この戦略により、タイプ Lee の最長経路を求めてしまえば、タイプ Lee 以外のタイプに望みがないことを1回の計算で証明することが可能になりました。


目次


今回の「新戦略」とは…

 このページで扱うのは、 整数計画法で最長片道きっぷの経路を求める場合の「新戦略」に関する話題です。
 より具体的にいうと、タイプLの最長経路をあらかじめ求めておけば、 「タイプL以外の経路はタイプLの経路を上回れない」ということを、 1つの整数計画問題を解くだけで証明してしまえるというのが、 今回新たに考案した戦略です。

一般的な話ではありません

 念のため、誤解のないように書いておきますが、 この戦略は問題の対象を「現在のJRの路線図のうち、 北海道・四国・九州を1本の枝にまとめて本州の路線図につなげたもの」、 すなわち「現在のJRの最長片道きっぷを求めるのに必要な路線図」に絞ったもので、 一般的な路線図すべてに適用できるものではありません。
 2002年11月までの最長経路を見ると、2002年12月以降も、 前述の路線図ではタイプLが最長であることが予想されます。 それなら、他のタイプの扱いをできるだけ簡略化すれば、 全体として計算が楽に済むだろう、という考えです。


おさらい:従来の戦略

 整数計画法で最長経路を求めるには、まず北海道、四国、 九州の3島について「本州と出入りできる経路のうち最長のもの」を求めておき、 この「出入り可能な最長経路」と同じ長さを持つ枝(行き止まりの路線)を計3本、 本州の路線図に付け加えてやるのでした。以後は、この「気分的にはJR全線」 の路線図のもとで整数計画問題をいくつか解いていきます。 (よく分からない人は [2-4] により詳しい説明がありますので参考にしてください)。
 この路線図上では、「北海道と九州の双方を通る経路」は必ずタイプLとなるので、 3島のうちたかだか1つしか通れないタイプPは圧倒的に不利です。
 このことを利用すると、 「タイプPのうちで最長のもの」を苦労して求める必要はなく、 以下のような順序で「全タイプを通じた最長経路」を求めることができるのでした。

  1. タイプLの最長経路を厳密に求める
  2. タイプPの全経路のほかにタイプPでない経路を一部含む、 「ゴミ入りタイプP」という分類を定義し、これの最長経路を求める
    (「ゴミ入りタイプP」の最長経路は絶対に「ちゃんとしたタイプP」の最長経路以上の長さである)
  3. 「ゴミ入りタイプP」の最長経路がタイプLの最長経路を上回れないことを示し、 タイプLの最長経路が全タイプを通じて最長であると結論づける

 さて、ここで「タイプP」と書いた経路は、発駅の性質により「タイプ Pe」と「タイプ Pn」に分類され、さらに「タイプ Pn」は、 「1駅延長したときの形態」により「タイプB」と「タイプ B8」に分類されます。つまり、タイプPは Pe、B、B8 という3タイプに分類されます。
 本編では、この3タイプを別々に扱い、 上記のような方法で3つのタイプをそれぞれ否定し、 タイプLが最長であると結論づけました。


「大きな網」で3タイプを一網打尽

 さて、共同研究者の宮代くんは、新たな最長ルートを求めるにあたって、 「タイプL以外の3タイプをひとまとめにする」方法を思いつきました。

3タイプの性質

 P形の経路を定式化する際に生まれた3つのタイプは、 それぞれ以下のような性質を持っています (参考としてタイプLについても書いておきます)。

表 A1 タイプ Pe・B・B8 の性質
タイプ Pe タイプ B タイプ B8 タイプL
(参考)
終端駅を何度通るか 1回 0回 0回 2回
1つの駅に接続する枝を
同時に最大何本使うか
3本 3本 4本 2本
ただし、終端駅以外では
「1本だけ使う」ことを許さない
「1つの駅に接続する枝を3本同時に使う」
ことを何度許すか
1回 2回 0回 0回
「1つの駅に接続する枝を4本同時に使う」
ことを何度許すか
0回 0回 1回 0回

「0回」と「1回」、まとめて「1回以下」

 このように、Pe、B、B8 の3タイプはそれぞれ性質が異なるので、 正直にこれを定式化すると各タイプで異なった制約式ができます。 だからこそ、本編ではこの3タイプを別物として扱い、 同じようなことを3回やったのです。
 が、制約を緩くしてよいのなら、3タイプを同じ制約式で表現できます。 この部分が「新たな戦略」のキモです。
 たとえば「終端駅を何度通るか」に関しては、 タイプ Pe が1回、その他が0回となっていますが、 これを「1回以下」と書けば3タイプに共通の制約式になります。 同様に、1つの駅に接続する枝を「4本以下」と書けば、 「同時使用本数」についても3タイプを1つの制約式で記述できることになります。


「4本同時使用」をどうするか

 ちょっとややこしいのが「3本同時使用」「4本同時使用」ですが、 結論からいえば、「4本同時使用は1回だけ」という制約を 「3本同時使用は4回だけ」と書き換えることで、 3タイプをまとめることができました。

おさらい:「3本同時使用」の定式化

 「3本同時使用が1回だけ」という制約をどう定式化するかについては本編([2-3])でふれましたが、 もう一度おさらいしておきます。
 「ある駅に接続する枝を3本同時に使うときだけ1になる変数」として0-1変数 fi を用意し、a、b、c の3本の枝が出ている駅 p に対して

fp ≧ la + lb + lc − 2 (A1)

と定義します。ここで la は「a 番の枝を通る」ときに1、 「通らない」ときに0になる変数です。
 d、e、f、g と4本の枝が出ている駅 q に対しては、

fq1 ≧ ld + le + lf − 2 (A2)
fq2 ≧ ld + le + lg − 2 (A3)
fq3 ≧ ld + lf + lg − 2 (A4)
fq4 ≧ le + lf + lg − 2 (A5)

のように「4本の枝から3本をとる組合せ」をすべて列挙してやればよく、最後に

Σi fi ≦ 1 (A6)

という制約式を入れれば、 「1つの駅から出る枝を3本同時に使用する」回数はたかだか1回にできるのでした。 (5分岐以上の駅に対しても、3本ずつ取り出して列挙すれば同様に扱えます。)
 いっぽう、タイプ B8において必要な「4本同時使用は1回だけ」 という制約の定式化については本編でふれませんでしたが、 「3本同時使用」とまったく同じ手法を使いました。 タイプ B8では「4本同時使用」は1回あるものの「3本同時使用」はないので、 fi は定義せず、かわりに「4本同時使用のときだけ1になる変数」 ei を定義していたのです。

4本同時使用で何が起こる?

 さて、1つの駅から出る枝を4本同時に使用する場合に、 前述の fi が定義してあったら、その値はどうなるでしょうか?

 たとえば、d、e、f、g という4本の枝が出ている駅 q があって、これら4本の枝をすべて使うとすると、 ld、le、lf、lg はいずれも1なので、式 (A2)〜(A5) により fq1〜fq4 はいずれも1となります。もし、この駅以外に「3本以上同時使用」がなければ、 Σi fi の値は4となります。
 このことを利用して、タイプ B8でも ei を定義する代わりに fi を定義し、

Σi fi ≦ 4 (A7)

とすれば、ei を使って定式化するより制約が若干緩くなるものの、 「4本同時使用」を1回以下に抑えられます。

 これでもうお分かりでしょう。 「4本同時使用が1回」という制約を「3本同時使用が4回」とみなせば、

となることから、 「3本同時使用は4回以下」という制約式で3タイプを総括できるのです。


新戦略のまとめ

 長くなりましたが、タイプ Pe、タイプ B、タイプ B8の3タイプは、以下のような共通の制約(以下「PBB8 制約」と呼ぶ)を満たします。

ゴミにも負けず、タイプLの勝ち!

 PBB8 制約を満たす経路には、タイプ Pe、タイプ B、タイプ B8 の3タイプに属するすべての経路のほかに、「3タイプのどれにも属さない経路」、 つまり「ゴミ」も多く含まれています(図 A2)。
 が、「PBB8 制約を満たすもののうちで最長のもの」、 すなわち「タイプ Pe とタイプ B とタイプ B8 とゴミの中で最長のもの」が「タイプLで最長のもの」 より短いことがいえれば、Pe、B、B8 の任意の経路は「タイプLの最長」より短いことになります。
 そして実際、「PBB8 制約を満たすもののうちで最長のもの」を計算してみると、 その運賃計算キロは11339.1kmとなりました。 タイプLの最長は11614.9kmでしたから、タイプ Pe、タイプ B、タイプ B8 のいずれも「真の最長経路」にはなり得ない、 ということが一気に証明できました

図A2図 A2 「PBB8 制約」の概念図です。 斜線部が「ゴミ」に相当します。Pe、B、B8 を別々に解いたときにも「ゴミ」は混じっていたのですが (3タイプの外周にある右下がりの斜線部)、 今回は3つをひとまとめにすることで、 より多くの「ゴミ」が混じることになりました。
 ただし、タイプ B8 に関しては前回解いたときの制約式が甘く、 「3本同時使用」の数に制限を設けていなかったので、 前回タイプ B8 を解いたときに混入していた「ゴミ」の一部は、 今回は除去できています(太線の楕円からはみ出た右下がりの斜線部)。

 ところで、PBB8 制約を満たす最長の「経路」ってどんな形だろう?  そんなことを考えたあなたのために、大サービスで地図を作ってみました(図 A3)。

図A3図 A3 「PBB8 制約」を満たす最長経路です。 3島のうち北海道を通り、3分岐は盛岡、越後湯沢、長門市の3カ所に現れています。 孤立したループが無数にあることも分かるでしょう。見にくいと思った人は拡大版をどうぞ。


(c) SWA / KASAI TakayaSWA へメールを送る
最終更新: 2003年 1月 5日
簡易包装にご協力ください。