[Cbc] failure in small IP

Matthew Galati Matthew.Galati at sas.com
Thu Sep 10 00:35:26 EDT 2009


Here is a fix. It was just missing an initialization in CbcRounding constructor.



[magala at orclus71 src]$ svn diff CbcHeuristic.cpp
Index: CbcHeuristic.cpp
===================================================================
--- CbcHeuristic.cpp    (revision 1223)
+++ CbcHeuristic.cpp    (working copy)
@@ -1538,6 +1538,9 @@
 {
   // Get a copy of original matrix (and by row for rounding);
   assert(model.solver());
+  down_=NULL;
+  up_=NULL;
+  equal_=NULL;
   if (model.solver()->getNumRows()) {
     matrix_ = *model.solver()->getMatrixByCol();
     matrixByRow_ = *model.solver()->getMatrixByRow();



From: Matthew Galati [mailto:magh at lehigh.edu]
Sent: Thursday, September 10, 2009 12:19 AM
To: Matthew Galati
Cc: cbc at list.coin-or.org
Subject: Re: [Cbc] failure in small IP

The run with cbc executable that does not fail was using a May 2009 version of code.

Using the current trunk it fails (same as when using CbcMain1):

[magala at orclus71 src]$ ./cbc ~/subProb.n0.c0.p1.b0.lp

Coin Cbc and Clp Solver version 1.2trunk, build Sep 10 2009

command line - ./cbc /users/magala/subProb.n0.c0.p1.b0.lp (default strategy 1)

Continuous objective value is 46.6667 - 0.00 seconds

Cgl0003I 20 fixed, 0 tightened bounds, 0 strengthened rows, 0 substitutions

Cgl0003I 5 fixed, 0 tightened bounds, 0 strengthened rows, 8 substitutions

Cgl0003I 0 fixed, 0 tightened bounds, 0 strengthened rows, 8 substitutions

Cgl0004I processed model has 0 rows, 0 columns (0 integer) and 0 elements

Segmentation fault




The following small IP fails using the CbcMain1 interface. It is a unique case, because all rows and cols are removed by presolver.



http://coral.ie.lehigh.edu/~magh/tmp/subProb.n0.c0.p1.b0.lp<http://coral.ie.lehigh.edu/%7Emagh/tmp/subProb.n0.c0.p1.b0.lp>



https://projects.coin-or.org/Cbc/ticket/79



          CbcModel cbc(*subprobSI);

          CbcMain0(cbc);

          const char * argv[] = {"cbc","-solve","-quit"};

          CbcMain1(3, argv, cbc);



Coin Cbc and Clp Solver version 1.2trunk, build Sep  9 2009

command line - cbc -solve -quit (default strategy 1)

Continuous objective value is 46.6667 - 0.00 seconds

Cgl0003I 20 fixed, 0 tightened bounds, 0 strengthened rows, 0 substitutions

Cgl0003I 5 fixed, 0 tightened bounds, 0 strengthened rows, 8 substitutions

Cgl0003I 0 fixed, 0 tightened bounds, 0 strengthened rows, 8 substitutions

Cgl0004I processed model has 0 rows, 0 columns (0 integer) and 0 elements



gdb gives:



Program received signal SIGSEGV, Segmentation fault.

0x0000003ffa871f6b in free () from /lib64/libc.so.6

(gdb) where

#0  0x0000003ffa871f6b in free () from /lib64/libc.so.6

#1  0x000000000057bc41 in ~CbcRounding (this=0x7fffec90c080)

    at ../../../Cbc/src/CbcHeuristic.cpp:1552

#2  0x00000000004ae837 in doHeuristics (model=0x1d1f3e00, type=1)

    at ../../../Cbc/src/CbcSolver.cpp:3479

#3  0x00000000004c7776 in CbcMain1 (argc=3, argv=0x7fffec9150c0,

    model=@0x7fffec914bb0, callBack=0x4a734c <dummyCallBack>)

    at ../../../Cbc/src/CbcSolver.cpp:6680

#4  0x00000000004db968 in CbcMain1 (argc=3, argv=0x7fffec9150c0,

    model=@0x7fffec914bb0) at ../../../Cbc/src/CbcSolver.cpp:3099







Note, if I run it from the command line using cbc executable, the error does not occur.



[magala at orclus71 MMKP]$ ~/COIN/coin-Cbc/build-g/bin/cbc subProb.n0.c0.p1.b0.lp

Coin Cbc and Clp Solver version 1.2trunk, build May 27 2009

command line - /users/magala/COIN/coin-Cbc/build-g/bin/cbc subProb.n0.c0.p1.b0.lp (default strategy 1)

Continuous objective value is 46.6667 - 0.00 seconds

Cgl0003I 20 fixed, 0 tightened bounds, 0 strengthened rows, 0 substitutions

Cgl0003I 5 fixed, 0 tightened bounds, 0 strengthened rows, 8 substitutions

Cgl0003I 0 fixed, 0 tightened bounds, 0 strengthened rows, 8 substitutions

Cgl0004I processed model has 0 rows, 0 columns (0 integer) and 0 elements

Cbc3007W No integer variables - nothing to do

Cuts at root node changed objective from 46.6667 to -1.79769e+308

Probing was tried 0 times and created 0 cuts of which 0 were active after adding rounds of cuts (0.000 seconds)

Gomory was tried 0 times and created 0 cuts of which 0 were active after adding rounds of cuts (0.000 seconds)

Knapsack was tried 0 times and created 0 cuts of which 0 were active after adding rounds of cuts (0.000 seconds)

Clique was tried 0 times and created 0 cuts of which 0 were active after adding rounds of cuts (0.000 seconds)

MixedIntegerRounding2 was tried 0 times and created 0 cuts of which 0 were active after adding rounds of cuts (0.000 seconds)

FlowCover was tried 0 times and created 0 cuts of which 0 were active after adding rounds of cuts (0.000 seconds)

TwoMirCuts was tried 0 times and created 0 cuts of which 0 were active after adding rounds of cuts (0.000 seconds)

Result - Finished objective 46.66667 after 0 nodes and 0 iterations - took 0.00 seconds (total time 0.01)

Total time 0.01

_______________________________________________
Cbc mailing list
Cbc at list.coin-or.org<mailto:Cbc at list.coin-or.org>
http://list.coin-or.org/mailman/listinfo/cbc

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://list.coin-or.org/pipermail/cbc/attachments/20090910/5b3caedc/attachment.html 


More information about the Cbc mailing list