[Coin-ipopt] Question about time efficiency in really big problem and variable sensitive
Andreas Waechter
andreasw at watson.ibm.com
Fri Jun 10 10:05:21 EDT 2005
Hi,
1. I did not make any direct comparion between Ipopt and Lancelot, and I'm
not aware of anybody who has. In an internal IBM application (circuit
tuning), we replaced Lancelot by Ipopt because it seemed more robust and
efficient.
I have solved problems (in AMPL) with Ipopt with a few million variables,
but those problems were highly structured (e.g. coming from discretization
of differential equations). The bottleneck for Ipopt is the linear
solver. You would simply have to try if MA27 (or whetever option you are
using) is able to handle your problem. We are also intending to add
interfaces to other linear solvers in the new release which might give you
more choices.
512MB might not be enough to look at such large problems - maybe you need
to even go to a 64bit architecture. As a hint, one way to make Ipopt try
to work with less memory is to use the option
DFILLINFACT
which determines by how much the memory consumption for MA27 is to be
overestimated. The default is 5, but you might be able to get away with
2...
2. You need to use the sparse formulation.
I don't understand what you mean by
K = / 1 2 3 4 5 6 7/ or K = /1 3 6 8 10 11 15/
Those arrays
HESS(K)= / a b c d e f g/
IRNH(K)= / 1 2 3 4 4 5 5/
ICNH(K)= / 1 2 3 2 4 1 5/
are correct for your example matrix. All three of those arrays have
length 7, and there are no "holes" between entries - in other words
HESS(1) = a
HESS(2) = b
HESS(3) = c
HESS(4) = d
etc
When you say you used the second option for K you maybe did it in a
different way?
3. If Lancelot can solve the problem, I suspect that also Ipopt should be
able to solve the problem. The fact that Ipopt runs out of iterations
could be due to giving it incorrect Hessian information. If you for
example didn't define the HESS IRNH ICNH arrays as above that could
explain it.
I hope this helps,
Andreas
On Thu, 9 Jun 2005, Su Ba wrote:
> Dear Andreas,
>
> I am using Ipopt as a new hope for my really big problem of soil mechanics.
> Adapting your example (example.f), I have already modelled my problem. I
> met difficulty with memory allocation. I have also read messages from
> Ipopt's mail-list. But I have many questions about it. Could you explain
> them to me?
>
> 1. Did you make any comparision of time between Ipopt and Lancelot in
> really big large-scale problem? ( Your paper showed, the maximum variables
> is 125.000 variables)
> Variables: 960 000 + 640 000 slack variables
> Constraints: 640 000 (Inqualities in my problem is transformed)
> I used Lancelot, its solving time is not even practical in case of one
> half of the above problem.
> Up to now how many variables can Ipopt solve ?
>
> 2. Adapting your sample example (example.f), I established gradient of
> constraints and Hessian of Lagrangian in "dense" way for problem of 162
> variables. I used "imerit 4", "iquasi 6". It worked 2 times longer than
> Lancelot: Ipopt 152s / Lancelot 21 s. My computer's structure is AMD 64
> processor 3200, 512Mb. Due to your mail-list, I am now rewriting gradient
> of constraints and Hessian of Lagrangian in "sparse" way. But I do not know
> if my "sparse" storage is correct:
>
> For example: Hessian of Lagragian in 5 variable problem:
>
> a
> 0 b
> 0 0 c
> 0 d 0 e
> f 0 0 0 g
>
> Then:
> K = / 1 2 3 4 5 6 7/ or K = /1 3 6 8 10 11 15/ is correct?
> HESS(K)= / a b c d e f g/
> IRNH(K)= / 1 2 3 4 4 5 5/
> ICNH(K)= / 1 2 3 2 4 1 5/
>
> In your example, it is clear that you used K in the second way. If it is
> true, it turns out that total number of HESS in "sparse" way and "dense" way
> are equal due to declaration of static array.
>
> 3. About the termination of the problem, it is proved that my
> differentiable convex optimization has always a solution. By using
> Lancelot, I got the solution. But Ipopt stopped with IERR=1, it means I
> must increase IMAXITER. However the solution of final step is acceptable
> (means it is approximately to Lancelot's one).
>
> My PARAM.DAT is as follows:
> dtol = 1d-4
> imerit = 4 (as default)
> iquasi = 6
> iprint =1
> ifile = 1
> ioutput = 1
> imaxiter = 10000
>
> If I had increased "maxiter", IERR was always 1. I saw a vibration of
> solution in range of 1d-1. But If I had made choice of dtol=1d-1. Ipopt
> sttoped at point very far from my Lancelot's solution. Please show me how
> to avoid IERR=1. Lancelot use Augemented Lagrange method. So muss I change
> any parameters? (Parameters in Ipopt are too much for me to understand all
> !)
>
> _________________________________________________________________
> Don't just search. Find. Check out the new MSN Search!
> http://search.msn.click-url.com/go/onm00200636ave/direct/01/
>
> _______________________________________________
> Coin-ipopt mailing list
> Coin-ipopt at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/coin-ipopt
>
More information about the Coin-ipopt
mailing list