The OPTLSO Procedure

The Variable Data Set

The variable data set can have up to five columns. The variable names are described in the _ID_ column. These names are used to map variable values to identically named FCMP function variable arguments. Lower and upper bounds on the variables are defined in columns _LB_ and _UB_, respectively. You can manually enter scaling for each variable by using the _SCALE_ column. Derivative-free optimization performance can often be greatly improved by scaling the variables appropriately. By default, the scale vector is defined in a manner similar to that described in Griffin, Kolda, and Lewis (2008). If integer variables are present, the _TYPE_ column value signifies that a given variable is either C for continuous or I for integer. By default, all variables are assumed to be continuous.

You can use the VARIABLES= option to specify the SAS data set that describes the variables to be optimized. For example, suppose you want to specify the following set of variables, where $x_1$ and $x_2$ are continuous and $x_3$ is an integer variable:

\[ \begin{array}{lll} 0 & \le x_1 & \le 1000 \\ 0 & \le x_2 & \le 0.001 \\ 0 & \le x_3 & \le 4 \end{array} \]

You can specify this set of variables by using the following DATA step:

data vardata;
   input _id_ $ _lb_ _ub_ _type_ $;
   datalines;
x1  0 1000  C
x2  0 0.001 C
x3  0 4     I
;

By default, variables are automatically scaled. PROC OPTLSO uses this scaling along with the cache tolerance when PROC OPTLSO builds the function value cache. For more information about scaling, see the section Function Value Caching. You can provide your own scaling by setting a _SCALE_ column in the variable data set as follows:

data vardata;
   input _id_ $ _lb_ _ub_ _type_ $ _scale_;
   datalines;
x1  0 1000  C  1000
x2  0 0.001 C  0.5
x3  0 4     I  2
;

When derivative-free optimization is performed, proper scaling of variables can dramatically improve performance. Default scaling takes into account the lower and upper bounds, so you are encouraged to provide the best estimates possible.