Best bounds can be returned to AMPL, but the mechanism is different for each solver.
In a new update to BARON for AMPL made available today, you can specify, say,
option baron_options 'maxtime 1000 objbound';
and then after BARON returns control to AMPL, you can use objective suffixes .obj_lb and .obj_ub to access the best lower and upper bounds found during the solve. For example, if the objective is Total_Cost then you can display these bounds with
ampl: display Total_Cost.obj_lb, Total_Cost.obj_ub;
Total_Cost.obj_lb = 227125
Total_Cost.obj_ub = 354277
Since this is a minimization and BARON returns the best solution found so far, the value for Total_Cost.obj_ub will the same as the value of Total_Cost.
Knitro for AMPL has similar suffixes .relaxbnd and .incumbent which are the lower and upper bounds, respectively, for a minimization. They are generated automatically when solving problems that have integer variables.
Couenne displays lower and upper bounds in its listing but I do not see where the Couenne-AMPL interface returns these bounds to AMPL. You could take this up with the Couenne development team, who also supply the AMPL interface for Couenne. If they make an update then we can generate and post new Couenne for AMPL binaries on our website.
Bob Fourer
am...@googlegroups.com
=======