Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

simplex methodとは? わかりやすく解説

Weblio 辞書 > 学問 > OR事典 > simplex methodの意味・解説 

シンプレックス法

読み方しんぷれっくすほう
【英】:simplex method

概要

単体法訳され, 1947年, ダンツィク(G.B. Dantzig) によって提案された,線形計画問題を解くための手法.理論的に有限反復での収束性しか示されていないが,実用的に高速最適解得られることが知られている.また, 実用の際には, 単体法改良した改訂単体法良く用いられる.

詳説

 ダンツイック(G. B. Dantzig)によって提案され単体法(simplex method)(シンプレックス法)は, カーマーカー法出現する1984年まで線形計画問題を解くもっとも有効な解法とされていた. 単体法問題の構造巧妙に利用しており, いまでも, 線形計画, 整数計画, 組合せ最適化多く分野使われている[2, 3, 4]. 以下, 次のような基準形と呼ばれる線形計画問題考えることにする.


\mbox{(P)} \quad
\begin{array}{lll}
 & \mbox{max.} & {\displaystyle \sum_{j=1}^{n}c_j x_j} \\
& \mbox{s. t.} & {\displaystyle \sum_{j=1}^{n}a_{ij} x_j}
 \leq b_i \; \; (i=1,2,\ldots,m), 
 x_1,x_2,\ldots ,x_n \geq 0.
\end{array}


ここで, c_j \,(j=1,2,\ldots,n), \, b_i \, (i=1,2,\ldots,m),\, a_{ij} \, (i=1,2,\ldots,m, j=1,2,\ldots,n)実数, \boldsymbol{x}=(x_1,x_2,\ldots,x_m)n\,個の変数からなるn\,次元ベクトルである. すべての線形問題は, 簡単な変換によって基準形に帰着できる. 問題(P)の制約条件満たす\boldsymbol{x}実行可能解feasible solution), その集まり実行可能多面体feasible polyhedron)と呼ぶ. 実行可能解のなかで目的関数最大にするものを最適解optimal solution)と呼ぶ.

 ここで, 問題(P)にスラック変数呼ばれる非負変数x_{n+i} \, (i=1,\ldots,m)導入する


\begin{array}{ll}
\mbox{max.} & c_1 x_1+\cdots+ c_nx_n \\
\mbox{s. t.} & a_{i1} x_1 +\cdots+a_{in} x_n + x_{n+i} = b_i
 \; \; (i=1, 2, \ldots, m), \\
 & x_1 \geq 0,\ldots,x_{n+m}\geq 0.
\end{array}


さらに, 目的関数z=c_0+\sum_{j=1}^n c_j x_j \ (c_0=0) と書き, 制約左辺スラック変数以外の項を移行すると, 上の問題は以下のようになる.


\begin{array}{ll}
\mbox{max.} & z \\
\mbox{s. t.} & x_{n+i}= b_i-a_{i1}x_{1}-\cdots-a_{in}x_{n}
 \quad (i=1, 2, \ldots, m), \\
 & z=c_0+c_1 x_1+\cdots+c_n x_n, \\
 & x_1 \geq 0,\ldots, x_{n+m} \geq 0.
\end{array}


制約式の左辺変数基底変数, 右辺変数を非基底変数と呼ぶ. ここで, 非基底変数添字N(1)=1,\ldots,N(n)=n, 基底変数添字B(1)=n+1,\ldots,B(m)=n+mとおき, 各変数係数添字対応するものにする. 非基底変数の値を任意に固定する基底変数の値は一意定まるが, 特に非基底変数をすべて0\,固定して得られる解を基底解basic solution)と呼ぶ. また, 上の等式系辞書と呼ぶ. 係数b_i \, (i=1,\ldots,m)非負のとき, 基底解実行可能解であるが, このような辞書実行可能辞書と呼ぶ. 線形計画問題実行可能な基底解実行可能多面体頂点対応する [3]. 単体法目的関数の値を最大化する実行可能な基底解求めるものであり, 辞書等価辞書へと繰り返し変換することによって実現される.


単体法

入力実行可能な辞書

ステップ1最適性判定

(1) c_{N(s)}>0\,となる添字s (1\le s \le n)1つ選ぶ.
(2) もし, そのような添字なければ, 現在の基底解最適となり, 終了する.


ステップ2有界性判定

(1) \textstyle \frac{b_r}{a_{rN(s)}}=\min\{\frac{b_i}{a_{iN(s)}} : a_{iN(s)}>0, 1 \le i \le m \}計算し, 行番号r\,求める(この操作現在の基底解から実行可能性保ったまま非基底変数x_{N(s)}\,だけをできる限り増加させる).
(2) そのような番号r\,なければ(つまり, 変数x_{N(s)}\,限りなく増加させることができる), 問題非有界となり, 終了する.
(3) r\,存在する場合, ステップ3へ.


ステップ3((r, s\,)を中心とするピボット演算を行う)

(1)辞書r\,番目の式についてx_{N(s)}\,表現式を求める.
(2)求めたx_{N(s)}\,の式を辞書の他の行 (i\not = r\,) に代入する.
(3)添字N(s)\,B(r)\,交換し, ステップ1へ.


実行可能解をもつ問題に対して単体法有限回で終了すれば, その問題最適解をもつか, または非有界である. しかし, 辞書右辺0\,定数b_i\,少なくとも1つ含むとき, 辞書退化しており, 単体法有限回で終わるとは限らない. このとき, ピボット演算施しても, 基底解変化しないことになり, 目的関数値も変化しない. 有限回収束を保証するための手段として, Blandピボット選択規則 [1] が提案されており, これを用いると単体法は必ず有限回で収束する.

 先の説明述べたように, 単体法入力として実行可能な辞書が必要とされる. 現在の辞書実行可能でない場合, 単体法用いて実行可能な辞書求めることができる. そのため, 新し変数人工変数x_a\,用いて補助問題


\begin{array}{ll}
\mbox{max.} & -x_a \\
\mbox{s. t.} & x_{n+i}= b_i-a_{i1}x_{1}-\cdots-a_{in}x_{n}+x_a
 \; \; (i=1, 2, \ldots, m), \\
 & x_1 \geq 0,\ldots, x_{n+m} \geq 0, \; x_a \geq 0, 
\end{array}


作る. 元問題実行可能であることと補助問題最適目的関数値が0\,であることは等価なので, 補助問題を解くことにより, 元問題実行可能解有無判定できる.

 一般に, 基準形の線形計画問題を解く際には, 2段単体法呼ばれるものを用いる. 第1段階では, 補助問題解き, 実行可能解有無判定し, 実行可能解存在する場合実行可能辞書求める. 第2段階では, 求めた実行可能辞書初期辞書として, もう一度単体法使い, 元問題を解く.



参考文献

[1] R. G. Bland, "New finite pivot ruless for the simplex method", Mathematics of Operations Research 21977), 103-107.

[2] V. Chvátal, Linear Programming, W. H. Freeman and Company, 1983.

[3] G. B. Dantzig, Linear Programming and Extensions, Princeton Univesity Press, 1963.

[4] G. L. Nemhauser and L. A. Wolsey, Integer and Combinatorial Optimization, John Wiley & Sons, 1988.


単体法

読み方たんたいほう
【英】:simplex method

概要

1947年, ダンツィク(G.B. Dantzig) によって提案された,線形計画問題を解くための手法.理論的に有限反復での収束性しか示されていないが,実用的に高速最適解得られることが知られている.また, 実用の際には, 単体法を改良した改訂単体法が良く用いられる.


詳説

 ダンツイック(G. B. Dantzig)によって提案され単体法(simplex method)(シンプレックス法)は, カーマーカー法出現する1984年まで線形計画問題を解くもっとも有効な解法とされていた. 単体法は問題の構造巧妙に利用しており, いまでも, 線形計画, 整数計画, 組合せ最適化多く分野使われている[2, 3, 4]. 以下, 次のような基準形と呼ばれる線形計画問題考えることにする.


\mbox{(P)} \quad
\begin{array}{lll}
 & \mbox{max.} & {\displaystyle \sum_{j=1}^{n}c_j x_j} \\
& \mbox{s. t.} & {\displaystyle \sum_{j=1}^{n}a_{ij} x_j}
 \leq b_i \; \; (i=1,2,\ldots,m), 
 x_1,x_2,\ldots ,x_n \geq 0.
\end{array}


ここで, c_j \,(j=1,2,\ldots,n), \, b_i \, (i=1,2,\ldots,m),\, a_{ij} \, (i=1,2,\ldots,m, j=1,2,\ldots,n)実数, \boldsymbol{x}=(x_1,x_2,\ldots,x_m)n\,個の変数からなるn\,次元ベクトルである. すべての線形問題は, 簡単な変換によって基準形に帰着できる. 問題(P)の制約条件満たす\boldsymbol{x}実行可能解feasible solution), その集まり実行可能多面体feasible polyhedron)と呼ぶ. 実行可能解のなかで目的関数最大にするものを最適解optimal solution)と呼ぶ.

 ここで, 問題(P)にスラック変数呼ばれる非負変数x_{n+i} \, (i=1,\ldots,m)導入する


\begin{array}{ll}
\mbox{max.} & c_1 x_1+\cdots+ c_nx_n \\
\mbox{s. t.} & a_{i1} x_1 +\cdots+a_{in} x_n + x_{n+i} = b_i
 \; \; (i=1, 2, \ldots, m), \\
 & x_1 \geq 0,\ldots,x_{n+m}\geq 0.
\end{array}


さらに, 目的関数z=c_0+\sum_{j=1}^n c_j x_j \ (c_0=0) と書き, 制約左辺スラック変数以外の項を移行すると, 上の問題は以下のようになる.


\begin{array}{ll}
\mbox{max.} & z \\
\mbox{s. t.} & x_{n+i}= b_i-a_{i1}x_{1}-\cdots-a_{in}x_{n}
 \quad (i=1, 2, \ldots, m), \\
 & z=c_0+c_1 x_1+\cdots+c_n x_n, \\
 & x_1 \geq 0,\ldots, x_{n+m} \geq 0.
\end{array}


制約式の左辺変数基底変数, 右辺変数を非基底変数と呼ぶ. ここで, 非基底変数添字N(1)=1,\ldots,N(n)=n, 基底変数添字B(1)=n+1,\ldots,B(m)=n+mとおき, 各変数係数添字対応するものにする. 非基底変数の値を任意に固定する基底変数の値は一意定まるが, 特に非基底変数をすべて0\,固定して得られる解を基底解basic solution)と呼ぶ. また, 上の等式系辞書と呼ぶ. 係数b_i \, (i=1,\ldots,m)非負のとき, 基底解実行可能解であるが, このような辞書実行可能辞書と呼ぶ. 線形計画問題実行可能な基底解実行可能多面体頂点対応する [3]. 単体法は目的関数の値を最大化する実行可能な基底解求めるものであり, 辞書等価辞書へと繰り返し変換することによって実現される.


単体法

入力実行可能な辞書

ステップ1最適性判定

(1) c_{N(s)}>0\,となる添字s (1\le s \le n)1つ選ぶ.
(2) もし, そのような添字なければ, 現在の基底解最適となり, 終了する.


ステップ2有界性判定

(1) \textstyle \frac{b_r}{a_{rN(s)}}=\min\{\frac{b_i}{a_{iN(s)}} : a_{iN(s)}>0, 1 \le i \le m \}計算し, 行番号r\,求める(この操作現在の基底解から実行可能性保ったまま非基底変数x_{N(s)}\,だけをできる限り増加させる).
(2) そのような番号r\,なければ(つまり, 変数x_{N(s)}\,限りなく増加させることができる), 問題非有界となり, 終了する.
(3) r\,存在する場合, ステップ3へ.


ステップ3((r, s\,)を中心とするピボット演算を行う)

(1)辞書r\,番目の式についてx_{N(s)}\,表現式を求める.
(2)求めたx_{N(s)}\,の式を辞書の他の行 (i\not = r\,) に代入する.
(3)添字N(s)\,B(r)\,交換し, ステップ1へ.


実行可能解をもつ問題に対して単体法が有限回で終了すれば, その問題最適解をもつか, または非有界である. しかし, 辞書右辺0\,定数b_i\,少なくとも1つ含むとき, 辞書退化しており, 単体法は有限回で終わるとは限らない. このとき, ピボット演算施しても, 基底解変化しないことになり, 目的関数値も変化しない. 有限回収束を保証するための手段として, Blandピボット選択規則 [1] が提案されており, これを用いると単体法は必ず有限回で収束する.

 先の説明述べたように, 単体法の入力として実行可能な辞書が必要とされる. 現在の辞書実行可能でない場合, 単体法を用いて実行可能な辞書求めることができる. そのために, 新し変数人工変数x_a\,用いて補助問題


\begin{array}{ll}
\mbox{max.} & -x_a \\
\mbox{s. t.} & x_{n+i}= b_i-a_{i1}x_{1}-\cdots-a_{in}x_{n}+x_a
 \; \; (i=1, 2, \ldots, m), \\
 & x_1 \geq 0,\ldots, x_{n+m} \geq 0, \; x_a \geq 0, 
\end{array}


作る. 元問題実行可能であることと補助問題最適目的関数値が0\,であることは等価なので, 補助問題を解くことにより, 元問題実行可能解有無判定できる.

 一般に, 基準形の線形計画問題を解く際には, 2段階単体法と呼ばれるものを用いる. 第1段階では, 補助問題解き, 実行可能解有無判定し, 実行可能解存在する場合実行可能辞書求める. 第2段階では, 求めた実行可能辞書初期辞書として, もう一度単体法を使い, 元問題を解く.



参考文献

[1] R. G. Bland, "New finite pivot ruless for the simplex method", Mathematics of Operations Research 21977), 103-107.

[2] V. Chvátal, Linear Programming, W. H. Freeman and Company, 1983.

[3] G. B. Dantzig, Linear Programming and Extensions, Princeton Univesity Press, 1963.

[4] G. L. Nemhauser and L. A. Wolsey, Integer and Combinatorial Optimization, John Wiley & Sons, 1988.


シンプレックス法

(simplex method から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/08/24 09:42 UTC 版)

ナビゲーションに移動 検索に移動

シンプレックス法: simplex method単体法)は、1947年ジョージ・ダンツィークが提案した、線型計画問題を解くアルゴリズムの中で最も広く使用されている方法である。線型計画法の1つ。

概要

シンプレックス法は、実行可能解 (超多面体の頂点) の1つから出発して目的関数の値をなるべく大きく (小さく) するようなところに移動させていく動作を繰り返して最適解を見つけ出す方法である。各ステップで必ず目的関数の値は改善される。

このアルゴリズムは、実用上は高速であり、変数の数・条件式の数の大きな方のオーダーの回数だけ反復を繰り返せばほとんど常に最適解に達する。このことは、1982年スティーヴン・スメイル (Stephen Smale) が証明した。シンプレックス法は、用いるピボット規則により性能が左右される。有限回のピヴォットで終了することが保証されている規則として、Blandの提案した最小添字規則が知られている。Dantzigの提案したピボット規則は問題の規模にたいして指数時間かかる問題例があることが知られている。現在のところ、線型計画問題を多項式時間で解くピボット規則の存在性は未解決問題である。

単体法という名前は、Dantzig が提案した特殊な図解法においては、アルゴリズムの進行に従って単体が下に落ちていくように見えることに由来する。

アルゴリズム

一般的な流れは以下のとおりである。

  1. 線型計画問題を制限標準型に変形する。
    1. スラック変数を加え、標準型に変形する。制約条件のうち、不等式を含む物がなくなり、全て等式となる。
    2. 人工変数を加え、制限標準型に変形する。等式化された問題の目的関数を z とおく。z を最大化 (最小化) する線型計画問題にする。
  2. ここまで行った作業を基にシンプレックス表 (Simplex Tableau、線型計画問題の係数を表にまとめたもの) を作成する。
  3. 式の数だけ基底変数を定める。目的関数zは必ず基底変数に選ばなければならない。
  4. 初期の基底変数から得られた連立方程式の解が最適かどうかを調べる。最適とみなすことができた場合は終了。終了しなかった場合は以下の作業をおこなう。
  5. 基底変数と非基底変数の組合せを変更する。
    1. 新たに基底変数にできそうな変数を非基底変数の中から選ぶ。複数存在する場合は、最も効果の高い変数を基底に選ぶ。(ピボット列の決定)
    2. 基底から追い出す変数を決める。増加限界 (定数項の値から新たに基底に入れる変数の係数を割ったもの) によって変数を決めることが多い。(ピボット行の決定)
    3. 新しい基底変数での連立方程式を解く。具体的にはピボットを中心に掃き出し法などで新たな実行可能解を求める。実行後は4.に戻り、同様の処理を繰り返す。

参考文献

外部リンク


「simplex method」の例文・使い方・用例・文例

Weblio日本語例文用例辞書はプログラムで機械的に例文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「simplex method」の関連用語

simplex methodのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



simplex methodのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本オペレーションズ・リサーチ学会日本オペレーションズ・リサーチ学会
Copyright (C) 2025 (社)日本オペレーションズ・リサーチ学会 All rights reserved.
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのシンプレックス法 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
Tanaka Corpusのコンテンツは、特に明示されている場合を除いて、次のライセンスに従います:
 Creative Commons Attribution (CC-BY) 2.0 France.
この対訳データはCreative Commons Attribution 3.0 Unportedでライセンスされています。
浜島書店 Catch a Wave
Copyright © 1995-2025 Hamajima Shoten, Publishers. All rights reserved.
株式会社ベネッセコーポレーション株式会社ベネッセコーポレーション
Copyright © Benesse Holdings, Inc. All rights reserved.
研究社研究社
Copyright (c) 1995-2025 Kenkyusha Co., Ltd. All rights reserved.
日本語WordNet日本語WordNet
日本語ワードネット1.1版 (C) 情報通信研究機構, 2009-2010 License All rights reserved.
WordNet 3.0 Copyright 2006 by Princeton University. All rights reserved. License
日外アソシエーツ株式会社日外アソシエーツ株式会社
Copyright (C) 1994- Nichigai Associates, Inc., All rights reserved.
「斎藤和英大辞典」斎藤秀三郎著、日外アソシエーツ辞書編集部編
EDRDGEDRDG
This page uses the JMdict dictionary files. These files are the property of the Electronic Dictionary Research and Development Group, and are used in conformance with the Group's licence.

©2025 GRAS Group, Inc.RSS