[Ipopt] Why equality constraints prevent reaching optimum?

Hossein Mobahi hmobahi at yahoo.com
Fri Dec 18 16:47:13 EST 2009


Hello everyone,

I have a task which consists of an equality and some inequality constraints. The equality constraint simply forces the L2 norm of the variable vector to be unity, i.e. ||x||=1 where x is the vector of variables.

The task is artificial to test IPOPT, and I know its global minimum x*. At this minimum, Objective=0 while perfectly satisfying all the equality and inequality constraints. However, even initializing with x*, IPOPT diverges from it and cannot find x*.

I traced the problem and it happens to be from the the equality constraint. Simply when I remove the equality constraint (while keeping inequality constraints and the objective function as before), I get very good solution after 20 iterations (i.e. objective is close to zero and constraints are reasonably satisfied):
Objective=1.45e-6
Inf_Primal=3.13e-5
Inf_Dual=4.69e-3

However, when I just add the equality constraint, the solution becomes very poor (Objective becomes 10^6 times larger and Inf_Dual 10^3 times larger):
Objective=1.44
Inf_Primal=6.35e-5
Inf_Dual=9.74

In both situations, IPOPT is initialized with x*.

So I want to know why this happens? Is there a way to fix it?

Thanks

--Hossein



More information about the Ipopt mailing list