Algebraic, symbolic optimization modeling language
- Flexible algebraic syntax for intuitive model formulation.
- Support for the transparent use of SAS functions.
- Direct invocation of linear, mixed integer linear, quadratic, nonlinear, conic, black-box, constraint programming, and network solvers.
- Support for the rapid prototyping of customized optimization algorithms, including support for named problems and subproblems.
- Use of industry-standard MPS/QPS format input data sets.
- Aggressive presolvers to reduce effective problem size.
- Solve independent problems concurrently on one machine or a computational grid.
- Automated linearization and indicator constraints.
Powerful optimization solvers
- Linear programming solution algorithms:
- Primal and dual simplex.
- Network simplex.
- Interior point with crossover.
- Concurrent solve capability.
- Mixed integer linear programming solution algorithms:
- Branch-and-bound with cutting planes.
- Primal heuristics.
- Conflict search.
- Option tuning.
- Root node (LP relaxation) algorithm options.
- Report up to the K best integer feasible solutions or up to K optimal solutions.
- Decomposition algorithm (automated Dantzig-Wolfe) for linear programming and mixed integer linear programming problems with user-specified or automatically detected block structure.
- Quadratic programming solution algorithm: interior point with state-of-the-art solver tailored for large-scale optimization problems.
- Nonlinear programming solution algorithms: active set, interior point. Concurrent solve capability. Multistart algorithm for nonconvex problems.
- Diagnostic and optimization algorithms include:
- Connected components and biconnected components (with articulation points).
- Maximal clique enumeration.
- Cycle enumeration.
- Path enumeration.
- Transitive closure.
- Topological sort.
- Maximum flow.
- Minimum cut.
- Minimum spanning tree.
- Minimum-cost linear assignment.
- Minimum-cost network flow.
- Shortest path.
- Traveling salesman problem.
- Vehicle routing problem.
- Summary statistics.
- Multiple links between each pair of nodes can be input and processed.
- Solves problems with nonlinear functions that can be non-smooth, discontinuous, not continuously differentiable, and so on.
- Hybrid parallel algorithm, including generic algorithms, global GA-type heuristics and pattern search. Multiobjective optimization.
- Solves constraint satisfaction problems using finite-domain constraint programming, with domain reduction/constraint propagation and a choice of search strategies (look ahead and backtracking). Find one, several or all feasible solutions. Optionally specify an objective function and find an optimal solution (bisection search method).
Distributed, accessible & cloud-ready
- Optimization solvers run on SAS Viya, a scalable and distributed in-memory analytics platform.
- Distributes analysis and data tasks across multiple computing nodes.
- Distributed computation features:
- Multistart option for nonlinear (NLP) solver in PROC OPTMODEL.
- Decomposition algorithm (MILP) in PROC OPTMODEL, PROC OPTMILP.
- Solving independent optimization scenarios: COFOR loop in PROC OPTMODEL.
- Concurrent mode for MILP solver (PROC OPTMODEL, PROC OPTMILP).
- Branch-and-bound MILP solver algorithm (PROC OPTMODEL, PROC OPTMILP).
- Black-box optimization in PROC OPTMODEL.
- Path enumeration, shortest path, and connected components network algorithms in PROC OPTNETWORK.
- BY-group processing in network algorithms in PROC OPTNETWORK.
- Provides fast, concurrent, multiuser access to data in memory.
- Includes fault tolerance for high availability.
- Lets you add the power of SAS analytics to other applications by using SAS Viya REST APIs.