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

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


On Sat, Feb 16, 2013 at 12:27 AM, Stefan Vigerske
<stefan at math.hu-berlin.de>wrote:

> Hi,
>
>
> On 02/15/2013 09:36 PM, Xin Zhao wrote:
>
>> 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.
>>
>
> Restarting an interior point solver... good luck.
>
> I don't mean a warm start. Because only variables matter, I will only copy
the variables. And use the variables copied as a start point and
reconstruct anything else. Even in this case, does it depend on my luck?

>
>  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?
>>
>
> Not so sure.
> The intermediate_callback method is meant to implement user interruption.
> It would be better if you can use that one.
>
> Stefan
>
>
>> 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>
>>>>> <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<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
>>>
>>>
>>>
>>>
>>>
>>>
>>
>>
>> ______________________________**_________________
>> 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>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/ipopt/attachments/20130216/7e5a302f/attachment-0001.html>


More information about the Ipopt mailing list