• No results found

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 toAXB X ≥ 0 XZ

For each constraint ij j i

j

a xb

, a row slack si, defined as ij j i i j

a x  s b

, indicates how much the value ij j

j

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.

7.4 Experimental results