[Ipopt] how to get around an over-determined equality constrained NLP formulation

Stefan Vigerske stefan at math.hu-berlin.de
Tue Mar 5 13:37:54 EST 2013


On 03/05/2013 07:08 PM, Ian Washington wrote:
> Thanks,
> looks like my best option is to reformulate, as most likely I'm
> introducing redundant equations. I'm curious about the
> "dependency_detector" options, as I don't see them on the options list
> http://www.coin-or.org/Ipopt/documentation/node59.html is there a
> particular reference page in the manual or are these options
> undocumented. My guess is that the dependency checker is associated with
> the particular linear solver used ?

Oh, could be that this option is usually not documented, because it is 
experimental and did not work well.
Here are the descriptions:

name: dependency_detector  (string)
valid values: none, mumps, wsmp, ma28
default: none
description: Indicates which linear solver should be used to detect 
linearly dependent equality constraints. The default and available 
choices depend on how Ipopt has been compiled. This is experimental and 
does not work well.

name: dependency_detection_with_rhs  (string)
valid values: no, yes
default: no
description: Indicates if the right hand sides of the constraints should 
be considered during dependency detection.
no only look at gradients
yes also consider right hand side

name: mumps_dep_tol (real)
default: 0
description; Pivot threshold for detection of linearly dependent 
constraints in MUMPS.
When MUMPS is used to determine linearly dependent constraints, this is 
determines the threshold for a pivot to be considered zero. This is 


> Ian.
> On 03/05/2013 08:22 AM, Stefan Vigerske wrote:
>> Hi,
>> the fixed_variable_treatment only decides how to treat variables that
>> are fixed via its bounds. If you have equations that fix variables, it
>> would be better if you could reformulate them as fixing of variables.
>> As far as I know, there is no well tested algorithm in Ipopt to deal
>> with overdetermined systems of equations. You could try the
>> dependency_detector options. They try to detect a set of equations
>> that are dependent and remove them from the problem before passing it
>> to Ipopt. Maybe you are lucky and it works for you.
>> I cannot comment on the Matlab interface.
>> Stefan
>> On 03/01/2013 09:45 PM, Ian Washington wrote:
>>> Hello IPOPT community,
>>> I am trying to pose an NLP where the number of equality constraints is
>>> greater than the number of decision variables (i.e., an over-determined
>>> system) and the solver immediately exits with a
>>> Not_Enough_degrees_Of_Freedom error.  Basically there are some equality
>>> constraints that fix some of the variables.
>>> Clearly my problem is formulation related and I could reformulate the
>>> equality constraints to two inequality constraints using a small
>>> tolerance, but I rather not if possible.
>>> Note, I'm using the matlab interface to ipopt and directly specifying
>>> all constraints/sparsity pattern, but I'm using the limited-memory
>>> Hessian approximation.
>>> My first question: does the matlab interface expose all possible ipopt
>>> solver options to the user ? (I assume so, since I didn't receive any
>>> errors)
>>> Second, I tried to change the fixed_variable_treatment to relax_bounds
>>> but it didn't seem to help. I thought this would at least prevent the
>>> Not_Enough_degrees_Of_Freedom error flag from occurring.
>>> Note, I've tried this problematic formulation using knitro and the
>>> solver proceeds with only a warning stating that there are more equality
>>> constraints than variables. Also, snopt handles the problem with no
>>> issues.
>>> Does anyone have any ideas to get around this problem.
>>> Thanks,
>>> Ian.
>>> _______________________________________________
>>> Ipopt mailing list
>>> Ipopt at list.coin-or.org
>>> http://list.coin-or.org/mailman/listinfo/ipopt

More information about the Ipopt mailing list