The tree manager controls the overall execution of the algorithm. It
tracks the status of its worker modules, as well as that of the search
tree, and distributes the subproblems to be processed to the node processing
module(s). Functions performed by the tree management module are:
- Receive data for the root node and place it on the list 
        of candidates for processing.
- Receive data for subproblems to be held for later
        processing.
- Handle requests from linear programming modules to
        release a subproblem for processing.
- Receive branching object information, set up data structures
        for the children, and add them to the list of candidate subproblems.
- Keep track of the global upper bound and notify all node
        processing modules when it changes.
- Write current state information out to disk periodically
        to allow a restart in the event of a system crash.
- Keep track of run data and send it to the master
        program at termination.
 
Ted Ralphs 
2011-05-30