Single Machine Problems Branch and Bound Algorithm
Single Machine Problems Branch and Bound Algorithm
Branch and Bound algorithm (B&B) is an exact method for finding an optimal solution to an NP-
hard problem. It is an enumerative technique that can be applied to a wide class of combinatorial
optimisation problems.
To describe the B&B algorithm, consider problem 1||ΣTj. This problem is NP-hard, i.e., it is
unlikely that there can be developed a polynomial-time algorithm for finding an optimal schedule.
The input data for the instance with n=4 jobs is given by the following table:
Jobs 1 2 3 4
pj 12 8 15 9
dj 16 26 25 27
A schedule corresponds to an assignment of the jobs to the four positions in the job sequence.
Initialisation: To generate a schedule we start with no job sequenced and indicate this by
(*,*,*,*). Here “*” in the job sequence indicates that no job has yet been assigned to
that position.
Step 1: To construct a schedule starting from the first position, we move from node (*,*,*,*) to
one of the four possible nodes (1,*,*,*); (2,*,*,*); (3,*,*,*); (4,*,*,*).
Step 2: To assign the second job in the sequence, we branch from the each of these four nodes
to three possibilities: branching from (1,*,*,*) gives (1,2,*,*), (1,3,*,*), and (1,4,*,*);
branching from (2,*,*,*) gives three possibilities (2,1,*,*), (2,3,*,*), and (2,4,*,*), etc.
Step 3: Assigning the job to be processed in the third position immediately fixes the last job.
This process is represented by a branching tree. Each node of a tree corresponds to a partial
schedule with several jobs assigned to the first positions and the remaining jobs unassigned. To
avoid full enumeration of all job permutations, we calculate in each step the Lower Bound (LB)
of the value of the objective function for each partial schedule.
Calculation of the Lower Bound is implemented in a different way for different problems.
1
Branch and Bound Algorithm
Consider problem 1||ΣTj and a partial schedule obtained at Step k after k jobs have been assigned
to the first k positions.
j1 j2 … jk ? ? … jv ?
time
0 C j1 C j2 C jk
- For the jobs assigned to the first k positions, their actual tardiness is determined as
{
T ju = max C ju − d ju , 0 . }
- For any unscheduled job jv, its tardiness T jv cannot be less than max{C jv − d , 0}, where d is
the maximum due date among the unscheduled jobs:
{
T jv ≥ max C jv − d , 0 . }
Consider an artificial problem where the unscheduled jobs have a common due date
d = max{d jk +1 , d jk +1 , ... , d jn }.
The minimum total tardiness with respect to common due date d can be found by sequencing
the unscheduled jobs in the SPT order1. Thus completion times C jv of the unscheduled jobs
and their tardiness T jv can be found by applying the SPT-rule.
( ) (
LB = T j1 + T j2 + ... + T jk + T jk +1 + T jk + + ... + T jn
2
)
scheduled unscheduled
jobs jobs
Sequencing the unscheduled jobs in the SPT order and replacing their original due dates d jv by
a large artificial due date d is done temporarily in order to determine the Lower Bound for the
current partial schedule.
1
We use here an auxiliary result: an optimal schedule for problem 1| dj =d | ΣTj with equal due dates can be
obtained by SPT-rule. A task to prove this rule will be included in Coursework 2.
2
Branch and Bound Algorithm
*,*,*,*
ΣTj ≥19 ΣTj ≥27 ΣTj ≥21 ΣTj ≥23 ΣTj ≥22 ΣTj ≥19
1 2 4 3
0 4 8 12 16 20 24 28 32 36 40 44
3
Branch and Bound Algorithm
The algorithm finds the first complete schedule and then tries to improve it. Often developing the
“promising” branches may lead to a huge number of offsprings that finally may not give an
improvement. Thus the size of the tree may grow exponentially without improving the best
solution obtained.