MIP:在 CPLEX (C++) 中修复部分解向量

问题描述

我正在 C++ 中使用 CPLEX 实现数学运算,其中我使用提供的不同部分解向量多次启动相同的 MIP。

然而,我不仅想提供一个起始解决方案,我还希望在整个优化过程中部分解决方案向量中的变量被视为固定的(原因是,始终探索搜索间的不同部分一种受控的方式)。

搜索 CPLEX 和此处的文档,我真的找不到提供我正在寻找的功能的合适函数调用,并且非常感谢提示如何以良好和有效的方式解决此问题。

我能想到的一种解决方法是通过向模型添加约束(例如 y == 4)并在求解生成的子 MIP 后,从模型中删除约束来修复变量(如所述{ {3}})。但是,是否有更好的选择来实现这一目标?是否有可能利用通过使用固定部分解向量 a 求解一个 MIP 获得的预处理信息,然后用不同的固定部分解向量 b 求解相同的 MIP?毕竟,核心模型没有改变。

关于使用部分解决方案热启动 CPLEX,我发现了 3 级 here 努力级别和描述:

解决一个 subMIP。您必须指定至少一个离散值 在这个努力水平上可变

但是我是否正确地解释了这一点,这意味着它试图通过解决子 MIP 来构建一个起始解决方案,然后继续解决整个优化问题,在起始解决方案中可能会改变变量,而我只对解决问题感兴趣子MIP。

谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)