[Cbc] Meaning of number of nodes (getNodeCount())

John Forrest john.forrest at fastercoin.com
Wed Apr 6 10:56:01 EDT 2011


Kish,

Normally at each node the tree is examined to see which looks the best
node to do next.  However on small problems when it gets to a certain
depth in tree it may try to totally evaluate that node and all
descendants.  The up side is that this can be much faster as it is all
in Clp and a lot of overheads vanish (for small problems).  The down
side is that no cuts or heuristics can be done and the strategies are
simpler.

The entire sub-tree counts as one node.  However at end the node count
is adjusted.

John


On Tue, 2011-04-05 at 20:37 +0100, Kish Shen wrote:
> Hi,
> 
> I have been looking at terminating the MIP search for Cbc with setting 
> of CbcMaxNumNode, and I am not sure I understand how the number of node 
> is calculated:
> 
> I tried setting CbcMaxNumNode on solving a version of the bell3a 
> problem, using CbcSolver. On a normal run of the solve, I used 
> getNodeCount() returned 15532, which I assumed is the number of nodes 
> (linear solves) performed for the complete MIP.
> 
> I then reran the problem, setting CbcMaxNumNode to 2500. However, this 
> did not terminate the MIP early, and the problem appears to be solved to 
> completion, again with 15532 nodes.
> 
> I then noticed that in the message printing, I only saw one status 
> message of the form:
> 
> "After 1000 nodes, ....."
> 
> so it seems that the search finished before 2000 nodes was reached 
> (because I didn't see a message "After 2000 nodes...."), and yet 
> getNodeCount() is substantially larger than 2000.
> 
> When I set CbcMaxNumNode to 200, the MIP search did terminate early at 
> 200 nodes.
> 
> This seems to suggest that some extra number is added to the node count 
> when the MIP is finished -- does anyone know what the extra node count 
> is for?
> 
> Thanks in advance for any information/help!
> 
> Cheers,
> 
> Kish
> 




More information about the Cbc mailing list