MST 文件格式:MIP 启动

MST 文件格式支持 MIP 启动。

如果使用 CPLEX MIP 优化器,那么 MST 文件格式可用于为特定变量(最常见为整数变量)指定 MIP 启动值。 MST 文件的格式与 SOL 文件相同。 尽管 SOL 文件具有所有变量的值,但是由 CPLEX 以缺省写详细级别编写的 MST 文件仅具有特殊有序集合 (SOS) 的整数变量和成员的值;在更高的写详细级别,MST 文件还可包含离散变量和连续变量。 有关MST、SOL 文件写入级别的更多信息,请参阅《CPLEX 参数参考手册》。

MST 文件格式还支持从解法池成员进行的 MIP 启动。 请参阅《用户手册》中的 "使用解决方案池中的解决方案",了解如何使用解决方案池中的成员作为 MIP 启动。 请参阅关于方法的详细信息(记录在其各自的参考手册中)。
  • C++ API IloCplex::writeMIPStarts
  • Java API IloCplex.writeMIPStarts
  • .NET API Cplex.WriteMIPStarts
  • Python应用程序接口cplex.writemipstarts
  • 可调用库(C API)例程CPXXwritemipstarts 和 CPXwritemipstarts
要在 Interactive Optimizer 中显示 MIP 启动的名称,请使用命令:

display auxiliary mipstarts
该命令显示 CPLEX 所知的 MIP 启动的名称。 这些 MIP 启动的索引编制从 1(一)开始。

仅当高级指示符参数处于启用状态(即,设置为其缺省值 1(一))时,CPLEX 才使用 MST 文件中的启动值。

  • 在 C++ API 中,使用 IloCplex::setParam(IloCplex::Param::Advance, 1) 方法。

  • 在 Java API 中,使用 IloCplex.setParam(IloCplex.Param.Advance, 1 方法。

  • 在 .NET API 中,设置 Cplex.SetParam(Cplex.Param.Advance, 1) 属性。

  • 在 Python API 中,使用方法 cplex.parameters.advance.set(cpx.parameters.advance.values.standard)

  • 在可调用程序库中,使用带有这些参数的例程CPXXsetintparam 和 CPXsetintparamCPXXsetintparam(env, CPXPARAM_Advance, 1).

  • 在交互式优化器中,使用 "set advance 1命令。

缺省情况下,MST 文件格式的编码为 UTF-8。

以下是 MST 文件的示例:


<?xml version = "1.0" encoding="UTF-8" standalone="yes"?>
<CPLEXSolutions version="1.2">
 <CPLEXSolution version="1.2">
  <header
    problemName="mexample.mps"
    solutionName="m1"
    solutionIndex="0"
    MIPStartEffortLevel="0"
    writeLevel="2"/>
  <variables>
   <variable name="x4" index="3" value="3"/>
  </variables>
 </CPLEXSolution>
</CPLEXSolutions>