ampl messages after solving

1,147 views
Skip to first unread message

Malutka

unread,
Jul 26, 2010, 4:50:25 PM7/26/10
to am...@googlegroups.com

Hello,

can anyone tell me what the following messages mean please?

1) MINOS 5.5: optimal solution found? Optimality
tests satisfied, but reduced gradient is large.
5 iterations, objective 1.42774681e-13
Nonlin evals: obj = 60, grad = 59.

2) MINOS 5.5: the current point cannot be improved.
9 iterations, objective 9.769962617e-15
Nonlin evals: obj = 112, grad = 111.

3) "option abs_boundtol 4.030109579389318e-13;"
or "option rel_boundtol 1.6120438317557273e-12;"
will change deduced dual values.

Thank you!
--
View this message in context: http://old.nabble.com/ampl-messages-after-solving-tp29270572p29270572.html
Sent from the AMPL mailing list archive at Nabble.com.

Michael A. Saunders

unread,
Jul 26, 2010, 10:56:31 PM7/26/10
to am...@googlegroups.com
Malutka,

Messages 1 and 2 mean that the solver has done its best
but has not been able to satisfy the KKT conditions for
optimality to a reasonable degree.

Much depends on the scaling of your variables, constraints,
and objective function. For example, do you regard the
objective values e-13 and e-15 as importantly different
from zero? If so, the scaling is not good.

We can only guess what's happening if you turn on the options

Print_file=20 (say)
Solution=Yes

and send me the file that is output to fort.20.

Michael

> --
> You received this message because you are subscribed to the Google Groups "AMPL Modeling Language" group.
> To post to this group, send email to am...@googlegroups.com.
> To unsubscribe from this group, send email to ampl+uns...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/ampl?hl=en.
>
>

Malutka

unread,
Jul 27, 2010, 5:48:55 AM7/27/10
to am...@googlegroups.com

Thanks for your answer. So what should I do to get an optimal solution?

I would like to minimize the absolute value of the difference of two
variables. The objective values e-13 and e-15 are close enought to zero, but
how can I tell my program that these values are sufficient?

By the way, I don't understand the options which you wrote in your last
message.

--
View this message in context: http://old.nabble.com/ampl-messages-after-solving-tp29270572p29274698.html

Michael A. Saunders

unread,
Jul 27, 2010, 7:29:18 PM7/27/10
to am...@googlegroups.com
Malutka,

As always, it would help if you tell us the relevant
part of your ampl model. If your objective is

min f(x,y) = abs(x-y),

where x and y are two variables, you should understand
that f is a nonsmooth function and none of the normal
nonlinear optimizers will do what you want. (They
depend on the gradient being well defined at all
feasible points.)

Luckily there is a standard trick for reformulating
such a model. It is equivalent to the problem

min f(x,y,v,w) = v + w
st x - y = v - w,
v,w >= 0.

The optimizers will be happy with this.

Michael

Michael A. Saunders

unread,
Jul 27, 2010, 8:58:45 PM7/27/10
to am...@googlegroups.com
Malutka,

I forgot to explain that the options I suggested are
solver options. You can set them as follows:

option minos_options ' \
Print_file=20 \
Solution=Yes \
';

The output file will probably be called fort.20.

Michael

Robert Fourer

unread,
Jul 28, 2010, 11:51:50 AM7/28/10
to am...@googlegroups.com, Malutka
Regarding your question (3) ...

The options abs_boundtol and rel_boundtol aren't documented in the AMPL
book, so I have copied their definition below from the AMPL change log. In
brief, the solver sends AMPL the dual values for the constraints that it
sees, but then AMPL has to compute dual values for constraints that were
eliminated by presolve. For this purpose AMPL has tolerances --
abs_boundtol and rel_boundtol -- that determine when a presolved inequality
constraint is considered to be tight (satisfied with equality) in the
solution. Changing these tolerances may affect the dual values computed for
presolved constraints.

Bob Fourer
4...@ampl.com


19931005:
New options $abs_boundtol, $rel_boundtol, and $show_boundtol are meant to
help deduce correct dual values for constraints eliminated by presolve when
the solver uses an interior-point algorithm and returns a solution with no
bounds strictly holding. All three new options have default value 0, which
gives the previous behavior. Suppose for some variable x that the solver
sees the bounds lb <= x <= ub. The lower-bound constraint lb <= x is
considered active (during reconstruction of dual values) if

x <= lb
or (x - lb < ub - x
and x - lb <= max($abs_boundtol, |lb|*$rel_boundtol)),

and similarly for the simple upper-bound constraint (x <= ub). Thus negative
values of $abs_boundtol and $rel_boundtol behave like 0. The condition x -
lb < ub - x ensures that x is closer to lb than half-way between lb and ub,
ensuring that AMPL picks the more appropriate bound no matter how large
$abs_boundtol and $rel_boundtol are.
New option $show_boundtol works similarly to $show_stats, except that it
delivers its messages when it is on (nonzero) and another dual-value
computation occurs or (like $show_stats) when it is set to 1. It reports
changes to $abs_boundtol and $rel_boundtol that would change the outcome of
the dual computation, and is silent if the values of $abs_boundtol and
$rel_boundtol do not matter. [$show_boundtol was called $show_boundstats
until 20 Dec. 1993.]

Reply all
Reply to author
Forward
0 new messages