BookmarkSubscribeRSS Feed

What’s New in SAS Optimization? Q&A, Slides, and On-Demand Recording

Started ‎06-05-2024 by
Modified ‎06-06-2024 by
Views 799

Watch this Ask the Expert session to discover more about how SAS Optimization continues to improve on its powerful modeling language with unified access to a broad suite of solvers. 

 

Watch the Webinar

 

You will learn about:

  • All the ways SAS Optimization is changing.
  • Recently added features, including a conic optimization solver and an automated Benders decomposition algorithm.
  • SAS Optimization performance improvements.

The questions from the Q&A segment held at the end of the webinar are listed below and the slides from the webinar are attached.

 

Q&A

Where can I find additional examples?

The book I mentioned (Operations Research for Social Good: A Practitioner’s Introduction Using SAS and Python)  has 9 examples. The documentation has lots of examples as well. One of them is part of our main documentation, but you might not find it unless you know to look for it. We have this SAS/OR User's Guide called “Mathematical Programming Examples.” It has 29 examples that are based on a classical textbook by Paul Williams, and it's called “Model Building in Mathematical Programming.” SAS has permission from Wiley to reuse these problems, which means they are repeated verbatim. They describe a mathematical programming formulation just in terms of: What are the inputs?  What are the decision variables? What's the objective that we're trying to minimize or maximize? What are the constraints? All this is expressed mathematically. But then we also show SAS code to solve the problem using the data from the book so that we have DATA steps or other ways to prepare the input data. We also show the PROC OPTMODEL code with text describing each of the steps and showing the output from those steps. At the end of each example, we also highlight the features that were demonstrated. Which problem type is this, and which sorts of keywords are we using? This one expresses bounds as part of the variable declarations, things like that. We do that for each of those 29 examples. So this is a good resource. Another one I want to point out is a GitHub repository called Optimization Examples. It's under the main SAS software GitHub repository. All of those 29 examples are included. So they're part of the regular documentation, but they're also here in GitHub. One SAS file for each of those. And then there are different collections of examples, and we plan to add to this in future. Then there's another GitHub repository, again under SAS software, where the sasoptpy package is available, and it has its own examples as well. Some of these are similar to other doc examples, but some are specific to sasoptpy. If you prefer videos, we have as part of the SAS YouTube channel, the SAS software channel. We have a playlist here for statistics and operations research. There are 54 videos, and several of these illustrate optimization, some through PROC OPTMODEL. There's one that uses the runOptmodel action as well.

 

For which types of problems is Benders decomposition useful?

Generally, if you've got a mixed initial linear programming problem with some integer or binary variables and some continuous variables, and there's that structure where the problem gets much easier after you fix the integer variables, then that's often a good sign that you might want to try Benders. Another problem type that can benefit from using Benders decomposition is two-stage stochastic programming, where the first-stage variables are in the master problem and the second-stage variables are in the subproblem, with one block for each scenario.  We have 3 algorithms now for MILP on a single machine. The branch and cut algorithm is the default. We've had the Dantzig-Wolfe decomposition algorithm automated for 12 years now (introduced in 2012). Now with Benders decomposition, we have a third approach. Sometimes, you can tell from the problem structure that one of these algorithms might be better than the others. But the nice thing is that it's easy to try all three. Within the same PROC OPTMODEL code, you don't need to change your modeling. You know the variables, constraints, and objectives. It's just a matter of changing the SOLVE statement and possibly specifying your own blocks for Dantzig-Wolfe or Benders. Sometimes you don't know until you actually try it, but we make it very easy to try.

 

Have you compared the performances of your solvers with those of GAMS and Lindo?

GAMS doesn't have its own solver. It is just a modeling language. It provides access to some other solvers. Lindo does have its own modeling and solvers. We do not do direct comparisons because we don't have access to our competitors’ software to run directly. But the Mittelmann benchmark that I mentioned does make the logs available for those solvers. That makes it publicly available for anybody to investigate; in particular, it makes it possible to try to learn if there are cases where your own solver is not performing as well on a particular instance. You can sometimes tell from the logs of other solvers what sorts of things are useful. A particular example of this is if the presolver from some other solver is reducing the problem size a lot more than you are, then that's a hint that maybe there's some presolve technique that might be useful for that instance. Then you can investigate and try to improve. That is a way that both SAS Optimization and our competitors have advanced the field by getting ideas from what each other does. But as far as running them side by side directly, no, we do not do that.

 

 

Recommended Resources

SAS Optimization

SAS/OR

Mathematical Optimization, Discrete-Event Simulation, and OR

Operations Research: Optimize, Simulate, Understand

Operations Research with SAS Optimization Education Course

Network Analysis and Network Optimization in SAS Viya Education Course

Please see additional resources in the attached slide deck.

 

Want more tips? Be sure to subscribe to the Ask the Expert board to receive follow up Q&A, slides and recordings from other SAS Ask the Expert webinars.

Version history
Last update:
‎06-06-2024 03:07 PM
Updated by:
Contributors

SAS Innovate 2025: Call for Content

Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!

Submit your idea!

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Article Labels
Article Tags