Corner case for ipopt when target_min = target_max
Say, we have a state V with initial state V(t_0) = V_0
.
Moreover, we add a path goal on V with target_min = target_max = V0
.
Then, the constraints added during goal programming will be:
V(t_0) - eps*\alpha_1 - V0 \geq 0
V(t_0) - eps*\alpha_2 - V0 \leq 0
where \alpha_1, \alpha_2
are constants, which together with
V(t_0) = V0
may create convergence problems to ipopt since, if \alpha_1 = \alpha_2
, we are not satisfying the LICQ condition. (Similar problem if we move the constraint to the bound.)
A possible solution is to use two different epsilons for the constraints instead of a single one.
I have not witness this case and this is a very particular situation. However, it's more likely to happen if/when we move constraints to bounds (because then then this will break LICQ even when \alpha_1 \neq \alpha_2
). So we should keep this case in mind.