<HTML><HEAD></HEAD>
<BODY dir=ltr>
<DIV dir=ltr>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: 'Calibri'; COLOR: #000000">
<DIV>Seth,</DIV>
<DIV> </DIV>
<DIV>You may also need to adjust some of the warm_start_* options, see <A
title=http://www.coin-or.org/Ipopt/documentation/node48.html
href="http://www.coin-or.org/Ipopt/documentation/node48.html">http://www.coin-or.org/Ipopt/documentation/node48.html</A></DIV>
<DIV> </DIV>
<DIV>If those don’t work, then it sounds like it might be a bug in PyIpopt,
unless you can reproduce it with an example using the C/C++ interface. Your best
bet (unless someone who’s more familiar with the Python interface than I am
pipes up) might be to report an issue on PyIpopt’s github page, ideally
including example code so PyIpopt’s author can try to reproduce the problem. I’m
not sure whether he subscribes to this mailing list.</DIV>
<DIV> </DIV>
<DIV>-Tony</DIV>
<DIV> </DIV>
<DIV
style='FONT-SIZE: small; TEXT-DECORATION: none; FONT-FAMILY: "Calibri"; FONT-WEIGHT: normal; COLOR: #000000; FONT-STYLE: normal; DISPLAY: inline'>
<DIV style="FONT: 10pt tahoma">
<DIV> </DIV>
<DIV style="BACKGROUND: #f5f5f5">
<DIV style="font-color: black"><B>From:</B> <A title=watts2@illinois.edu
href="mailto:watts2@illinois.edu">Seth Watts</A> </DIV>
<DIV><B>Sent:</B> Monday, June 09, 2014 8:42 AM</DIV>
<DIV><B>To:</B> <A title=ipopt@list.coin-or.org
href="mailto:ipopt@list.coin-or.org">ipopt@list.coin-or.org</A> </DIV>
<DIV><B>Subject:</B> [Ipopt] initial point in pyIPOPT</DIV></DIV></DIV>
<DIV> </DIV></DIV>
<DIV
style='FONT-SIZE: small; TEXT-DECORATION: none; FONT-FAMILY: "Calibri"; FONT-WEIGHT: normal; COLOR: #000000; FONT-STYLE: normal; DISPLAY: inline'>
<DIV dir=ltr>Hello -
<DIV> </DIV>
<DIV>I have used IPOPT previously via its C/C++ interface, but now I am trying
to use it through the pyIPOPT interface. I am using IPOPT version 3.10.0
installed on a computer cluster.</DIV>
<DIV> </DIV>
<DIV>I have noticed that the initial point x0 for the optimization that I pass
into IPOPT gets changed significantly, such that the first optimization
iteration (or the point about which finite difference derivative checks are
made) is quite different than the initial point I supplied.</DIV>
<DIV> </DIV>
<DIV>Searching online I found some older threads about this issue, but these
discussions appear to focus on when x0 is a near-optimal point which is near the
boundary of the feasible region. In that case, IPOPT moves x0 way from the
boundary so that its interior-point algorithms work properly.</DIV>
<DIV> </DIV>
<DIV>However, in my case x0 is not expected to be optimal; it is simply a
default state that I hope to improve. I observe significant changes in x0 even
when no component of x0 is near its bounds, and even when I have turned off all
constraint functions and bounds on the components of x.</DIV>
<DIV> </DIV>
<DIV>Example: here is the value of x0 I pass into IPOPT via the pyIPOPT
interface:</DIV>
<DIV> </DIV>
<DIV>
<DIV>[ 0.5 0.5 0. 0.25
0.25 0.25 0.25 0.25 0.25 0.25 0.25]</DIV>
<DIV> </DIV>
<DIV>with the upper/lower bounds on each component of +/- 2e19.</DIV>
<DIV> </DIV>
<DIV>The value of x first encountered in IPOPT is:</DIV>
<DIV> </DIV>
<DIV>
<DIV>
<DIV>[ -8.6673931 -0.41015111 6.69634436
-3.0302794 1.55978807</DIV>
<DIV> -9.71466175 -5.99820966 10.0586816
5.25994266 2.42452724</DIV>
<DIV> -2.72581804]</DIV></DIV>
<DIV> </DIV>
<DIV>Since there are no bounds, I don't understand why IPOPT would modify x0,
which should certainly be an interior point. (Note - I see the same type of
behavior, although with different perturbed x0, when the upper bounds are [1.0
1.0 2e19 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35] and the lower bounds are [0.0
0.0 -2e19 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02]).</DIV>
<DIV> </DIV>
<DIV>Based on reading earlier threads, I have tried playing with the bound_push,
bound_frac, etc. and other IPOPT options, including the following values which
were set for the perturbed value of x0 given above:</DIV>
<DIV> </DIV>
<DIV>
<DIV><FONT
face="'courier new', monospace">
Name Value
used</FONT></DIV>
<DIV><FONT face="'courier new', monospace">
acceptable_obj_change_tol =
0.0001 yes</FONT></DIV>
<DIV><FONT
face="'courier new', monospace">
bound_frac = 1e-08
yes</FONT></DIV>
<DIV><FONT face="'courier new', monospace">
bound_mult_init_method = constant
yes</FONT></DIV>
<DIV><FONT
face="'courier new', monospace">
bound_mult_init_val =
1e-08 yes</FONT></DIV>
<DIV><FONT
face="'courier new', monospace">
bound_push = 1e-08
yes</FONT></DIV>
<DIV><FONT
face="'courier new', monospace">
bound_relax_factor = 1e-08
yes</FONT></DIV>
<DIV><FONT
face="'courier new', monospace">
derivative_test = first-order yes</FONT></DIV>
<DIV><FONT face="'courier new', monospace">derivative_test_perturbation =
1e-05 yes</FONT></DIV>
<DIV><FONT face="'courier new', monospace">
derivative_test_print_all =
yes
yes</FONT></DIV>
<DIV><FONT
face="'courier new', monospace">
findiff_perturbation =
1e-05 yes</FONT></DIV>
<DIV><FONT face="'courier new', monospace">
hessian_approximation = limited-memory yes</FONT></DIV>
<DIV><FONT
face="'courier new', monospace">
max_iter = 100
yes</FONT></DIV>
<DIV><FONT
face="'courier new', monospace">
mu_init = 1e-08
no</FONT></DIV>
<DIV><FONT
face="'courier new', monospace">
nlp_scaling_method =
none
yes</FONT></DIV>
<DIV><FONT
face="'courier new', monospace">
print_info_string =
yes
yes</FONT></DIV>
<DIV><FONT
face="'courier new', monospace">
print_user_options =
yes
yes</FONT></DIV>
<DIV><FONT
face="'courier new', monospace">
slack_bound_frac = 1e-08
yes</FONT></DIV>
<DIV><FONT
face="'courier new', monospace">
slack_bound_push = 1e-08
yes</FONT></DIV>
<DIV><FONT
face="'courier new', monospace">
tol = 1e-08
yes</FONT></DIV></DIV></DIV></DIV>
<DIV> </DIV>
<DIV>(Note that since the finite difference check was on and the reported value
of x0 was taken during the first call to eval_f(), some of the options should
not come into play, e.g. the fact that I am using Hessian approximation
shouldn't be germane.)</DIV>
<DIV> </DIV>
<DIV>Does anyone have any suggestions for what else I can try so that the x0
IPOPT uses is at least near the x0 I pass in?</DIV>
<DIV> </DIV>
<DIV>Thank you,</DIV>
<DIV>- Seth Watts</DIV>
<DIV> </DIV></DIV>
<P>
<HR>
_______________________________________________<BR>Ipopt mailing
list<BR>Ipopt@list.coin-or.org<BR>http://list.coin-or.org/mailman/listinfo/ipopt<BR></DIV></DIV></DIV></BODY></HTML>