The OPTMODEL Procedure

The OPTMODEL procedure provides a modeling syntax designed specifically for building and working with optimization models including linear, mixed-integer, quadratic, and general nonlinear optimization.

In SAS/OR 9.3, PROC OPTMODEL adds features that give you greater control over the disposition of models and solutions:

  • The CREATE DATA statement adds options that enable you to control the formatting, length, and labeling of output data set variables that are created from an optimization model or its solution.

  • The SAVE MPS and SAVE QPS statements enable you to specify an objective function that determines which objective among several alternatives is saved as the problem objective in the MPS or QPS data set.

SAS/OR 9.3 delivers very significant upgrades for nonlinear optimization:

  • A new experimental active-set solver is available and is recommended for both small- and large-scale problems. The active-set solver is often the preferred solver if the problem being addressed contains only bound constraints, and it can also deliver superior performance for other classes of problems.

  • The new multistart method considers multiple starting points for the optimization process. This approach is useful for nonlinear optimization problems that might have many locally optimal solutions, which is common if either or both of the objective and constraint functions are non-convex. In such a case, one of the locally optimal solutions is also the globally optimal solution; with the multistart algorithm, the nonlinear optimization solver starts at several different initial points and then reports back the best among the multiple locally optimal solutions that it has found.

    In the first phase of the multistart algorithm, the feasible region of the optimization problem is explored and candidate starting points are determined so as to be most likely to produce good locally optimal solutions. In the second phase, a subset of the candidates is selected (according to criteria designed to produce better and distinct locally optimal solutions) and used as starting points for the nonlinear optimization solver. Two options can be used to control these phases: the MSBNDRANGE= option limits the initial exploration of the feasible region and is especially useful with unbounded problems, and the MSNUMSTARTS= option specifies the number of starting points to be used.

    After the multistart algorithm has concluded, the solution with the best objective function is reported. The .msinit suffix can be used to produce the values of the decision variables at the starting point that ultimately lead to the discovery of this solution.