[Ipopt-tickets] [Ipopt] #203: User-provided starting point is modified

Ipopt coin-trac at coin-or.org
Wed Jun 19 21:57:58 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 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
 belive 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.)


 (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?

 (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?


 I'am looking forward to your answer! Thanks very much!

-- 
Ticket URL: <https://projects.coin-or.org/ticket/203#comment:2>
Ipopt <http://projects.coin-or.org/Ipopt>
Interior-point optimizer for nonlinear programs.



More information about the Ipopt-tickets mailing list