You can use the following options to initialize PROC OPTLSO with user-specified points: CACHEIN=, FIRSTGEN=, and PRIMALIN=. You can use the following options to have trial points returned to you: CACHEOUT=, LASTGEN=, and PRIMALOUT=.
Both input and output point data sets have the following columns:
The following DATA step generates 30 random points for the initial population if the variables have bounds :
data popin; low = -5.0; upp = 10.0; numpoints = 30; dim = 5; do _sol_=1 to numpoints; do i=1 to dim; _id_= compress("x" || put(i, 4.0)); _value_ = low + (upp-low)*ranuni(2); output; end; end; keep _sol_ _id_ _value_; run;
You can then use this data set as input for the OPTLSO procedure by using the FIRSTGEN= option.
PROC OPTLSO dynamically creates and reports on two metadata functions for you: the true objective (which is a combination of the FCMP objective and the linear and quadratic terms) and the maximum constraint violation. These functions are assigned the following function ID names (therefore, these names should not be used as variable, constraint, or function names):
Output data sets have additional rows that correspond to the problem’s FCMP functions. These rows must exist for the data set specified in the CACHEIN= option, but they should be omitted for the data sets specified in the FIRSTGEN= and PRIMALIN= options.
When you observe the solution output, it might be easier to compare points if they are listed as rows rather than as columns.
SAS provides a variety of ways to transform the results for your purposes. For example, if you prefer that the rows of the
data sets correspond to individual points, you can use the following statements to transpose the returned data set, where
popout
denotes the data set that is returned by PROC OPTLSO:
proc transpose data=popout out=poprow (drop=_label_ _name_); by _sol_; var _value_; id _id_; run;