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.