[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