BookmarkSubscribeRSS Feed
☑ This topic is solved. Need further help from the community? Please sign in and ask a new question.
Arrie
Fluorite | Level 6

Hi, I ran Proc optmodel and I cannot find where to find the main results. 

In short: 

proc optmodel Presolver=AGGRESSIVE printlevel=2 ;
ods output PrintTable=expt ProblemSummary=exps DerivMethods=exdm
SolverOptions=exso SolutionSummary=exss OptStatistics=exos
Timing=exti;
performance details;

...

var H {index} binary;
var X {index} >=0;

con SomeConstraint;

...

Max obj = sum {i in index} H_coef[i] * H[i] etc
;

Solve with milp;

create data solution from [_n_] H X;
run ;

In the log:

Node Active Sols BestInteger BestBound Gap Time
0 1 1 1418.6565253 3892.3166109 63,55% 0
0 1 1 1418.6565253 2011.9662949 29,49% 0
0 1 1 1418.6565253 2004.8377545 29,24% 0
NOTE: The MILP presolver is applied again.
0 1 2 1849.9252416 2004.8377545 7,73% 0
0 1 2 1849.9252416 2003.6455900 7,67% 0
0 1 2 1849.9252416 2003.5910684 7,67% 0
0 1 2 1849.9252416 2003.5910684 7,67% 0
0 1 3 1857.4798480 2003.5910684 7,29% 0
NOTE: The MILP solver added 7 cuts with 21 cut coefficients at the root.
1 2 4 2003.4648285 2003.5910684 0,01% 0
NOTE: Optimal within relative gap.
NOTE: Objective = 2003,4648285.

In the solution the values of X and H are those that belng to the BestBound solution and my question is
how I can retrieve the values belonging to the bestinteger solution?

Unfortunatelly I cannot find the answer in the user guide 15.2

Can you help me?

Regards Arie

 

1 ACCEPTED SOLUTION

Accepted Solutions
Arrie
Fluorite | Level 6

Thank you Rob. Now that I look again at the output I indeed see that I'm mistaking... Sorry for that. 

 

So that's the good news. The other way round: is it possible to get the values that belong to the bestBound solution as far as you know? 

 

gr Arie

View solution in original post

5 REPLIES 5
RobPratt
SAS Super FREQ

What you have is correct, except that the RUN should instead be QUIT.

 

The values of H and X in the resulting solution data set will correspond to the objective value reported in the BestInteger column.  You will see the same values if you execute this statement:

print H X;

 

You should also see the value in BestInteger if you execute this statement:

print obj;

 

What makes you suspect that the values of H and X instead correspond to the BestBound column?

Arrie
Fluorite | Level 6

Thank you Rob. Now that I look again at the output I indeed see that I'm mistaking... Sorry for that. 

 

So that's the good news. The other way round: is it possible to get the values that belong to the bestBound solution as far as you know? 

 

gr Arie

RobPratt
SAS Super FREQ

The closest you can get to returning a BestBound solution is to solve the LP relaxation:

solve relaxint;

The resulting objective value will often be close to the first or second BestBound value that appears in the iteration log.  The first BestBound value sometimes arises from a trivial bound that considers only the objective function and the variable bounds.

Arrie
Fluorite | Level 6

thanks again!

FreelanceReinh
Jade | Level 19

Hello @Arrie,

Glad to see that @RobPratt's replies answered your questions. Then it would be fair and help later readers if you marked his most helpful reply as the accepted solution, not your own "thank you" post. You can correct this easily: Select his post as the solution after clicking "Not the Solution" in the option menu (see icon below) of the current solution.
show_option_menu.png

Discussion stats
  • 5 replies
  • 174 views
  • 0 likes
  • 3 in conversation