- 最短経路問題は最小費用流問題の、辺の容量に余裕があって1のフローを流す特殊ケースに相当する
- 辺がないことと、辺があってコストが0であることは区別しなければならない
- 辺の有無を表現する変数を作ると複雑になる
- ので、あらかじめ辺集合は一列に並べられて自然数と対応づけられてるとする
- それぞれの辺がどの頂点を繋いでいるのかを表現した 行列Aを考える
- i行目は、辺についてu列=-1, v列=1としたもの
- 始点と終点を表現する次元ベクトルbを考える
- 始点sが-1, 終点tが1
- f: flow, c: costは次元ベクトルとする
- こうすると線形計画問題としてシンプルに書ける
- minimize:
- subject to:
- 双対線形計画問題は次元ベクトル p (potential)を使ってこう書ける
- maximize:
- subject to:
- Aのi行目は、辺についてu列=-1, v列=1としたもの, bは始点sが-1, 終点tが1ということを思い出すと差分の形になる
- maximize:
- subject to:
参考資料
- 双対性
- LPとグラフと定式化
- どちらも点に出入りする辺の集合を使って定式化しているが、それが行列の掛け算で表現された線形計画問題の一般形にどう対応するのかと、どう双対になるのかが僕にとっては自明ではなかったので噛み砕いた。