シンプレックス法(シンプレックスほう、単体法、たんたいほう、)は、1947年にジョージ・ダンツィーク(ダンツィク)が提案した、線型計画問題を解くアルゴリズムの中で最も広く使用されている方法である。線型計画法の1つ。
シンプレックス法は、実行可能解(超多面体の頂点)の1つから出発して目的関数の値をなるべく大きく(小さく)するようなところに移動させていく動作を繰り返して最適解を見つけ出す方法である。各ステップで必ず目的関数の値は改善される。
このアルゴリズムは、実用上は高速であり、変数の数・条件式の数の大きな方のオーダーの回数だけ反復を繰り返せばほとんど常に最適解に達する。このことは、1982年に スティーヴン・スメイル (Stephen Smale) が証明した。シンプレックス法は、用いるピボット規則により性能が左右される。有限回のピボットで終了することが保証されている規則として、Blandの提案した最小添字規則が知られている。ダンツィクの提案したピボット規則は問題の規模にたいして指数時間かかる問題例があることが知られている。現在のところ、線型計画問題を多項式時間で解くピボット規則の存在性は未解決問題である。
単体法という名前は、ダンツィクが提案した特殊な図解法においては、アルゴリズムの進行に従って単体が下に落ちていくように見えることに由来する。
アルゴリズム
一般的な流れは以下のとおりである。 線型計画問題を制限標準型に変形する。 スラック変数を加え、標準型に変形する。制約条件のうち、不等式を含む物がなくなり、全て等式となる。 人工変数を加え、制限標準型に変形する。等式化された問題の目的関数を とおく。 を最大化(最小化)する線型計画問題にする。 ここまで行った作業を基にシンプレックス表(Simplex Tableau、線型計画問題の係数を表にまとめたもの)を作成する。 式の数だけ基底変数を定める。目的関数 は必ず基底変数に選ばなければならない。 初期の基底変数から得られた連立方程式の解が最適かどうかを調べる。最適とみなすことができた場合は終了。終了しなかった場合は以下の作業をおこなう。 基底変数と非基底変数の組合せを変更する。 新たに基底変数にできそうな変数を非基底変数の中から選ぶ。複数存在する場合は、最も効果の高い変数を基底に選ぶ(ピボット列の決定) 基底から追い出す変数を決める。増加限界(定数項の値から新たに基底に入れる変数の係数を割ったもの)によって変数を決めることが多い。(ピボット行の決定) 新しい基底変数での連立方程式を解く。具体的にはピボットを中心に掃き出し法などで新たな実行可能解を求める。実行後は4.に戻り、同様の処理を繰り返す。
掛谷宗一とシンプレックス法
掛谷宗一はダンツィークよりも早くこのアルゴリズムを発見していたようである。掛谷が1913年から翌1914年にかけて出版した積分方程式に関する研究にはこの方法が用いられていた。この結果により掛谷は1928年に日本帝国学士院恩賜賞を授かった。
河田龍夫は次のエピソードを残している。
1944年、軍の威信をかけて開設された統計数理研究所の草案を作るときのことであった。河田は掛谷の自宅に通い、掛谷とともに構想を練り、文部省に出す文書を作成していた。
あるとき掛谷は配給制度について語った。
人によって物の価値は異なる。無類の酒好きである掛谷にとって酒の価値は大きいが、砂糖はそれほどでもない。東京都全体で配給すべき、酒、砂糖、味噌、煙草等の量が定まっている。各人にとっての価値を適当に仮定して、全員の総価値を最大にするには、どう配分するべきか?
河田によれば、掛谷はこの問題から線形計画の問題を定式化し、そしての方法で解いた。掛谷はこの方法の名人で、掛谷の解法は今でいうシンプレックス法であった、と河田は書いている。
脚注
参考文献
外部リンク