在 PuLP 開發的優化問題中,我使用以下目標函式:
objective = p.lpSum(vec[r] for r in range(0,len(vec)))
所有變數都是非負整數,因此向量的總和給出了我的問題的單位總數。現在我正在努力解決這樣一個事實,即紙漿只給出了許多解決方案中的一個,我想將解決方案空間縮小到有利于決策變數標準偏差最小的解決方案集的結果。例如說vec是一個帶有元素6和的向量12。然后 7/11、8/10、9/9 是同樣可行的解決方案,我希望 PuLP 在 9/9 到達。那么目標
objective = p.lpSum(vec[r]*vec[r] for r in range(0,len(vec)))
顯然會創建一個成本函式,這將有助于解決此問題,但可惜它是非線性的,并且 PuLP 會引發錯誤。誰能給我指出一個潛在的解決方案?
uj5u.com熱心網友回復:
您可以最小化范圍或帶寬,而不是最小化標準偏差(本質上是非線性的)。沿著:
minimize maxv-minv
maxv >= vec[r] for all r
minv <= vec[r] for all r
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/483285.html
上一篇:是否有任何命令可以使數學信號“不等于”出現在字串中?
下一篇:根據羅盤方向計算位移
