python - python - 如何在python中使用PuLP在线性优化中包含动态约束?
问题描述
我一直在使用 PuLP 库解决线性优化问题。如何在我的代码中包含此动态约束?
我需要最小化由 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 的列)。
解决方案
最小值 -8000 * x1 - 15000 * x2 + 目标
我没有得到您的约束,因为这些数字似乎只是目标函数中系数的其他值。
所以我看不出你的“程序”不只是设置x1,x2 = 0的原因,没有什么可计算的,因为没有约束..
如果你希望你的目标值在一个特定的范围内,你可以添加: coeff * x1 + coeff * x2 <= (>=) value 然后如果你想改变右边的值,你可以在第一个之后再次运行程序循环等等。。
推荐阅读
- mongodb - 将 flask-wtf 形式的文件保存到 MongoDB 的 GridFS
- visual-studio-2017 - Visual C++ 项目系统包
- c# - Xamarin 表单单元测试命令
- javascript - 如何断开匿名 MutationObserver 与文档元素的连接,而不用其克隆替换元素?
- r - external() 中的函数用于识别完全相等
- python - tensorflow - 如何使用张量名称构建操作?
- c# - 迁移的 asmx 服务需要什么样的项目
- gnu-screen - 无法通过记录到特定输出文件来启动 linux“屏幕”
- python - Pelican:通过从 YAML 读取元数据来自定义 index.html
- python - 如何在 Python 中处理套接字超时