【Python MIP】包絡分析法(DEA)モデル【CCRモデル】

【はじめに】

「包絡分析法(DEA)モデル」について、「Python MIP」でプログラムをしてみる。

※答え合わせができるように以下サイトの例題を使ってみる。

なお、Python MIPのドキュメントは以下。
■Python MIP

※補足
本記事は、「python MIP」で同じ結果が得られるように実装をしますが、
「取り上げる例題を掲載しているサイト」で使用されている商品「Numerical Optimizer」とその「モデリング言語SIMPLE」を否定しているものではありません。


【実行環境について】

今回は「Google Colab」上で実行してみる。

【例題】

以下の「店舗0~5」について「店員数、稼働時間、売上」のデータが次の通りになっている。

・入力データ:「店員数」「稼働時間」
・出力データ:「売上」

として、「店舗番号4」について「DEAに基づいた効率性の評価」をせよ。

【1】ライブラリのインストール

!pip install mip

【2】サンプルデータの用意

input = [
         [5.0,24.0],
         [10.0,12.0],
         [20.0,12.0],
         [20.0,24.0],
         [30.0,12.0],
         [50.0,12.0],
         ]

# 出力(今回は1つだが汎用性を考慮して多次元配列化)
output = [
          [2.0,], 
          [6.0,], 
          [10.0,], 
          [12.0,], 
          [12.0,], 
          [20.0,]
          ]

【3】Modelの作成と変数の用意

from mip import Model, xsum, maximize, CONTINUOUS


m = Model("DEA")
w_in = [m.add_var(var_type=CONTINUOUS,ub=1.0) for i in range(len(input[0]))] # 2個作る
w_out = [m.add_var(var_type=CONTINUOUS,ub=1.0) for i in range(len(output[1]))] # 1個作る

【4】目的関数を作成する

ここから先は

1,117字

¥ 100

もっと応援したいなと思っていただけた場合、よろしければサポートをおねがいします。いただいたサポートは活動費に使わせていただきます。