如何在 python 中使用 PuLP 在线性优化中包含动态约束?



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

带有术语的 Excel 示例快照

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

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

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

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

我不明白你的约束,因为这些数字似乎只是目标函数中系数的其他值。

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

如果您希望目标值在特定范围内,您可以添加: 系数 * x1 + 系数 * x2 <= (>=( 值 然后,如果要更改右侧值,可以在第一个循环后再次运行程序,依此类推。

最新更新