[AMPL 24966] option rel_boundtol message

Hi AMPL Team,

I have had the following message in my solving log:

“option rel_boundtol 9.702931255507551e-06;”
will change deduced dual values.

I am writing to you to ask what that means and how I can use that recommandation.

Best regards,

Usually, you can ignore this message. But if the values of the optimal dual variables (shadow prices) are important to you, then you might be interested in this explanation:

Before a problem is sent to the solver, AMPL’s presolve phase eliminates some constraints that do not make any difference to the solution, or that can be converted to simple bounds on the variables. When the solver returns an optimal solution, it does not contain dual values for the eliminated constraints, so AMPL computes dual values for them. But to compute dual values, AMPL must determine which of the eliminated constraints are “tight” – that is, having no slack.

By default, an eliminated constraint is only considered tight if its slack is zero. However, AMPL’s rel_boundtol option can be set to a small positive value, to indicate that an eliminated constraint should also be considered tight if its slack is nonzero but very small. The message that you are seeing,

You see this message when changing rel_boundtol to a small positive value will cause additional eliminated constraints to be considered tight, thus changing the computed (“deduced”) dual values. The message tells you how large rel_boundtol has to be – in this case, 9.702931255507551e-06 – for a difference in dual values to occur. It would be up to you, however, to decide which setting of rel_boundtol gives the most appropriate dual values for your application.

Usually, you can ignore this message. But if the values of the optimal dual variables (shadow prices) are important to you, then you might be interested in this explanation:

Before a problem is sent to the solver, AMPL’s presolve phase eliminates some constraints that do not make any difference to the solution, or that can be converted to simple bounds on the variables. When the solver returns an optimal solution, it does not contain dual values for the eliminated constraints, so AMPL computes dual values for them. But to compute dual values, AMPL must determine which of the eliminated constraints are “tight” – that is, having no slack.

By default, an eliminated constraint is only considered tight if its slack is zero. However, AMPL’s rel_boundtol option can be set to a small positive value, to indicate that an eliminated constraint should also be considered tight if its slack is nonzero but very small. The message that you are seeing,

“option rel_boundtol 9.702931255507551e-06;”
will change deduced dual values.

appears when when changing rel_boundtol to a small positive value will cause additional eliminated constraints to be considered tight, thus changing the computed (“deduced”) dual values. The message tells you how large rel_boundtol has to be – in this case, 9.702931255507551e-06 – for a difference in dual values to occur. It would be up to you, however, to decide which setting of rel_boundtol gives the most appropriate dual values for your application.

Hi M. Robert,

Well noted. Many thanks.