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

Antonakopoulos Christos antonakc at student.ethz.ch
Fri Jul 29 10:56:36 EDT 2016

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):
        if line_loading_limit == True:
            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 !!??)
            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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/ipopt/attachments/20160729/d856e3d3/attachment.html>

More information about the Ipopt mailing list