From Ipopt’s perspective these two numbers 180
and 180.0000018
are identical. You can check:
isapprox(180,180.0000018;atol=1e-5)
gives true
, but
isapprox(180,180.0000018;atol=1e-6)
gives false
.
You can probably play around with tolerances in Ipopt using set_optimizer_attribute
(Models · JuMP) - most of the options (all of them) available for ipopt should be accessible from JuMP (Ipopt: Ipopt Options), but Ipopt doesn’t support integer variables, so you may always end up with x.00000000xx
3 Likes