恒定的变量
回答我有独立制定出来。
是非常方便的在我的配方有二进制(甚至是整数)变量不变。
例如一个平价变量为一个特定的已知节点的值为1。
我经历过的文档,还没有找到任何东西。manbet体育手机客户端
当然我可以找到一个方法不使用变量,但它将创建一个非常混乱的代码。
我知道我可以使用乌兰巴托和磅属性来处理这个问题(二进制我只需要其中的一个),但是我不确定如果gurobi知道如何处理得很好(解决LP问题然后调整变量恒定的声音高昂。一个可以简单地可以读取的变量使forumlations更可以理解的)。
Gurobi有一些机制来处理常量变量吗?
-
嗨,巴拉克,
最好的方法处理这个问题在你结束是简单地设置这些变量的上下边界相同的值。在做任何其他事情之前,Gurobi执行“presolve”步骤,旨在创建一个模型的等效版本,(希望)更小,更容易解决。Gurobi然后解决这个presolved模型和地图presolved回到原始变量空间的解决方案。presolve步骤可以删除不必要的约束和变量,收紧变量范围,将变量结合在一起,等。Gurobi替换原始模型中固定变量与常量在presolved模型中,所以你不必担心这样做你自己。
你可以阅读更多关于presolve在这里。
伊莱
0 -
谢谢你,伊莱。这个答案我是关于什么!
华盛顿大学和问候:)
快速跟进的问题:说我有诸如“参数*变量”目标/约束。编码的原因,我更喜欢定义“参数”作为gurobi模型变量磅=乌兰巴托。将Presolve轻松地识别这些术语作为线性代替二次吗?
顺便说一句,这样做的原因是,我需要反复解决相同的模型有不同的参数值。它不是很容易跟踪指针参数的变化。
0 -
嗨,光!是的,presolve应该取代固定变量与常量。然而,这将是更直观(和简单,我相信)与API函数来完成这项工作。例如,在c++中,你可以改变约束系数使用GRBModel: chgCoeff ()/GRBModel: chgCoeffs ()。客观的系数可以通过设置修改Obj变量属性。
0
请登录留下你的评论。
评论
3评论