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 和 CPXsetintparam:
CPXXsetintparam(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>