|
|
|
SOPLEX 求解器
SOPLEX 是一款高性能的开源线性规划(LP)求解器,由德国柏林工业大学(ZIB)开发,基于单纯形算法实现。它具有卓越的数值稳定性、内存效率和求解速度,特别适合求解大规模稀疏线性规划问题。作为 GAMS 内置支持的开源求解器之一,SOPLEX 为用户提供了无需额外许可费用的商业级 LP 求解能力,广泛应用于学术研究、工业优化和教学实践。
目录
使用方法
在 GAMS 中调用 SOPLEX 求解器非常简单,只需在 SOLVE 语句前通过 OPTION LP = SOPLEX; 指定 LP 求解器为 SOPLEX 即可。以下是一个完整的运输问题示例:
示例代码:
MODEL transport /all/;
OPTION LP = SOPLEX;
SOLVE transport USING LP MINIMIZING cost;
上述代码中,OPTION LP = SOPLEX; 指示 GAMS 使用 SOPLEX 作为线性规划求解引擎。GAMS 自动将模型转换为 SOPLEX 可识别的格式,调用求解器进行求解,并返回结果。
SOPLEX 内部实现了原始单纯形法(Primal Simplex)和对偶单纯形法(Dual Simplex)两种算法,并支持自动算法选择。默认情况下,SOPLEX 使用对偶单纯形法,因为对大多数 LP 问题而言,对偶单纯形法收敛更快。用户也可以通过选项强制使用某一特定算法。
此外,SOPLEX 支持热启动(Warm Start)功能,可在求解相似问题时利用上一次的基解信息加速收敛,显著提升重复求解的效率。
选项说明
下表列出了 SOPLEX 的常用求解选项。用户可以在 GAMS 中通过 option.<选项名> = <值>; 语句进行设置,也可以在求解选项文件中进行配置。
| 选项名 |
默认值 |
取值范围 |
说明 |
algo |
4 |
1, 2, 4 |
求解算法选择:1=原始单纯形法,2=对偶单纯形法,4=自动选择 |
iterlim |
2e9 |
[0, ∞) |
单纯形迭代次数上限,达到限制时求解终止并返回当前解 |
timelimit |
1e20 |
[0, ∞) |
求解时间上限(秒),超过时限后求解终止 |
feastol |
1e-9 |
(0, 1e-3] |
可行性容忍度,控制约束违反的允许程度,值越小解越精确 |
optol |
1e-9 |
(0, 1e-3] |
最优性容忍度,用于判断简化成本是否满足最优条件 |
redcost |
1e-6 |
(0, 1] |
简化成本容忍度,确定变量进基的阈值 |
objlimit |
1e20 |
(-∞, ∞) |
目标函数值的上下界限制,用于检测无界问题 |
scale |
1 |
0, 1, 2 |
缩放模式:0=不缩放,1=按行/列几何缩放,2=均衡缩放(推荐用于病态问题) |
switchiter |
0 |
[0, ∞) |
原始/对偶算法自动切换的迭代次数阈值;0 表示不切换 |
pricer |
1 |
0, 1, 2 |
进基定价策略:0=Dantzig(最大简化成本),1=Steepest Edge(最速边),2=Partial Pricing(部分定价) |
ratioc |
2 |
0, 1, 2 |
比率测试方法:0=标准,1=Harris(二阶段),2=Harrod(扰动,默认) |
regen |
0 |
0, 1, 2 |
基矩阵重新分解策略:0=自动,1=惰性,2=激进 |
更多高级选项及详细说明,请参考 GAMS 官方文档中的 SOPLEX 求解器章节或 SOPLEX 项目主页 https://soplex.zib.de。
在线留言
尊敬的客户朋友,如您有任何意见建议,请通过下表反馈给我们,我们会尽快与您联系。
|
|
|