[Coin-ipopt] Re: explain-my question

Carl Damon Laird claird at andrew.cmu.edu
Fri Mar 31 09:33:57 EST 2006


This kind of problem arises whenever someone has existing simulation code 
for all or part of a model and they want to use this code in optimization. 
This can be done, but you are likely going to have to approximate the 
derivatives of the objective function (or more precisely, the derivatives 
of the y's with respect to the x's - then use chain rule for df/dx).

If your subroutine converting from x to y is indeed iterative, then you 
will need to be very careful with convergence tolerances inside the 
subroutine and Ipopt.

Cheers,

Carl.

On Fri, 31 Mar 2006, zhangwen wrote:

> Hi, Carl,
>    Thank you for your replying for my question!
>    I mean, if "x=(x_1,...,x_n)' " are the n variables of the NLP problem. The objective function has the form "f=f(y_1,...,y_n)", where "y=(y_1,...,y_n)' " and "y" can be got from the subroutine/sub-function "y=subfun(x)". Here, the objective function "f" has a unique form such as "f=y_1*y_1+...+y_n*y_n", but f can't be expressed directly by the vector x. I can get y through the subfunction 'subfun', but all the variables x_1,...,x_n are unknown at the beginning. So, the objective function must include another function "subfun", of which the variables are actually the unknowns of NLP. That may be my problem. Thanks.
>> I am not sure what you mean by "get the objective function through another
>> iteration". If your objective function is a particular subroutine, then it
>> is certainly possible to use the Fortran interface (or Matlab if it is a
>> Matlab subroutine) to define the problem. If you do not know the form of
>> the objective function however, you will need to find some way to estimate
>> the derivatives (at least first derivatives). This might mean using
>> automatic differentiation or finite difference approximations.
>>
>> Hope this helps,
>>
>> Carl.
>>
> Best Regards,
> W. Zhang
>
>
>



More information about the Coin-ipopt mailing list