コンテンツにスキップ

英文维基 | 中文维基 | 日文维基 | 草榴社区

「シンプレックス法」の版間の差分

出典: フリー百科事典『ウィキペディア(Wikipedia)』
削除された内容 追加された内容
"Dantzig"の綴りを修正。 (変更前: Danzig)
Template:Weblio廃止のためテンプレート除去 / 参考文献節に外部リンク出典の使用要請COがあったが、現在の出典明示方法(WP:GENREF)と合わないので除去した。
1行目: 1行目:
{{Otheruses|線型計画問題を解くアルゴリズム|非線型最適化問題のNelderとMeadによる滑降シンプレックス法(downhill simplex method)|Nelder-Mead法}}
{{Otheruses|線型計画問題を解くアルゴリズム|非線型最適化問題のNelderとMeadによる滑降シンプレックス法(downhill simplex method)|Nelder-Mead法}}
{{複数の問題
{{出典の明記|date=2015年10月}}
|出典の明記=2015年10月
|脚注の不足=2017年11月1日 (水) 04:10 (UTC)
}}


'''シンプレックス法'''({{Lang-en-short|simplex method}}、'''単体法''')は、[[1947年]]に{{仮リンク|ジョージ・ダンツィーク|en|George Dantzig|de|George Dantzig|fr|George Dantzig|es|George Dantzig|af|George Dantzig|ar|جورج دانتزغ|cs|George Dantzig|eu|George Dantzig|ht|George Dantzig|it|George Dantzig|ko|조지 댄치그|nl|George Dantzig|no|George Dantzig|pl|George Dantzig|pt|George Dantzig|ro|George Dantzig|ru|Данциг, Джордж|sk|George Dantzig|sv|George Dantzig|ta|ஜார்ஜ் டாண்ட்சிக்|uk|Джордж Данціг|vi|George Dantzig|zh|喬治·伯納德·丹齊格}}(George B. Dantzig)が提案した、[[線型計画問題]]を解く[[アルゴリズム]]の中で最も広く使用されている方法である。[[線型計画法]]の1つ。
'''シンプレックス法'''{{Lang-en-short|simplex method}}、'''単体法'''は、[[1947年]]に{{仮リンク|ジョージ・ダンツィーク|en|George Dantzig|de|George Dantzig|fr|George Dantzig|es|George Dantzig|af|George Dantzig|ar|جورج دانتزغ|cs|George Dantzig|eu|George Dantzig|ht|George Dantzig|it|George Dantzig|ko|조지 댄치그|nl|George Dantzig|no|George Dantzig|pl|George Dantzig|pt|George Dantzig|ro|George Dantzig|ru|Данциг, Джордж|sk|George Dantzig|sv|George Dantzig|ta|ஜார்ஜ் டாண்ட்சிக்|uk|Джордж Данціг|vi|George Dantzig|zh|喬治·伯納德·丹齊格}}(George B. Dantzig)が提案した、[[線型計画問題]]を解く[[アルゴリズム]]の中で最も広く使用されている方法である。[[線型計画法]]の1つ。


==概要==
==概要==
26行目: 29行目:


==参考文献==
==参考文献==
<!-- ◆実際に本文中で参考として使用した出典情報源以外の「参考になりそうな書籍」をここに追記列挙してはならない。-->
{{節stub|date=2015年10月}}
* {{Cite book |和書 |title=ニューメリカルレシピ・イン・シー 日本語版―C言語による数値計算のレシピ |publisher=[[技術評論社]] |author=William H. Press(著)、William T. Vetterling(著)、Saul A. Teukolsky(著)、Brian P. Flannery(著)、丹慶 勝市(翻訳)、佐藤 俊郎(翻訳)、奥村 晴彦(翻訳)|date=1993-6-1 |isbn=978-4874085608 }}
<!--{{Refbegin}}と{{Refend}}の間に{{Cite book}}などを用いて書誌を列挙し、{{Sfn}}や{{Harv}},{{Harvnb}}で本文に紐付けすること。-->
<!--
このアルゴリズムを解説した書籍は多数ある。たとえば、Numerical Recipes in C (ISBN 4874085601) などにソースコード付きで解説が載っている。
* [http://maxima.sourceforge.net/docs/manual/en/maxima_69.html#SEC272| Maxima Manual: 69. simplex] (英文)
-->


== 外部リンク ==
== 外部リンク ==
{{Refbegin|2}}
*{{Weblio|シンプレックス法|2=OR事典}}
*{{Kotobank|シンプレックス法|2=ASCII.jpデジタル用語辞典}}
*{{Kotobank|シンプレックス法|2=ASCII.jpデジタル用語辞典}}
*{{Kotobank|線形計画法|2=世界大百科事典}}
*{{Kotobank|線形計画法|2=世界大百科事典}}
*{{Kotobank|ダンツィーク|2=ブリタニカ国際大百科事典 小項目事典}}
*{{Kotobank|ダンツィーク|2=ブリタニカ国際大百科事典 小項目事典}}
{{Refend}}
<!--
* [http://maxima.sourceforge.net/docs/manual/en/maxima_69.html#SEC272| Maxima Manual: 69. simplex] (英文)
-->


{{アルゴリズム}}
{{アルゴリズム}}

2017年11月1日 (水) 04:10時点における版

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

概要

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

このアルゴリズムは、実用上は高速。ほとんど常に、変数の数・条件式の数の大きな方のオーダーの回数だけ反復を繰り返せば解ける。そのことは、1982年スティーヴン・スメイル(Stephen Smale) が証明した。しかし、Dantzig が提唱したもの(ピボット規則)は多項式時間で終了しない問題例がある。常に多項式時間で解が得られるピボット規則の存在性は、現在も未解決問題である。

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

アルゴリズム

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

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

参考文献

  • William H. Press(著)、William T. Vetterling(著)、Saul A. Teukolsky(著)、Brian P. Flannery(著)、丹慶 勝市(翻訳)、佐藤 俊郎(翻訳)、奥村 晴彦(翻訳)『ニューメリカルレシピ・イン・シー 日本語版―C言語による数値計算のレシピ』技術評論社、1993年6月1日。ISBN 978-4874085608 

外部リンク