An Non Linear Programming (NLP) problem has a nonlinear objective function and/or one or more nonlinear constraints. NLP problems are formulated and implemented in virtually the same way as linear problems. The mathematics involved in solving NLPs is quite different than for LPs. Spreadsheet based computer modeling software ‘Solver’ tends to mask this different but it is important to understand the difficulties that may be encountered when solving NLPs.
Solver uses the Generalized Reduced Gradient (GRG) algorithm to solve NLPs. GRG can also be used on LPs but is slower than the Simplex method. When solving a NLP problem, Solver normally stops when the first of three numerical tests is satisfied, causing one of the following three completion messages to appear: 1) “Solver found a solution. All constraints and optimality conditions are satisfied.” This means Solver found a local optimal solution, but does not guarantee that the solution is the global optimal solution. 2) “Solver has converged to the current solution. All constraints are satisfied.” This means the objective function value changed very slowly for the last few iterations. 3) “Solver cannot improve the current solution. All constraints are satisfied.” This rare message means the your model is degenerate and the Solver is cycling. Degeneracy can often be eliminated by removing redundant constraints in a model.
( Read More)