BookmarkSubscribeRSS Feed
abhik_giri
Calcite | Level 5

Hi,

I am running proc optmodel using MILP solver on two different datasets (let's call them A & B) but more or less equivalent in terms of #variables, #integers, #constraints etc.

Surprisingly, A takes 16 min to converge, while B converges in negligible time (2-3 seconds). However, B seems to give correct output (I am also running Excel Analytic Solver Platform for the same problem, and results more or less match with that of SAS/OR).

The code for A & B are exactly same.

Any help will be greatly appreciated.

3 REPLIES 3
RobPratt
SAS Super FREQ
Unfortunately, that is the nature of MILP. Two similar instances of the same problem can yield very different performance. On the other hand, the likelihood of this situation can sometimes be reduced. If you attach your code and data, I'll take a look.
abhik_giri
Calcite | Level 5

Thanks a lot for the reply. Unfortunately, I cannot share the code/data due to confidentiality issues. Is there a way in proc optmodel to diagnose which particular variable eats up more time? 

RobPratt
SAS Super FREQ

In SAS/OR 14.1 (just released in July), PROC OPTMODEL has a new PROFILE statement that shows execution time for each statement:

http://support.sas.com/documentation/cdl/en/ormpug/68156/HTML/default/viewer.htm#ormpug_optmodel_syn...

 

But it sounds like you are looking for detailed information about the solver execution invoked by the SOLVE statement, and the best source for that is the node log:

http://support.sas.com/documentation/cdl/en/ormpug/68156/HTML/default/viewer.htm#ormpug_milpsolver_d...

 

Can you share that?  And can you share the MILP formulation?

sas-innovate-white.png

Special offer for SAS Communities members

Save $250 on SAS Innovate and get a free advance copy of the new SAS For Dummies book! Use the code "SASforDummies" to register. Don't miss out, May 6-9, in Orlando, Florida.

 

View the full agenda.

Register now!

Discussion stats
  • 3 replies
  • 1691 views
  • 0 likes
  • 2 in conversation