[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