"cannot be improved" vs "cannot be improved. Nearly optimal"

9 views
Skip to first unread message

Ziena

unread,
Feb 23, 2007, 10:04:15 AM2/23/07
to KNITRO Nonlinear Optimization Solver
There are times when I get a "cannot be improved" result, and
other times when I get "cannot be improved. Nearly optimal."
Sometimes the relative feasibility tolerance is acceptable,
but not always. What is the difference?

Todd Plantenga

unread,
Feb 23, 2007, 10:15:28 AM2/23/07
to KNITRO Nonlinear Optimization Solver
The first case is return code -4 (or RC=100 in AMPL).
The second case is return code -5 (or RC=101 in AMPL).
(The AMPL variable "solve_result_num" contains the
integer solver return code.)

RC=100 means the solution is "suspect" in one or the other
or both optimality criteria. It just means KNITRO stalled
and at least one of the optimality or feasibility conditions
is "far" from being satisfied. In most cases, though, it is
the optimality condition (more precisely dual feasibility)
that is not being met, frequently because of degeneracy or
scaling in the problem.

RC=101 also means KNITRO stalled; however, both optimality
criteria are within two orders of magnitude of the desired
stop tolerance. Think of the return code as a "warning"
that the solution should be looked at carefully.

Unfortunately, there is no return code that distinguishes
1) "Feasible, but can make no further progress"
2) "Infeasible and can make no further progress"
The first often implies that the solution is optimal with
respect to the primal variables, but fails the optimality
test because KNITRO cannot find accurate Lagrange multipliers
(typically because the problem is degenerate or badly scaled).
The second implies the primal solution is not optimal and
probably of no use.
A future release of KNITRO will make this distinction.

Reply all
Reply to author
Forward
0 new messages