[Coin-ipopt] Re: Coin-ipopt Digest, Vol 16, Issue 9

Sonia Singhal soniasin at andrew.cmu.edu
Fri Mar 31 13:41:09 EST 2006


Hi Carl,

You mentioned "at least first derivative (need to be estimated)", does that mean IPOpt has now the version where the hessian need not be provided ?

thanks,
~ Sonia

> Send Coin-ipopt mailing list submissions to coin-ipopt at list.coin-or.org
> 
> To subscribe or unsubscribe via the World Wide Web, visit 
> http://list.coin-or.org/mailman/listinfo/coin-ipopt or, via email, send a
> message with subject or body 'help' to coin-ipopt-request at list.coin-or.org
> 
> 
> You can reach the person managing the list at 
> coin-ipopt-owner at list.coin-or.org
> 
> When replying, please edit your Subject line so it is more specific than
> "Re: Contents of Coin-ipopt digest..."
> 
> 
> Today's Topics:
> 
> 1. a question (zwerhu at graduate.shu.edu.cn) 2. a question
> (zwerhu at graduate.shu.edu.cn) 3. Re: a question (Carl Damon Laird) 4. Re: a
> question (damien at khubla.com) 5. explain-my  question (zhangwen) 6. Re:
> explain-my  question (Carl Damon Laird)
> 
> 
> ----------------------------------------------------------------------
> 
> Message: 1 Date: Fri, 31 Mar 2006 00:04:01 +0800 From:
> zwerhu at graduate.shu.edu.cn Subject: [Coin-ipopt] a question To:
> coin-ipopt at list.coin-or.org Message-ID:
> <YJkIGrKi3n7O$z7fcJeag$OpmQjLXi at zwerhu> Content-Type: text/plain;
> charset="us-ascii"
> 
> An HTML attachment was scrubbed... URL:
> http://list.coin-or.org/pipermail/coin-ipopt/attachments/20060331/d0707e2
> 9/attachment-0001.html
> 
> ------------------------------
> 
> Message: 2 Date: Fri, 31 Mar 2006 08:46:20 +0800 From:
> zwerhu at graduate.shu.edu.cn Subject: [Coin-ipopt] a question To:
> "andreasw" <andreasw at watson.ibm.com>, 
> "coin-ipopt" <coin-ipopt at list.coin-or.org> Message-ID:
> <gd20IyyPxmRH$7I5ma2uG$nTbe35OR at zwerhu> Content-Type: text/plain;
> charset="us-ascii"
> 
> An HTML attachment was scrubbed... URL:
> http://list.coin-or.org/pipermail/coin-ipopt/attachments/20060331/3bc9c50
> 1/attachment-0001.html
> 
> ------------------------------
> 
> Message: 3 Date: Thu, 30 Mar 2006 20:03:21 -0500 (EST) From: Carl Damon
> Laird <claird at andrew.cmu.edu> Subject: Re: [Coin-ipopt] a question To:
> zwerhu at graduate.shu.edu.cn Cc: =?GB2312?B?YW5kcmVhc3c=?=
> <andreasw at watson.ibm.com>, =?GB2312?B?Y29pbi1pcG9wdA==?=
> <coin-ipopt at list.coin-or.org> Message-ID: 
> <Pine.LNX.4.60-041.0603302000458.17661 at unix50.andrew.cmu.edu> 
> Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed
> 
> 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.
> 
> On Fri, 31 Mar 2006 zwerhu at graduate.shu.edu.cn wrote:
> 
>> 
>> Hi, all
>> 
>> I want to ask a question about the entering of the objective function
>> in using IPOPT. I am faced with the NLP problem in which the objective
>> function doesn't have a unique or known form. In fact, I must get the
>> objective function through another iteration which can be realized by a
>> separated subroutine. I mean, i must use a function "f=f(x1,x2)" to get
>> the objective function, where x1,x2 are unknown variables of the NLP
>> problem and the function "f" is an iteration which doesn't have a
>> unique form. So, I wonder whether this can be realized by IPOPT Matlab
>> interface or otherwise, in the Fortran interface directly. Thanks a lot!
>> 
>> 
>> 
>> Best Regards, W. Zhang
>> 
>> 
>> 
> 
> 
> ------------------------------
> 
> Message: 4 Date: Thu, 30 Mar 2006 19:04:12 -0700 (MST) From:
> damien at khubla.com Subject: Re: [Coin-ipopt] a question To: "Carl Damon
> Laird" <claird at andrew.cmu.edu> Cc: andreasw <andreasw at watson.ibm.com>,
> coin-ipopt <coin-ipopt at list.coin-or.org> Message-ID:
> <60542.68.144.53.88.1143770652.squirrel at mail.khubla.com> Content-Type:
> text/plain;charset=iso-8859-1
> 
> Do you mean that you have to solve another smaller problem iteratively in
>  order to calculate the objective?  If so, you probably will need to use 
> finite differences as Carl suggested to get the gradient.  Generally, an 
> optimisation will still solve quite well with finite differences.  The 
> only issue will be that it might take a while to solve, because you have 
> to solve for the objective for each finite difference.
> 
> One very important thing:  is your objective a continuous function in x1 
> and x2?  If it has lumps or bumps in it, IPOPT might struggle a bit.
> 
> Damien
> 
>> 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.
>> 
>> On Fri, 31 Mar 2006 zwerhu at graduate.shu.edu.cn wrote:
>> 
>>> 
>>> Hi, all
>>> 
>>> I want to ask a question about the entering of the objective function
>>> in using IPOPT. I am faced with the NLP problem in which the objective
>>> function doesn't have a unique or known form. In fact, I must get the
>>> objective function through another iteration which can be realized by
>>> a separated subroutine. I mean, i must use a function "f=f(x1,x2)" to
>>> get the objective function, where x1,x2 are unknown variables of the
>>> NLP problem and the function "f" is an iteration which doesn't have a
>>> unique form. So, I wonder whether this can be realized by IPOPT Matlab
>>> interface or otherwise, in the Fortran interface directly. Thanks a
>>> lot!
>>> 
>>> 
>>> Best Regards, W. Zhang
>>> 
>>> 
>>> 
>> _______________________________________________ Coin-ipopt mailing list 
>> Coin-ipopt at list.coin-or.org 
>> http://list.coin-or.org/mailman/listinfo/coin-ipopt
>> 
> 
> 
> 
> 
> ------------------------------
> 
> Message: 5 Date: Fri, 31 Mar 2006 12:48:47 +0800 From: "zhangwen"
> <zwerhu at graduate.shu.edu.cn> Subject: [Coin-ipopt] explain-my  question To:
> "Carl Damon Laird" <claird at andrew.cmu.edu>,	"zhangwen" 
> <zhangwen at graduate.shu.edu.cn>,	"coin-ipopt" <coin-ipopt at list.coin-or.org>
>  Message-ID: <1143780608$90615$97378552 at zwerhu@graduate.shu.edu.cn> 
> Content-Type: text/plain;	charset="gb2312"
> 
> 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
> 
> 
> 
> ------------------------------
> 
> Message: 6 Date: Fri, 31 Mar 2006 09:33:57 -0500 (EST) From: Carl Damon
> Laird <claird at andrew.cmu.edu> Subject: [Coin-ipopt] Re: explain-my
> question To: zhangwen <zwerhu at graduate.shu.edu.cn> Cc: coin-ipopt
> <coin-ipopt at list.coin-or.org>,	zhangwen <zhangwen at graduate.shu.edu.cn> 
> Message-ID: <Pine.LNX.4.60-041.0603310930210.1379 at unix40.andrew.cmu.edu> 
> Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed
> 
> 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
>> 
>> 
>> 
> 
> 
> ------------------------------
> 
> _______________________________________________ Coin-ipopt mailing list 
> Coin-ipopt at list.coin-or.org 
> http://list.coin-or.org/mailman/listinfo/coin-ipopt
> 
> 
> End of Coin-ipopt Digest, Vol 16, Issue 9 
> *****************************************
> 
> 




More information about the Coin-ipopt mailing list