[Osi] CPLEX Error 1217: No solution exists

Matthew Galati magh at lehigh.edu
Mon Jun 2 12:05:54 EDT 2008


Using the base implementation worked for me.
> Umm... ok, header has pure (=0) but src has it implemented. Bug.
>
>> It looks to me like base implementation is pure virtual
>>     /// Get objective function value
>>     virtual double getObjValue() const = 0;
>>
>>
>>  
>>> CPLEX wipes out all solution information as soon as you make any 
>>> change to the problem whatsoever. I don't believe that the objective 
>>> value is one of the things cached in the base class. If you look at 
>>> the current implementation of getObjVal() in OsiCpx, it tries to get 
>>> the objective value using CPXgetobjval(). If Cplex reports 
>>> CPXERR_NO_SOLN, then the function returns 0.0 by default. In the 
>>> base class, the default implementation of the getObjVal() function 
>>> computes the objective value on the fly from cached data, which I 
>>> guess would fix the problem. Try just commenting out the getObjVal() 
>>> function in OsiCpx or else call the base class implementation from 
>>> there and see if that does what you need.  If that works, we should 
>>> probably make that change.
>>>
>>> Cheers,
>>>
>>> Ted
>>>
>>>
>>>
>>> Matthew Galati wrote:
>>>    
>>>> This might be related to an old discussion...
>>>>
>>>> Using OsiCpx, I do
>>>>   initialSolve()
>>>>   getObjValue()
>>>>   addCols()
>>>>   getObjValue()  --> returns CPLEX Error  1217: No solution exists
>>>>
>>>> This is just an LP. Earlier issues with caching seem to have to do 
>>>> with switching from MIP to LP, etc.
>>>>
>>>> It looks like some attempt to keep cache was already made. Any 
>>>> ideas? If needed, I can create a driver program to show this issue.
>>>>
>>>> int err = CPXaddcols(env_, 
>>>> getLpPtr(OsiCpxSolverInterface::KEEPCACHED_ROW),
>>>>                       numcols, nz, const_cast<double*>(obj),
>>>>                       start, index, elem,
>>>>                       const_cast<double*>(collb),
>>>>                       const_cast<double*>(colub), NULL );
>>>>
>>>> _______________________________________________
>>>> Osi mailing list
>>>> Osi at list.coin-or.org
>>>> http://list.coin-or.org/mailman/listinfo/osi
>>>>       
>>>     
>>
>>
>> _______________________________________________
>> Osi mailing list
>> Osi at list.coin-or.org
>> http://list.coin-or.org/mailman/listinfo/osi
>>   
>





More information about the Osi mailing list