首页 > 解决方案 > python - 如何在python中使用PuLP在线性优化中包含动态约束?

问题描述

我一直在使用 PuLP 库解决线性优化问题。如何在我的代码中包含此动态约束?

带有术语的excel示例的快照

我需要最小化由 A 和 B 的加权和形成的投资组合 (-19391.8) 的 VaR 1D - 目标函数

同时,应将投资组合的 VaR10D 降低给定的目标(-39100 至 -29100)。ow,如您所见,投资组合的 Var10d 和 Var1d 是“总计”列中的第二小值。现在,我需要在代码中添加一个约束,即 Var10d 应减少 10000(即减少到 -29100),但同时它也应该是通过加权和计算的总列中的第二最小值'A' 和 'B' 在每一天。

因此,我需要能够 1. 最小化 Var1d 的最佳权重(虽然它是 Var10d 的“总计”列中的第二小),2. 将 Var10d 减少 10000(即到 -29100)(而它是“总计”中的第二小' Var1d 的列)。

标签: pythonoptimizationlinear-programmingpulp

解决方案


最小值 -8000 * x1 - 15000 * x2 + 目标

我没有得到您的约束,因为这些数字似乎只是目标函数中系数的其他值。

所以我看不出你的“程序”不只是设置x1,x2 = 0的原因,没有什么可计算的,因为没有约束..

如果你希望你的目标值在一个特定的范围内,你可以添加: coeff * x1 + coeff * x2 <= (>=) value 然后如果你想改变右边的值,你可以在第一个之后再次运行程序循环等等。。


推荐阅读