[Cbc] hotstart mip and solution pool

Haroldo Gambini Santos haroldo.santos at gmail.com
Wed Aug 20 20:24:44 EDT 2014


Hi Mustafa,

To inform an Integer solution you should use

CbcModel::setBestSolution

http://list.coin-or.org/pipermail/cbc/2008-October/000194.html

Cheers

On 20-08-2014 12:28, Mustafa Kilinc wrote:
> Hi all,
>
> I want to provide an initial solution to hotstart Cbc. For this purpoose, I use
>
> model.setHotstartSolution(startx);
>
> In the output, I do not see anything if the solution is acceptted or
> not. Does Cbc accept partial solution? For example: does Cbc solve an
> lp after fixing integer variables to current values for hot start
> solution?
>
> The other feature I use is solution pool of Cbc. For this purpose I set
>
> model.setMaximumSavedSolutions(10);
>
> But it seems like these two features do not work in harmony together.
> I get valgrind errors.
>
>
> ==24176== Invalid read of size 8
> ==24176==    at 0x4A09C2E: memcpy (mc_replace_strmem.c:883)
> ==24176==    by 0x4F991D3: CbcModel::setBestSolution(double const*,
> int, double, bool) (in
> /home/mkilinc/cbc/Cbc-2.8.0/lib/libCbc.so.3.8.0)
> ==24176==    by 0x4CA344F: CbcMain1(int, char const**, CbcModel&, int
> (*)(CbcModel*, int)) (in
> /home/mkilinc/cbc/Cbc-2.8.0/lib/libCbcSolver.so.3.8.0)
> ==24176==    by 0x40FAAA: main (in
> /home/mkilinc/cbc/Cbc-2.8.0/Cbc/examples/driver3)
> ==24176==  Address 0x7868f60 is 0 bytes after a block of size 272 alloc'd
> ==24176==    at 0x4A08182: operator new[](unsigned long)
> (vg_replace_malloc.c:363)
> ==24176==    by 0x4F85A3D: CbcModel::saveExtraSolution(double const*,
> double) (in /home/mkilinc/cbc/Cbc-2.8.0/lib/libCbc.so.3.8.0)
> ==24176==    by 0x4F85B9A: CbcModel::saveBestSolution(double const*,
> double) (in /home/mkilinc/cbc/Cbc-2.8.0/lib/libCbc.so.3.8.0)
> ==24176==    by 0x4F9D325: CbcModel::setBestSolution(CBC_Message,
> double&, double const*, int) (in
> /home/mkilinc/cbc/Cbc-2.8.0/lib/libCbc.so.3.8.0)
> ==24176==    by 0x4FA6120: CbcModel::doOneNode(CbcModel*, CbcNode*&,
> CbcNode*&) (in /home/mkilinc/cbc/Cbc-2.8.0/lib/libCbc.so.3.8.0)
> ==24176==    by 0x4FAAC6E: CbcModel::branchAndBound(int) (in
> /home/mkilinc/cbc/Cbc-2.8.0/lib/libCbc.so.3.8.0)
> ==24176==    by 0x4CA2B3A: CbcMain1(int, char const**, CbcModel&, int
> (*)(CbcModel*, int)) (in
> /home/mkilinc/cbc/Cbc-2.8.0/lib/libCbcSolver.so.3.8.0)
> ==24176==    by 0x40FAAA: main (in
> /home/mkilinc/cbc/Cbc-2.8.0/Cbc/examples/driver3)
> ==24176==
>
> ==24176== Invalid read of size 8
> ==24176==    at 0x4A09D3C: memcpy (mc_replace_strmem.c:883)
> ==24176==    by 0x4F991D3: CbcModel::setBestSolution(double const*,
> int, double, bool) (in
> /home/mkilinc/cbc/Cbc-2.8.0/lib/libCbc.so.3.8.0)
> ==24176==    by 0x4CA344F: CbcMain1(int, char const**, CbcModel&, int
> (*)(CbcModel*, int)) (in
> /home/mkilinc/cbc/Cbc-2.8.0/lib/libCbcSolver.so.3.8.0)
> ==24176==    by 0x40FAAA: main (in
> /home/mkilinc/cbc/Cbc-2.8.0/Cbc/examples/driver3)
> ==24176==  Address 0x692b7a0 is 0 bytes after a block of size 272 alloc'd
> ==24176==    at 0x4A08182: operator new[](unsigned long)
> (vg_replace_malloc.c:363)
> ==24176==    by 0x4F85A3D: CbcModel::saveExtraSolution(double const*,
> double) (in /home/mkilinc/cbc/Cbc-2.8.0/lib/libCbc.so.3.8.0)
> ==24176==    by 0x4F85B9A: CbcModel::saveBestSolution(double const*,
> double) (in /home/mkilinc/cbc/Cbc-2.8.0/lib/libCbc.so.3.8.0)
> ==24176==    by 0x4F9D325: CbcModel::setBestSolution(CBC_Message,
> double&, double const*, int) (in
> /home/mkilinc/cbc/Cbc-2.8.0/lib/libCbc.so.3.8.0)
> ==24176==    by 0x4FA6120: CbcModel::doOneNode(CbcModel*, CbcNode*&,
> CbcNode*&) (in /home/mkilinc/cbc/Cbc-2.8.0/lib/libCbc.so.3.8.0)
> ==24176==    by 0x4FAAC6E: CbcModel::branchAndBound(int) (in
> /home/mkilinc/cbc/Cbc-2.8.0/lib/libCbc.so.3.8.0)
> ==24176==    by 0x4CA2B3A: CbcMain1(int, char const**, CbcModel&, int
> (*)(CbcModel*, int)) (in
> /home/mkilinc/cbc/Cbc-2.8.0/lib/libCbcSolver.so.3.8.0)
> ==24176==    by 0x40FAAA: main (in
> /home/mkilinc/cbc/Cbc-2.8.0/Cbc/examples/driver3)
>
> To reproduce, you can use the file below.
>
> http://www.speedyshare.com/k7Hmr/driver3.cpp
> _______________________________________________
> Cbc mailing list
> Cbc at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/cbc
>

-- 
==================================================
Haroldo Gambini Santos
D.Sc, Computer Science
Universidade Federal de Ouro Preto
http://www.decom.ufop.br/haroldo/

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/cbc/attachments/20140820/2f8a9ef3/attachment.html>


More information about the Cbc mailing list