線形計画法(生産計画)

提供: Internet Web School

(版間での差分)
68 行: 68 行:
線形の一次式
線形の一次式
 +
<math>
<math>
4x_1+0x_2+7x_3 \\
4x_1+0x_2+7x_3 \\
78 行: 79 行:
ここで,sumproduct(B4:D4,B$2:D$2)はベクトル(B4,C4,D4) と(B2,C2,D2)の内積B4*B2+C4*C2+D4*D2
ここで,sumproduct(B4:D4,B$2:D$2)はベクトル(B4,C4,D4) と(B2,C2,D2)の内積B4*B2+C4*C2+D4*D2
であり
であり
-
<math>
+
<math>4x_1+0x_2+7x_3</math>を表す.
-
4x_1+0x_2+7x_3
+
-
</math>を表す.
+
-
F3,F4, F5, F6には,原材料Ⅰ,Ⅱ,Ⅲ,Ⅳの使用できる量の上限を入力している.
+
F3,F4, F5, F6には,原材料Ⅰ,Ⅱ,Ⅲ,Ⅳの使用できる量の上限を入力している.
-
E7には
+
 
 +
E7には
91 行: 91 行:
を表す式を入力している.
を表す式を入力している.
 +
表のデータを入力後,
表のデータを入力後,
 +
メニュー 「データ」,「分析」,「ソルバー」の順にクリックしてソルバーのパラメータ入力用の窓を開く.
メニュー 「データ」,「分析」,「ソルバー」の順にクリックしてソルバーのパラメータ入力用の窓を開く.
 +
目的の設定という欄にセルE7を指定する 
目的の設定という欄にセルE7を指定する 
 +
目標値には「最大値」を選択し,チェックを入れる.
目標値には「最大値」を選択し,チェックを入れる.
-
変数セルの変更欄にはx_1,x_2,x_3を表すセルB2からD2をドラックして指定する.
+
 
 +
変数セルの変更欄には<math>x_1,x_2,x_3</math>を表すセルB2からD2をドラックして指定する.
制約条件の対象の欄には
制約条件の対象の欄には
この例題の制約条件式
この例題の制約条件式
 +
<math>
<math>
4x_1+0x_2+7x_3 \leq  90 \\
4x_1+0x_2+7x_3 \leq  90 \\
107 行: 113 行:
</math>
</math>
-
を表す式を入力する. 
+
を表す式を入力する.
-
 このためには,入力窓の「追加」をクリックし制約条件の追加入力用の窓を表示させ,
+
 
 +
このためには,入力窓の「追加」をクリックし制約条件の追加入力用の窓を表示させ,
例えば
例えば
 +
<math>
<math>
4x_1+0x_2+7x_3 \leq  90  
4x_1+0x_2+7x_3 \leq  90  
</math>
</math>
を表す式を入力するのであれば
を表す式を入力するのであれば
-
セルの参照欄に<math>
+
セルの参照欄に
 +
<math>
4x_1+0x_2+7x_3 \leq  90  
4x_1+0x_2+7x_3 \leq  90  
</math>
</math>
を表すセルE3を指定
を表すセルE3を指定
-
≦,=,≧などのドロップダウンリストで≦を選択し,制約条件の欄には上限値の90を入力する.入力後さらに「追加」をクリックし他の3つの制約条件式も同様に入力する.
+
≦,=,≧などのドロップダウンリストで≦を選択し,制約条件の欄には上限値の90を入力する.
-
さらに, 制約条件式 <math>
+
 
 +
入力後さらに「追加」をクリックし他の3つの制約条件式も同様に入力する.
 +
 
 +
さらに, 制約条件式 <math>
0 \leq x_1,0 \leq x_2,0 \leq x_3 \qquad (2) 
0 \leq x_1,0 \leq x_2,0 \leq x_3 \qquad (2) 
</math>
</math>
を指定するため
を指定するため
「制約のない変数を非負数にする」 にチェックを入れる.
「制約のない変数を非負数にする」 にチェックを入れる.

2020年11月21日 (土) 15:25時点における版

生産計画

ある企業では製品A,B,Cを原料Ⅰ,Ⅱ,Ⅲ,Ⅳ用いて生産している. 製品A,B,C の1単位当たり利益をそれぞれ80,110,95とする.  また, 製品A,B,Cを1単位生産するのに必要な原料Ⅰ,Ⅱ,Ⅲ,Ⅳのそれぞれ量と使用可能な上限が次の表で与えられる. これらの条件のもとに,利益を最大にするには製品A,B,Cをそれぞれ,どれだけ生産すれば良いか?.

この問題は以下のように数学的に定式化される.

線形計画法

製品A,B,Cをそれぞれ\(x_1,x_2,x_3\) 単位生産するとき\(x_1,x_2,x_3\)は以下の不等式を満たす.

\( 4x_1+0x_2+7x_3 \leq 90 \\ 1x_1+3x_2+9x_3 \leq 60 \\ 6x_1+0x_2+14x_3 \leq 110 \\ 4x_1+10x_2+1x_3 \leq 75 \qquad (1) \)

さらに各製品生産量は負ではないから

\( 0 \leq x_1,0 \leq x_2,0 \leq x_3 \qquad (2)  \)

この制約条件のもとに

\( L\left(x_1,x_2, x_3 \right)=80x_1+110x_2+95x_3 \qquad (3)   \)

を最大にする\(x_1,x_2, x_3\)を求めよ.


\((1)\)式のように変数に関する制約条件式が1次式で与えられ, \((3)\)式のように評価関数も1次式で与えられる問題は線形計画と呼ばれる.


Microsoft Excelのソルバーを用いた解法


1) ソルバーの導入

Excelのメニュー「データ」に「分析」「ソルバー」がある場合は以下の手続きは不要である.そのまま2)ソルバーによる解法の例を実行する.

  Excelのメニュー「データ」に「分析」「ソルバー」がない場合

1-1) ファイル > オプション > アドイン の順に選択

1-2) アドインの表示窓アクティブでないアプリケーションExcelソルバーがあることを確認

1-3) 画面下の管理(A)と表示される小さい窓のドロップダウンリスト▼でExcelアドインを選択後,

1-4) 設定(G)をクリック  有効なアドインが小窓で表示される. その中のソルバーアドインを選択しチェックを入れ[OK]をクリックする.


2) ソルバーによる解法の例

 Excelに下記の作成例のように表1のデータを作成する.


この作成例では セル B2,C2,D2 が 製品A,B,Cのそれぞれの生産量 \(x1,x2,x3\)を表す.

線形の一次式

\( 4x_1+0x_2+7x_3 \\ 1x_1+3x_2+9x_3\\ 6x_1+0x_2+14x_3\\ 4x_1+10x_2+1x_3 \)

をE3, E4, E5, E6に入力している. ここで,sumproduct(B4:D4,B$2:D$2)はベクトル(B4,C4,D4) と(B2,C2,D2)の内積B4*B2+C4*C2+D4*D2 であり \(4x_1+0x_2+7x_3\)を表す.

F3,F4, F5, F6には,原材料Ⅰ,Ⅱ,Ⅲ,Ⅳの使用できる量の上限を入力している.

E7には


\( L\left(x_1,x_2, x_3 \right)=80x_1+110x_2+95x_3 \qquad (3)   \)

を表す式を入力している.

表のデータを入力後,

メニュー 「データ」,「分析」,「ソルバー」の順にクリックしてソルバーのパラメータ入力用の窓を開く.

目的の設定という欄にセルE7を指定する 

目標値には「最大値」を選択し,チェックを入れる.

変数セルの変更欄には\(x_1,x_2,x_3\)を表すセルB2からD2をドラックして指定する.


制約条件の対象の欄には この例題の制約条件式

\( 4x_1+0x_2+7x_3 \leq 90 \\ 1x_1+3x_2+9x_3 \leq 60 \\ 6x_1+0x_2+14x_3 \leq 110 \\ 4x_1+10x_2+1x_3 \leq 75 \qquad (1) \)

を表す式を入力する.   このためには,入力窓の「追加」をクリックし制約条件の追加入力用の窓を表示させ, 例えば

\( 4x_1+0x_2+7x_3 \leq 90 \) を表す式を入力するのであれば セルの参照欄に \( 4x_1+0x_2+7x_3 \leq 90 \) を表すセルE3を指定 ≦,=,≧などのドロップダウンリストで≦を選択し,制約条件の欄には上限値の90を入力する.

入力後さらに「追加」をクリックし他の3つの制約条件式も同様に入力する.

さらに, 制約条件式 \( 0 \leq x_1,0 \leq x_2,0 \leq x_3 \qquad (2)  \) を指定するため 「制約のない変数を非負数にする」 にチェックを入れる.

個人用ツール