![](/img/trans.png)
[英]How to define a proper objective function in python for the optimization solver
[英]How to create a dynamic solver (optimization function) in Python
現在,我有一個關於動態約束的問題。 我有原價,但我需要檢查他們是否遵守商業規則,當有違規時,我會更改價格,但我希望總的絕對變化最小。
我的表列如下所示:
這是我的問題:
現在,我正在嘗試實現前三個約束。 我可以在 Excel 中輕松執行此操作,但很難將其移動到 Python。
這是問題所在,我嘗試計算 Difference_1 和 Difference_2,但它需要我將決策變量(即最優價格)帶入 function。Function 如下:
為什么我們這樣做是為了獲得線性解決方案而不是使用絕對值 function。
我嘗試使用 pulp 創建此優化 function,但是當我嘗試將 LpVariable 添加到差異計算中時,
for i in range(df.shape[0]):
D1[i] = (Opt_Price[i]-df['Original_Price'][i])*df['Total_Amount'][i]
D2[i] = (df['Original_Price'][i]-Opt_Price[i])*df['Total_Units'][i]
它說
TypeError: 'LpVariable' object is not subscriptable
我也試過這個:
D1 = (Opt_Price-df['Original_Price'])*df['Total_Amount']
D2 = (df['Original_Price']-Opt_Price)*df['Total_Amount']
提前致謝!
看起來您將Opt_Price
單個 LpVariable,而不是包含它們的字典。 使用LpVariable.dicts
從鍵列表中創建變量字典是非常標准的,如下所示:
Opt_Price = LpVariable.dics("optprices", range(df.shape[0]))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.