首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果线性规划决策变量>0,则>= 3000

如果线性规划决策变量>0,则>= 3000
EN

Stack Overflow用户
提问于 2017-01-30 04:53:33
回答 1查看 2.5K关注 0票数 2

我正在尝试使用Excel中的求解器来创建一个线性规划,以最小化共同基金的费用。我的决策变量是每个基金的投资金额。如果有任何投资,它必须满足基金的最低要求。我如何对此进行编程?

基金1 >=投资金额如果基金1投资金额> 0,则基金1 >= 3000投资金额=0

任何帮助都是非常感谢的。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2017-01-30 05:25:19

这些类型的约束是由Big M Method的变体强制执行的

假设x是与要投资于基金1的金额相对应的决策变量。根据x的可能值选择上限M。例如,如果你只有1,000,000美元可以投资,让M = 1,000,000你不需要在x上有最小的上限。M = 2,000,000也可以工作(尽管如果M不是不合理的大,通常会得到更快的收敛和更少的舍入误差)。

引入一个新变量y,它被约束为01 (即二元决策变量)。将以下两个约束添加到模型中:

代码语言:javascript
运行
复制
x >= 3000*y
x <= M*y

如果为x>0,则第二个添加的约束会强制y远离0,因此它会强制y = 1,因为y是二进制的。但如果为y = 1,则第二个约束将减少为x <= M,这通过选择M自动为真,因此它不会为x添加任何真正的约束。但是--因为在本例中是y = 1,所以第一个约束变为x >= 3000。因此,这两个约束一起迫使x >= 3000x > 0一样快。重要的是,它没有使用非线性if函数。这确实使其成为MILP (混合整数线性规划)问题--但Excel的求解器可以处理那些没有问题的问题(只要二进制变量的数量不会变得太大)。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41925829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档