控制优化器
描述 C++ API 中用于控制优化器的参数。
尽管 CPLEX 缺省值已足以求解大部分问题,但 CPLEX 仍提供了各种参数来控制各种算法选项。 CPLEX
参数可采用类型为 bool
、num
、int
和
string
的值。 IloCplex
提供了四个类别的参数,这些参数在嵌套枚举类型中列出:
要从 Concert Technology 访问您感兴趣的参数的当前值,请使用方法 getParam。
要访问参数的缺省值,请使用方法 getDefault。
使用 getMin 和 getMax 方法可访问 num
和 int
类型的参数的最小值和最大值。
此枚举: | 用于此参数: |
---|---|
IloCplex::Algorithm
|
IloCplex::RootAlg
|
IloCplex::Algorithm
|
IloCplex::NodeAlg
|
IloCplex::MIPEmphasisType
|
IloCplex::MIPEmphasis
|
IloCplex::VariableSelect
|
IloCplex::VarSel
|
IloCplex::NodeSelect
|
IloCplex::NodeSel
|
IloCplex::PrimalPricing
|
IloCplex::PPriInd
|
IloCplex::DualPricing
|
IloCplex::DPriInd
|
IloCplex::BranchDirection
|
IloCplex::BrDir
|
当然,在 Concert Technology 中提供了用于设置这些参数的例程。 请使用下列方法来设置 CPLEX 参数的值:
-
setParam(
BoolParam
,value
); -
setParam(
IntParam
,value
); -
setParam(
NumParam
,value
); -
setParam(
StringParam
,value
);
例如,通过以下调用,可将用于控制单纯形法算法最优性容差的数字参数
IloCplex::EpOpt
设置为 0.0001:
setParam(IloCplex::EpOpt, 0.0001
);
《CPLEX 参数参考手册》记录了每个参数的类型(bool
、int
、num
或 string
)以及表示该参数的 Concert Technology 枚举值、符号常量和引用号。
方法 setDefaults 将所有参数(日志文件除外)重置为其缺省值,包括 CPLEX 回调函数。此例程将回调函数重置为
NULL
。
对 MIP 进行求解时,CPLEX 将提供对求解过程的其他控制。 您可使用优先顺序和分支方向以静态方式控制分支。 启发式算法对这些控制作了探讨。 这些控制允许根据求解期间不会更改的数据来控制求解过程,就此而言,这些控制是静态的,因此可以在模型求解之前进行设置。
MIP 求解过程的动态控制是通过目标或控制回调来提供。 使用目标和使用旧优化回调对它们进行探讨。 目标和回调允许根据求解过程中生成的信息来控制求解过程。 目标和回调:比较对每种方法的优势作了对比。