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.get(MDO.IntParam.NumThreads); // 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参数¶
设置是否对模型对偶化
设置是否启用网络单纯形法
检测随机线性规划问题结构
设置内点法中最大迭代次数
指定是否启动MIP的对偶预处理方法
设置是否开启MIP自动参数配置
指定是否在MIP中启用非连通分量策略
设置MIP中的最大节点限制
设置MIP中最大解数目
设置允许延迟的最大节点数
设置MIP求解中根节点允许的最大并发线程数
设置解缓存池的最大容量
设置选取的优化方法
设置所使用的线程数
设置是否开启预处理方法
设置是否在单纯形法中使用列生成方法
设置是否在单纯形法中使用初始基解生成方式
设置单纯形法中的对偶定价策略
设置单纯形法中最大迭代次数
设置单纯形法中的原始定价策略
设置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参数¶
设置内点法中的对偶可行性(相对)容差
设置内点法中的对偶间隔(相对)容差
设置内点法中的原始可行性(相对)容差
设置目标值的切断值,以防止寻找比这个值更差的解
设置绝对的MIP间隔容差
设置相对的MIP间隔容差
设置MIP求解中整型判定精度
设置MIP中,重列非线形函数时的最大系数
设置MIP求解中目标值比较精度
设置最大求解时间
设置单纯形法的对偶可行性容差
设置单纯形法的原始可行性容差
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