<div dir="ltr">Hi Ian!<div><br></div><div>Why not add a slack variable and minimize a linear objective?</div><div><br></div><div>minimize c</div><div>subject to </div><div>(x_min,-inf) &lt;= (x,c) &lt;= (x_max,inf), </div>
<div>c-f(x) = 0, </div><div>g_min &lt;= g(x) &lt;= g_max</div><div><br></div><div>Best regards,</div><div>Joel</div><div> </div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-06-26 2:41 GMT+02:00 Ian Washington <span dir="ltr">&lt;<a href="mailto:washinid@mcmaster.ca" target="_blank">washinid@mcmaster.ca</a>&gt;</span>:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello All,<br>
<br>
I currently have an NLP with expensive constraint function evaluations<br>
which requires the solution of an embedded ODE or DAE (via an adaptive<br>
integration solver) (i.e., dynamically-constrained NLP).<br>
<br>
Ideally I would like to evaluate the embedded DAE states/sensitivities<br>
only once for a given set of NLP variables (and only if these variables<br>
change) per major optimization function eval (i.e., objective,<br>
constraint, jacobian, hessian callbacks). This is pretty straight<br>
forward using global variables where, for example, I would evaluate all<br>
required functions (objective, constraints) and first derivatives in<br>
lets say ipopt&#39;s objective function callback and then make these results<br>
available in the remaining callback routines via global variables.<br>
<br>
However, when generating exact second order information (of the<br>
constraints involving the embedded model states) using, for example, a<br>
forward over adjoint second order sensitivity analysis, I need to pass<br>
the Lagrange multipliers of the constraints in question to the embedded<br>
DAE sensitivity solver. So, if I am to generate this second order<br>
information within ipopt&#39;s objective function callback I would need<br>
access to the internal Lagrange multipliers. Currently it seems only<br>
possible to get this information directly within the Lagrangian hessian<br>
callback.<br>
<br>
So my question is, does anybody know of any possible way to make the<br>
internal Lagrange multipliers available to callback routines other than<br>
just the hessian callback.<br>
<br>
Thanks,<br>
Ian.<br>
<br>
<br>
<br>
_______________________________________________<br>
Ipopt mailing list<br>
<a href="mailto:Ipopt@list.coin-or.org">Ipopt@list.coin-or.org</a><br>
<a href="http://list.coin-or.org/mailman/listinfo/ipopt" target="_blank">http://list.coin-or.org/mailman/listinfo/ipopt</a><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>-- <br>Joel Andersson, PhD<br>Ptge. Busquets 11-13, atico 3<br>E-08940 Cornella de Llobregat, Spain<br>Home: +34-93-6034011<br>Mobile: +32-486-672874 (Belgium) / +34-63-4408800 (Spain) / +46-707-360512 <br>
(Sweden)<br><br>
</div>