8.2. 参数

以下为使用四种语言分别获取参数的示例

Python

# pname = param name, ptype = param type,  pval = current value, pmin = the minimum value that can be set, pmax = the maximum value that can be set, pdef = default value
pname, ptype, pval, pmin, pmax, pdef = self.m.getParamInfo('MaxTime')
pname, ptype, pval, pmin, pmax, pdef = self.m.getParamInfo('MaxTim*')
pname, ptype, pval, pmin, pmax, pdef = self.m.getParamInfo('MaxTim?')

Java

// Get int param
env.set(MDO.IntParam.NumThreads, 5);
// Get double param
model.get(MDO.DoubleParam.MaxTime);

CPP

// Get int param
env.get(MDO_IntParam_NumThreads);
// Get double param
model.get(MDO_DoubleParam_MaxTime);

C

// Get int param
int numt;
MDOgetintparam(env, "NumThreads", &numt);
// Get double param
double maxtime;
MDOgetdblparam(m, "MaxTime", &maxtime);

以下为使用四种语言分别修改参数的示例

Python

env.setParam("MaxTime", 10)
env.setParam("MaxTim*", 10)
env.setParam("MaxTim?", 10)

Java

// Set int param
env.set(MDO.IntParam.NumThreads, 5);
// Set double param
model.set(MDO.DoubleParam.MaxTime, 45.2);

CPP

// Set int param
env.set(MDO_IntParam_NumThreads, 5);
// Set double param
model.set(MDO_DoubleParam_MaxTime, 45.2);

C

// Set int param
MDOsetintparam(env, "NumThreads", 2);
// Set double param
double maxtime;
MDOsetdblparam(m, "MaxTime", 34.2);

8.2.1. Int参数

Dualization

设置是否对模型对偶化

EnableNetworkFlow

设置是否启用网络单纯形法

EnableStochasticLP

检测随机线性规划问题结构

IPM/MaxIterations

设置内点法中最大迭代次数

MIP/AllowDualPresolve

指定是否启动MIP的对偶预处理方法

MIP/AutoConfiguration

设置是否开启MIP自动参数配置

MIP/DetectDisconnectedComponents

指定是否在MIP中启用非连通分量策略

MIP/MaxNodes

设置MIP中的最大节点限制

MIP/MaxSols

设置MIP中最大解数目

MIP/MaxStallingNodes

设置允许延迟的最大节点数

MIP/RootParallelism

设置MIP求解中根节点允许的最大并发线程数

MIP/SolutionPoolSize

设置解缓存池的最大容量

Method

设置选取的优化方法

NumThreads

设置所使用的线程数

Presolve

设置是否开启预处理方法

SPX/ColumnGeneration

设置是否在单纯形法中使用列生成方法

SPX/CrashStart

设置是否在单纯形法中使用初始基解生成方式

SPX/DualPricing

设置单纯形法中的对偶定价策略

SPX/MaxIterations

设置单纯形法中最大迭代次数

SPX/PrimalPricing

设置单纯形法中的原始定价策略

SolutionTarget

设置LP问题里解的类型

8.2.1.1. Dualization

设置是否对模型对偶化

  • 类型: int

  • 默认值: -1

  • 最小值: -1

  • 最大值: 1

-1

让求解器来决定

0

禁用模型对偶化

1

启用模型对偶化

8.2.1.2. EnableNetworkFlow

设置是否启用网络单纯形法

  • 类型: int

  • 默认值: 0

  • 最小值: 0

  • 最大值: 1

0

关闭网络单纯形法

1

启用网络单纯形法

8.2.1.3. EnableStochasticLP

检测随机线性规划问题结构

  • 类型: int

  • 默认值: 0

  • 最小值: 0

  • 最大值: 1

0

关闭检测方法

1

启用检测方法

8.2.1.4. IPM/MaxIterations

设置内点法中最大迭代次数

  • 类型: int

  • 默认值: 400

  • 最小值: 0

  • 最大值: 2147483647

8.2.1.5. MIP/AllowDualPresolve

指定是否启动MIP的对偶预处理方法

  • 类型: int

  • 默认值: 1

  • 最小值: 0

  • 最大值: 1

0

禁用对偶预处理方法

1

允许使用对偶预处理方法

8.2.1.6. MIP/AutoConfiguration

设置是否开启MIP自动参数配置

  • 类型: int

  • 默认值: 1

  • 最小值: 0

  • 最大值: 1

0

禁用自动参数配置

1

启用自动参数配置

8.2.1.7. MIP/DetectDisconnectedComponents

指定是否在MIP中启用非连通分量策略

  • 类型: int

  • 默认值: 1

  • 最小值: 0

  • 最大值: 1

0

禁用非连通分量策略

1

启用非连通分量策略

8.2.1.8. MIP/MaxNodes

设置MIP中的最大节点限制

  • 类型: int

  • 默认值: 2147483647

  • 最小值: 0

  • 最大值: 2147483647

8.2.1.9. MIP/MaxSols

设置MIP中最大解数目

  • 类型: int

  • 默认值: 2147483647

  • 最小值: 1

  • 最大值: 2147483647

8.2.1.10. MIP/MaxStallingNodes

设置允许延迟的最大节点数

  • 类型: int

  • 默认值: 2147483647

  • 最小值: 0

  • 最大值: 2147483647

8.2.1.11. MIP/RootParallelism

设置MIP求解中根节点允许的最大并发线程数

  • 类型: int

  • 默认值: 8

  • 最小值: 1

  • 最大值: 256

8.2.1.12. MIP/SolutionPoolSize

设置解缓存池的最大容量

  • 类型: int

  • 默认值: 0

  • 最小值: 0

  • 最大值: 65536

8.2.1.13. Method

设置选取的优化方法

  • 类型: int

  • 默认值: -1

  • 最小值: -2

  • 最大值: 2

-2

使用多线程单纯形法

-1

让求解器决定(并发优化)

0

原始单纯形法

1

对偶单纯形法

2

内点法

8.2.1.14. NumThreads

设置所使用的线程数

  • 类型: int

  • 默认值: 0

  • 最小值: 0

  • 最大值: 2147483647

0

使用所有物理 CPU 内核

>0

允许的最大线程数

8.2.1.15. Presolve

设置是否开启预处理方法

  • 类型: int

  • 默认值: -1

  • 最小值: -1

  • 最大值: 2

-1

让求解器决定

0

禁用所有 presolve 方法

1

启用适中的 presolve 方法

2

启用较强的 presolve 方法

8.2.1.16. SPX/ColumnGeneration

设置是否在单纯形法中使用列生成方法

  • 类型: int

  • 默认值: -1

  • 最小值: -1

  • 最大值: 1

-1

让求解器决定

0

禁用列生成

1

启用列生成

8.2.1.17. SPX/CrashStart

设置是否在单纯形法中使用初始基解生成方式

  • 类型: int

  • 默认值: -1

  • 最小值: -1

  • 最大值: 1

-1

让求解器决定

0

使用基本初始基解生成方式

1

使用进阶初始基解生成方式

8.2.1.18. SPX/DualPricing

设置单纯形法中的对偶定价策略

  • 类型: int

  • 默认值: -1

  • 最小值: -1

  • 最大值: 1

-1

让求解器决定

0

使用最陡边策略

1

使用近似最陡边策略

8.2.1.19. SPX/MaxIterations

设置单纯形法中最大迭代次数

  • 类型: int

  • 默认值: 2147483647

  • 最小值: 0

  • 最大值: 2147483647

8.2.1.20. SPX/PrimalPricing

设置单纯形法中的原始定价策略

  • 类型: int

  • 默认值: -1

  • 最小值: -1

  • 最大值: 2

-1

让求解器决定

0

使用最陡边策略

1

使用近似最陡边策略

2

使用部分定价策略

8.2.1.21. SolutionTarget

设置LP问题里解的类型

  • 类型: int

  • 默认值: 0

  • 最小值: 0

  • 最大值: 1

0

求得的解为基解(默认设置)

1

求得的解为原始/对偶可行解;一般情况下不保证为基解

8.2.2. Double参数

IPM/DualTolerance

设置内点法中的对偶可行性(相对)容差

IPM/GapTolerance

设置内点法中的对偶间隔(相对)容差

IPM/PrimalTolerance

设置内点法中的原始可行性(相对)容差

MIP/Cutoff

设置目标值的切断值,以防止寻找比这个值更差的解

MIP/GapAbs

设置绝对的MIP间隔容差

MIP/GapRel

设置相对的MIP间隔容差

MIP/IntegerTolerance

设置MIP求解中整型判定精度

MIP/LinearizationBigM

设置MIP中,重列非线形函数时的最大系数

MIP/ObjectiveTolerance

设置MIP求解中目标值比较精度

MaxTime

设置最大求解时间

SPX/DualTolerance

设置单纯形法的对偶可行性容差

SPX/PrimalTolerance

设置单纯形法的原始可行性容差

8.2.2.1. IPM/DualTolerance

设置内点法中的对偶可行性(相对)容差

  • 类型: double

  • 默认值: 1e-08

  • 最小值: 1e-12

  • 最大值: 0.1

8.2.2.2. IPM/GapTolerance

设置内点法中的对偶间隔(相对)容差

  • 类型: double

  • 默认值: 1e-08

  • 最小值: 1e-12

  • 最大值: 0.1

8.2.2.3. IPM/PrimalTolerance

设置内点法中的原始可行性(相对)容差

  • 类型: double

  • 默认值: 1e-08

  • 最小值: 1e-12

  • 最大值: 0.1

8.2.2.4. MIP/Cutoff

设置目标值的切断值,以防止寻找比这个值更差的解

  • 类型: double

  • 默认值: 1.7976931348623157e+308

  • 最小值: -1.7976931348623157e+308

  • 最大值: 1.7976931348623157e+308

8.2.2.5. MIP/GapAbs

设置绝对的MIP间隔容差

  • 类型: double

  • 默认值: 1e-06

  • 最小值: 0.0

  • 最大值: 1.7976931348623157e+308

8.2.2.6. MIP/GapRel

设置相对的MIP间隔容差

  • 类型: double

  • 默认值: 0.0001

  • 最小值: 0.0

  • 最大值: 1.7976931348623157e+308

8.2.2.7. MIP/IntegerTolerance

设置MIP求解中整型判定精度

  • 类型: double

  • 默认值: 1e-06

  • 最小值: 1e-09

  • 最大值: 0.01

8.2.2.8. MIP/LinearizationBigM

设置MIP中,重列非线形函数时的最大系数

  • 类型: double

  • 默认值: 100000000.0

  • 最小值: 0.0

  • 最大值: 10000000000.0

8.2.2.9. MIP/ObjectiveTolerance

设置MIP求解中目标值比较精度

  • 类型: double

  • 默认值: 1e-06

  • 最小值: 1e-09

  • 最大值: 0.01

8.2.2.10. MaxTime

设置最大求解时间

  • 类型: double

  • 默认值: 1.7976931348623157e+308

  • 最小值: 0.0

  • 最大值: 1.7976931348623157e+308

0

不限制求解时间

>0

限制求解时间的秒数

8.2.2.11. SPX/DualTolerance

设置单纯形法的对偶可行性容差

  • 类型: double

  • 默认值: 1e-06

  • 最小值: 1e-09

  • 最大值: 0.001

8.2.2.12. SPX/PrimalTolerance

设置单纯形法的原始可行性容差

  • 类型: double

  • 默认值: 1e-06

  • 最小值: 1e-09

  • 最大值: 0.001