開始使用免費開始

處理多個元素

農夫想把先前的最佳化函式複製過來,套用到農場裡其他動物更複雜的餐點上。

我們已提供先前的程式碼。你能調整這段程式,讓它更擅長處理多個變數嗎?

已為你匯入 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}") 
編輯並執行程式碼