[Cbc] hotstart mip and solution pool
Mustafa Kilinc
mrkilinc at gmail.com
Wed Aug 20 11:28:17 EDT 2014
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
More information about the Cbc
mailing list