首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用CPLEX/AMPL解决SOCP问题比用CPLEX/MATLAB快10倍,为什么?

用CPLEX/AMPL解决SOCP问题比用CPLEX/MATLAB快10倍,为什么?
EN

Stack Overflow用户
提问于 2020-11-02 10:53:05
回答 1查看 53关注 0票数 0

我解决了一个模型为二阶锥规划(SOCP)的最优潮流(OPF)问题。首先,我用AMPL lenguage中的求解器CPLEX求解,花了0.08s;然后我用CPLEX for Matlab (命令cplexqcp)解决了同样的问题,用了0.86s。显示的时间仅对应于求解器要求的时间(CPLEX)。有人知道是什么造成了这样的时差吗?CPLEX/AMPL的时间结果:

代码语言:javascript
运行
复制
Elapsed AMPL time :     0.430s
Elapsed Solve time :     0.080s
Elapsed CPU time:     0.510s 

CPLEX/MATLAB的时间结果:

代码语言:javascript
运行
复制
:
tic
[x,fval]=cplexqcp([],f,[],[],Aeq,beq,l,Qc,r,Li,Ls);
toc
:
Elapsed time is 0.860856 seconds.

注意:这个问题有542个变量。

EN

回答 1

Stack Overflow用户

发布于 2020-12-02 05:47:20

如果不了解细节,很难说,但我的第一个猜测是预处理。在将问题传递给求解器之前,AMPL将尝试简化它,例如消除依赖于其他变量的变量。这会大大缩短求解时间。

(对于大型问题,AMPL和solver之间的数据I/O时间也会有很大差异,但对于只有542个变量,这可能不是什么大问题。)

另一种可能性是AMPL和Matlab使用不同的选项调用CPLEX (例如,不同的解决方案容差)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64639243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档