|
|
AlphaECP 求解器
目录介绍AlphaECP 是一款基于扩展割平面(ECP)方法的混合整数非线性规划(MINLP)求解器。该求解器可应用于一般的 MINLP 问题,并能确保伪凸 MINLP 问题获得全局最优解。除非另有说明,本文档均假设所考虑的问题为最小化问题。 ECP 方法是 Kelley 割平面方法的扩展,Kelley 方法最初针对凸 NLP 问题提出 [105]。该方法在每次迭代中仅需求解一个 MIP 子问题。MIP 子问题可以求解至最优、可行解,或在中间迭代中仅求解整数松弛解。这使得 ECP 算法高效且易于实现。有关底层算法的更多信息,请参见 [199] 和 [145, 174, 198, 200]。 GAMS/AlphaECP 算法的进一步发展引入了额外的功能。现在可以在 MIP 解处调用 NLP 求解器。这提高了 AlphaECP 寻找可行且精确解的能力,特别是对于主要包含连续变量的 MINLP 问题。此外,还可以使用一种启发式方法在迭代过程中重新选择割平面,以提高求解非凸问题的能力。除了基于约束容忍度的终止条件外,当满足相对目标间隙终止准则时,算法也可以终止。此特性仅支持凸问题。 许可和软件要求用户需要拥有 GAMS/AlphaECP 许可证才能使用 GAMS/AlphaECP。此外,求解混合整数子问题需要已获许可的 MIP 求解器,如果使用 NLP 选项,则还需要已获许可的 NLP 求解器。 运行 AlphaECPAlphaECP 求解 MINLP 模型。如果 AlphaECP 未被指定为这些模型的默认求解器,可以在求解语句之前发出以下命令来调用它: option minlp=alphaecp, miqcp=alphaecp; 原则上,AlphaECP 也可以处理 NLP 模型,但它更适合 MINLP 问题。然而,当与 NLP 求解器结合时,它可以找到 NLP 求解器自身无法找到的解。在这种情况下,它充当了一个良好的起始点生成器。如果您想使用 AlphaECP 求解 NLP,需要通过将 NLP 作为 MINLP 求解来"欺骗"GAMS 系统: solve mynlpmodel minimizing obj using minlp; 在 AlphaECP 的整个运行过程中以及算法结束时,都会报告约束违反情况。仅报告非线性约束的违反情况。线性约束的违反情况由 MIP/NLP 求解器的可行性容忍度决定。 GAMS/AlphaECP 输出以下日志输出是针对 GAMS 模型库中的 MINLP 模型 fuel.gms 获得的: ------------------------------------------------------------------------------
Welcome to AlphaECP v2.11.01
MINLP Problem Solver using the Extended Cutting Plane Approach.
Method development - T.Westerlund, Abo Akademi University, FIN
Algorithm development - T.Lastusilta, Abo Akademi University, FIN
Algorithm development - V.-P. Eronen, Turku University, FIN
Westerlund Tapio and Poern Ray (2002). Optimization & Engineering, 3, 253-280
------------------------------------------------------------------------------
Minimization problem: "fuel.gms"
The GAMS-model has in total 39 elements of which 15% are non-linear(NL)
included in 16 constraints of which 25% are NL
The NL constraint signs: =E=(3), =G=(1), =L=(0)
The number of variables in NL elements are 6 from a total of 16
variables: Continuous(13), Binary(3), Integer(0)
-------------------------------------------------------------------------------
Using following settings
AlphaECP option file optfile=0
Time limit for AlphaECP (in seconds) reslim=10000000000
Solvelink for NLP and MIP sub-solver solvelink=5
Solver trace file solvetrace=(Inactive)
Cutting plane strategy (0-3) CUTdelcrit=3
Cut generation pace CUTnrcuts=0
Updating multiplier if MIP is infeasible ECPbeta=1.3
Write encountered solutions to gdx files ECPdumpsol=0
Updating multiplier when verifying solution ECPgamma=2
Maximum number of AlphaECP iterations ECPiterlim=-1
Level of AlphaECP output to statusfile (0-4) ECPloglevel=0
Master strategy (0=User 1=Convex) ECPmaster=0
Return solution (1.MIP/2.NLP/...) ECPretsol=2
User specified start-point (0-3) ECPstart=3
AlphaECP strategy (1-5) ECPstrategy=2
AlphaECP termination criterion (1-2) ECPtoltype=1
Upper limit of considered MIP solutions per MIP call MIPnrsols=50
Relative MIP gap in intermediate sub-problems (0->1.0) MIPoptcr=1.00
Initial iteration limit when MIPoptcr is reduced MIPoptcrlim=200
Strategy to increase MIPoptcrlim MIPoptcrlimtype=0
MIP is solved to optimality with this frequency MIPoptimaliter=0
Strategy for multiple MIP solutions MIPsolstrat=1
MIP solver for sub-problems and . option file number MIPsolver=cplex.0
NLP strategy. Inactive:0 Active strategy:1-5 NLPcall=5
NLP solver call at next (incremental) iteration NLPcalliter=0
NLP time limit per call (in seconds or auto=0) NLPreslim=30
NLP solver for sub-problems and . option file number NLPsolver=conopt.0
Constraint tolerance TOLepsg=0.001
Distance tolerance for a new linearization TOLepsz=0.1
Gradient tolerance TOLgrad=1e-06
Infinity bound (MIP variable bound) TOLinfbnd=1e+10
Relative termination tolerance for MINLP TOLoptcr=(Inactive)
-------------------------------------------------------------------------------
Itera Stepcode, Number Point Alpha OPT Movement Viol Maximum MIPobjval
tion Problems of Cuts usage Upd. CR Norm Cons Violation
Start-point: NL constraint (1) infeasibile
0 H 0 0 0 1 0 4 1.8E+03 NA
1 SAFGI 1 1 1 1 9.3E+03 0 1.1E-13 8566.12
1 FOUND SOLUTION: 8566.12 (NLP) in 1 sec.
2 SAFH 1 1 0 1 6.6E+03 4 1.8E+03 4844.02
3 SAFH 3 2 0 1 8.4E+03 3 1.8E+03 7031.72
4 SAFH 4 3 0 1 1E+03 2 1.8E+03 10157
5 SAH 5 4 0 1 0 1 7E+02 11925
...
100 AI 106 39 1 0 0 0 0.00067 11925
101 AI 106 39 1 0 0 0 0.00067 11925
102 AIJ 106 39 0 0 0 0 0.00067 11925
AlphaECP: Iteration procedure terminated normally
-------------------------------------------------------------------------------
Problem : fuel.gms
Solver Status : Normal Completion
Model Status : Locally Optimal
Exit comment : No Issues
Final solution : NLP
Objective value : 8566.1189616876672517
Max constraint (4) : 1.1368683772161602974e-13
Alternative solution : MIP
Alt. objective value : 8566.1189616876672517
Max constraint (4) : 1.1368683772161602974e-13
Time used (seconds) : 0.81
Time limit (seconds) : 10000000000
Iterations used : 102
Iteration limit : -1
Function evaluations : 496
Gradient evaluations : 186
Domain violations : 0
Gradients unusable : 0
Alphamax bound violations : 0
ECP time usage : 3.9 %
NLP time usage : 3.8 %
MIP time usage : 92.3 %
Optimal/total MIPs : 19/102
NLP solver calls : 8
-------------------------------------------------------------------------------
在每次迭代中,MIP 问题及其修改信息会在 10 列中给出。以下是各列的说明: 迭代:迭代标识符。 步骤代码,问题:表示本次迭代中采取的操作的字母,即下次迭代前的 MIP 问题修改。
关于选项的说明此处描述的选项可以通过使用 GAMS 选项语句或在 AlphaECP 选项文件中指定来设置。有关选项文件的更多信息,请参阅 GAMS 文档。许多选项也可以使用 GAMS 模型语句中的 AlphaECP 选项摘要基本选项
高级用户的算法选项
MIP 求解器相关选项
NLP 求解器相关选项
AlphaECP 选项详细说明CUTdelcrit (整数):割平面策略 ↵
CUTnrcuts (实数):割生成速度 ↵
ECPbeta (实数):MIP 不可行时的更新乘数 ↵
ECPdumpsol (整数):将遇到的解写入 gdx 文件 ↵
ECPgamma (实数):验证解时的更新乘数 ↵
ECPiterlim (整数):AlphaECP 最大迭代次数 ↵
ECPloglevel (整数):输出到状态文件的 AlphaECP 输出级别 ↵
ECPmaster (整数):主策略 ↵
ECPretsol (整数):返回解 ↵
ECPstart (整数):用户指定的起始点 ↵
ECPstrategy (整数):AlphaECP 策略 ↵
ECPtoltype (整数):AlphaECP 终止准则 ↵
MIPnrsols (整数):每次 MIP 调用考虑的解数量上限 ↵
MIPoptcr (实数):中间子问题的相对 MIP 间隙 ↵
MIPoptcrlim (整数):MIPoptcr 减小时的初始迭代限制 ↵
MIPoptcrlimtype (整数):增加 MIPoptcrlim 的策略 ↵
MIPoptimaliter (整数):以此频率将 MIP 求解至最优 ↵
MIPsolstrat (整数):多 MIP 解策略 ↵
MIPsolver (字符串):子问题的 MIP 求解器及选项文件编号 ↵
NLPcall (整数):NLP 策略 ↵
NLPcalliter (整数):下一次(增量)迭代调用 NLP 求解器 ↵
NLPlimsameint (整数):重复整数解一定次数后调用 NLP ↵
NLPloglevel (布尔值):NLP 求解器输出级别 ↵
NLPreslim (实数):每次调用的 NLP 时间限制 ↵
NLPsolver (字符串):子问题的 NLP 求解器及选项文件编号 ↵
reslim (实数):AlphaECP 时间限制(秒) ↵
solvelink (整数):NLP 和 MIP 子求解器的求解链接 ↵
solvetrace (字符串):求解跟踪文件名 ↵ solvetraceincumbent (实数):写入跟踪记录时的最小原始界改进 ↵
solvetracetime (实数):写入跟踪记录的时间间隔 ↵
TOLepsf (实数):伪凸目标函数终止容忍度 ↵
TOLepsg (实数):约束容忍度 ↵
TOLepsz (实数):新线性化的距离容忍度 ↵
TOLgrad (实数):梯度容忍度 ↵
TOLinfbnd (实数):无穷界(MIP 变量界) ↵
TOLoptcr (实数):MINLP 相对终止容忍度 ↵
常见问题(FAQ)
在线留言尊敬的客户朋友,如您有任何意见建议,请通过下表反馈给我们,我们会尽快与您联系。
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||