線型計画問題

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索

テンプレート:告知 テンプレート:出典の明記 線型計画問題 (せんけいけいかくもんだい、英語:linear programming problem) とは、最適化問題において、目的関数が線型関数で、なおかつ線型関数の等式と不等式で制約条件が記述できる問題である。この問題を解く手法を線型計画法という。

数学的表現

行列やベクトルを用いて表現すると、行列Aベクトルb,cが与えられたとき、制約条件Ax=b, x≥0をみたしつつcTxを最小化するベクトルxを求める問題のことである。

線型計画問題は次のように記述できる。

<math>

\begin{matrix}

\min &:& c^T x \\
\mbox{sub.to} &:& Ax = b \\
& & x \ge 0

\end{matrix} </math>

これを標準型といい、制約条件に線型不等式を含む問題も、スラック変数を加えることで、容易に上記の標準型に変換できる。最大化問題の場合は、目的関数の符号を反転させれば最小化問題となる。

アルゴリズム

この問題を解くアルゴリズムとしては、1947年にG.B. Dantzigが提案したシンプレックス法(単体法)がよく知られている。このアルゴリズムは、実用上は高速であり、ほとんど常に変数の数・制約条件の数の大きい方のオーダーの反復回数で解が求まる。しかし、Dantzig が提唱したもの(ピボット規則)は理論的には多項式時間アルゴリズムではない。常に多項式時間で解が得られるピボット規則の存在性は、現在も未解決問題である。単体法という名前は、Dantzig が提案した特殊な図解法においては,アルゴリズムの進行に従って単体が下に落ちていくように見えることに由来する。

その後、1979年、L.G. カチヤン(Khachiyan)が初めての多項式時間アルゴリズムであるテンプレート:仮リンクを提案する。さらに、1984年ナレンドラ・カーマーカー(Narendra Karmarkar)はより効率の良いカーマーカー法というアルゴリズムを提案し、大規模な問題に対してはシンプレックス法よりも高速であると主張した。

関連項目