[Cgl] cgl, cpx, mir, error
Matthew Saltzman
mjs at clemson.edu
Thu Apr 12 04:40:39 EDT 2007
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
>
--
Matthew Saltzman
Clemson University Math Sciences
mjs AT clemson DOT edu
http://www.math.clemson.edu/~mjs
More information about the Cgl
mailing list