簡體   English   中英

使用 CPLEX/AMPL 解決的 SOCP 問題比使用 CPLEX/MATLAB 解決的速度快 10 倍,為什么?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM