整数問題
提供: Internet Web School
(間の2版分が非表示) | |||
127 行: | 127 行: | ||
以下にデータの入力とソルバーの設定例を示す. | 以下にデータの入力とソルバーの設定例を示す. | ||
- | [[ファイル:Open整数計画.jpg| | + | [[ファイル:Open整数計画.jpg|800px]] |
2021年1月18日 (月) 09:23 時点における最新版
整数計画
生産計画で述べた条件と全く同様に,企業では製品A,B,Cを原料Ⅰ,Ⅱ,Ⅲ,Ⅳ用いて生産している. 製品A,B,C の1単位当たり利益をそれぞれ80,110,95とする. また, 製品A,B,Cを1単位生産するのに必要な原料Ⅰ,Ⅱ,Ⅲ,Ⅳのそれぞれ量と使用可能な上限が次の表で与えられる. これらの条件のもとに,利益を最大にするには製品A,B,Cをそれぞれ,どれだけ生産すれば良いか?. ただし,生産量は整数値でなければならない。
原材\製品名 | A | B | C | 使用できる上限 |
Ⅰ | 4 | 0 | 7 | 90 |
Ⅱ | 1 | 3 | 9 | 60 |
Ⅲ | 6 | 0 | 14 | 110 |
Ⅳ | 4 | 10 | 1 | 75 |
この問題は以下のように数学的に定式化される.
整数計画法
製品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) \)
\( x_1,x_2,x_3 \in N, 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\)を求めよ.
この問題を解くのにはMicrosoft Excelのソルバーや フリーソフトのOpen Office で提供されるソルバーと同等の機能をもつソフトを用いることができる.
この問題のMicrosoft Excelのソルバーによる解法例を示す。 ファイル:整数計画.pdf
作成したデータは以下の通りである.
ソルバーのパラメータ 入力は以下の通りである.
ソルバーによる結果は以下の通りである.
$x_1=16,x_2=1,x_3=1$
のときに
$L\left(x_1,x_2, x_3\right)=80x_1+110x_2+95x_3$
が最大値1485をもつことを表す.制約条件は満たされている.
フリーソフトOpenOfficeの表計算(Calc) でも同様に解くことができる.
Calcの線形計画法解析ソフトもExcelと同じ名前の「ソルバー」である. メニューの「ツール」の「ソルバー」である. Excelのソルバーと操作法は殆ど同じある.
ベクトルの内積もExcelと同様にsumproductである. 行ベクトルと行ベクトルとの区切りが,ではなく;であることが異なる。 ベクトル(B4,C4,D4) と(B2,C2,D2)の内積 B4*B2+C4*C2+D4*D2 はsumproduct(B4:D4;B2:D2)で表される. また,
$ x_1,0 x_2,x_3 $ が自然数であるという制約条件 ソルバーのメニューのオプションを使う.
変数を整数と想定
変数を負でないと想定
の両方にチェックを入れる.
以下にデータの入力とソルバーの設定例を示す.