簡體   English   中英

PuLP:最小化決策變量的標准差

[英]PuLP: Minimizing the standard deviation of decision variables

在 PuLP 開發的優化問題中,我使用以下目標 function:

objective = p.lpSum(vec[r] for r in range(0,len(vec)))

所有變量都是非負整數,因此向量的總和給出了我的問題的單元總數。 現在我正在為這樣一個事實而苦苦掙扎,即 PuLP 只給出了眾多解決方案中的一個,我想將解決方案空間縮小到有利於決策變量標准差最小的解決方案集的結果。 例如,假設vec是一個包含元素612的向量。 那么 7/11、8/10、9/9 都是同樣可行的解決方案,我希望 PuLP 在 9/9 到達。 那么目標

objective = p.lpSum(vec[r]*vec[r] for r in range(0,len(vec)))

顯然會產生成本 function,這將有助於解決這個問題,但遺憾的是,它是非線性的並且 PuLP 會拋出錯誤。 誰能指出我可能的解決方案?

您可以最小化范圍或帶寬,而不是最小化標准偏差(本質上是非線性的)。 沿着:

 minimize maxv-minv
 maxv >= vec[r]   for all r
 minv <= vec[r]   for all r

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM