next up previous contents Back to SYMPHONY Home Page
Next: The Tree Manager Module Up: The Linear Programming Module Previous: Managing the LP Relaxation


Branching

Branching takes place whenever either (1) both cut generation and column generation (if performed) have failed; (2) ``tailing off'' in the objective function value has been detected; or (3) the user chooses to force branching. Branching can take place on cuts or variables and can be fully automated or fully controlled by the user, as desired. Branching can result in as many children as the user desires, though two is typical. Once it is decided that branching will occur, the user must either select the list of candidates for strong branching (see below for the procedure) or allow SYMPHONY to do so automatically by using one of several built-in strategies, such as branching on the variable whose value is farthest from being integral. The number of candidates may depend on the level of the current node in the tree--it is usually best to expend more effort on branching near the top of the tree.

After the list of candidates is selected, each candidate is pre-solved, by performing a specified number of iterations of the dual simplex algorithm in each of the resulting subproblems. Based on the objective function values obtained in each of the potential children, the final branching object is selected, again either by the user or by built-in rule. This procedure of using exploratory LP information in this manner to select a branching candidate is commonly referred to as strong branching. When the branching object has been selected, the LP module sends a description of that object to the tree manager, which then creates the children and adds them to the list of candidate nodes. It is then up to the tree manager to specify which node the now-idle LP module should process next. This issue is further discussed below.


next up previous contents
Next: The Tree Manager Module Up: The Linear Programming Module Previous: Managing the LP Relaxation
Ted Ralphs
2003-10-16