我解决了一个模型为二阶锥规划(SOCP)的最优潮流(OPF)问题。首先,我用AMPL lenguage中的求解器CPLEX求解,花了0.08s;然后我用CPLEX for Matlab (命令cplexqcp)解决了同样的问题,用了0.86s。显示的时间仅对应于求解器要求的时间(CPLEX)。有人知道是什么造成了这样的时差吗?CPLEX/AMPL的时间结果:
Elapsed AMPL time : 0.430s
Elapsed Solve time : 0.080s
Elapsed CPU time: 0.510s
CPLEX/MATLAB的时间结果:
:
tic
[x,fval]=cplexqcp([],f,[],[],Aeq,beq,l,Qc,r,Li,Ls);
toc
:
Elapsed time is 0.860856 seconds.
注意:这个问题有542个变量。
发布于 2020-12-02 05:47:20
如果不了解细节,很难说,但我的第一个猜测是预处理。在将问题传递给求解器之前,AMPL将尝试简化它,例如消除依赖于其他变量的变量。这会大大缩短求解时间。
(对于大型问题,AMPL和solver之间的数据I/O时间也会有很大差异,但对于只有542个变量,这可能不是什么大问题。)
另一种可能性是AMPL和Matlab使用不同的选项调用CPLEX (例如,不同的解决方案容差)。
https://stackoverflow.com/questions/64639243
复制相似问题