スタートページWeb教材一覧オペレーションズリサーチ線形計画法

Excelソルバーによる整数計画法の解法

学習のポイント

Excelのソルバー機能を用いて小規模の整数計画法(ILP)の問題を解く手順を説明します。

キーワード

整数計画法,Excelソルバー


整数計画法とは

整数計画法とは、線形計画法の派生手法の一つで、「変数の全部あるいは一部が整数値である」という制約条件を加えたものです。

これまでの線形計画法の定式化と図式解法などでは、製品xとyは「トン」のような連続量だとしていました。しかし、製品が機械のようなものだと、最適解が16.5個などではなく、16個、17個のような整数でないと不適切な場合があります。

通常の線形計画法での最適解が整数値だと説明がしにくいので、モデルを若干修正しました、

    目的関数
     Z=3x+2y → 最大
    制約条件
       4x+1y≦72
       2x+2y≦45 ←48を変更
       1x+3y≦48
       x≧0,y≧0

整数制約がないときのの場合は下左図のようになり、制約条件は青色の範囲で、最適解はP点になります。製品yは6個ですが、製品xは16.5個になってしまいました。
 P点付近を拡大したのが下右図です。xとyが整数になる候補として、赤点が考えられます。目的関数(赤線)との関係から、直感的にQ点(x=16個、y=6個)が最適であるとわかります。

単純なモデルならば、このようにいつかの候補に絞り込み、目的関数を計算して最大のものを求めることもできますが、変数や制約式が多い場合は不可能です。整数計画法の解法は幾つかありますが、すべて私たちには理解が困難な高度な数学を用います。
 解法を理解するのではなく、単に解を得たいだけなら、Excelのソルバー機能が利用できます。

整数計画法の応用と限界

生産計画で、設備有無を0と1で表すことにより、設備の有無も含めた最適解を得ることができます。
 それを発展させれば、いわゆる組合せ問題を整数計画法として定式化できます。
 組合せ問題はORの分野で適用したい問題が多いのに、計算量が極度に大きくなるので、何らかの妥協をしてアプローチしている現状です。

効率的な整数計画法の解法が期待されるのですが、未だ画期的なものがありません。専用のアプリでもそうなのですから、実務的な問題をソルバーで解くのは無理だといえます。

整数制約のない場合の求解操作

ソルバーによる((通常の)線形計画法の解法は、「Excelソルバーによる整数計画法の解法」で説明しました。
 その復習から始めます。

Excelを起動して,次の入力画面のように入力します。

入力を終えたExcelファイル(reidai.xlsx)をダンロードできます。


入力画面

Excel画面で,[データ]→[ソルバー]をクリックすると,ソルバーが起動して,「ソルバーのパラメータ」が表示されるので、次のように設定します。


設定画面1

[解決]をクリックすると、最適解が得られると、次の画面が表示されます。


設定画面2

[OK]をクリックすると、入力画面が次のように変化します(緑と青の個所)。


整数制約がないときの解

すなわち,「x=16.5,y=6のとき,目的関数は最大値61.5になり,制約条件はaとbは余裕がないが,cは48-34.5=4.5の余裕がある」ことがわかります。

整数制約がある場合

ソルバーでは、「xとyは整数値である」ことを、「制約条件の追加」で設定します。設定画面1で「追加」をクリックし、設定画面3で「int」を指定します。これだけでよいのだから簡単ですね。


設定画面3

[OK]をクリックすると、設定画面2に整数条件を追加した設定画面4が表示されます。


設定画面4

後は、制約がない場合とほぼ同じです。[解決]をクリックすると、最適解が得られたとき、次の画面が表示されます。


設定画面5

[OK]をクリックすると、入力画面が次のように変化します(緑と青の個所)。


整数条件を加えたときの解

これより、最適解はx=16個、y=6個で、目的関数の値が60であることがわかります、