Why does quadprog return different results on different machines?

4 visualizaciones (últimos 30 días)
Tim
Tim el 11 de Jul. de 2014
Respondida: Shashank Prasanna el 11 de Jul. de 2014
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

Respuestas (2)

Matt J
Matt J el 11 de Jul. de 2014
Editada: Matt J el 11 de Jul. de 2014
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 el 11 de Jul. de 2014
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?

Categorías

Más información sobre Get Started with Optimization Toolbox en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by