I am using SAS optmodel procedure to solve a MIP model. The MIP model is complicated so it takes more than 30 minutes to solve for optimality.
The disadvantage of SAS to me is that: I cannot see the updates of solution procedures (listed as below) during the SAS solution procedure but only can see the solution results when the solution is completely done.
My question is that: Are there any settings I can make in the SAS optmodel procedure so I can see the updates of solution procedures (something like below) during the SAS solving process? Thank you.
NOTE: Problem generation will use 16 threads.
NOTE: The problem has 1331476 variables (0 free, 0 fixed).
NOTE: The problem uses 86413 implicit variables.
NOTE: The problem has 200 binary and 0 integer variables.
NOTE: The problem has 117375 linear constraints (14532 LE, 98896 EQ, 3947 GE, 0 range).
NOTE: The problem has 415692 linear constraint coefficients.
NOTE: The problem has 0 nonlinear constraints (0 LE, 0 EQ, 0 GE, 0 range).
NOTE: The MILP presolver value AUTOMATIC is applied.
NOTE: The MILP presolver removed 1317510 variables and 106537 constraints.
NOTE: The MILP presolver removed 371533 constraint coefficients.
NOTE: The MILP presolver modified 3540 constraint coefficients.
NOTE: The presolved problem has 13966 variables, 10838 constraints, and 44159 constraint coefficients.
NOTE: The MILP solver is called.
Node Active Sols BestInteger BestBound Gap Time
0 1 0 . 902.6018387 . 9
0 1 1 814.6069142 900.9672256 9.59% 11
0 1 1 814.6069142 900.4865258 9.54% 12
0 1 1 814.6069142 900.2167364 9.51% 12
0 1 1 814.6069142 899.7749303 9.47% 13
0 1 1 814.6069142 899.4164731 9.43% 13
0 1 1 814.6069142 898.9094739 9.38% 14
0 1 1 814.6069142 898.8483212 9.37% 14
0 1 1 814.6069142 898.8138935 9.37% 14
0 1 1 814.6069142 898.7976841 9.37% 15
0 1 1 814.6069142 898.7828394 9.37% 15
0 1 1 814.6069142 898.7828394 9.37% 18
NOTE: The MILP solver added 122 cuts with 1071 cut coefficients at the root.
100 92 1 814.6069142 889.9604539 8.47% 28
200 183 1 814.6069142 889.2168580 8.39% 37
300 274 1 814.6069142 888.7913289 8.35% 43
400 365 1 814.6069142 888.5257066 8.32% 49
500 456 1 814.6069142 888.1843388 8.28% 54
I'm not sure I understand your question, but you can control the amount of logging by using the LOGFREQ= and LOGLEVEL= options. See the documentation here:
SAS/OR(R) 13.1 User's Guide: Mathematical Programming
Also, if you can share your code, we might be able to suggest something to speed up the computation.
My problem is that: I cannot see the solution process after clicking run so I have no ideas about what are the current BestInteger BestBound Gap until the whole solution process is done. I am hoping to see the below output can be keeping on updating during the solution procedure.
Like, say, after 20 seconds, I can see something like,
Node Active Sols BestInteger BestBound Gap Time
0 1 0 . 902.6018387 . 9
0 1 1 814.6069142 900.9672256 9.59% 11
0 1 1 814.6069142 900.4865258 9.54% 20
Then, after 50 seconds, I can see something like,
Node Active Sols BestInteger BestBound Gap Time
0 1 0 . 902.6018387 . 9
0 1 1 814.6069142 900.9672256 9.59% 11
0 1 1 814.6069142 900.4865258 9.54% 20
0 1 1 814.6069142 899.4164731 9.43% 30
Basically, I want to see where the current solution quality is during the entire solution procedure. Instead of waiting until the last minutes when the optimality is already found.
This information should be updated in real time in the Log window while PROC OPTMODEL is running, but you have to click the Log tab to switch focus from the Editor window.
As Rob says, you should be getting updates in real time. Which interface are you using to run SAS? It may be that a custom UI is buffering the log output.
I am using SAS Enterprise Guide 5.1. I do check log window, but cannot see the information in real time. Any setting may cause this?
If you use Display Manager, the log is streamed the way you want. In Enterprise Guide, the log is available only at the end of the PROC OPTMODEL call. As a workaround, you can redirect log output to a file by using PROC PRINTTO.
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!
Learn how to run multiple linear regression models with and without interactions, presented by SAS user Alex Chaplin.
Find more tutorials on the SAS Users YouTube channel.