見出し画像

ExcelとLpSolve

目的

最適化問題の解法としてよく用いられる混合整数計画法(MIP)。MIPはソルバーでも解くことができますが、ソルバーには決定変数の数が200まで(200変数を超えるとエラーになる)という制約があるので、無償で利用できるLpSolveをExcelから利用できるようにしておくとなにかと便利です。

要件

ユーザインタフェース

demo.xlsのサンプルを少し変更して次のような混合整数計画問題を考えます。
決定変数:x1 , x2 , x3 , x4 , x5(非負)
目的関数:2 x1 + 3 x2 - 2 x3 + 3 x4 + 3 x5 → 最大化
制約条件
   c1:0.5 x1 + 4 x2 + x3 + 2 x4 + 3 x5 >= 3
   c2:x1 + 2 x2 + x3 + x4 + 2 x5 = 8
   c3:4 x1 + x2 - 2 x3 + 2 x4 - 2 x5 <= 5
   x4は整数、x5はバイナリ
   x5 <= 5.3 , x2 >= 2
この問題を記述できるユーザインタフェースとして次のようなシートを用意します。水色ハッチング部分は変数名および制約条件名ですがおそらく日本語に対応していないので半角英数で記入します。黄色ハッチング部分には混合整数計画問題を解いたあとに最適化結果である決定変数や目的関数の値を入力します。

実行前

結果

実際に最適化実行した結果がこちらです。

実行後

決定変数の列や制約条件の行を挿入すればある程度問題の拡張にも対応可能です。

別の問題の実行後

最後に

以下はプログラムソースとファイルを添付していますが、再利用目的の意味合いが強いのでカギをかけておきます。笑

ここから先は

4,770字 / 1画像 / 1ファイル

¥ 300

PayPay
PayPayで支払うと抽選でお得

この記事が気に入ったらチップで応援してみませんか?