シンプレックス法計算機
線形計画問題をオンラインで解きましょう, 無料、高速、完全なステップごとのピボット操作付き。
当シンプレックス法計算機は、最大化、最小化、2段階、Big M、双対、改訂シンプレックスの各方式に対応しています。目的関数と制約条件を入力すると、計算機がすべてのピボット操作を自動的に実行します。
シンプレックス計算機
シンプレックス法計算機の仕組み
LP問題を入力する
目的関数の係数と、各制約行を右辺の値とともに入力します。
最大化または最小化を選択する
最適化の目標を選択します。ツールがスラック変数付きの初期タブローを自動的に作成します。
ピボット反復を実行する
計算機はCj-Zjによってピボット列を特定し、比率を計算し、最適になるまで基本行操作を実行します。
最適解を読み取る
最終タブローには、最適な変数値、Zj行、および最大/最小の目的値が表示されます。
シンプレックスタブロー出力の例
2変数の最大化問題のタブロー反復の例
| Basis | x1 | x2 | s1 | s2 | RHS | Cj-Zj |
|---|---|---|---|---|---|---|
| x1 | 14 | 0 | 0 | 1 | 14 | 0 |
| x2 | 7 | 1 | 0 | 0 | 7 | 5 |
| Zj | 35 | 5 | 0 | 0 | 35 |
シンプレックス法とは?
シンプレックス法は、線形計画(LP)問題を解くために最も広く使われているアルゴリズムです。1947年にジョージ・ダンツィークによって考案され、一連の線形制約のもとで線形目的関数の最適値を求めます。シンプレックス法計算機はこのプロセスを自動化します。目的関数と制約を入力すると、計算機は最適解に到達するまであらゆるピボット操作を実行し、その過程の各タブロー(単体表)を表示します。
線形計画モデルはあらゆる場面に現れます。利益の最大化、コストの最小化、資源の配分、生産計画、そして輸送問題や栄養(ダイエット)問題の解決などです。関係が線形である限り、シンプレックス法は実行可能領域のある端点から次の端点へ効率的に移動し、これ以上改善できなくなるまで各ステップで目的を改善していきます。
シンプレックス法の公式と標準形
アルゴリズムを適用する前に、問題は標準形で記述されます。最大化問題では、各制約をスラック変数を加える(以下の制約の場合)、余剰変数を引く(以上の制約の場合)、そして必要に応じて人工変数を加えることで方程式に変換します。目的は 最大化 Z = c1x1 + c2x2 + ... + cnxn と書かれ、制約方程式に従い、すべての変数は0以上です。
これらの係数が最初のシンプレックス・タブローを埋めます。タブロー計算機はこの表を自動的に作成し、各反復について Zj 行と Cj 引く Zj 行を計算するので、計算を正確に追うことができます。
シンプレックス法を段階的に解く方法
例として、最大化 Z = 3x1 + 5x2、制約 x1 + 2x2 が14以下、x1 + x2 が8以下を考えます。第一に、2つの制約にスラック変数を加えて初期タブローを作成します。第二に、Cj 引く Zj を計算し、最も正の値を入る変数(ピボット列)として選びます。第三に、各右辺値をピボット列の正の要素で割る比率検定を適用し、最小の非負比率を選んで出る変数(ピボット行)を求めます。第四に、基本行操作を用いてピボットします。最後に、すべての Cj 引く Zj 値が0以下になるまで繰り返します。
この例の最適解は x1 = 2、x2 = 6 で、Z = 36 です。このページの段階的計算機は各反復を表示するので、紙の上で再現できます。
最大化と最小化
シンプレックス法は両方向に対応します。最大化問題ではアルゴリズムは正の Cj 引く Zj が残らなくなるまで Z を増やします。最小化問題は、等価な最大化に変換するか(Z の最小化は負の Z の最大化と同じ)、最も負の Cj 引く Zj を選ぶことで解かれます。最小化問題はしばしば以上の制約を含み、これにはビッグM法または二段階法が必要です。
ビッグM法と二段階法
問題に以上の制約が含まれる場合、人工変数が導入されます。ビッグM法はこれらの人工変数に非常に大きなペナルティを割り当て、アルゴリズムがそれらを基底から追い出すようにします。二段階シンプレックス法は同じ目標を二段階で達成します。フェーズ1は実行可能な出発点を見つけるために人工変数の総和を最小化し、フェーズ2は本来の目的を最適化します。どちらも同じ最適解に到達します。
双対シンプレックス法と改訂シンプレックス法
双対シンプレックス法は、最適だが実行不可能なタブローから出発して実行可能性を回復します。これはすでに解いた問題に制約を追加する場合に効率的です。改訂シンプレックス法は、タブロー全体の代わりに基底行列の逆行列のみを保持するため、大規模問題に対してはるかにメモリ効率が高く、同一の結果を生み出します。
グラフ計算機またはTI-84でのシンプレックス法
グラフ計算機で行列の行操作を使い、手作業でシンプレックス・アルゴリズムを実行できます。TI-84では、タブローを行列として保存し、MATRIX MATHメニューの rowSwap、行の乗算、行の乗算加算を使ってピボットします。Casioの関数電卓には組み込みのシンプレックス機能はありませんが、その行列モードで同じ行操作を手動で実行できます。手動ピボットなしで即座に結果を得るには、このページのオンライン計算機がすべてのステップを実行します。
シンプレックス法と図解法の比較
図解法は2変数問題でしか機能せず、実行可能領域を描いて端点から最適値を読み取ります。シンプレックス法にはそのような制限がなく、任意の数の変数を持つ問題を解きます。教科書の例には2変数計算機を、問題が図示できる範囲を超えて大きくなる場合には3変数および4変数計算機を使用してください。
線形計画問題(LPP)
線形計画問題(LPP)は、線形の目的と線形の制約を組み合わせたものです。LPPシンプレックス法計算機と一般的な線形計画計算機は、最大化および最小化のLPPをオンラインで解き、タブローの全プロセスを表示するので、実際の問題を解きながら手法を学べます。
すべてのシンプレックス計算機を見る
必要な特定の線形計画ツールを選択してください
よくある質問
電卓でシンプレックス法をどうやって行うのですか?
電卓の入力欄に目的関数と制約条件を入力し、最大化(Maximize)または最小化(Minimize)を選択して、「解く」をクリックします。ツールがすべてのピボット操作を自動的に実行し、最適解を表示します。
電卓でシンプレックス法をどうやって解くのですか?
LPの変数、係数、制約条件を入力します。シンプレックス計算機は各タブローの反復を順に処理し、最適解に到達するまでステップごとのピボット過程を表示します。
電卓でシンプレックス法をどうやって使うのですか?
変数の数を選び、目的関数の行を入力し、各制約行をそのRHS(右辺)の値とともに追加し、目標(最大/最小)を選択して、「計算」を押すと完全な解が得られます。
電卓を使ってシンプレックス法をどうやって見つけるのですか?
オンラインで「シンプレックス法計算機」を検索し、無料のツールを開きます。線形計画問題を入力すると、計算機がシンプレックス法を適用して最適解を自動的に求めます。
線形計画法でシンプレックス法をどうやって計算するのですか?
決定変数とスラック変数を用いて初期シンプレックスタブローを作成します。最も負のCj-Zj値をピボット列として特定し、比率を計算してピボット行を求め、次に基本行操作を行って反復します。
電卓を使ってシンプレックス法をどうやって最小化するのですか?
シンプレックス最小化計算機を開き、最小化(Minimize)オプションを選択し、コスト関数の係数と制約値を入力して、「解く」をクリックすると、最小の目的値と最適な変数値が得られます。
シンプレックス法でZjをどうやって計算するのですか?
Zj = 各列jについての (Cbi × aij) の総和。ここでCbiは行iにおける現在の基底変数の目的係数であり、aijはその列における対応するタブローの要素です。
グラフ電卓を使ってシンプレックス法をどうやって解くのですか?
TI-84では、MATRIX > EDIT を使ってタブローを行列に保存し、MATRIX > MATH(rowSwap、*row、*row+)を介して行操作を行います。あるいは、TI電卓向けの専用シンプレックスアプリを使用することもできます。
電卓でシンプレックス法はできますか?
はい。オンラインのシンプレックス計算機は、初期タブローの設定から最終的な最適解まで、アルゴリズム全体を処理し、すべてのピボット選択と行操作を自動的に行います。
Casioでシンプレックス法のピボット操作を計算できますか?
Casioの関数電卓にはシンプレックスの組み込み機能はありません。ただし、CasioのMatrixモードを使って手動で行列の行操作を行い、各ピボットステップを実行することができます。
AからZまでのシンプレックス法計算機とは?
完全なシンプレックス法計算機はすべてを網羅します。LP問題の入力、初期タブローの設定、すべてのピボット反復の実行、最適基底の特定、そしてすべての変数値を含む最終解の表示です。
シンプレックス法とは何ですか?
シンプレックス法は、線形計画問題を解くために1947年にジョージ・ダンツィーグ(George Dantzig)が開発した反復アルゴリズムです。実行可能領域のある頂点(端点)から隣接する頂点へ移動し、各ステップで目的関数を改善しながら、最適解に到達するまで続けます。
シンプレックス法は線形計画法と同じですか?
いいえ。線形計画法(LP)は問題の種類、つまり線形制約のもとで線形の目的関数を最適化することを指します。シンプレックス法は線形計画問題を解くためのアルゴリズムの一つであり、ほかにグラフ法や内点法などがあります。
スラック変数、サープラス変数、人工変数とは何ですか?
スラック変数(slack)は ≤ 制約を等式にするために加え、サープラス変数(surplus)は ≥ 制約から引き、人工変数(artificial)は初期の基底実行可能解を得るために ≥ および = 制約に加えます。人工変数は Big M 法または2段階法(two-phase)の過程で取り除かれます。
Big M 法と2段階法の違いは何ですか?
どちらも ≥ および = 制約の人工変数を扱います。Big M 法は大きなペナルティ定数 M を含む単一の目的関数を用いますが、2段階法(two-phase)はまず人工変数を最小化し(フェーズ1)、その後で本来の目的を最適化します(フェーズ2)。両者は同じ最適解に到達します。
ピボット列とピボット行はどのように選びますか?
最大化の場合、ピボット列(入る変数)は Cj − Zj の値が最も正となる列です。ピボット行(出る変数)は最小比検定で求めます。各右辺の値をピボット列の正の要素で割り、最小の非負比を選びます。
シンプレックスのタブロー(tableau)が最適になるのはいつですか?
タブローは、これ以上の改善が不可能になったときに最適です。最大化問題では、すべての Cj − Zj の値が0以下になったとき、最小化では、すべての Cj − Zj が0以上になったときです。
シンプレックス法は最小化問題を解けますか?
はい。最小化は、等価な最大化に変換する(Z の最小化は −Z の最大化と同じ)か、最も負の Cj − Zj を入る変数として選ぶことで解きます。≥ 型の制約はサープラス変数と人工変数で扱います。
双対シンプレックス法はどのように機能しますか?
双対(dual)シンプレックス法は、最適だが実行不可能なタブロー(一部の右辺の値が負)から始めます。まず出る変数(最も負の右辺)を選び、次に双対比検定によって入る変数を選び、最適性を保ちながら実行可能性を回復します。
改訂シンプレックス法(revised)とは何ですか?
改訂シンプレックス法は標準法と同じ反復を行いますが、タブロー全体ではなく基底行列の逆行列(B⁻¹)のみを保持します。これによりメモリ効率が大幅に向上し、専門的な線形計画ソルバーの基礎となっています。
非有界解とはどういう意味ですか?
線形計画は、すべての制約を満たしたまま目的関数を(最大化では)限りなく増加、または(最小化では)限りなく減少できるとき、非有界(unbounded)です。シンプレックス法では、比検定のためのピボット列に正の要素が一つもないときに検出されます。
シンプレックス法における退化解とは何ですか?
退化(degeneracy)は、しばしば最小比検定での同点が原因で、タブロー内の基底変数が0に等しくなるときに起こります。退化は循環(cycling)を引き起こすことがあり、アルゴリズムが目的を改善せずにタブローを繰り返します。ブランドの規則(Bland's rule)などの循環防止規則がこれを防ぎます。
シンプレックス法はいくつの変数を扱えますか?
固定の上限はありません。グラフ法は2変数に限られますが、シンプレックス法は任意の数の決定変数と制約に対して機能します。2変数の小さな教科書問題から、数千の変数を持つ産業モデルまで対応できます。
輸送シンプレックス法とは何ですか?
輸送問題は、供給地から需要地へ商品を輸送する費用を最小化する特殊な線形計画です。一般のシンプレックス法でも解けますが、専用版(MODI 法や踏み石法など)はその構造を利用して効率化します。
なぜグラフ法ではなくシンプレックス法を使うのですか?
グラフ法は、実行可能領域を2次元で描く必要があるため、2変数の問題にしか使えません。シンプレックス法にはそのような制約がなく、任意の数の変数を持つ問題を代数的に解けるため、標準的な手法となっています。