[Cbc] cbc-generic is an illusion

Stefan Vigerske stefan at math.hu-berlin.de
Mon Jul 5 04:21:53 EDT 2010


Hi,

it depends on which cuts you want to have.
OsiXpr only implements a subset of the full Osi functionality. As far as
I can see from the code, one thing that it is missing is, e.g., giving
access to the simplex tableaux (things like getBinvArow), so you would
not be able to use cut generators that depend on this functionality
(e.g., gomory cuts). There may also be further bugs that prevent other
cut generators to work. Unfortunately, OsiXpr has - afaik - no
maintainer (there is also no author named in the code), but if you find
bugs and can provide patches, then the Osi maintainers will be happy to
put them into the code. :-)

Stefan


Thomas Schoenemann wrote:
> Hey everyone,
> 
> I think this is maybe not the appropriate mailing list, for all I really want 
> is the Cgl working with Xpress. I readily believe that Cbc is a very extensive 
> project, but I would expect that Cgl is more easily maintained.
> 
> Here is what my code is doing:
> 
> 1. solve an LP-relaxation via OsiXpr
> 2. create a cut collection and a cut generator, then have it generate cuts 
> from the OsiXpr.
> 3. apply the cuts to the OsiXpr, then go to 1 (or exit if there are no cuts).
> 
> As you see, it does not involve Cbc at all. 
> 
> I am very willing to provide you all the information you need. But I do not 
> know exactly what you want to know, so please contact me if you have further 
> questions. I do not know enough about the source code that I could help you 
> there (unless you give me more information). But I can always test newly 
> developed code.
> 
> Best regards,
>   Thomas
> 
> 
> Am Sonntag, 4. Juli 2010 21:53:48 schrieb Lou Hafer:
>> Thomas, Ted,
>>
>> 	cbc-generic is an illusion.  This is my attempt to try and maintain
>> generic solver capability in cbc.  Unfortunately, it would become broken on
>> a regular basis due to changes to the main cbc code base and I have not had
>> time over the past year or so to properly maintain it.  I believe that it
>> is currently broken (it will compile but will crash during its unit test).
>> You have to specifically enable the build with
>>   --enable-cbc-generic
>> and then choose a solver with
>>   --with-cbc-generic-solver=xxxx
>> The only solvers cbc-generic has ever been tested with are clp, dylp, and
>> glpk. Looking at CbcGenSolvers.cpp, it looks like I might have tested with
>> cplex (cpx). Can't think why I coded in Mosek (msk), as I don't have the
>> libraries. Code files for cbc-generic start with `CbcGen'.
>>
>> 	Ted, I don't have the log or other information, but I believe you're
>> correct.  The presence/absence of OsiXpr is completely irrelevant to a cbc
>> build.  It will use OsiClp (as well as lower-level classes specific to
>> clp), and there's nothing you can do about it.  You'll notice that the
>> section of Makefile.am that builds the cbc main program is conditional on
>> the presence of clp.
>>
>> 	Thomas, if what you're actually doing is coming in through OsiCbc,
>> specifying OsiXpr as the underlying solver, it may or may not work,
>> depending on the problem.  And the previous paragraph applies.  Lots of
>> activities in libCbc will not work because they're coded specifically for
>> clp, at a level at or below the Osi interface.  I'll also add that running
>> Cbc through OsiCbc is a lot like doing brain surgery while wearing boxing
>> gloves.  You don't have the fine control.
>>
>> 	Hence our requests for more information.  For myself, it's a case where
>> I haven't been able to do serious work on cbc for a while and I didn't want
>> to make assertions when the capabilities of the code had possibly changed. 
>> But I think it's highly unlikely that you're getting the build you think
>> you're getting.
>>
>> 							Lou
>>
>> _______________________________________________
>> Cbc mailing list
>> Cbc at list.coin-or.org
>> http://list.coin-or.org/mailman/listinfo/cbc
> 
> _______________________________________________
> Cbc mailing list
> Cbc at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/cbc
> 


-- 
Stefan Vigerske
Humboldt University Berlin, Numerical Mathematics
http://www.math.hu-berlin.de/~stefan



More information about the Cbc mailing list