[Ipopt] What if the sparsity structure of Hessian depends on x

Xin Zhao sean.null at gmail.com
Fri Feb 15 15:36:13 EST 2013


Thank you all.


I am trying to do it the following way:
When changing the sparsity structure, I return false in eval_* function and
restart the Ipopt.

My question now would be what will happen, if false returned? Will
finalize_solution be called so that I can identify the status and copy the
data?

Best,
Xin


On Fri, Feb 15, 2013 at 12:20 PM, Sylvain Auliac <auliac at ann.jussieu.fr>wrote:

> Hi,
>  if the hessian matrix have too much non-zero elements for being
> considered a sparse one, you might try using the BFGS approximation. That
> said, it will also slow the optimization process down, but maybe less than
> using a full exact hessian?
>
> Le 14 févr. 2013 à 23:44, Xin Zhao a écrit :
>
> Thanks, Stefan.
>
> I've tried to set such a number of nonzero elements that every potential
> nonzero entry can be included, but the performance became unacceptable.
>
> Is there any option to change the sparsity structure at each iteration to
> work this out?
> Or maybe, it is even slower than setting a large number of nonzero entries
> to change the sparsity structure at each iteration?
>
>
> Best,
> Xin
>
>
> On Fri, Feb 15, 2013 at 1:17 AM, Stefan Vigerske <stefan at math.hu-berlin.de
> > wrote:
>
>> Hi,
>>
>>
>> On 02/14/2013 10:48 PM, Xin Zhao wrote:
>>
>>> So basically I wanna to know:
>>>
>>> At each iteration,
>>>
>>> 1. Can we change the sparsity structure of Hessian?
>>>
>>
>> No. During initialization, you should specify a sparsity structure that
>> is valid during the whole solution process. You may then have to put 0
>> values into the hessian from time to time.
>>
>>
>>  2. eval_h are called with const Ipopt::Number* x = NULL first or
>>> Ipopt::Index iRow = NULL first.
>>>
>>
>> At the beginning, Ipopt calls eval_h with x = NULL to get the sparsity
>> structure. Later, it calls with x != NULL to get the values w.r.t. the
>> initially specified sparsity structure.
>>
>> Same for the jacobian.
>>
>> Stefan
>>
>>
>>>
>>> Thanks.
>>>
>>>
>>> Best,
>>> Xin
>>>
>>>
>>> On Thu, Feb 14, 2013 at 11:20 PM, Xin Zhao <sean.null at gmail.com> wrote:
>>>
>>>  Dear all,
>>>>
>>>> Would anyone like to explain me some details on the sequence how eval_h
>>>> and eval_jac_g are called?
>>>>
>>>> At each iteration, are eval_h and eval_jac_g called first with values =
>>>> NULL or not?
>>>>
>>>> For my case, the sparsity structure of eval_h and eval_jac_g depends on
>>>> the variables x. So it matters
>>>> how eval_h and eval_jac_g are called first. Or maybe there is another
>>>> workout?
>>>>
>>>> Thanks.
>>>>
>>>>
>>>> Best,
>>>> Xin
>>>>
>>>>
>>>
>>>
>>> ______________________________**_________________
>>> 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>
>>>
>>>
>>
> _______________________________________________
> Ipopt mailing list
> Ipopt at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/ipopt
>
>
>  Sylvain Auliac
> Laboratoire Jacques-Louis Lions
> Université Pierre et Marie Curie
> mail: auliac at ann.jussieu.fr
> tel : 01 44 27 71 70
>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/ipopt/attachments/20130215/553dc770/attachment.html>


More information about the Ipopt mailing list