# [Ipopt] Problem with a group of constraints when solving non linear problem with IPOPT (Maximal Number of Iterations exceeded)

Stefan Vigerske stefan at math.hu-berlin.de
Sat Jul 30 14:25:15 EDT 2016

```Hi,

maybe the problem is just not feasible with the tighter flow limits?
Maybe if you give the solution of the relaxed problem as starting point
to Ipopt for the non-relaxed problem, will it do better?
Or can you run a different, non-interior point, solver for the
non-relaxed problem?

As this is a nonconvex problem, there is no guarantee that Ipopt will
find a feasible solution if there is one.

Stefan

On 07/29/2016 04:56 PM, Antonakopoulos  Christos wrote:
> Hello to the community,
>
> I am not sure if this mailing list is the right place to ask however, I will since members from Pyomo mailing group proposed me to write here.
>
> So I am using IPOPT solver  (3.10.1) (and more specifically the MUMPS Linear Solver) in Windows 7 through Pyomo, an algebraic modelling language in Python. So, I have modelled a nonlinear and non-convex problem (optimal power flow for those who have an insight of power engineering) and then I am calling the solver.
>
> My problem contains many equality and inequality constraints that are non-linear. For a special grid topology my problem is always solved and my results are correct so the modelling is correct, however for another grid topology my problem is solved only when I remove a group of non-linear inequality constraints. Even if it does not help a lot, this group is the following (in python):
>
>     def thermal_lim_ineq_con(model, i, j, k):
>             P_branch_ij = (model.V_magn[i, k]**2) * np.float(real(Y_matrix[i, j])) - model.V_magn[i, k] * model.V_magn[j, k] * (np.float(real(Y_matrix[i, j])) * cos(model.V_angle[i, k]-model.V_angle[j, k]) + np.float(imag(Y_matrix[i,j])) * sin(model.V_angle[i, k]-model.V_angle[j, k]))
>             Q_branch_ij = (model.V_magn[i, k]**2) * np.float(imag(Y_matrix[i, j])) + model.V_magn[i, k] * model.V_magn[j, k] * (np.float((real(Y_matrix[i, j]))) * sin(model.V_angle[i, k]-model.V_angle[j, k]) - np.float(imag(Y_matrix[i,j])) * cos(model.V_angle[i, k]-model.V_angle[j, k]))
>                 return (sqrt((P_branch_ij**2) + (Q_branch_ij**2)) <=  limits_flows[i, j]) ########### ATTENTION (if all limits_flows multiplied with 2.5 it works !!??)
>         else:
>             return Constraint.Skip
>
>     model.therlim_ineq_con = Constraint(branch_from_to, scenario_set, rule = thermal_lim_ineq_con) # run this constraint for all branches
>
>
>
> If I keep this group, then the number of iterations (300) is exceeded and no solution is found. If I remove this group then I get a solution so the problem is here. Another clue, is that my values on the right part (limits flows) are small in the range of [10**-4, 10**-3]. Finally, I do not know if this can help you more, however if I multiply all those values on the right part with *2.5 then the problem is solved ! Is it possible that my non-linear problem is somehow ''trapped'' in a region and can not find the solution??
>
>
> Based on those clues, could you help me? Maybe ideas, to change some parameteres of IPOPT? Do you think this is an IPOPT problem?
>
>
> Thank you very much for your time.
>
> Best regards,
> Christos Antonakopoulos
>
>
>
>
>
>
> _______________________________________________
> Ipopt mailing list
> Ipopt at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/ipopt
>

--
http://www.gams.com/~stefan
```