Nonlinear solver other than IPOPT

I am solving a feasibility problem that consists of a lot of constraints. I tried IPOPT. It is great. But It couldn’t solve my whole problem with all constraints. It says that I have too few degrees of freedom. My constraints are not redundant, though.

What would be another nonlinear solver to try? I wanted to try knitro but it is not for free. Is there any suggestion?

1 Like

Can you provide a reproducible example?

Do you have constant constraints like 2 >= 1?

@odow Absolutely no trivial or redundant constraint. Here is the output

This is Ipopt version 3.14.4, running with linear solver MUMPS 5.4.1.

Number of nonzeros in equality constraint Jacobian...:     1951
Number of nonzeros in inequality constraint Jacobian.:       12
Number of nonzeros in Lagrangian Hessian.............:    11942

Exception of type: TOO_FEW_DOF in file "Interfaces/IpIpoptApplication.cpp" at line 655:
 Exception message: status != TOO_FEW_DEGREES_OF_FREEDOM evaluated false: Too few degrees of freedom (rethrown)!

EXIT: Problem has too few degrees of freedom.

Do you have lots of fixed variables?
Lots of equality constraints?

Try:

set_optimizer_attribute(model, "fixed_variable_treatment", "relax_bounds")

@odow Thanks. Yes a lot of equality constraints. I tried the relaxation, it helped overcoming the error message but now the results are inaccurate. Any additional suggestion to try?

It’s hard to offer advice to generic questions. It’s a lot easier if you can provide a reproducible example. Take a read of: Please read: make it easier to help you

now the results are inaccurate

How inaccurate?

Any additional suggestion to try?

Take a look through the Ipopt options:

Hi @horvetz !

The following tutorial Solve a PDE-constrained optimization problem deals with a large constrained optimization problem, and there is a section on finding a feasible point using trunk from JSOSolvers.jl .

1 Like