處理多個元素
農夫想把先前的最佳化函式複製過來,套用到農場裡其他動物更複雜的餐點上。
我們已提供先前的程式碼。你能調整這段程式,讓它更擅長處理多個變數嗎?
已為你匯入 pulp。
本練習屬於課程
Python 最佳化入門
練習說明
- 將變數定義調整為使用
LpVariable.dicts(),以名稱"Food"建立,並儲存為variables。 - 將目標函式調整為使用
lpSum()。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
model = LpProblem("MinCost", LpMinimize)
# Adjust the variable definition
C = LpVariable("C", lowBound=0)
S = LpVariable("S", lowBound=0)
# Adjust the objective function
cost = {'C': 0.11, 'S': 0.28}
model += 0.28*S + 0.11*C
model += 40*variables['S'] + 10*variables['C'] >= 17*(variables['C']+variables['S']), "M_protein"
model += variables['S'] + 2.5*variables['C'] >= 2*(variables['C']+variables['S']), "M_fat"
model += variables['C'] + variables['S'] >= 7, "M_weight"
model.solve()
print(f"Cost = {value(model.objective):.2f}")
print(f"Pounds of soybean = {variables['S'].varValue:.2f}, pounds of corn = {variables['C'].varValue:.2f}")