Nonlinear Programming

Home

Nonlinear Programming

Nonlinear programming (NLP) is the process of solving a system of equalities and inequalities, collectively termed constraints, over a set of unknown real variables, along with an objective function to be maximized or minimized, where some of the constraints or the objective function are nonlinear. Nonlinear programming problems are in general more difficult to solve than linear programming problems, and often the solution found is only a local optimum. The solution methods for nonlinear programming models vary, which can result in different solvers giving different local optima for the same problem.

Benefits of Using AIMMS as Nonlinear Programming Software

Besides the general benefits of using AIMMS, there is some specific functionality that makes AIMMS an excellent tool for modeling nonlinear programming problems. For example, AIMMS is equipped with a nonlinear presolver. With a presolve, nonlinear problems can be solved faster and the solution can improve. The solver may even find a feasible solution for problems declared infeasible without the presolve, and in other cases provide proof that it really is infeasible. AIMMS also comes with an open customizable multi-start algorithm which may increase the chance of finding a good final solution. AIMMS contains an efficient implementation of Hessian calculation which can speed up the solution process of some NLP solvers. As the performance of the various available NLP solvers depends heavily on the specific problem, AIMMS makes it very easy to find the best solver for your specific problem by supporting links to many solvers.

For a full description of the nonlinear presolver and the multi-start algorithm see opent in een nieuw venster Chapter 17 in the Language Reference.

Teaching

AIMMS comes with an Optimization Modeling Guide in PDF format. This book contains a general introduction on modeling and various examples. The combination of AIMMS (with Free Student License) and this book are ideal for teaching nonlinear programming courses and learning about nonlinear programming through self-study.

Nonlinear Programming solvers

Standard Solvers

AIMMS supports the solvers CONOPT, SNOPT, MINOS, and KNITRO, to solve nonlinear programming models. AIMMS also supports the global optimization (GO) solvers LGO and BARON, which can find global optima for a certain subset of nonlinear programming problems, while the other solvers only guarantee local optima.

Open Solver Interface

The AIMMS Open Solver Interface allows solver developers to link their own nonlinear programming solvers to AIMMS themselves.

Nonlinear Programming Examples

Refinery Pooling

The model is a refinery- pooling problem, which maximizes the sales value of end products by deciding how much of each intermediate stream, within limits, is to be placed in each of the pool tanks. This example illustrates the effect of selecting different initial values in supporting the solution finding process and also in determining different locally optimal solutions of a nonlinear programming model. For a full description of the model see opent in een nieuw venster Chapter 12 in the Optimization Modeling Guide.

Download the opent in een nieuw venster Refinery Pooling Example

Two Level Decision 

In this example there is a government at the policy making level wanting to influence the behavior of several companies at the policy receiving level. In order to achieve this, the government implements tax and subsidy policies. The companies make their own optimal decisions given the tax and subsidy rates announced by the government. Taking into account this rational behavior of the companies, the government problem is to decide upon appropriate tax and subsidy levels.  For a full description of this model see opent in een nieuw venster Chapter 14 in the Optimization Modeling Guide.

Download the opent in een nieuw venster Two Level Decision Example

Data Reconciliation

To control the production process in a chemical plant, the process is closely monitored through a continuous stream of measurements of both the flows between the process units in the plant and their composition. Such raw data may be subject to measurement errors, however, resulting in an inconsistent set of measurements. The aim of data reconciliation is to provide a set of corrected flow and composition values, which lies as close to the set of measured values as possible, and, at the same time, satisfies all relevant balances.

Download the opent in een nieuw venster Data Reconciliation Example

Free Trial License

Download a free trial license of AIMMS to experience the benefits of using AIMMS as your nonlinear programming software.

 Customer Quotes  “We are progressing very well using the new capabilities of AIMMS 3 and its intuitive modeling structure. It took some time for us to shake off the AIMMS 2.20 programming style and to get comfortable with the new model building process of AIMMS 3. But, once we embraced the new style, it became obvious that the new version of AIMMS is more powerful, more flexible, and easier to use.”
Adel Hedfi, AXIOM Decision Systems Inc, Maryland, USA - Consultant

 Login  to update your profile.

Login