[Ipopt] Output dependency_detector mumps

Andreas Waechter andreasw at watson.ibm.com
Thu Jun 30 10:05:07 EDT 2011


Hi Klaas,

It is nice to hear from you!

Unfortunately, I might not be able to help you much with this.  This is an 
unsupported feature.  The idea is that we take the Jacobian matrix at a 
random perturbation of the starting point and let the linear solver (in 
your case MUMPS) tell us if there are linearly dependent rows in the 
constraints.  Those constraints would then be taken out completely from 
the problem statement and Ipopt solves a problem without the constraints. 
And it does not check at any point if the constraints that were taken out 
are actually satisfied.

All this was just an experiment, and since the results were not good, we 
dind't make this a supported feature.  It probably won't be useful to you.

However, if you really wanted to understand more about this, you could 
have a look at the source code.  The relevant code is

MumpsSolverInterface::DetermineDependentRows
   here you can see how MUMPS is called to get the dependent constraints
TNLPAdapter::DetermineDependentConstraints
   this setups up the matrix and gets the result from
   DetermineDependentRows

But it is quite possible that there are bugs.

Cheers,

Andreas


> Hello,
>
> we use ipopt 3.9trunk and I want to detect the dependencies of the
> linear constraints.
> We get the following output from the option "dependency_detector mumps":
>
> MUMPS used permuting_scaling 0 and pivot_order 2.
>            scaling will be 6.
>
> Detected 194 linearly dependent equality constraints; taking those out.
>
> List of indices of dependent constraints:
> c_dep[0] = -220
> c_dep[1] = -219
> c_dep[2] = -218
> c_dep[3] = -217
> c_dep[4] = -216
> c_dep[5] = -215
> c_dep[6] = -214
> c_dep[7] = -213
> c_dep[8] = -212
> c_dep[9] = -211
> c_dep[10] = -210
>
> ...
>
> c_dep[178] = 132
> c_dep[179] = 133
> c_dep[180] = 134
> c_dep[181] = 136
> c_dep[182] = 137
> c_dep[183] = 138
> c_dep[184] = 139
> c_dep[185] = 140
> c_dep[186] = 141
> c_dep[187] = 142
> c_dep[188] = 143
> c_dep[189] = 144
> c_dep[190] = 145
> c_dep[191] = 147
> c_dep[192] = 149
> c_dep[193] = 150
>
>
> EXIT: Not enough memory.
> solving Problem failed
>
> Without this option ipopt solves our nlp without any errors messages.
> Can anybody explain us the output of the dependency detector?
>
> Thank you,
> Jan and Klaas
>
>
>
> _______________________________________________
> Ipopt mailing list
> Ipopt at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/ipopt
>
>



More information about the Ipopt mailing list