[Cgl] cgl, cpx, mir, error

fmargot at andrew.cmu.edu fmargot at andrew.cmu.edu
Thu Apr 12 01:50:36 EDT 2007


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.

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
>
>
>


More information about the Cgl mailing list