線形計画問題のシンプレックス法

このマクロは、改訂シンプレックス法を使用して線形計画の最適解を見つけます。線形計画(LP)は、線形項のみを含む目的関数に対し、線形制約のみが存在すると仮定します。

一般に、制約の数は決定変数の数よりもはるかに小さくなり、従来のシンプレックス法は効果がありません。

目的関数は、利益またはコストを表す場合など、数値演算関数を最大化または最小化するために使用できます。通常、最適化は制約され、最適解は利用できるリソース量やプロジェクトの予算などで定義される特定の限界内である必要があります。

マクロをダウンロードする

ダウンロードしたマクロの場所をMinitabが見つけられるようにします。[ツール] > [オプション] > [一般]を選択し、[マクロの位置]でマクロファイルを保存する場所を参照します。

重要

古いWebブラウザを使用している場合、[ダウンロード]ボタンをクリックしたときに、Minitabマクロと同じ.mac拡張子を使用するQuicktimeでファイルが開く場合があります。マクロを保存するには、[ダウンロード]ボタンを右クリックして[対象をファイルに保存]を選択します。

必須入力項目

  • 目的関数の係数を含む列。
  • 変数、条件式記号、および結果を含む目的関数の各要素に対応する列。この列のセットの各行で、最適化の制約が指定されます。

次の例は、Hillier and Liebermanのもので、Wyndor Glass社の2つの製品(x1、x2)の製造工程を表しています。

利益の最大化t = 3x1 + 5x2(目的関数)

対象:

x1   <= 4 (工場1)
  2x2 <= 12 (工場2)
3x1 +2x2 <= 18 (工場3)

x1 ≥ 0、x2 ≥ 0(非負制約)

係数、条件式記号、および結果は、次のようにMinitabワークシートに入力されます。

C1 C2 C3 C4 C5
x1 x2 条件式記号 結果 目的
1 0 <= 4 3
0 2 <= 12 5
3 2 <= 18  

オプション入力

MIN
デフォルトでは、マクロが最大化の問題を解決します。目的関数を最小化するには、メインコマンドの後にセミコロンを入力し、2番目の行にコマンドMINとピリオド(.)を入力します。ピリオドはコマンドの終わりを示します。

マクロの実行

上記のデータがあるとします。マクロを実行するには、[編集] > [コマンドラインエディタ]を選択し、次のコマンドを入力します。

%SIMPLEX C1-C2 C4 C5; 
INEQ C3.

[コマンドを発行する]をクリックします。

詳細情報

通常、n + 2列は問題を定式化するために指定されます。メインコマンドに入力される最後の引数は、目的関数の係数を含む列に対応します。最後から2番目の引数の列には、問題のすべての条件式の右辺が指定されている必要があります(デフォルトで仮定される非負は除く)。最初のn列には、a11*x1 + a12*x2 + ... + a1n*xnタイプのすべての線形制約の係数(a11、a12、...、a1n)を指定します。

最後に、すべての条件式記号が「<=」タイプの場合は、何もする必要はありません。それ以外の場合は、1つの列にすべての制約の記号を指定します。

このアルゴリズムの技術的詳細は、次の文献を参照してください。

Bazaraa, M. S., Jarvis, J. J. and Sherali, H.

本サイトを使用すると、分析およびコンテンツのカスタマイズのためにクッキーが使用されることに同意したことになります。  当社のプライバシーポリシーをご確認ください