個案研究練習的約束式
延續汽車製造商的「有容量限制的工廠選址」(Capacitated Plant Location)模型個案研究。你已取得 4 個 Pandas 資料框 demand、var_cost、fix_cost 和 cap,分別包含各區域需求(千輛車)、單位生產成本(千美元)、固定生產成本(千美元),以及生產產能(千輛車)。另外也建立了 2 個 Python 清單 loc 與 size,內含各地區位置與兩種工廠產能等級。以上變數都已經列印到主控台,方便你查看。初始化決策變數、定義變數與建立目標函式的程式碼也都替你完成了。
本練習屬於課程
Python 的供應鏈分析
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Initialize, Define Decision Vars., and Objective Function
model = LpProblem("Capacitated Plant Location Model", LpMinimize)
loc = ['USA', 'Germany', 'Japan', 'Brazil', 'India']
size = ['Low_Cap','High_Cap']
x = LpVariable.dicts("production_", [(i,j) for i in loc for j in loc],
lowBound=0, upBound=None, cat='Continuous')
y = LpVariable.dicts("plant_",
[(i,s) for s in size for i in loc], cat='Binary')
model += (lpSum([fix_cost.loc[i,s] * y[(i,s)] for s in size for i in loc])
+ lpSum([var_cost.loc[i,j] * x[(i,j)] for i in loc for j in loc]))
# Define the constraints
for j in loc:
model += lpSum([____ for i in ____]) ____ demand.loc[____,'Dmd']