I have been doing more thinking about optimization recently and thought I should get caught up with the OR (Operations Research) folks at SAS to see what they are doing. They see OR technologies as part of the overall analytics spectrum and feel that anything that improves the rigor of decision making without unduly constraining it is a good thing. Anyway, the SAS/OR group has three main areas of focus – optimization, simulation and project/resource scheduling.
Optimization is where SAS started in this space and continues to be the key area. Optimization is the answer to “what do we do next” when a decision-making process has been improved, informed, and cleaned up as much as possible. When an organization has reached this level of analytic maturity the SAS/OR team will often come in to move them to the next level. It is not a radical transition for SAS users to adopt the SAS optimization tools as OPTMODEL, the optimization modeling and solution module, is an optimization modeling language that is also a SAS procedure and so it inherits a lot of SAS concepts and programming constructs. OPTMODEL provides a syntax for optimization problems – everything from Linear Programming to Mixed Integer, Quadratic, and Non-Linear programming. OPTMODEL can use the various pre-built solvers that SAS provides, lets you build on them in your own way, use custom or external solvers or even combine several solvers. In more complex problems, like those using multiple approaches, the objective is to come up with a very good solution (even if it is not mathematically optimal).
OPTMODEL is part of a group of SAS/OR procedures that also includes procedures targeted at solving specific classes of optimization problems with the SAS/OR solvers. PROC OPTLP solves linear programs, PROC OPTMILP solves mixed-integer linear programs, and PROC OPTQP solves quadratic programs. Each receives the specification of the optimization model via a SAS data set. General nonlinear optimization, requiring functional specification of the model elements, is provided by PROC OPTMODEL alone.
The second area of focus is SAS Simulation Studio for discrete event simulation. Simulation problems often deal with large interrelated systems. It may not be possible to come up with a precise model of the outcomes (throughputs or other performance metrics) and their relationship to inputs (controls on system configuration or external operating conditions). Rather than making simplifying assumptions (that will be broken in almost every real-world case) and building a formal model, you can use the simulation approach to run different configurations or scenarios. The simulation engine acts as a stand-in for the unknowable input-outcome functions. This is a graphical Java environment that has a series of building blocks (like an entity generator, for example) that are then linked together to build the simulation model.
Simulation is coordinated with the JMP data discovery tools:
- For understanding input data to the model (analyzing the data from a historical period so that you are not limited to playing back historical data but can extend it appropriately)
- For designing experiments (which simulations will you need to get the coverage you need)
- To review data output from the simulation.
The third piece is project and resource scheduling. This uses a critical path schedule for a project to start with and then generates resource constrained schedules for your various scenarios. It supports earned value reporting and drilling down into the details of the activity and resource schedule as well as giving you early views into what it is going to take to finish on-time, on-budget etc. based on current progress.
There’s also some additional capability around Bill of Materials processing for monitoring the usage of component parts and activities as well as some decision analysis tools for handling sequences of decisions where there can be uncertainty in outcomes.
Overall SAS/OR customers are still largely “traditional” OR people but they are seeing more companies that are moving up the learning curve (rules, data mining, predictive analytics, trading off multiple predictions and thus to optimization). Simulation also attracts more “novices” than optimization. They also see an increasing amount of operationalization of optimization into production environments. One advantage they feel they have is that their optimization is just another SAS procedure so it fits with a company’s existing SAS environment. It is part of the SAS foundation so any organization comfortable with deploying SAS components or using them in production is not going to see anything different with SAS/OR components.
Finally it should be noted that many of the SAS/OR capabilities are embedded in other SAS applications at the threaded kernel level – solvers embedded in applications, routines embedded in Enterprise Miner for scoring and network analysis, Forecast Server uses some optimization and so on.