Es gibt Optimierungsroutinen speziell für die lokale oder globale Optimierung quadratischer Programmierprobleme, unabhängig davon, ob die Zielfunktion konvex ist oder nicht.
BARON ist ein universeller globaler Optimierer, der konvexe oder nicht konvexe quadratische Programmierprobleme bewältigen und nutzen kann.
CPLEX verfügt über einen quadratischen Programmierlöser, der mit solutiontarget = 2 aufgerufen werden kann, um ein lokales Optimum zu finden, oder = 3, um ein globales Optimum zu finden. In MATLAB kann dies mit cplexqp aufgerufen werden.
Lokale Allzweckoptimierer, die lineare Einschränkungen verarbeiten können, können ebenfalls verwendet werden, um ein lokales Optimum zu finden. Ein Beispiel in R ist https://cran.r-project.org/web/packages/trust/trust.pdf . Optimierer für R sind unter https://cran.r-project.org/web/views/Optimization.html aufgeführt .
In MATLAB kann die Funktion quadprog in der Optimization Toolbox verwendet werden, um ein lokales Optimum zu finden.
In Julia gibt es eine Vielzahl von Optimierern.
"Jeder" Gradientenabstiegsalgorithmus landet Sie möglicherweise nicht auf irgendetwas, geschweige denn auf Einschränkungen. Verwenden Sie ein Paket, das von jemandem entwickelt wurde, der weiß, was er tut.
Das bereitgestellte Beispielproblem lässt sich leicht zu einer nachweisbaren globalen Optimalität lösen. Vielleicht wird es im Laufe von mehr als 2 Jahren nicht mehr benötigt, oder vielleicht war es nie ein Beispiel, aber auf jeden Fall liegt das globale Optimum bei x = 0,321429, y = 0,535714