[Ipopt] asymmetric Hessian matrix

Ming Ji finalguy at gmail.com
Wed May 16 13:10:47 EDT 2012


Thanks a lot! I think the new fix works.

On Wed, May 16, 2012 at 11:47 AM, Stefan Vigerske
<stefan at math.hu-berlin.de>wrote:

> Hi,
>
> can you try with Ipopt/stable/3.10 instead of what you are currently
> using? It has some fixes for the blas interface.
>
> svn co https://projects.coin-or.org/**svn/Ipopt/stable/3.10<https://projects.coin-or.org/svn/Ipopt/stable/3.10>Ipopt-3.10
>
> Stefan
>
>  I am running on Linux Centos. With that config argument, I still have the
>> same problem.
>>
>> if I replace
>>
>> IpBlasDcopy(nx,&zero, 0, gradref, 1);
>> IpBlasDcopy(nx,&zero, 0, gradpert, 1)
>>
>>
>> with
>>
>> std::fill(gradref, gradref + nx, 0.0)
>> std::fill(gradpert, gradpert + nx, 0.0)
>>
>> ,in the check derivative function.
>>
>> It works. However, I am running into the same problem somewhere else.
>>
>>
>> On Wed, May 16, 2012 at 11:13 AM, Stefan Vigerske
>> <stefan at math.hu-berlin.de>**wrote:
>>
>>  Hi,
>>>
>>> the only thing that comes into my mind is that if you use Mac OS X Lion,
>>> then there is a problem when using the optimized blas routines that come
>>> with the system, for details see
>>>  https://projects.coin-or.org/****Ipopt/ticket/181<https://projects.coin-or.org/**Ipopt/ticket/181>
>>> <https://**projects.coin-or.org/Ipopt/**ticket/181<https://projects.coin-or.org/Ipopt/ticket/181>
>>> >
>>>
>>>
>>> This issue has not been fixed in an Ipopt release yet (only in trunk and
>>> latest stable branch).
>>> One workaround is to use netlib's blas/lapack implementation (do get.Blas
>>> and get.Lapack in ThirdParty/Blas and ThirdParty/Lapack, resp.) and
>>> building Ipopt with the configure options --with-blas=BUILD
>>> --with-lapack=BUILD .
>>>
>>> Stefan
>>>
>>>  Hi,
>>>
>>>>
>>>> First when I use IPOPT for my problem, I see the bound constraints for
>>>> parameters are violated. The library throws an exception, and the
>>>> program
>>>> terminated. To be specific the contraint on that parameter is [0.005,
>>>> 0.006], however I see the library is trying to use 0 for that parameter.
>>>>
>>>> Later, I enabled second order deriviative check, however the numerical
>>>> calculation gives asymmetric Hessian matrix for contraints. The values
>>>> are
>>>> very different one is about 3000, the other is about 3.0e13. I spend
>>>> some
>>>> time on the library source code. I found the following line changes the
>>>> parameter magically:
>>>>
>>>>  for (Index i = 0; i<   nx; ++i) {
>>>> std::cout<<   ivar<<   "  2.3"<<   xref[i]<<   ""<<   xpert[i]<<
>>>> std::endl;
>>>> }
>>>>
>>>> IpBlasDcopy(nx,&zero, 0, gradref, 1);
>>>>
>>>>
>>>> for (Index i = 0; i<   nx; ++i) {
>>>> std::cout<<   ivar<<   "  2.5"<<   xref[i]<<   ""<<   xpert[i]<<
>>>> std::endl;
>>>> }
>>>>
>>>> The output is:
>>>> 1  2.3     0.0481804  0.0481804
>>>> 1  2.3     700.976  700.976
>>>> 1  2.3     0.0165778  0.0165778
>>>> 1  2.3     2.54335  2.54335
>>>> 1  2.3     0.27909  0.27909
>>>>
>>>> 1  2.5     0.0481804  0
>>>> 1  2.5     700.976  700.976
>>>> 1  2.5     0.0165778  0.0165778
>>>> 1  2.5     2.54335  2.54335
>>>> 1  2.5     0.27909  0.27909
>>>>
>>>> IpBlasDcopy is a Fortran function, is that the problem?
>>>>
>>>>
>>>>
>>>>
>>>> ______________________________****_________________
>>>> Ipopt mailing list
>>>> Ipopt at list.coin-or.org
>>>> http://list.coin-or.org/****mailman/listinfo/ipopt<http://list.coin-or.org/**mailman/listinfo/ipopt>
>>>> <http://**list.coin-or.org/mailman/**listinfo/ipopt<http://list.coin-or.org/mailman/listinfo/ipopt>
>>>> >
>>>>
>>>>
>>>
>>> --
>>> Stefan Vigerske
>>> Humboldt University Berlin, Numerical Mathematics
>>> http://www.math.hu-berlin.de/~****stefan<http://www.math.hu-berlin.de/~**stefan>
>>> <http://www.math.hu-**berlin.de/~stefan<http://www.math.hu-berlin.de/~stefan>
>>> >
>>>
>>>
>>
>
> --
> Stefan Vigerske
> Humboldt University Berlin, Numerical Mathematics
> http://www.math.hu-berlin.de/~**stefan<http://www.math.hu-berlin.de/~stefan>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/ipopt/attachments/20120516/52318ea7/attachment-0001.html>


More information about the Ipopt mailing list