Bound-constrained minimization

In this section, we describe the framework for a bound-constrained minimization problem.

Creating a bound-constrained nonlinear problem

Once you have mastered bound-constrained objects and setting up the objective function, it is a simple 2-step process to build a bound-constrained nonlinear problem.

Let's consider the two-dimensional Rosenbrock problem with bounds on the variables:

minimize

\[100(x_2 - x_{1}^2)^2 + (1 - x_1)^2 \]

subject to

\[ -2.0 \le x_1 \le 2.0 \]

\[ -2.0 \le x_2 \le 2.0 \]

Step 1: Build your bound constraint.

   int ndim =  2;
   ColumnVector lower(ndim), upper(ndim);
   lower    = -2.0; upper    =  2.0;

   Constraint bc = new BoundConstraint(ndim, lower, upper);

Step 2: Create a constrained NLF1 object.

   NLF1 rosen_problem(n,rosen,init_rosen,&bc);

Specifying the optimization method

OPT++ contains no less than six solvers for bound-constrained optimization problems. To name a few, there are implementations of Newton's method, barrier Newton's method, interior-point methods, and direct search algorithms. We provide examples of solving the bound-constrained Rosenbrock problem with an active set strategy and a nonlinear interior-point method.
  1. Bound-constrained Quasi-Newton method with line-search
  2. Finite-difference nonlinear interior-point method with line-search

Next Section: Constrained minimization | Back to Solvers Page

Last revised July 13, 2006


Bug Reports    OPT++ Developers    Copyright Information    GNU Lesser General Public License
Documentation, generated by , last revised August 30, 2006.