EXCELによる最長片道ルート探索:東京メトロ編

3.ソルバーの制約式

(3)ラッチ外乗換え制約

まず、ラッチ外乗換駅が起点駅から最低運賃区間内である必要があるが、これは行列Zが活用できそうである。Zのラッチ外乗換駅iの行 は、iが起点駅から最低運賃区間内であれば1、そうでなければ0が入っている1行107列の行列である。

従って、

Ri=[Zのラッチ外乗換駅iの行(1行107列)]・X(107行1列)

とした時、ラッチ外乗換駅iでラッチ外乗換えするには、

Ri=1

となっている必要がある。この場合、起点駅ダミー変数行列Xが限定を受けることになる。

例として、上野のラッチ外乗換えを考えてみる。上野でラッチ外乗換えとなるのは、日比谷線⇔銀座線の乗換えであるから、乗換パターンをH変数で表わすと、

  1. H(上野,入谷)⇔H(上野,上野広小路)
  2. H(上野,入谷)⇔H(上野,稲荷町)
  3. H(上野,仲御徒町)⇔H(上野,上野広小路)
  4. H(上野,仲御徒町)⇔H(上野, 稲荷町)
の4ケースとなる。

1.の場合、H(上野,入谷)とH(上野,上野広小路)が両方とも1となるためには、 R上野=1となっている必要がある。R上野=0の時は、H(上野,入谷)とH(上野,上野広小路)のどちらか一方しか1になれない。つまり、

H(上野,入谷)+H(上野,上野広小路)− R上野=<1

となる必要があることが分かる。
2.〜4.についても同様の制約式となるので、上野のラッチ外乗換えは4本の制約式で表現されることになる。

三越前、九段下も上野と全く同じパターンであり、4本ずつの制約式となる。



池袋はラッチ外乗換えが
  1. H(池袋,新大塚)⇔H(池袋,要町)
  2. H(池袋,新大塚)⇔H(池袋,小竹向原)
  3. H(池袋,新大塚)⇔H(池袋,東池袋)
の3ケースとなるので、
制約式は、

H(池袋,新大塚)+H(池袋,要町)− R池袋=<1

など3本になる。



飯田橋はラッチ外乗換えが
  1. H(飯田橋,九段下)⇔H(飯田橋,江戸川橋)
  2. H(飯田橋,九段下)⇔H(飯田橋,後楽園)
  3. H(飯田橋,九段下)⇔H(飯田橋,市ヶ谷)
  4. H(飯田橋,神楽坂)⇔H(飯田橋,江戸川橋)
  5. H(飯田橋,神楽坂)⇔H(飯田橋,後楽園)
  6. H(飯田橋,神楽坂)⇔H(飯田橋,市ヶ谷)
の6ケースとなるので、
制約式は、

H(飯田橋,九段下)+H(飯田橋,江戸川橋)− R飯田橋=<1

など6本になる。



異名乗換駅i,jは駅間が距離0の枝で結ばれているので、Ri=1またはRj=1の場合のみ、この枝を通ることができる、という制約にすればよい。とりあえず、RiとRjを区別しなければ(計算結果に問題があればその時追加制約式を考える)、制約式は

H(i,j)−Ri=<0

となる。

例えば、有楽町・日比谷の制約式は、

H(有楽町,日比谷)− R有楽町=<0

である。

同様に、上野広小路・仲御徒町、淡路町・新御茶ノ水も制約式はそれぞれ1本ずつ必要となる。



大手町はラッチ外乗換駅であるが、ホームをコの字型に辿って遠回りをすれば、ラッチ外乗換えしなくてもすれば全ての路線が乗換可能なので、ラッチ外乗換え制約は課さなかった。



←前のページ 目次 次のページ→


Copyright(c) 2005 KONDO Hideaki All rights reserved.
初版: 2005年2月12日