Why does quadprog return different results on different machines?

3 ビュー (過去 30 日間)
Tim
Tim 2014 年 7 月 11 日
回答済み: Shashank Prasanna 2014 年 7 月 11 日
I'm solving a quadratic program at multiple different points. I've run the program on 3 different machines, a Mac Mini running OS X 10.9 (Mavericks), a desktop running Windows 8.1 and a laptop running Windows 8.1. All machines are running MATLAB 2014a. The Mac mini and the desktop PC solve the quadratic program using quadprog quickly with no issues. The laptop however returns that the max number of iterations have been exceeded at multiple points and returns a much different, worse solution. The program is exactly the same and quadprog is called with the same options (active-set, tolerances, max iterations etc) on all machines. Literally nothing in the program is being changed between runs on different computers. Does anyone have any idea what could be causing this behavior?
Thanks, Tim

回答 (2 件)

Matt J
Matt J 2014 年 7 月 11 日
編集済み: Matt J 2014 年 7 月 11 日
You may well have multiple solutions (or approximately so). Do they all reach similar final objective function values? What does cond(Hessian) give you? Is the Hessian even non-negative definite?

Shashank Prasanna
Shashank Prasanna 2014 年 7 月 11 日
Did you provide the starting point yourself? If you have multiple optimums then the result will be sensitive to the starting point x0. Also as Matt J suggested, check the function value for all the machines and compare them. Relax tolerances and run again to see if you get similar results:
Use these article to diagnose:
If there don't help, can you share H,f,A,b etc?

カテゴリ

Help Center および File ExchangeGet Started with Optimization Toolbox についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by