Chapter 7 A Layered Branch-and-Bound algorithm to portfolio selection problems
7.3 The Layered Branch-and-Bound algorithm
7.3.3 Branching rules and the node selection heuristic
Finding good branching strategies is the core of successful B&B algorithms and for solving the MIQP [144]. Based on the most popular and common branching rules in MIP, we propose the branching rules employed in our layered B&B for the MIQP problem.
a. The Most Infeasible Branching Rule
The most infeasible branching rule is still a very common branching rule in MIP. It chooses the variable with the largest fraction (closest to 0.5) to branch first. The reason behind this is that we should firstly select a variable for which the least tendency can be recognized. This is similar to choosing the most constrained variable first in solving constraint satisfaction problems.
b. The Pseudocost Branching Rule
Pseudocost branching is a more sophisticated rule proposed in [144]. It estimates the changes of the objective function value caused by fixing the fractional variable to its floor value or ceiling value, which is represented by the following:
, j j j j j j z z p p x x x x .
The initial value of pj,pjfor the integer variable xjis set as the coefficient ci in the
objective function. Different strategies can be used to update pj,pj ifxjis branched on
for more than once. More details of this pseudocost branch rule can be found in [144].
c. Branching Rules in the Layered B&B Algorithm
The most infeasible branching rule focuses on the integer infeasibility of variables. It tries to firstly branch on the variable with the most integral infeasible value. The pseudocost branching rule tries to predict which variable will improve the objective
function value the most. Our first branching rule L-BranchRule() for binary variableszi
combines the most infeasible rule and the pseudocost rule.
We choose the variable with the largest objective coefficient among those with the largest integer infeasibility. The integer infeasibility is measured by the difference between the fractional valuexiand its floor value xi or ceiling value xi . For example,
in the case that we have two fractional values x1 = 0.2 and x2 = 0.4 with their
corresponding objective coefficients 0.6 and 0.8, we will choosex2to branch first. This
branching rule is similar to the static branching rule in [114] that considers the objective coefficient. The difference is that in our study we also take the integer infeasibility into account.
For the general integer variables loti, the branching rule L-BranchRule() may not
perform so well. For example, assume we have two fractional valuesx1= 50.8 and x2=
1245.1. Because of the different scales, it is difficult to say which one has larger integer infeasibility. We therefore do not branch on these variables but apply a round heuristic to the variable in our L-RoundHeuristic().
In [145] the author reviews most of the existing round heuristics. Experimental results on general MIP problems show that among these round heuristics, the Simple Rounding heuristic is the fastest. The Simple Rounding heuristic looks at each fractional integer variable of a given primal feasible point, and round down or round up the fractional value to its floor or ceiling value. It operates on the fractional integer variables within their feasible domains. Another efficient round heuristic, the ZI round heuristic in [147], attempts to round each fractional integer variable to integer value while using row slacks to maintain the feasibility of the constraints. In this chapter, we propose a L- RoundHeuristic() which combines the Simple Round heuristic and the idea of ZI round. We apply the row slack to measure if a variable can be rounded down or up while maintaining the feasibility of the constraints.
To explain the L-RoundHeuristic() rule, we first define some terms for a MIP in the following form: minCX subject toAX ≤ B X ≥ 0 XZ
For each constraint ij j i
j
a x b
, a row slack si, defined as ij j i i ja x s b
, indicates how much the value ij jj
a x
can be changed while maintaining the feasibility of this constraint.The L-RoundHueristic() first calculates the range that a variablexjcan be changed while
maintaining the feasibility of the constraint. xj cannot be changed to over the bound
min { i , 0}
i ij ij s
a
a . Likewise, xj cannot be changed to below min { , 0} i i ij ij s a a . After we obtained these bounds, for each variable xj with a fractional value, we check if its
ceiling value xi or flooring value xi is within the range defined by the above bounds.
If such a variable is found, we then set it to its corresponding xi or xi to improve the
integer feasibility while maintaining the feasibility of constraints. If such variable cannot be found, we abort the heuristic.
After branching on the variables with fractional values, two subproblems are created and inserted to the list of open nodes. Next, we decide how to choose the node to process in our node selection heuristic L-NodeSelection(). Within our layered B&B, the search is based on the depth first search but with the consideration of integer infeasibility. In the list of open nodes, the node that is the deepest in the tree and with the maximal integer infeasibility is chosen.
The search of the overall layered B&B can be controlled by deciding how much search effort to put on each layer. As presented in line 5 of the pseudo-code of the layered B&B in Fig. 7.3, we can terminate the search on the top layer as soon as we find the first feasible solution. The search then dives into the second layer based on the feasible solution obtained from the top layer. Alternatively, we can terminate the search on the top layer until the optimal solution is found (under the condition that solving the top layer problem is not too time-consuming). The solution obtained when the top layer is solved to optimality may be closer to the optimal solution of the original problem comparing with the solution obtained when the top layer is solved to be feasible. We investigate the performance of the layered B&B under both settings of the stopping criteria in our experimental study.