[Ipopt-tickets] [Ipopt] #203: User-provided starting point is modified
Ipopt
coin-trac at coin-or.org
Fri Jun 21 04:46:15 EDT 2013
#203: User-provided starting point is modified
----------------------------+------------------------
Reporter: baiyang11 | Owner: ipopt-team
Type: clarification | Status: closed
Priority: normal | Component: Ipopt
Version: 3.9 | Severity: normal
Resolution: fixed | Keywords:
----------------------------+------------------------
Comment (by stefan):
Replying to [comment:2 baiyang11]:
> Replying to [comment:1 stefan]:
> > As an interior point solver, Ipopt needs to first move its iterates
into the interior of the feasible region before converging to an optimal
point at the boundary.
> >
> > That is the reason, why Ipopt moves the starting point away from the
variable bounds at the beginning.
> > The [[http://www.coin-
or.org/Ipopt/documentation/node44.html|bound_frac and bound_push options]]
can be used to control how much the initial point is moved away from the
bounds, so you can set these also to smaller values. There also have been
discussions on the [[http://list.coin-or.org/pipermail/ipopt/|mailing
list]] on this topic.
> >
> > In general, it is difficult to warmstart Ipopt (or other interior
point solvers) by providing a near-optimal solution. There has been
research on this topic, which may be helpful.
>
> Thanks very much for your helpful answer. But I feel confused with 3
more questions:
>
> (1)You mentioned "Ipopt needs to first move its iterates into the
interior of the feasible region before converging to an optimal point at
the boundary". Since Ipopt moves the starting point I provided, does it
mean that the starting point I provided is not feasible for the problem?(I
believe I provide a near-optimal solution, which is feasible.) Does Ipopt
have any output information to indicate whether the user-provided starting
point is feasible or not? (I have not found any options to do that yet.)
Ipopt does not check whether the point is feasible or not.
It only checks whether it stays sufficiently far away from the variable
bounds, so it can run its algorithm. If Ipopt moved your point, then
because it had some variables at their bounds, which is not uncommon for a
near-optimal solution, indeed.
> (2)As you recommended, I set the bound_push to a smaller value(1e-4). I
found that algorithm needs less Iterations and less CPU secs to end with
"Optimal Solution Found". The solution is almost the same (objective
difference less than 0.001) with the solution in the default bound_push
situation. The objective and inf_pr in Iterate 0 is also better than that
in the default bound_push situation. Does it indicate that Ipopt is warm-
started by my starting point?
It means that your starting point was not moved as much away from the
bounds as before and Ipopt required less iterations than before.
> (3)I've tried another test. First, Ipopt solves the problem and gets the
optimal solution. Second, I provide the exact optimal solution as the
starting point for Ipopt to solve the same problem. I found that the
starting point is also moved at Iterate 0. Is there any explanation for
that?
The same as for point (1).
>
>
> I'am looking forward to your answer! Thanks very much!
>
>
>
--
Ticket URL: <https://projects.coin-or.org/ticket/203#comment:3>
Ipopt <http://projects.coin-or.org/Ipopt>
Interior-point optimizer for nonlinear programs.
More information about the Ipopt-tickets
mailing list