首页 文章

LP的计算时间IP的放宽高于优化IP本身

提问于
浏览
0

这是我之前关于使用SCIP进行MIP的LP放松的question的后续内容 .

虽然我能够通过简单地将MIP(以CPLEX格式)传递给SoPlex来计算我的MIP的LP松弛解决方案,但我观察到SoPlex所花费的计算时间高于使用SCIP本身优化MIP(测试较小的输入) ) . 由于SCIP在解决MIP之前在内部使用SoPlex,这怎么可能?而且,我的LP Relaxation结果实际上给出了整数解,并且与MIP具有相同的目标值 . 我在LP Relaxation中犯了错误吗?或者它是我的问题/制定的一些属性?

我指的是求解器打印的总计算时间(不是我自己计算的) .

2 回答

  • 0

    这种行为很可能来自SCIP预处理例程,它缩小并重新构造输入MIP . 您可以通过在开始优化后查看SCIP输出来验证这一点,其中SCIP打印已删除变量的数量,删除约束等 .

    有时,整数配方可以减少问题 . 如果您的问题包含例如二进制变量,则在执行探测时可能会修复很多这些变量:SCIP迭代地将二进制变量修复为0或1,如果一个固定导致不一致,则变量得到修复 .

  • 0

    这种行为可以通过不同的预先决定步骤来解释 . SCIP的预分解通常比SoPlex更快,并且删除更多的行和列 . 请查看统计数据中的相应信息 . 您可以通过键入 display statistics 在交互式shell中显示SCIP统计信息,而SoPlex使用命令行参数 -q 打印更多信息(如果您使用的是SoPlex 2.0) . 您可以尝试的另一件事是参数调整 . 您是否在SoPlex中测试了不同的价格( -p3 为devex, -p4 为最陡边缘)或缩放器( -g1 -g3-g4 )?运行SoPlex时无需解决问题,它将显示可用参数 .

相关问题