You can use parameters to produce a clear formulation of a problem. Consider the Rosenbrock problem:
where
is a parameter (constant),
and
are optimization variables (whose values are to be determined), and
is an objective function.
Here is a PROC OPTMODEL program that solves the Rosenbrock problem:
proc optmodel;
number alpha = 100; /* declare parameter */
var x {1..2}; /* declare variables */
/* objective function */
min f = alpha*(x[2] - x[1]**2)**2 +
(1 - x[1])**2;
/* now run the solver */
solve;
print x;
quit;
The PROC OPTMODEL output is shown in Figure 8.3.
Figure 8.3
Rosenbrock Function Results
Minimization |
f |
Nonlinear |
|
2 |
0 |
0 |
0 |
2 |
0 |
|
0 |
NLPU/LBFGS |
f |
Optimal |
1.727916E-15 |
13 |
|
4.3801766E-7 |