[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):
> 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 !!??)
> 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
More information about the Ipopt
mailing list