[Coin-ipopt] IPOPT for QP problems

Matthew Guthaus mguthaus at eecs.umich.edu
Wed Aug 10 16:39:20 EDT 2005


I'm using the NLPAPI so I do not set these directly. I set the  
objective with:

   rc=NLPSetObjective(P,tempstr,vars,v,qObj,dqObj,ddqObj,0,0);

where vars is 2694, v is just an array [ 1 ... vars ], and the other  
things are my function pointers. How do I set it in NLPAPI? The  
examples in the User Guide are done exactly like I am doing...

Matt

On Aug 10, 2005, at 4:01 PM, Andreas Waechter wrote:

>> I double checked this and my Hessian is definitely not 100% dense. I
>> use my own functions to implement the objective function and its
>> derivatives. The 2nd derivative returns an element of a matrix from
>> my quadratic objective. It has only a 597x597 dense submatrix out of
>> a 2694x2694 total size. Since it is symmetric, it has 178503 non-zero
>> entries out of 3630165 (~5% dense).
>>
>
> You must be telling Ipopt that your problem has 3630165 nonzeros,  
> since
> this is what the output below
>
>
>>>> Number of nonzeros in Hessian :  3630165
>>>>
>
> says.  You specify this number in your function EV_H (see section  
> 5.3.5 in
> README.IPOPT) as the return argument of NNZH, when EV_H is called with
> TASK=0.  It seems that here you return the wrong number (3630165  
> instead
> of 178503) to Ipopt.
>
> Andreas
>
>
>>
>> Is IPOPT doing something to the hessian to make things non-zero?
>>
>> Matt
>>
>> On Aug 10, 2005, at 2:04 PM, Andreas Waechter wrote:
>>
>>
>>> Matt,
>>>
>>> The first thing that one notices is that your problem is dense.   
>>> Is it
>>> correct that the Hessian in your objective function is 100% dense
>>> (look at
>>> the Number of nonzeros in Hessian)?  Also, on average, each  
>>> constraint
>>> gradient has 10% non-zero elements.
>>>
>>> Before looking into anything else, you should make sure that you are
>>> telling the API the sparsity pattern of your problem correctly.  If
>>> your
>>> problem is truely dense, then the usage of a sparse linear solver
>>> (which
>>> is that Ipopt is using) is not very efficient.
>>>
>>> Hope this helps,
>>>
>>> Andreas
>>>
>>> On Wed, 10 Aug 2005, Matthew Guthaus wrote:
>>>
>>>
>>>
>>>> Hi,
>>>>
>>>> I'm using IPOPT to solve a simple equality constrained quadratic
>>>> programming problem (I cannot find an adequate QP solver with  
>>>> API...
>>>> Clp has one, but no API.). IPOPT works well on small problems,
>>>> however, on medium problems I get the following error. Can anyone
>>>> provide insight into the problem?
>>>>
>>>> Thanks,
>>>>
>>>> Matt
>>>>
>>>>
>>>>
>>>> Number of variables           :     2694
>>>>     of which are fixed         :        0
>>>> Number of constraints         :      597
>>>> Number of lower bounds        :     2694
>>>> Number of upper bounds        :     2694
>>>> Number of nonzeros in Jacobian:   148230
>>>> Number of nonzeros in Hessian :  3630165
>>>>
>>>> ITER     ERR       MU      ||C||    ||D||   ALFA(X) #LS
>>>> F         Regu
>>>>      0 .100E+03d .100E+00 .397E-02 .000E+00 .000E+00   0  
>>>> 0.92802159E
>>>> +08 .000E+00
>>>> Least square system singular while initializing equality  
>>>> multipliers.
>>>> Setting multipliers to zero.
>>>> Regularization parameter getting too large (a):  1.E+42
>>>>      1 .265E+04d .100E+00 .397E-02 .000E+00 .000E+00-  0  
>>>> 0.92802159E
>>>> +08 .000E+00
>>>> Regularization parameter getting too large (a):  1.E+42
>>>> solve_barrier: get_step_full returns IERR =  10
>>>> mainloop: Error: solve_barrier ends with IERR =  10
>>>>
>>>> Number of iterations taken .............                      1
>>>> Final value of objective function is.... 0.9280215934507787E+08
>>>>
>>>> Errors at final point                      (scaled)        
>>>> (unscaled)
>>>> Final maximal constraint violation is... 0.250111E-03     
>>>> 0.250111E-03
>>>> Final value for dual infeasibility is... 0.264759E+04     
>>>> 0.968047E+06
>>>> Final value of complementarity error is. 0.100000E+03     
>>>> 0.100000E+03
>>>>
>>>> The objective function was evaluated      1 times.
>>>> The constraints were evaluated            1 times.
>>>>
>>>> EXIT: Linear system becomes too ill-conditioned
>>>>
>>>> CPU seconds spent in IPOPT and function evaluations =          
>>>> 36.3400
>>>>
>>>> IPOPT returned IERR = 10
>>>>
>>>> _______________________________________________
>>>> Coin-ipopt mailing list
>>>> Coin-ipopt at list.coin-or.org
>>>> http://list.coin-or.org/mailman/listinfo/coin-ipopt
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>> _______________________________________________
>> Coin-ipopt mailing list
>> Coin-ipopt at list.coin-or.org
>> http://list.coin-or.org/mailman/listinfo/coin-ipopt
>>
>




More information about the Coin-ipopt mailing list