Optimization Methods for the Single-machine Problem
3.5 A Branch-and-bound Approach
(Continued)
Subset Label Indicator
{4} 7 01000
{1, 4} 8 01001
{2, 4} 9 01010
{1, 2, 4} 10 01011
{1, 3, 4} 11 01101
{1, 2, 3, 4} 13 01111
{2, 4, 5} 14 11010
{1, 2, 4, 5} 15 11011
{1, 2, 3, 4, 5} 18 11111
This list contains 15 feasible subsets, including the empty set. Without dominance properties, the list would contain 25 or 32 subsets. In addition, the labels are not all consecutive: In particular, labels 5, 12, 16, and 17 are miss- ing. (We say that such a labeling is notcompact.) In a computer implementation, this means that space would have to be reserved for 19 values of G(J), even though only 15 of them would ever be used. Although the gaps in this example do not present much of a difficulty, larger problems may have several wide gaps.
Once the labeling scheme is carried out, the size of the maximum label predicts how much computer storage capacity will be needed in order to find the optimal solution by dynamic programming. The computational effort required to solve the problem is, however, driven mainly by the number of feasible subsets. The advan- tage of using the dominance conditions is therefore to reduce the computational requirement, but there is usually a substantial reduction in storage capacity as well.
Furthermore, the subproblems can themselves be partitioned in a similar fashion. As an example of a branching procedure, let P(0) denote a single- machine sequencing problem containingnjobs. The problemP(0) can be parti- tioned intonsubproblems,P(1),P(2),…,P(n), by assigning the last position in sequence. Thus,P(1) is the same problem, but with job 1 fixed in the last posi- tion;P(2) is similar, but with job 2 fixed in the last position; and so on. Clearly, these subproblems are smaller thanP(0) because only (n−1) positions remain to be assigned, and obviously eachP(i) is a partially solved version ofP(0). In addition, the set of subproblemsP(i) is a mutually exclusive and exhaustive par- tition ofP(0) in the sense that if eachP(i) is solved, the best of thesensolutions will represent an optimal solution toP(0). Therefore, theP(i) satisfy conditions (a), (b), and (c) above.
Next, each of the subproblems can be partitioned (see Figure 3.4). For instance,P(2) can be partitioned intoP(12),P(32),…, P(n2). InP(12), jobs 1 and 2 occupy the last two positions of the sequence in that order; and inP (32), jobs 3 and 2 occupy the last two positions. Therefore, the second-level par- titionP(i2) bears the same relation toP(2) as the first-level partitionP(i) bears to P(0). That is, the partitions at each level satisfy conditions (a), (b), and (c). At levelk, then, each subproblem contains k-fixed positions and can be further partitioned into (n−k) subproblems, which form part of level (k + 1). If this branching procedure were to be carried out completely, there would be n!
P(0)
P(2) P(n)
P(n2) P(32)
P(s) P(12)
P(1) . . .
. . .
. . .
. . . . . .
. . .
Figure 3.4 A branching scheme for single-machine problems.
3.5 A Branch-and-bound Approach 53
subproblems at level n, each corresponding to a distinct feasible solution to the original problem. In other words, exhaustive pursuit of the branching tree would be equivalent to complete enumeration of all sequences. The function of the bounding process is to provide a means for curtailing this enumeration.
The bounding procedure calculates a lower bound on the solution to each subproblem generated in the branching process. Suppose that at some inter- mediate stage, a complete solution has been obtained that has an associated performance measure Z. Suppose also that a subproblem encountered in the branching process has an associated lower bound b > Z. Then the sub- problem need not be considered any further in the search for an optimum.
That is, no matter how the subproblem is resolved, the resulting solution can never have a value better than Z. When such a subproblem is found, its branch is said to befathomed. By not branching any further from fathomed branches, the enumeration process is curtailed because feasible solutions of a fathomed subproblem are evaluated implicitly rather than being constructed explicitly.
A complete solution that allows branches to be fathomed is called atrial solu- tion. It may be obtained at the very outset by applying a heuristic procedure (i.e.
a suboptimal method capable of obtaining good solutions with limited compu- tational effort); or it can be obtained in the course of the tree search, perhaps by pursuing the tree directly to the bottom as rapidly as possible.
We can now illustrate how these concepts are applied in theT-problem, once we introduce some convenient notation. Letsdenote a partial sequence of jobs from among thenjobs originally in the problem. Also, letjsdenote the partial sequence in which s is immediately preceded by job j. We can treats as an ordered set of jobs, so that
s = the complement ofs p s =
j s
pj
LetP(s) represent a subproblem at levelkin the branching tree, wherek≤n.
This subproblem will be the original problemP(0) with the lastkpositions in sequence assigned, where s specifies the positions. Associated with P(s) is a value,vs, which is the contribution of assigned jobs to total tardiness. That is,
vs=
j s
Tj
TheTjvalues in this sum can be calculated because the completion time of each job in the partial sequencesis known even though the complete sequence has not yet been determined.
Normally, the branching process partitions P(s) into (n−k) subproblems.
Each subproblem,P(js), is constructed by selecting some jobjto be last ins,
3 Optimization Methods for the Single-machine Problem 54
wherejcan be chosen (n−k) distinct ways. Because the completion time of jobj in the partial sequencejsisp(s), the value associated withP(js) is
vjs= max 0,p s −dj +vs
Subproblem P(s) may be treated as a single-machine sequencing problem containing (n −k) jobs. This means, in particular, that Theorem 3.2 may be invoked: If there exists a jobiins such thatdi≥p(s), then it is sufficient in sol- vingP(s) to place jobilast. In this situation, we need not partitionP(s) into (n− k) subproblems. Instead, we can partitionP(s) into just one subproblem,P(is).
Thus, it may be possible to exploit dominance properties within the branching tree so that some branches are avoided. Curtailing the branching process with dominance properties is sometimes calledelimination.
In the bounding process, we seek a means of calculating a lower boundbson the total tardiness cost associated with any completion of the partial sequences.
One way of calculating a bound is obvious:
bs=vs 3 4
A slightly stronger bound can be obtained by pursuing the fact that some job ins must be completed atp(s). We may use
bs=vs+ min
j s max 0,p s −dj 3 5
More complicated procedures may be employed for calculating even stronger lower bounds. In fact, the most successful computational advances for solving theT-problem involve a careful analysis of the computational costs and benefits of using complex lower bounds.
Oncebsis calculated, it may be possible to determine whether a completion of the subproblemP(s) might lead to an optimum. Suppose a trial solution is available with a total cost ofZ. When we compareZandbs, ifbs< Z, then a completion of s could possibly be optimal. Therefore, the subproblems P(js) must be constructed and examined. On the other hand, ifbs≥Z, then no com- pletion of the partial sequencescould ever achieve a total tardiness less thanZ, so its completions need not be enumerated in the search for an optimum. In this case, the branch corresponding tosis fathomed, and the search is somewhat shortened.
The branch-and-bound algorithm maintains a list of all subproblems that have not been eliminated by dominance properties and whose own subpro- blems have not yet been generated. These are calledactive subproblems. At any stage of the algorithm, it is sufficient to solve all active subproblems to determine an optimal solution toP(0). In the following version of the algorithm, the active list is ranked by lower bound, smallest first. At each stage, the first subproblem on the active list is replaced by its own subproblems. This strategy
3.5 A Branch-and-bound Approach 55
is equivalent to continuing the branching process from the subproblem with the lowest bound, wherever that may be in the branching tree. The algorithm ter- minates when a trial solution appears at the head of the active list, because then no other subproblem could lead to a better solution. Also, in this form of the algorithm, no trial solution is obtained until the branching process itself reaches the bottom of the branching tree at some stage.
Algorithm 3.1 Branch and Bound
Step 1. (Initialization) PlaceP(0) on the active list. The value associated with this node isv0= 0 andpϕ = nj= 1pj
Step 2. Remove the first subproblem,P(s), from the active list. Letkdenote the number of jobs in the partial sequence s. If k=n, stop: The complete sequencesis optimal. Otherwise, test Theorem 3.2 forP(s). If the property holds, go to Step 3; otherwise, go to Step 4.
Step 3. Let jobjbe the job with the latest due date ins. Create the subproblem P(js) with
p js =p s −pj,vjs=vs, and bjs=vs
PlaceP(js) on the active list, ranked by its lower bound. Return to Step 2.
Step 4. Create (n−k) subproblemsP(js), one for eachjin sets. ForP(js), let p js =p s −pj,vjs=vs+p s −dj, andbjs=vjs
Now place eachP(js) on the active list, ranked by its lower bound. Return to Step 2.
Algorithm 3.1 invokes three important options, all of which are open to some scrutiny. First, the algorithm employs the lower bounds given in Eq. (3.4). An obvious alternative is to use Eq. (3.5).
A second option involves the use of a trial solution. At any stage, the best trial solution yet found can be used in reducing the list of active subproblems. First, no subproblem need ever be placed below the trial solution on the active list, for such a subproblem can never lead to an optimum. Second, whenever a complete sequence is placed on the active list, all subproblems with greater bounds can be discarded. However, no trial solution can be encountered until the branching process has reached leveln. An obvious alternative is to obtain a trial solution in Step 1. For instance, if the branch-and-bound approach is used in theT-prob- lem, then an initial trial solution can be obtained using the MDD decision rule, as described in Chapter 2.
3 Optimization Methods for the Single-machine Problem 56
A third option involves the branching tactic itself–that is, the selection of the subproblem with the smallest bound as the candidate for further branching. This tactic is known asjumptracking, because the branching process tends to jump from one part of the branching tree to another at successive stages in the algo- rithm. An alternative is a tactic known asbacktracking, in which the branching process first proceeds directly to levelnalong some path to obtain a trial solution.
Then the algorithm retraces that path upward until it reaches a level on which unsolved subproblems remain. It selects one of these and again proceeds toward levelnalong a single path. The process may actually reach another trial solution, or it may fathom the branch it pursues by utilizing the value of the on-hand trial solution. In either case, the algorithm again backtracks up to the first level at which an unfathomed branch remains and then proceeds toward leveln.
The characteristics of jumptracking and backtracking are considerably differ- ent. Backtracking maintains relatively few subproblems on the active list at any one time, while jumptracking tends to construct a fairly large active list. This is a disadvantage for jumptracking, mainly because each time it places a subproblem on the ranked list, it must search the list to determine exactly where on the list to place the subproblem. This searching may become quite time consuming in problems of moderate size. (This disadvantage may be remedied somewhat by clearing the list below any trial solution that is placed on it.) In addition, the list size requirement may restrict computerized versions of the algorithm when storage capacity does not readily accommodate a large list. On the other hand, an advantage in jumptracking is that the trial solutions it encounters tend to be very close to optimal, while the early trial solutions obtained by backtrack- ing may be relatively poor. Thus, jumptracking usually does less branching in total, and this feature may compensate for its larger time per branch. Jump- tracking branches from every subproblem that has a bound less than the value of an optimal sequence, and it may also generate some nonoptimal trial solu- tions. Backtracking may, in addition, branch from several subproblems that have bounds greater than the optimal value and may also generate very many nonoptimal trial solutions.
In addition to the trade-offs associated with the choice of branching tactics, trade-offs arise with other choices. For example, the lower bound in Eq. (3.5) is stronger than the bound in Eq. (3.4) and would be more effective in curtailing the branching process, yet more calculations are involved in computing the stronger bounds. Similarly, we can eliminate branches that violate the condi- tions of Theorem 3.3, again at the expense of additional computations. Also, starting the algorithm initially with a good trial solution can curtail the branch- ing process considerably, yet more effort must be invested to obtain a better ini- tial trial solution. In many respects, Algorithm 3.1 is a general prototype for a whole array of branch-and-bound methods, and the specific choice of tactics might be described as something of an art.
3.5 A Branch-and-bound Approach 57
∎Example 3.4 Consider the following five-job problem, with the criterion of minimizing total tardiness.
Jobj 1 2 3 4 5
pj 4 3 7 2 2
dj 5 6 8 8 17
The branching tree for this example problem is displayed in Figure 3.5. The lower boundvsfor each subproblem is entered just below the corresponding node in the figure. The order of branching is indicated by the number that appears just above the corresponding node. Initially, the tree consists ofP(0), with v0= 0 andp(ϕ) = 18. At Step 2, the initial problem is removed from the active list and subsequently replaced byP(1),P(2),P(3),P(4), andP(5). As shown in the figure,v1= 13,v2= 12,v3= 10,v4= 10, andv5= 1. The jumptracking strat- egy calls for branching next fromP(5), since it is first on the active list. At the next stage,P(35) andP(45) both have the lowest bound on the active list, and the tie between them is broken arbitrarily in favor of the latter, so that the
P(2) P(3) P(4)
P(54) P(53)
P(153)P(253)P(453) P(154) P(254) P(354) P(135) P(235)P(435)P(145)
P(2435) P(1435)
P(12435)
P(245)P(345) P(5)
P(15) P(25) P(35) P(45) P(0)
P(1)
13 12
7
10 10
1 1
3 2
9 9 12 11
6
10 10
11 19 18 16 13 12 10 18
9
12 11
11 10
17 15
13 14
8
4 5
Figure 3.5 The branching tree for the example problem.
3 Optimization Methods for the Single-machine Problem 58
subproblems ofP(45) are created. At this point,P(35) is alone at the head of the active list and so its subproblems are generated next. Thereafter, the active list contains three subproblems with lower bounds of 10:P(3),P(4), andP(435). In this type of situation, it is a good idea to break ties by branching from the prob- lem that is closest to being completely solved, in this case, P(435). In other words, priority is given to the subproblem with the largest k. Eventually, at the 10th branching iteration, the tree reaches the trial solution P(12435) for whichv12435= 11. At this point, the trial solution is first on the active list, since kis being used as a tiebreaker; therefore, the algorithm terminates in Step 2. In effect, all branches have been fathomed at this stage, for the active list contains the 17 subproblems shown in Table 3.4. The optimal sequence 1-2-4-3-5 has a total tardiness equal to 11.