I want to solve a large scale non linear optimization problem and there are two methods interior point method and sequential quadric programing usually used to solve non linear optimization problem. I need suggestions regarding these methods which to use in term of implementation.
2 Answers
Sequential quadratic programming methods are mainly useful for problems with expensive evaluations. They can also be relevant in some cases if a good initial point is available.
On the other hand, interior point methods are suited for large-scale problems with cheaper evaluations.
Therefore, you can try an interior point method first. But do not hesitate to compare both on your problem. And unless you really want to implement them yourself, you should rather just write models for solvers that already implement them. Then, you can easily switch between different algorithms.
-
$\begingroup$ I never use time spent in evaluations as criterion. But rather number of superbasics, availability of a starting point, size of problem, and need for basis/duals. $\endgroup$ Mar 1 at 14:07
As @fontanf said, you're better off writing a mathematical model (AMPL, GAMS, JuMP, Pyomo, etc) and call an existing solver. There are extremely robust solvers out there (e.g. filterSQP and IPOPT), it would be a shame to reinvent the wheel.
Should you decide to implement your own solver anyway, you can check out the code of my modern C++ solver Uno (Unifying Nonlinear Optimization).
-
$\begingroup$ I have to solve problem by implementing myself, the problem is already solved using fmincon a Matlab but it's computational expensive so I am trying different methods to find solution. Untill now I have tried augmented Lagrangian multiplier method with gradient method as a subsolver for minimization problem but it's not working. Now I have started implementation on interior point method. $\endgroup$– MuhammadMar 1 at 20:27
-
$\begingroup$ AFAIK fmincon is not a large-scale sparse solver. Likely you will not beat solvers like IPOPT, Knitro, SNOPT, or CONOPT with homegrown solvers. It takes a lot of work to go from a textbook algorithm to something that works reliably in practice. The days that we implemented solvers ourselves is long behind us. $\endgroup$ Mar 1 at 21:18