我在使用多个求解器(GUROBI、pyscipopt和mindopt)写约束条件碰到了点小问题,
条件是这样的,
if1_SSC = model.addVar(lb=0, vtype='C', name='含铁辅料消耗上限_if1')
cond3 = model.addVar(lb=0, vtype='C', name='条件步含铁辅料消耗上限_if1')
model.addCons(cond3 == ((self.含铁辅料消耗上限 - (self.冷料上限铁耗 - if2_MIC) / self.铁水消耗与含铁料热平衡比值) / self.含铁辅料收得率))
然后我这里就想当cond3大于0的时候,取cond3和 self.含铁辅料消耗上限 较小的那个值,GUROBI中写法是
我查询了一下,mindopt和scip中是没有这个函数的,想请教一下我这种情况应该怎么写比较合适,实际想实现
可以使用大M法,大M法写分段函数是需要引入变量,可以参考网上的博文,搜索“分段函数 整数规划” ,比如:https://www.jianshu.com/p/b579e35fda17。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。