[英]PuLP: Minimizing the standard deviation of decision variables
在 PuLP 开发的优化问题中,我使用以下目标 function:
objective = p.lpSum(vec[r] for r in range(0,len(vec)))
所有变量都是非负整数,因此向量的总和给出了我的问题的单元总数。 现在我正在为这样一个事实而苦苦挣扎,即 PuLP 只给出了众多解决方案中的一个,我想将解决方案空间缩小到有利于决策变量标准差最小的解决方案集的结果。 例如,假设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)))
显然会产生成本 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.