BookmarkSubscribeRSS Feed
pathfinder1_1
Calcite | Level 5

Hi, I am using PROC OPTMILP. I need to solve many problem instances. When time limit is reached, I want to write the following into a text file; best objective value found and gap. What is the best way to do this?

I am using SAS EG 8.2  (not Viya). 

1 REPLY 1
RobPratt
SAS Super FREQ

The _OROPTMILP_ macro variable contains this information.  You can use the following DATA step to append the desired values to a text file:

data _null_;
   file 'myfile.txt' mod;
   oroptmilp = symget('_OROPTMILP_');
   index = index(oroptmilp, 'OBJECTIVE');
   objective = scan(substr(oroptmilp, index), 2, ' =');
   index = index(oroptmilp, 'RELATIVE_GAP');
   relative_gap = scan(substr(oroptmilp, index), 2, ' =');
   put objective relative_gap;
run;

By the way, in PROC OPTMODEL these values are more simply accessible as

_OROPTMODEL_NUM_['OBJECTIVE'] and _OROPTMODEL_NUM_['RELATIVE_GAP'].

sas-innovate-2026-white.png



April 27 – 30 | Gaylord Texan | Grapevine, Texas

Registration is open

Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!

Register now

Discussion stats
  • 1 reply
  • 887 views
  • 0 likes
  • 2 in conversation