Optimization 在Gurobi中实现切割生成问题的最佳方法是什么?

Optimization 在Gurobi中实现切割生成问题的最佳方法是什么?,optimization,mathematical-optimization,gurobi,mixed-integer-programming,Optimization,Mathematical Optimization,Gurobi,Mixed Integer Programming,我想在MILP中实现一个削减,如果我们遇到MIP可行点,将添加该削减。切割应通过切割生成问题进行。我想用一个最小可行RHS来约束上面的线性切割表达式(其参数取决于MIP可行点)。因此,我想最大化切割表达式s.t.变量的一些框约束(见下文) max sum(a[i]*x[i]表示someIndexSet中的i) s.t.lb[i]我想,从实现的角度来看,这应该是可行的。无论定义回调的是什么,都只需要访问指向另一个gurobi实例的指针(泛化)。您的用例看起来更简单,因为第二个实例可以预先创建(指针

我想在MILP中实现一个削减,如果我们遇到MIP可行点,将添加该削减。切割应通过切割生成问题进行。我想用一个最小可行RHS来约束上面的线性切割表达式(其参数取决于MIP可行点)。因此,我想最大化切割表达式s.t.变量的一些框约束(见下文)

max sum(a[i]*x[i]表示someIndexSet中的i)


s.t.lb[i]我想,从实现的角度来看,这应该是可行的。无论定义回调的是什么,都只需要访问指向另一个gurobi实例的指针(泛化)。您的用例看起来更简单,因为第二个实例可以预先创建(指针已知)并多次重复使用。这只是一个猜测,并没有涵盖其他潜在问题,如资源争夺战(在动态搜索期间,gurobi可能会在回调运行时继续工作)、对同步的潜在需求(从>1TheADS调用回调)或license-Rest。不确定我是否误读了您所说的内容,但您的
max sum(a[I]*x[I]对于someIndexSet中的i)
受制于
lb[i],我很抱歉我的陈述不准确,我也应该提到,x[i]都是连续的。我的意思不是单纯的检查,但我可以编写一个小例程来解决这个非常特殊的问题,而无需使用考虑系数符号和变量范围的适当解算器。对吗?是的,只要看符号就可以决定是将每个变量固定在其下限还是上限。“通过检查”是数学的说法:“有一个微不足道的算法不值得详细说明”