[Coin-ipopt] Warm start in restoration
Andreas Waechter
andreasw at watson.ibm.com
Sat Sep 23 17:04:14 EDT 2006
Hi Graham,
At the moment, the warm start only works for the regular iterations,
i.e., when you pass that variables and multipliers back, Ipopt uses those
to start the regular optimization. However, when you make the algorithm
start with the restoration phase (using start_with_resto), the multipliers
for the restoration phase (which is a problem formulation that is
different and larger than the normal NLP) are reinitialized like before
every restoration phase start.
If you would really want to do a warm start for the restoration phase, you
could try to adapt the IpRestoMinC_1Nrm.cpp and IpRestoIpoptNLP.cpp
files... somehow store the information away that IpRestoMinC_1Nrm.cpp
receives from the internal restoration phase algorithm after return (for
all restoration phase variables and multipliers which are more than for
the usual NLP), and change IpRestoIpoptNLP.cpp so that it makes use of
that information later in the InitializeStructures call...)
Maybe that helps a bit...
Andreas
On Mon, 18 Sep 2006, Graham Sparrow wrote:
> Hi all,
>
> First of all, I have been experimenting with IPOPT for a while now and I
> would like to say it is an excellent solver, thanks guys :)
>
> I have been looking at the warm start options and was wondering about
> warm-starting in the restoration phase.
>
> The scenario is that, I can often get problems that are overly
> constrained, making them infeasible. I have some code that sits around
> the solver and tweaks the constraints according to some user-defined
> priorities/rules and I then want to retry the optimization.
>
> What I was thinking is that I could tweak the constraints and then
> re-run with the following options...
>
> app->Options()->SetStringValue( "start_with_resto", "yes" );
> app->Options()->SetStringValue( "expect_infeasible_problem", "yes" );
> app->Options()->SetStringValue( "warm_start_init_point", "yes" );
>
> ... have the TNLP::get_starting_point() function supply the original
> termination point as the starting point, along with the restoration
> phase multipliers that were originally returned. This would then quickly
> check whether the problem is now feasible and allow further iterations
> of constraint relaxation if not.
>
> I notice that there was a recent change that allows the restoration
> phase multipliers to be made available if the solver terminates during
> restoration. What I am not sure about is if there is a way of passing
> them back in for a warm start (or if this would be a reasonable thing to
> implement when the start_with_resto and warm_start_init_point options
> were set).
>
> Any pointers on this would be gratefully appreciated.
>
> Thanks,
>
> Graham
> _________________________________________________________________
> Be one of the first to try Windows Live Mail.
> http://ideas.live.com/programpage.aspx?versionId=5d21c51a-b161-4314-9b0e-4911fb2b2e6d
More information about the Coin-ipopt
mailing list