[Cgl] cgl, cpx, mir, error

fmargot at andrew.cmu.edu fmargot at andrew.cmu.edu
Thu Apr 12 16:33:00 EDT 2007


The comment was about the workaround. Instead of fiddling with OsiCpx, it
is simpler to create the empty solver interface and let the user
set whatever he wants. He will have to do the work to set all fields
appropriately.

If I am not mistaken, you were the main supporter of the "empty" solver
interface instead of CglData.

Francois


On Thu, 12 Apr 2007, Matthew Saltzman wrote:

> On Thu, 12 Apr 2007 fmargot at andrew.cmu.edu wrote:
>
>> 
>> Matt:
>> 
>> The simplest fix is to have the gentle and kind people at Osi to implement
>> an "empty" solver interface class. That would get cheaply the solver 
>> independence we discussed a while back. This is only a temporary fix,
>> as I was told that Osi2 has a concept identical to CglData. It seems
>> thus a waste of time to convert Cgl to have CglData and then to convert it 
>> again when Osi2 comes out.
>> 
>> I know that you would like to have Cgl independent of Osi, but I am still 
>> not convinced that it is worth the work.
>
> In this particular case, it's not clear to me how independence helps. 
> Wouldn't you then be stuck with computing the matrix-vector product, rather 
> than being able to query the SI for the current value?
>
>
>> 
>> Francois
>> 
>> 
>> 
>> On Wed, 11 Apr 2007, Matthew Galati wrote:
>> 
>>> Any suggestions on a workaround? I don't see any OSI functions for 
>>> setRowActivity.
>>> 
>>> And, it doesn't look like the idea of making CGL independent of OSI worked 
>>> out. Although I do see Francois added CglData - which looks like what I 
>>> wanted. But, most of the CGLs are still using OSI.
>>> 
>>> 
>>> 
>>> -----Original Message-----
>>> From: Ted Ralphs [mailto:tkralphs at Lehigh.EDU]
>>> Sent: Wednesday, April 11, 2007 5:07 PM
>>> To: cgl at list.coin-or.org
>>> Cc: Matthew Galati
>>> Subject: Re: [Cgl] cgl, cpx, mir, error
>>> 
>>> There is a call to getRowActivity() in CglMixedIntegerRounding2. In 
>>> OsiCpx, this call is implemented through a call to CPLEX, which complains 
>>> that there is no solution whenever you have not just finished solving the 
>>> loaded instance (which it looks like you have not. The other cut 
>>> generators seem only to use calls that require returning information 
>>> cached in the interface layer, so you don't get the error.
>>> 
>>> Cheers,
>>> 
>>> Ted
>>> 
>>> Matthew Galati wrote:
>>>> Hi.
>>>> 
>>>> I am creating an OsiCpx object, populating a model, setting the primal 
>>>> solution, and then calling the MIR cut generator.
>>>> 
>>>> OsiSolverInterface * siCgl = new OsiLpSolverInterface();
>>>>
>>>>   siCgl->loadProblem(*m_modelCore->M,
>>>>                        &m_modelCore->colLB[0],
>>>>                        &m_modelCore->colUB[0],
>>>>                        m_app->m_model.objCoeff,
>>>>                        &m_modelCore->rowLB[0],
>>>>                        &m_modelCore->rowUB[0]);
>>>>
>>>>    siCgl->setInteger(&m_modelRelax->integerVars[0],
>>>>                       static_cast<int>(m_modelRelax->integerVars.size()));
>>>>    siCgl->setColSolution(m_xhat);
>>>>
>>>>    CglMixedIntegerRounding2 cglMirs;
>>>>    cglMirs.generateCuts(*siCgl, cs);
>>>> 
>>>> And, I get the error from Cplex:
>>>>   CPLEX Error  1217: No solution exists.
>>>> 
>>>> Note: I don't get that error with Cliques/Knap/Flow CGLs.
>>>> 
>>>> Any ideas?
>>>> 
>>>> Thanks,
>>>> Matt
>>>> 
>>>> _______________________________________________
>>>> Cgl mailing list
>>>> Cgl at list.coin-or.org
>>>> http://list.coin-or.org/mailman/listinfo/cgl
>>> 
>>> 
>>> --
>>> Dr. Ted Ralphs
>>> Associate Professor
>>> Industrial and Systems Engineering
>>> Lehigh University
>>> (610)758-4784
>>> tkralphs at lehigh.edu
>>> www.lehigh.edu/~tkr2
>>> 
>>> 
>>> 
>> _______________________________________________
>> Cgl mailing list
>> Cgl at list.coin-or.org
>> http://list.coin-or.org/mailman/listinfo/cgl
>> 
>
>


More information about the Cgl mailing list