![](/img/trans.png)
[英]I have solved a problem in CPLEX and now I want to implement it using an algorithm in MATLAB
[英]SOCP problem solved with CPLEX/AMPL it´s 10 times faster than when is solved with CPLEX/MATLAB, why?
我解決了一個建模為二階錐規划 (SOCP) 的最優潮流 (OPF) 問題。 起初我在AMPL語言中使用求解器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 個變量。
很難說沒有詳細信息,但我的第一個猜測是預處理。 在將問題傳遞給求解器之前,AMPL 將嘗試對其進行簡化,例如消除依賴於其他變量的變量。 這會對求解時間產生重大影響。
(對於大型問題,它也會對 AMPL 和求解器之間的數據 I/O 時間產生很大差異,但對於僅 542 個變量來說,這可能不是什么大問題。)
另一種可能性是AMPL 和Matlab 使用不同的選項(例如不同的解決方案容差)調用CPLEX。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.