[Bcp-tickets] [Branch-Cut-Price Framework] #10: Incorrect counting of processed nodes; crash

Branch-Cut-Price Framework coin-trac at coin-or.org
Tue Dec 26 09:09:50 EST 2006


#10: Incorrect counting of processed nodes; crash
------------------------+---------------------------------------------------
 Reporter:  fmargot     |       Owner:  somebody
     Type:  defect      |      Status:  new     
 Priority:  major       |   Milestone:          
Component:  component1  |     Version:          
 Keywords:              |  
------------------------+---------------------------------------------------
 This is for the tar ball BCP-1.0.0, but the code in the stable version
 looks similar.

 It seems that the counting of processed nodes when BCP hits the time limit
 is incorrect. I get:

    TM: Time has ran out.

    TM: Best lower bound in this phase: 17.000000

    WARNING! processed != p->search_tree.processed()

    WARNING! Please file a bug report.


 When printing these values, I get:

 processed: 2195  p->search_tree.processed(): 1329

 This happens using stein27.mps with an upper bound of 18.1, a time limit
 of 10 seconds and BCP in Branch-and-Bound (using best bound) mode.

 This comes from BCP_tm_user::display_final_information(). Moreover, when
 using

 BCP_RemoveExploredBranches               1

 it happens that in the loop of BCP_tm_user::display_final_information()
 starting with

 for (BCP_vec<BCP_tm_node*>::iterator node = p->search_tree.begin();
   node != p->search_tree.end();
   ++node) {

 (around line 291 in BCP_tm_user.cpp), *node is sometimes NULL, creating a
 crash. I fixed this by adding at the beginning of the loop:

 if(*node == NULL) {
   continue;
 }

 I am not sure if this is the best fix.

-- 
Ticket URL: <https://projects.coin-or.org/Bcp/ticket/10>
Branch-Cut-Price Framework <http://projects.coin-or.org/Bcp>
A parallel framework for branch-cut-price algorithms.



More information about the Bcp-tickets mailing list