[Osi] OsiCbc, CbcMain
Stefan Vigerske
stefan at math.hu-berlin.de
Tue Feb 22 05:08:25 EST 2011
Hi,
> It seems that the best way to solve IPs from OSI with CBC is to use:
> CbcModel cbc(*m_osi);
> CbcMain0(cbc);
> CbcMain1(argc, argv, cbc);
>
> This has been discussed many times, since OsiCbc/Clp.branchAndBound( )
> doesn't do all the tricks and performs poorly.
>
> But, I just noticed today, that CbcModel cbc(*m_osi) works only with OsiClp
> and not with OsiCbc. That seems very odd to me - since Osi is suppose to be
> the container with which you would hold an IP and you would only drop to
> Cbc* when something in Osi does not work properly (similar to dropping out
> of OsiCpx to CPX* when something in OsiCpx is missing).
>
> Shouldn't CbcModel/Main work with OsiCbc?
I think the idea is that you pass an LP incl. solver (interface) to
CbcModel, which then reads the information on integer variables from
that LP (I know it sounds strange ;-)) and solves this MIP using the
provided LP solver interface. A cleaner way may be to strictly allow
only LPs to CbcModel and to set additional MIP information afterwards in
the CbcModel.
Setting up a OsiCbc, then getting the CbcModel from that OsiCbc, and
given that to CbcMain{0,1} to solve it (I know it sounds strange too
;-)) should also work.
(Personally I think OsiCbc should not be released as long as it does not
work properly.)
Stefan
>
> Matt
>
>
>
>
> _______________________________________________
> Osi mailing list
> Osi at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/osi
More information about the Osi
mailing list