The OPTLSO Procedure

PROC OPTLSO Statement

  • PROC OPTLSO <options>;

The PROC OPTLSO statement invokes the OPTLSO procedure.

Functional Summary

Table 3.1 outlines the options available in the PROC OPTLSO statement.

Table 3.1: Summary of PROC OPTLSO Options

Description

option

Input Data Set Options

Specifies the input cache file

CACHEIN=

Specifies the initial genetic algorithm population

FIRSTGEN=

Describes the linear constraints

LINCON=

Indicates that the description uses the mathematical programming system (MPS) data format

MPSDATA=

Describes the nonlinear constraints

NLINCON=

Describes the objective function

OBJECTIVE=

Specifies the initial trial points

PRIMALIN=

Indicates that the description uses the quadratic programming system (QPS) data format

QPSDATA=

Describes the variables

VARIABLES=

Output Data Set Options

Specifies the output cache file

CACHEOUT=

Specifies the local solutions and best feasible solution

PRIMALOUT=

Specifies the members of the genetic algorithm population on exit

LASTGEN=

Stopping Condition Options

Specifies the absolute function convergence criterion

ABSFCONV=

Specifies the maximum number of function evaluations

MAXFUNC=

Specifies the maximum number of genetic algorithm iterations

MAXGEN=

Specifies the upper limit on real time

MAXTIME=

Optimization Control Options

Specifies the feasibility tolerance

FEASTOL=

Specifies the number of global searches

NGLOBAL=

Specifies the number of local searches

NLOCAL=

Genetic algorithm population size

POPSIZE=

Technical Options

Specifies the cache tolerance

CACHETOL=

Specifies the maximum cache size

CACHEMAX=

Specifies the maximum size of the Pareto-optimal set

PARETOMAX=

Specifies how frequently to print the solution progress

LOGFREQ=

Specifies how much detail of solution progress to print in the log

LOGLEVEL=

Enables or disables the printing summary

PRINTLEVEL=

Initializes the seed for sampling routines

SEED=


Input Data Set Options

You can specify the following options that are related to input data sets:

CACHEIN=SAS-data-set

names a previously computed sample set. Using a previously computed sample set enables PROC OPTLSO to warm-start. It is crucial that the nonlinear objective and function values be identical to those that were used when the cache data set was generated. For more information, see the section Specifying and Returning Trial Points.

FIRSTGEN=SAS-data-set

specifies an initial sample set that defines a subset of the initial population. The columns of this data set should coincide with the same format that is used by the PRIMALIN= data set. If the population size p is smaller than the size of this set, only the first p points of this set are used. For more information, see the section Specifying and Returning Trial Points.

LINCON=SAS-data-set

uses a dense format to describe the optimization problem’s linear constraints. The corresponding data set should have columns _LB_ and _UB_ to describe lower and upper bounds, respectively. The column _ID_ is reserved for the corresponding constraint name. The remaining columns must correspond to the linear coefficients of the variables that are listed in the VARIABLES= option. For more information, see the section Describing Linear Constraints.

MPSDATA=SAS-data-set

specifies a data set that can be used as a sparse alternative to the LINCON= option, which uses a dense format to define variables. Mathematical programming system (MPS) is a common file format for representing linear and mixed-integer mathematical programs. For an example of using the OPTMODEL procedure to create the corresponding MPS file, see Using MPS Format. Internally, binary variables are converted into integer variables with lower and upper bounds of 0 and 1, respectively. For more information, see the section Describing Linear Constraints.

NLINCON=SAS-data-set

names the FCMP functions to be used from the current library as nonlinear constraints, along with respective bounds. This data set should contain three columns: _ID_ to specify the corresponding FCMP function names and _LB_ and _UB_ to specify the lower and upper bounds for the corresponding constraints, respectively. For more information, see the section Describing Nonlinear Constraints.

OBJECTIVE=SAS-data-set

names the FCMP functions to be used from the current library to form the objective. At a minimum, this data set should have three columns: _ID_ to specify the function name to be used internally by the solver, _FUNCTION_ to specify the corresponding FCMP function, and _SENSE_ to specify whether the objective is to be minimized or maximized. PROC OPTLSO enables you to implicitly define your objective function by using an external data set and an intermediate FCMP function definition that can be used as placeholders to store temporary terms with respect to the external data set. For more information, see the section Describing the Objective Function.

PRIMALIN=SAS-data-set

specifies an initial sample set to be evaluated. Initial data sets might be useful over a sequence of runs when you want to ensure that PROC OPTLSO generates points that are at least as good as your current best solution. This option is more general than the FIRSTGEN= option because points that are defined in this data set might or might not be used to define the initial population for the genetic algorithm (GA). For more information, see the section Specifying and Returning Trial Points.

QPSDATA=SAS-data-set

specifies a data set that can be used as a sparse alternative to the LINCON= option, which uses a dense format to define variables. Quadratic programming system (QPS) is a common file format for representing linear and mixed-integer mathematical programs that have quadratic terms in the objective function. This option differs from the MPSDATA= option in that any quadratic terms in the objective can be included in the data set. Do not use this option if the problem does not have quadratic terms. For an example of using PROC OPTMODEL to create the corresponding QPS file, see Using QPS Format. Internally, binary variables are converted into integer variables with lower and upper bounds of 0 and 1, respectively.

VARIABLES=SAS-data-set

stores the variable names, bounds, type, and scale. These names must match corresponding names, FCMP functions, and related data sets. For more information, see the section The Variable Data Set.

Output Data Set Options

You can specify the following options that are related to output data sets:

CACHEOUT=SAS-data-set

specifies the data set to which all completed function evaluations are output. For more information, see the section Specifying and Returning Trial Points.

LASTGEN=SAS-data-set

specifies the data set to which the members of the current genetic algorithm population are returned on exit. If more than one genetic algorithm is used, the data set combines the members from each population into a single data set.

PRIMALOUT=SAS-data-set

specifies the output solution set. You can use this data set in future solves as the input set for the PRIMALIN= option. For more information, see the section Specifying and Returning Trial Points.

Stopping Condition Options

You can specify the following options that determine when to stop optimization:

ABSFCONV=r[n]

specifies an absolute function convergence criterion. PROC OPTLSO stops when the changes in the objective function and constraint violation values in successive iterations meet the criterion

\[ |f(x^{(k-1)}) - f(x^{(k)})| + |\theta (x^{(k-1)}) - \theta (x^{(k)})| \leq r \]

where $\theta (x)$ denotes the maximum constraint violation at point x. The optional integer value n specifies the number of successive iterations for which the criterion must be satisfied before the process is terminated. The default is r=1E–6 and n=10. To cause an early exit, you must specify a value for n that is less than the value of the MAXGEN= option.

MAXFUNC=i

specifies the maximum number of function calls in the optimization process. The actual number of function evaluations can exceed this number in order to ensure deterministic results.

MAXGEN=i

specifies the maximum number of genetic algorithm iterations. The default is 500.

MAXTIME=r

specifies an upper limit in seconds on the real time used in the optimization process. The actual running time of PROC OPTLSO optimization might be longer because the actual running time includes the remaining time needed to finish current function evaluations, the time for the output of the (temporary) results, and (if required) the time for saving the results to appropriate data sets. By default, the MAXTIME= option is not used.

Optimization Control Options

You can specify the following options to tailor the solver to your specific optimization problem:

FEASTOL=r

specifies a feasibility tolerance for provided constraints. Specify r$\ge $1E–9. The default is r=1E–3.

NGLOBAL=i

specifies the number of genetic algorithms to create, with each algorithm working on a separate population of the size specified by the POPSIZE= option. Specify i as an integer greater than 0.

NLOCAL=i

specifies the number of local solvers to create. Specify i as an integer greater than 0. The default is twice the number of variables in the problem.

POPSIZE=i

specifies the population size for the genetic algorithm to use. The default is $40 \times \text {ceil}(\log (n) + 1)$, where n denotes the number of variables.

Technical Options

You can specify the following technical options:

CACHEMAX=i

specifies the maximum number of points that can be cached. By default, PROC OPTLSO automatically calculates the maximum number of points.

PARETOMAX=i

specifies the maximum number of points in the Pareto-optimal set. The default is 5,000.

CACHETOL=r

specifies the cache tolerance to be used for caching and referencing previously evaluated points. For more information about this tolerance, see the section Function Value Caching. The value of r can be any number in the interval $[0,1]$. The default is 1E–9.

LOGFREQ=i

requests that the solution progress be printed to the iteration log after every i iterations if the value of the LOGLEVEL= option is greater than or equal to 0. The value i=0 disables the printing of the solution progress. The final iteration is always printed if i $\ge $ 1 and LOGLEVEL is nonzero. The default is 1.

LOGLEVEL=0 | 1

controls how much information is printed to the log file. If LOGLEVEL=0, nothing is printed. If LOGLEVEL=1, a short summary of the problem description and final solution status is printed. If LOGLEVEL=0, this option overrides the LOGFREQ= option. By default, LOGLEVEL=1.

PRINTLEVEL=0 | 1

specifies whether to print a summary of the problem and solution. If PRINTLEVEL=1, then the Output Delivery System (ODS) tables ProblemSummary, SolutionSummary, and PerformanceInfo are produced and printed. If PRINTLEVEL=0, then no ODS tables are produced. By default, PRINTLEVEL=1.

For more information about the ODS tables that are created by PROC OPTLSO, see the section ODS Tables.

SEED=i

specifies a nonnegative integer as a seed value for the pseudorandom number generator. Pseudorandom numbers are used within the genetic algorithm.