two-machine flowshop scheduling with job class setups to minimize total flowtime

20
Computers & Operations Research 32 (2005) 2751 – 2770 www.elsevier.com/locate/dsw Two-machine owshop scheduling with job class setups to minimize total owtime Xiuli Wang a , T.C.E. Cheng b; a College of Electrical Engineering, Zhejiang University, PR China b Department of Logistics, The Hong Kong Polytechnic University, Hung Hom, Kowloon, Hong Kong Available online 24 June 2004 Abstract This paper studies the two-machine owshop scheduling problem with job class setups to minimize the total owtime. The jobs are classied into classes, and a setup is required on a machine if it switches processing of jobs from one class to another class, but no setup is required if the jobs are from the same class. For some special cases, we derive a number of properties of the optimal solution, based on which we design heuristics and branch-and-bound algorithms to solve these problems. Computational results show that these algorithms are eective in yielding near-optimal or optimal solutions to the tested problems. ? 2004 Elsevier Ltd. All rights reserved. Keywords: Flowshop scheduling; Job class setups; Heuristics; Branch-and-bound algorithms; Total owtime 1. Introduction In many manufacturing settings, classes of jobs are processed on one or more machines. On each machine, a setup is required at the beginning of each batch, where a batch is a maximal set of consecutively processed jobs from the same class. A machine can only process one job at a time, and cannot perform any processing while undergoing a setup. For the objective of minimizing the total owtime, a schedule denes how batches are formed and species the processing order of the batches and that of the jobs within the batches. The single-machine job class scheduling problem to minimize the (weighted) total owtime has been widely studied by many researchers. For the case of two job classes, Gupta [1] and Potts [2] proposed a polynomial time algorithm and a dynamic programming algorithm, respectively. However, Gupta’s algorithm is not optimal. For the case of multiple job classes, Gupta [3], and Ahn and Hyun Corresponding author. Tel.: +852-27665216; fax: +852-23645245. E-mail address: [email protected] (T.C.E. Cheng). 0305-0548/$ - see front matter ? 2004 Elsevier Ltd. All rights reserved. doi:10.1016/j.cor.2004.04.002

Upload: xiuli-wang

Post on 26-Jun-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

Computers & Operations Research 32 (2005) 2751–2770www.elsevier.com/locate/dsw

Two-machine #owshop scheduling with job class setups tominimize total #owtimeXiuli Wanga, T.C.E. Chengb;∗

aCollege of Electrical Engineering, Zhejiang University, PR ChinabDepartment of Logistics, The Hong Kong Polytechnic University, Hung Hom, Kowloon, Hong Kong

Available online 24 June 2004

Abstract

This paper studies the two-machine #owshop scheduling problem with job class setups to minimize the total#owtime. The jobs are classi/ed into classes, and a setup is required on a machine if it switches processingof jobs from one class to another class, but no setup is required if the jobs are from the same class. For somespecial cases, we derive a number of properties of the optimal solution, based on which we design heuristicsand branch-and-bound algorithms to solve these problems. Computational results show that these algorithmsare e3ective in yielding near-optimal or optimal solutions to the tested problems.? 2004 Elsevier Ltd. All rights reserved.

Keywords: Flowshop scheduling; Job class setups; Heuristics; Branch-and-bound algorithms; Total #owtime

1. Introduction

In many manufacturing settings, classes of jobs are processed on one or more machines. On eachmachine, a setup is required at the beginning of each batch, where a batch is a maximal set ofconsecutively processed jobs from the same class. A machine can only process one job at a time,and cannot perform any processing while undergoing a setup. For the objective of minimizing thetotal #owtime, a schedule de/nes how batches are formed and speci/es the processing order of thebatches and that of the jobs within the batches.

The single-machine job class scheduling problem to minimize the (weighted) total #owtime hasbeen widely studied by many researchers. For the case of two job classes, Gupta [1] and Potts [2]proposed a polynomial time algorithm and a dynamic programming algorithm, respectively. However,Gupta’s algorithm is not optimal. For the case of multiple job classes, Gupta [3], and Ahn and Hyun

∗ Corresponding author. Tel.: +852-27665216; fax: +852-23645245.E-mail address: [email protected] (T.C.E. Cheng).

0305-0548/$ - see front matter ? 2004 Elsevier Ltd. All rights reserved.doi:10.1016/j.cor.2004.04.002

2752 X. Wang, T.C.E. Cheng / Computers & Operations Research 32 (2005) 2751–2770

[4] proposed di3erent heuristics. Mason and Anderson [5] developed a branch-and-bound algorithmfor the problem to minimize the mean and weighted #owtime. Crauwels et al. [6], too, proposeda branch-and-bound algorithm, which is superior to that of Mason and Anderson [5] by using thederived lower bounds from a Lagrangian relaxation of the machine capacity constraints. Crauwelset al. [7] also developed several local search heuristics, whose performance is superior to the methodin Ahn and Hyun [4]. Reviews on this topic have been presented by Potts and Van Wassenhove[8], Webster and Baker [9], and Potts and Kovalyov [10].In contrast to the existence of many signi/cant research results on the single-machine job class

scheduling problem to minimize the (weighted) total #owtime, there have been few attempts tostudy the problem involving two or more machines (see, for example, Cheng et al. [11]). Thetwo-machine #owshop job class scheduling problem is evidently NP-hard because if all the setuptimes of the job classes are zero, it becomes the classical two-machine #owshop scheduling prob-lem, which is NP-hard [12]. For the two-machine #owshop scheduling problem to minimize themean #owtime, Woo and Yim [13] proposed an eMcient heuristic algorithm. Ho and Gupta [14]proposed polynomial time algorithms under the dominant machine situation. When each job belongsto a di3erent job class, the problem becomes the two-machine #owshop scheduling problem withsequence-independent setup times, for which Allahverdi [15] developed a branch-and-bound algo-rithm and a heuristic. For the general case, it is highly unlikely that a polynomial algorithm can befound to solve the problem. In this paper we study several special cases of the two-machine #owshopjob class scheduling problem and develop eMcient algorithms for them. We solve two special casesof the problem and develop several heuristics and branch-and-bound algorithms for the other cases.The eMciency and e3ectiveness of the heuristics and branch-and-bound algorithms are numericallyevaluated.

2. Problem description and notation

For the classical two-machine #owshop scheduling problem with the objective of minimizing thetotal #owtime, there exists an optimal permutation schedule. To the best of our knowledge, theissue of whether this property can be extended to the corresponding problem with class setupshas remained unresolved. However, we assume in this paper that all jobs are available at timezero and no jobs are allowed to pass. In other words, the job sequence is the same on bothmachines. We are given n jobs that are divided into c classes. Each class i, for i = 1; 2; : : : ; c,contains ci jobs. For the jth job of class i, which we denote by job (i; j), the following notationis de/ned:

sik : setup time of class i on machine k, k = 1; 2;aij: processing time of job (i; j) on machine 1, i = 1; 2; : : : ; c, j = 1; 2; : : : ; ci;bij: processing time of job (i; j) on machine 2, i = 1; 2; : : : ; c, j = 1; 2; : : : ; ci;Cij: completion time of job (i; j) on machine 2, i = 1; 2; : : : ; c, j = 1; 2; : : : ; ci.

A schedule S is an ordered set of the n jobs. It is convenient to regard a schedule as a sequenceof batches, where a batch is a maximal consecutive subsequence of the jobs from the same class inS. Let r denote the number of batches and ni the number of jobs in the ith batch. And let job [i; j]

X. Wang, T.C.E. Cheng / Computers & Operations Research 32 (2005) 2751–2770 2753

denote the jth job processed in the ith batch in schedule S. We de/ne

s[i]; k : setup time of the ith batch on machine k, k = 1; 2;a[i; j]: processing time of job [i; j] on machine 1, i = 1; 2; : : : ; r, j = 1; 2; : : : ; ni;b[i; j]: processing time of job [i; j] on machine 2, i = 1; 2; : : : ; r, j = 1; 2; : : : ; ni;C[i; j]: completion time of job [i; j] on machine 2, i = 1; 2; : : : ; r, j = 1; 2; : : : ; ni.

We now de/ne the total #owtime of the jobs under S as

F =r∑

i=1

ni∑j=1

C[i; j]:

Let Aij denote the sum of the setup times of the batches in positions 1; 2; : : : ; i, and the processingtimes of the jobs in positions from the /rst job to job [i; j] on machine 1. Then we have

Aij =i−1∑k=1

(s[k];1 +

nk∑l=1

a[k; l]

)+

(s[i];1 +

j∑l=1

a[i; l]

);

C[i; j] =

{max{Ai−1; ni−1 + s[i];1 + a[i; j]; C[i−1; ni−1] + s[i];2} + b[i; j] if j = 1

max{Ai;j−1 + a[i; j]; C[i; j−1]} + b[i; j] if j¿ 1:

In order to unify the notation, we set A0j, A10, C[0; j] and C[1;0] to be zero.Adopting the notation in [16], we denote the two-machine #owshop job class scheduling problem

to minimize the total #owtime under study as F2=class=∑

C[i; j].Suppose that all the processing times of the jobs on machines 1 and 2 are equal to a constant t,

and each class setup time on machine 1 is no less than that on machine 2. Then this case can bedenoted as F2=si1¿ si2, aij = bij = t, class=

∑C[i; j].

Suppose that the processing times of all jobs on machines 1 and 2 are equal to a constant t, andeach job class setup time on machine 2 is no less than the sum of t and the setup time on machine1. Then this case can be denoted as F2=si1 + t6 si2, aij = bij = t, class=

∑C[i; j].

For the classical #owshop scheduling problem where no setups or job classes are involved, Hoand Gupta [14] have studied two special structure #owshops with dominant machines. The casesconsidered in this paper are described as follows.

If si1¿ si2 and min{aij}¿max{bij}, for i=1; 2; : : : ; c, j=1; 2; : : : ; ci, we claim that machine 1 dom-inates machine 2, denoted by M1 � M2. This case can be denoted as F2=M1 � M2, class=

∑C[i; j].

If si2¿ si1+ai, where ai=min{aij | any job (i; j) whose bij=min{bi1; bi2; : : : ; bici}}, and min{bij}¿max{aij}, for i = 1; 2; : : : ; c, j = 1; 2; : : : ; ci, we claim that machine 2 dominates machine 1, denotedby M2 � M1. This case can be denoted as F2=M2 � M1, class=

∑C[i; j].

Suppose that the processing time of any job on machine 1 is equal to that on machine 2, and thesetup time of each class on machine 1 is also equal to that on machine 2. Then this case can bedenoted as F2=si1 = si2, aij = bij = tij, class=

∑C[i; j].

For the /rst two cases, we will see that the restrictions on the general problem enable these casesto be solved in polynomial time. It is evident that the last three cases are NP-hard even though theyare special cases of the general problem. Furthermore, the cases with dominant machines are naturalextensions of the classical problem to the processing environment with class setups, and the last casehas a di3erent structure characteristic from the single machine class scheduling problem. Therefore,

2754 X. Wang, T.C.E. Cheng / Computers & Operations Research 32 (2005) 2751–2770

the derivation of theoretical results and the development of e3ective heuristics and branch-and-boundalgorithms for these three special cases are challenging and valuable. Moreover, the /ndings of thisresearch may shed light on the general problem and provide hints for its solution.

3. Properties of optimal solutions

In this section we study several special cases of the general problem F2=class=∑

C[i; j]. Someproperties of the optimal solutions are derived in the following.

3.1. F2=si1¿ si2, aij = bij = t, class=∑

C[i; j]

Theorem 1. For the F2=si1¿ si2, aij = bij = t, class=∑

C[i; j] problem, there exists an optimalschedule in which each batch consists of all the jobs of a class, and the batches are sequenced inascending order of s[i];1=ni.

Proof. For this case, the completion time of job [i; j] is

C[i; j] =i∑

k=1

s[k];1 +

(i−1∑k=1

nk + j + 1

)t:

The total #owtime is

F =r∑

i=1

ni∑j=1

C[i; j]

=r∑

i=1

ni∑j=1

[i∑

k=1

s[k];1 +

(i−1∑k=1

nk + j + 1

)t

]

=r∑

i=1

(ni

i∑k=1

s[k];1

)+

r∑i=1

n1+···+ni−1+ni∑j=n1+···+ni−1+1

jt +r∑

i=1

ni∑j=1

t

= [n1s[1];1 + n2(s[1];1 + s[2];1) + · · · + nr(s[1];1 + · · · + s[r];1)] +n∑

j=1

jt + nt

=r∑

i=1

(s[i];1

r∑k=i

nk

)+

n∑

j=1

j + n

t:

(i) For all schedules that consist of r batches, if a schedule satis/es s[1];1=n16 s[2];1=n2 6 · · ·6s[r];1=nr , then it has the smallest value of the total #owtime.

X. Wang, T.C.E. Cheng / Computers & Operations Research 32 (2005) 2751–2770 2755

Let �1 denote a schedule where the batches are sequenced by s[1];1=n16 s[2];1=n26 · · ·6 s[r];1=nr ,and �2 denote a schedule that is obtained from �1 by interchanging the batches only in positions iand i + k (k¿ 1). Denoting the total #owtime of �1 and �2 as F(�1) and F(�2), respectively, wehave

F(�1) = nt + tn∑

j=1

j +

s[1];1

r∑j=1

nj + · · · + s[r];1r∑

j=r

nj

;

F(�2) = nt + tn∑

j=1

j +

s[1];1 r∑

j=1

nj + · · · + s[i−1];1

r∑j=i−1

nj + s[i+k];1

r∑j=i

nj + s[i+1];1

× r∑

j=i+1

nj + ni − ni+k

+ · · · + s[i+k−1];1

r∑

j=i+k−1

nj + ni − ni+k

+ s[i];1

r∑

j=i+k

nj + ni − ni+k

+

s[i+k+1];1

r∑j=i+k+1

nj + · · · + s[r];1r∑

j=r

nj

:

Then,

F(�2) − F(�1) = (s[i+k];1 − s[i];1)(ni + · · · + ni+k + · · · + nr)

+(ni − ni+k)(s[i+1];1 + · · · + s[i+k−1];1)

+s[i];1(ni + ni+k+1 + · · · + nr) − s[i+k];1(ni+k + ni+k+1 + · · · + nr)

= [ni(s[i+1];1 + · · · + s[i+k−1];1) − s[i];1(ni+1 + · · · + ni+k−1)]

+[s[i+k];1(ni+1 + · · · + ni+k−1) − ni+k(s[i+1];1 + · · · + s[i+k−1];1)]

+(s[i+k];1ni − s[i];1ni+k);

because �1 satis/es the following conditions:

s[1];1=n16 s[2];1=n26 · · ·6 s[r];1=nr;

we have

ni(s[i+1];1 + · · · + s[i+k−1];1)¿ s[i];1(ni+1 + · · · + ni+k−1);

s[i+k];1(ni+1 + · · · + ni+k−1)¿ ni+k(s[i+1];1 + · · · + s[i+k−1];1);

s[i+k];1ni¿ s[i];1ni+k :

Therefore, F(�2) − F(�1)¿ 0.(ii) Given a schedule (denoted as �1) in which the batches are sequenced in ascending order of

s[i];1=ni, if the kth and lth batches (k + 1¡l) belong to the same job class, then we merge thetwo batches and again sequence all batches in ascending order of s[i];1=ni. The total #owtime of theresulting schedule (denoted as �2) is less than that of the original schedule �1.

2756 X. Wang, T.C.E. Cheng / Computers & Operations Research 32 (2005) 2751–2770

We assume that the merged batch is in the ith position of schedule �2. Obviously, i6 k becauses[k];1=(nk + nl)¡s[k];1=nk . We have

F(�1) = nt + tn∑

j=1

j +

s[1];1

r∑j=1

nj + · · · + s[r];1r∑

j=r

nj

and

F(�2) = nt + tn∑

j=1

j + s[1];1r∑

j=1

nj + · · · + s[i−1];1

r∑j=i−1

nj + s[k];1r∑

j=i

nj + s[i];1

(r∑

j=i

nj − nk − nl

)

+ · · · + s[k−1];1

r∑

j=k−1

nj − nk − nl

+ s[k+1];1

r∑

j=k+1

nj − nl

+ · · · + s[l−1];1

r∑

j=l−1

nj − nl

+ s[l+1];1

r∑j=l+1

nj + · · · + s[r];1r∑

j=r

nj:

Then,

F(�1) − F(�2) = s[l];1(nl + · · · + nr) + (s[i];1 + · · · + s[k−1];1)(nk + nl)

+(s[k+1];1 + · · · + s[l−1];1)nl − s[k];1(ni + ni+1 + · · · + nk−1):

Note that schedule �2 satis/es the following condition:

s[k];1=(nk + nl)6 s[i];1=ni6 s[i+1];1=ni+16 · · ·6 s[k−1];1=nk−1:

So, we have

s[k];1(ni + ni+1 + · · · + nk−1)6 (s[i];1 + s[i+1];1 + · · · + s[k−1];1)(nk + nl):

Therefore, F(�1) − F(�2)¿ 0.From (i) and (ii), we reach the conclusion of the theorem.

According to Theorem 1, an algorithm that treats a job class as a single batch and sequences thebatches in ascending order of s[i];1=ni produces an optimal solution.

3.2. F2=si1 + t6 si2, aij = bij = t, class=∑

C[i; j]

Theorem 2. For the F2=si1+t6 si2, aij=bij=t, class=∑

C[i; j] problem, an optimal schedule can beobtained if a batch consists of all the jobs of a class, and the batches are sequenced in ascendingorder of s[i];2=ni.

Proof. Similar to the proof of Theorem 1.

According to Theorem 2, an algorithm that treats a job class as a single batch and sequences allbatches in ascending order of s[i];2=ni produces an optimal solution.

X. Wang, T.C.E. Cheng / Computers & Operations Research 32 (2005) 2751–2770 2757

3.3. F2=M1 � M2, class=∑

C[i; j]

Theorem 3. For the F2=M1 � M2, class=∑

C[i; j] problem, there exists an optimal schedule wherethe jobs in a batch i are sequenced in ascending order of a[i; j].

Proof. Let �1 denote the schedule that comprises r batches. Let �2 denote the schedule obtainedby interchanging only the jobs [i; j] and [i; j+ k] (k¿ 1) in schedule �1. Obviously, the completiontimes of the jobs up to job [i; j − 1] or after job [i; j + k] in the same positions of �1 and �2 areequal. In schedule �1, we have

C(�1)[i; j] =i∑

p=1

s[p];1 +i−1∑p=1

np∑q=1

a[p;q] +j∑

q=1

a[i; q] + b[i; j];

C(�1)[i; j+h] =i∑

p=1

s[p];1 +i−1∑p=1

np∑q=1

a[p;q] +j+h∑q=1

a[i; q] + b[i; j+h]; for h= 1; 2; : : : ; k:

In schedule �2, we have

C(�2)[i; j] =i∑

p=1

s[p];1 +i−1∑p=1

np∑q=1

a[p;q] +j−1∑q=1

a[i; q] + a[i; j+k] + b[i; j+k];

C(�2)[i; j+h] =i∑

p=1

s[p];1 +i−1∑p=1

np∑q=1

a[p;q] +j−1∑q=1

a[i; q] + a[i; j+k] +j+h∑

q=j+1

a[i; q] + b[i; j+h];

for h= 1; 2; : : : ; k − 1;

C(�2)[i; j+k] =i∑

p=1

s[p];1 +i−1∑p=1

np∑q=1

a[p;q] +j+k∑q=1

a[i; q] + b[i; j]:

Thenj+k∑q=j

C(�2)[i; q] =i+k∑q=j

C(�1)[i; q] + k(a[i; j+k] − a[i; j]):

If a[i; j]6 a[i; j+k], then the total #owtimes F(�1) and F(�2) of schedules �1 and �2, respectively,have the following relation

F(�1) =r∑

p=1

np∑q=1

C(�1)[p;q]6F(�2) =r∑

p=1

np∑q=1

C(�2)[p;q]:

Hence, schedule �1 is no worse than schedule �2.

Theorem 4. For the F2=M1 � M2, class=∑

C[i; j] problem, there exists an optimal schedule wherethe batches are sequenced in ascending order of (s[i];1 +

∑nij=1 a[i; j])=ni.

2758 X. Wang, T.C.E. Cheng / Computers & Operations Research 32 (2005) 2751–2770

Proof. In the ith batch, we have

C[i; j] =i∑

l=1

s[l];1 +i−1∑k=1

nk∑l=1

a[k; l] +j∑

l=1

a[i; l] + b[i; j]; for j = 1; 2; : : : ; ni;

ni∑j=1

C[i; j] = nii∑

l=1

s[l];1 + nii−1∑k=1

nk∑l=1

a[k; l] +ni∑l=1

(ni − l+ 1)a[i; l] +ni∑l=1

b[i; l]:

In the (i + 1)th batch, we haveni+1∑j=1

C[i+1; j] = ni+1

i+1∑l=1

s[l];1 + ni+1

i∑k=1

nk∑l=1

a[k; l] +ni+1∑l=1

(ni+1 − l+ 1)a[i+1; l] +ni+1∑l=1

b[i+1; l]:

Thenni∑j=1

C[i; j] +ni+1∑j=1

C[i+1; j] = (ni + ni+1)i−1∑l=1

s[l];1 + (ni + ni+1)i−1∑k=1

nk∑l=1

a[k; l] + (ni + ni+1)s[i];1

+ni+1s[i+1];1 + ni+1

ni∑l=1

a[i; l] +ni∑l=1

(ni − l+ 1)a[i; l]

+ni+1∑l=1

(ni+1 − l+ 1)a[i+1; l] +ni∑l=1

b[i; l] +ni+1∑l=1

b[i+1; l]:

Interchanging the ith and (i + 1)th batches, the sum of the job completion times within the twobatches is

ni+1∑j=1

C ′[i; j] +

ni∑j=1

C ′[i+1; j] = (ni + ni+1)

i−1∑l=1

s[l];1 + (ni + ni+1)i−1∑k=1

nk∑l=1

a[k; l] + (ni + ni+1)s[i+1];1

+nis[i];1 + nini+1∑j=1

a[i+1; j] +ni+1∑l=1

(ni+1 − l+ 1)a[i+1; l]

+ni∑l=1

(ni − l+ 1)a[i; l] +ni+1∑l=1

b[i+1; l] +ni∑l=1

b[i; l]:

Clearly, the completion times of the jobs before the ith batch or after the (i + 1)th batch are notchanged after interchanging the ith and (i+1)th batches. Then, for the total completion time F andF ′ before and after interchanging, respectively, we have

F − F ′ =

ni∑

j=1

C[i; j] +ni+1∑j=1

C[i+1; j]

ni+1∑

j=1

C ′[i; j] +

ni∑j=1

C ′[i+1; j]

= ni+1

s[i];1 +

ni∑j=1

a[i; j]

− ni

s[i+1];1 +

ni+1∑j=1

a[i+1; j]

:

If (s[i];1 +∑ni

j=1 a[i; j])=ni6 (s[i+1];1 +∑ni+1

j=1 a[i+1; j])=ni+1, we have F − F ′6 0.

X. Wang, T.C.E. Cheng / Computers & Operations Research 32 (2005) 2751–2770 2759

Theorem 5. For the F2=M1 � M2, class=∑

C[i; j] problem, where the jobs in the ith and (i + k)thbatches belong to the same job class, there exists an optimal schedule where a[i; ni] and a[i+k;1]

satisfy the following condition

a[i; ni]6

k∑

l=1

s[i+l];1 +k−1∑l=1

ni+l∑j=1

a[i+l; j]

/ k−1∑

l=1

ni+l6 a[i+k;1]: (1)

Proof. In a schedule S, we denote all the processed jobs between job [i; ni] and job [i + k; 1] as apartial sequence �. Let S ′ be the sequence formed by moving job [i+k; 1] to the last of the ith batchin S. Clearly, the completion times of the jobs sequenced before job [i; ni] or after job [i+ k; 1] arenot changed. Let F and F ′ denote the total #owtime of S and S ′, respectively. In schedule S, wehave

C[i+l; j] =i+l∑h=1

s[h];1 +i+l−1∑h=1

nh∑g=1

a[h;g] +j∑

g=1

a[i+l;g] + b[i+l; j];

for l= 1; 2; : : : ; k − 1; j = 1; 2; : : : ; ni+l;

C[i+k;1] =i+k∑h=1

s[h];1 +i+k−1∑h=1

nh∑g=1

a[h;g] + a[i+k;1] + b[i+k;1]:

In schedule S ′, we have

C ′[i; ni+1] =

i∑h=1

s[h];1 +i∑

h=1

nh∑j=1

a[h; j] + a[i+k;1] + b[i+k;1]

=C[i+k;1] −k−1∑

h=1

ni+h∑j=1

a[i+h; j] +k∑

h=1

s[i+h];1

;

C ′[i+l; j] = C[i+l; j] + a[i+k;1]; for l= 1; 2; : : : ; k − 1; j = 1; 2; : : : ; ni+l:

Then,k−1∑l=1

ni+l∑j=1

C ′[i+l; j] + C ′

[i; ni+1] =k−1∑l=1

ni+l∑j=1

C[i+l; j] + a[i+k;1]

k−1∑l=1

ni+l + C[i+k;1]

− k∑

h=1

s[i+h];1 +k−1∑h=1

ni+h∑j=1

a[i+h; j]

:

Therefore,

F ′ − F = a[i+k;1]

k−1∑l=1

ni+l − k∑

h=1

s[i+h];1 +k−1∑h=1

ni+h∑j=1

a[i+h; j]

:

Therefore, if the right-hand side of inequality (1) holds, i.e., F ′ − F¿ 0, which means that job[i + k; 1] should not be moved to the last position of the ith batch to minimize the total #owtime.

2760 X. Wang, T.C.E. Cheng / Computers & Operations Research 32 (2005) 2751–2770

Similar to the above, we can also prove that if the left-hand side of inequality (1) holds, job[i; ni] should not be moved to the beginning position of the (i + k)th batch to minimize the total#owtime.

3.4. F2=M2 � M1, class=∑

C[i; j]

Theorem 6. For the F2=M2 � M1, class=∑

C[i; j] problem, there exists an optimal schedule wherethe jobs in a batch i are sequenced in ascending order of b[i; j].

Proof. Similar to the proof of Theorem 3.

Theorem 7. For the F2=M2 � M1, class=∑

C[i; j] problem, there exists an optimal schedule wherethe batches are sequenced in ascending order of (s[i];2 +

∑nij=1 b[i; j])=ni.

Proof. Similar to the proof of Theorem 4.

Theorem 8. For the F2=M2 � M1, class=∑

C[i; j] problem, where the jobs of the ith and (i + k)thbatches belong to the same job class, there exists an optimal schedule where b[i; ni] and b[i+k;1]

satisfy the following condition

b[i; ni]6

k∑

l=1

s[i+l];2 +k−1∑l=1

ni+l∑j=1

b[i+l; j]

/ k−1∑

l=1

ni+l6 b[i+k;1]:

Proof. Similar to the proof of Theorem 5.

3.5. F2=si1 = si2, aij = bij = tij, class=∑

C[i; j]

For convenience, we set si1 = si2 = si, for i = 1; 2; : : : ; c, and aij = bij = tij, for i = 1; 2; : : : ; c,j = 1; 2; : : : ; ci. For this special case, we can derive some optimal properties in the following.

Theorem 9. For the F2=si1 = si2, aij = bij = tij, class=∑

C[i; j] problem, there exists an optimalschedule where the jobs in a batch i are sequenced in ascending order of t[i; j].

Proof. Let �1 denote a sequence where the jobs within a batch are sequenced in ascending orderof t[i; j]. Let �2 denote a sequence that is obtained from �1 by swapping the jobs [i; j] and [i; j+ 1].Obviously, the completion times of all jobs before job [i; j] are equal in �1 and �2. In schedule �1,we have

C(�1)[i; j] = max{Ai;j−1 + t[i; j]; C[i; j−1]} + t[i; j];

C(�1)[i; j+1] =max{Ai;j−1 + t[i; j] + t[i; j+1]; C(�1)[i; j]} + t[i; j+1]

=max{Ai;j−1 + t[i; j+1]; Ai; j−1 + t[i; j]; C[i; j−1]} + t[i; j] + t[i; j+1]

=max{Ai;j−1 + t[i; j+1]; C[i; j−1]} + t[i; j] + t[i; j+1]; (2)

X. Wang, T.C.E. Cheng / Computers & Operations Research 32 (2005) 2751–2770 2761

C(�1)[i; j] + C(�1)[i; j+1] =max{Ai;j−1 + t[i; j]; C[i; j−1]}+max{Ai;j−1 + t[i; j+1]; C[i; j−1]} + 2t[i; j] + t[i; j+1]: (3)

In schedule �2, we have

C(�2)[i; j] = max{Ai;j−1 + t[i; j+1]; C[i; j−1]} + t[i; j+1];

C(�2)[i; j+1] =max{Ai;j−1 + t[i; j+1] + t[i; j]; C(�2)[i; j]} + t[i; j]

=max{Ai;j−1 + t[i; j]; Ai; j−1 + t[i; j+1]; C[i; j−1]} + t[i; j] + t[i; j+1]

=max{Ai;j−1 + t[i; j+1]; C[i; j−1]} + t[i; j] + t[i; j+1]; (4)

C(�2)[i; j] + C(�2)[i; j+1] = 2max{Ai;j−1 + t[i; j+1]; C[i; j−1]} + t[i; j] + 2t[i; j+1]: (5)

From (2) and (4), we have C(�1)[i; j+1] =C(�2)[i; j+1]. And, obviously, swapping job [i; j] and job[i; j + 1] will not change the completion time of the last of these two jobs on machine 1. So thecompletion times of all jobs after job [i; j + 1] in �1 are not changed in �2. From (3) and (5), wehave

C(�1)[i; j] + C(�1)[i; j+1]6C(�2)[i; j] + C(�2)[i; j+1]:

Then, the total #owtime of �1 is no greater than the total #owtime of �2.

Theorem 10. For the F2=si1=si2, aij=bij= tij, class=∑

C[i; j] problem, in a sequence where batchesi and k are adjacent, let the jobs within batch i (or k) be sequenced in ascending order of theirprocessing times on machine 1 or 2. In order to minimize the total :owtime, batch i should precedebatch k, if

tini 6 tk1 and

si +

ni∑j=1

tij

/ ni6

sk +

nk∑j=1

tkj

/ nk : (6)

Proof. We assume that batches i and k are in positions h and h+1 in a sequence �1, respectively,and sequence �2 is obtained by swapping batches i and k. Obviously, the completion times of anyjob before the hth batch are equal in �1 and �2. For the hth and (h+ 1)th batches in sequence �1,we have

C(�1)[h; j] =max{Ah−1; nh−1 + si + ti1 + · · · + tij; C[h−1; nh−1] + si + ti1 + · · · + ti; j−1} + tij

=

(si +

j∑l=1

til

)+max{Ah−1; nh−1 + tij; C[h−1; nh−1]}; for j = 1; 2; : : : ; ni;

C(�1)[h+1; j] =max{Ah;nh + sk + tk1 + · · · + tkj; C(�1)[h;ni] + sk + tk1 + · · · + tk; j−1} + tkj

=

(sk +

j∑l=1

tkl

)+max{Ah;nk + tkj; C(�1)[h;ni]}

2762 X. Wang, T.C.E. Cheng / Computers & Operations Research 32 (2005) 2751–2770

=

(sk +

j∑l=1

tkl

)+max

{Ah−1; nh−1 +

(si +

ni∑l=1

til

)+ tkj; Ah−1; nh−1

+

(si +

ni∑l=1

til

)+ tini ; C[h−1; nh−1] +

(si +

ni∑l=1

til

)}

=

(si +

ni∑l=1

til

)+

(sk +

j∑l=1

tkl

)+max{Ah−1; nh−1+tkj; Ah−1; nh−1+tini ; C[h−1; nh−1]};

for j = 1; 2; : : : ; nk ; (7)

ni∑j=1

C(�1)[h; j] +nk∑j=1

C(�1)[h+1; j] = (ni + nk)si + nksk + nkni∑l=1

til +ni∑l=1

(ni − l+ 1)til

+nk∑l=1

(nk − l+ 1)tkl +ni∑l=1

max{Ah−1; nh−1 + til; C[h−1; nh−1]}

+nk∑l=1

max{Ah−1; nh−1 + tkl; Ah−1; nh−1 + tini ; C[h−1; nh−1]}: (8)

For the hth and (h+1)th batches in sequence �2, similar to the above, we can derive

C(�2)[h; j] =

(sk +

j∑l=1

tkl

)+max{Ah−1; nh−1 + tkj; C[h−1; nh−1]}; for j = 1; 2; : : : ; nk ;

C(�2)[h+1; j] =

(sk +

nk∑l=1

tkl

)+

(si +

j∑l=1

til

)

+max{Ah−1; nh−1 + tij; Ah−1; nh−1 + tknk ; C[h−1; nh−1]}; for j = 1; 2; : : : ; ni; (9)

nk∑j=1

C(�2)[h; j] +ni∑j=1

C(�2)[h+1; j] = (ni + nk)sk + nisi + nink∑l=1

tkl +nk∑l=1

(nk − l+ 1)tkl

+ni∑l=1

(ni − l+ 1)til +nk∑l=1

max{Ah−1; nh−1 + tkl; C[h−1; nh−1]}

+ni∑l=1

max{Ah−1; nh−1 + til; Ah−1; nh−1 + tknk ; C[h−1; nh−1]}: (10)

From (7) and (9), we have

C(�1)[h+1; nk ] = C(�2)[h+1; ni]:

Then, the completion times of any job after the (h+ 1)th batch in �1 and �2 are equal.

X. Wang, T.C.E. Cheng / Computers & Operations Research 32 (2005) 2751–2770 2763

From (6), (8) and (10), we have

ni∑j=1

C(�1)[h; j] +nk∑j=1

C(�1)[h+1; j]6ni∑j=1

C(�2)[h+1; j] +nk∑j=1

C(�2)[h; j]:

Thus, if the condition of the theorem holds, then the conclusion is valid.

Theorem 11. For the F2=si1 = si2, aij = bij = tij, class=∑

C[i; j] problem, jobs within any batchesare sequenced in ascending order of their processing times on machine 1 or 2, and the jobs in theith and (i + k)th batches belong to the same job class. In order to minimize the total :owtime,(i) job [i+k, 1] should move to the last position of the ith batch, if t[i+k;1]6 t[i+l;1], for l =

1; 2; : : : ; k − 1;(ii) job [i; ni] should move to the @rst position of the (i + k)th batch, if t[i; ni]¿ t[i+l;ni+l], for

l= 1; 2; : : : ; k − 1.

Proof. (i) Let �1 denote the original schedule, and �2 the schedule obtained from �1 by moving the/rst job in the (i+ k)th batch to the last position of the ith batch. Obviously, the completion timesof all the jobs from the /rst job up to job [i; ni] in �1 and �2 are equal. Under the assumptions ofthe theorem, in schedule �1, we have

C(�1)[i+1; j] = s[i+1] +j∑

l=1

t[i+1; l] + max{Aini + t[i+1; j]; C[i; ni]}; for j = 1; 2; : : : ; ni+1;

C(�1)[i+l; j] =max{Aini + t[i+1; ni+1]; : : : ; Aini + t[i+l−1; ni+l−1]; Aini + t[i+l; j]; C[i; ni]}

+l∑

h=1

s[i+h] +l−1∑h=1

ni+h∑j=1

t[i+h; j] +j∑

h=1

t[i+l;h]; for l= 2; : : : ; k; j = 1; 2; : : : ; ni+l:

(11)

In schedule �2, we have

C(�2)[i; ni+1] = max{Aini + t[i+k;1]; C[i; ni]} + t[i+k;1];

C(�2)[i+1; j] = C(�1)[i+1; j] + t[i+k;1]; for j = 1; 2; : : : ; ni+1;

C(�2)[i+l; j] =max{Aini + t[i+1; ni+1]; : : : ; Aini + t[i+l−1; ni+l−1]; Aini + t[i+l; j]; Aini + t[i+k;1]; C[i; ni]}

+l∑

h=1

s[i+h] +l−1∑h=1

ni+h∑j=1

t[i+h; j] +j∑

h=1

t[i+l;h] + t[i+k;1];

for l= 2; : : : ; k − 1; j = 1; 2; : : : ; ni+l;

2764 X. Wang, T.C.E. Cheng / Computers & Operations Research 32 (2005) 2751–2770

C(�2)[i; ni+1] +k−1∑l=1

ni+l∑j=1

C(�2)[i+l; j]

=C(�1)[i+k;1]+k−1∑l=1

ni+l∑j=1

C(�1)[i+l; j]+(max{Aini+t[i+k;1]; C[i; ni]}−max{Aini+t[i+1; ni+1]; : : : ; Aini

+t[i+k−1; ni+k−1]; Aini + t[i+k;1]; C[i; ni]}) +t[i+k;1]

k−1∑l=1

ni+l −k−1∑h=1

nh+i∑j=1

t[i+h; j]

k∑h=1

s[i+h];

(12)

C(�2)[i+k;1] =max{Aini + t[i+k;1]; Aini + t[i+1; ni+1]; · · · ; Aini + t[i+k−1; ni+k−1]; Aini + t[i+k;2]; C[i; ni]}

+k∑

h=1

s[i+h] +k−1∑h=1

ni+h∑j=1

t[i+h; j] + t[i+k;1] + t[i+k;2]: (13)

From (11) and (13), considering that t[i+k;1]6 t[i+k;2], we have C(�1)[i+k;2] = C(�2)[i+k;1]. So, thecompletion times of all the jobs after job [i+k; 1] in schedule �1 are the same as those in schedule �2.Furthermore, from (12), taking into account that t[i+k;1]6 t[i+l;1], l= 1; 2; : : : ; k − 1, we have

C(�2)[i; ni+1] +k−1∑l=1

ni+l∑j=1

C(�2)[i+l; j] ¡C(�1)[i+k;1] +k−1∑l=1

ni+l∑j=1

C(�1)[i+l; j]:

Therefore, the total #owtime of �2 is less than the total #owtime of �1.(ii) Similar to the proof of (i).

4. Algorithms

In the previous section, we have derived some properties of the optimal solutions for severalspecial cases. Since Theorems 1 and 2 state the conditions for the optimal solutions for cases 3.1and 3.2, respectively, it is easy to develop polynomial time solution algorithms for these two cases.In this section, we develop some heuristics and branch-and-bound algorithms for cases 3.3, 3.4 and3.5.

4.1. Heuristic algorithms

Our heuristic algorithms use a construction procedure to /nd an initial schedule, and then improvethe performance of the solutions according to the optimal properties stated in the various theoremsin the previous section.

X. Wang, T.C.E. Cheng / Computers & Operations Research 32 (2005) 2751–2770 2765

For F2=M1 � M2, class=∑

C[i; j], we construct the following algorithms.Heuristic algorithm A1(HAA1)Step 1. Let �i = [job(i; 1); job(i; 2); : : : ; job(i; ci)] be the sequence in ascending order of their

processing times on machine 1, i = 1; 2; : : : ; c, and set � = � (empty set).Step 2. Select a job (i; 1) such that si1 + ai1 = min{sk1 + ak1 | k = 1; 2; : : : ; c}. Remove job (i; 1)

from �i and place it in the /rst position of �, and set h= i.Step 3. If �1 ∪ �2 ∪ · · · ∪ �c = �, go to step 4, elseIf �h = � and ahm6 si1 + aik , remove job (h; m) from �h and place it in the last position of �.

Otherwise, remove job (i; k) from �i and place it in the last position of �, and set h= I , where job(h; m) is the /rst job in �h, and job (i; k) satis/es si1+aik=min{sg1+agl | job (g; l) is the /rst job in�g; g = h}. Go to step 3.Step 4. For sequence �, calculate (s[i];1 +

∑nij=1 a[i; j])=ni for its batches, and sequence all batches

of � in ascending order of (s[i];1 +∑ni

j=1 a[i; j])=ni.Step 5. For the two batches containing the jobs of the same class, move their jobs that satisfy the

conditions for the optimal solution given in Theorem 5. Denote the obtained sequence as �.Step 6. Repeat step 4 if necessary. Stop.Heuristic algorithm A2 (HAA2)This heuristic is similar to HAA1 except step 3. We rewrite step 3 as follows.Step 3. If �1 ∪ �2 ∪ · · · ∪ �c = �, go to step 4, elseIf �h = � and (ahm + ah;m+1)=26 si1 + aik , remove jobs (h; m) and (h; m+ 1) from �h and place

them in the last two positions of �. Otherwise, remove job (i; k) from �i and place it in the lastposition of �, and set h= I , where jobs (h; m) and (h; m+ 1) are the /rst two jobs in �h, and job(i; k) satis/es si1 + aik =min{sg1 + agl | job (g; l) is the /rst job in �g; g = h}. Go to step 3.

For F2=M2 � M1, class=∑

C[i; j], we have the following algorithms.Heuristic algorithm B1 (HAB1)Step 1. Let �i = [job(i; 1); job(i; 2); : : : ; job(i; ci)] be the sequence in ascending order of their

processing times on machine 2, i = 1; 2; : : : ; c, and set � = �.Step 2. Select a job (i; 1) such that si2 + bi1 = min{sk2 + bk1 | k = 1; 2; : : : ; c}. Remove job (i; 1)

from �i and place it in the /rst position of �, and set h= i.Step 3. If �1 ∪ �2 ∪ · · · ∪ �c = �, go to step 4, elseIf �h = � and bhm6 si2+bik , remove job (h; m) from �h and place it in the last position of �. Oth-

erwise, remove job (i; k) from �i and place it in the last position of �, and set h=I , where job (h; m)is the /rst job in �h, and job (i; k) satis/es si2+bik=min{sg2+bgl | job (g; l) is the /rst job in �g; g =h}. Go to step 3.

Step 4. For sequence �, calculate (s[i];2 +∑ni

j=1 b[i; j])=ni for its batches, and sequence all batchesof � in ascending order of (s[i];2 +

∑nij=1 b[i; j])=ni.

Step 5. For the two batches containing jobs of the same class, move their jobs that satisfy theconditions for the optimal solution given in Theorem 8. Denote the obtained sequence as �.

Step 6. Repeat step 4 if necessary. Stop.Heuristic algorithm B2 (HAB2)This heuristic is similar to HAB1 except step 3. We rewrite step 3 as follows.Step 3. If �1 ∪ �2 ∪ · · · ∪ �c = �, go to step 4, elseIf �h = � and (bhm + bh;m+1)=26 si2 + bik , remove jobs (h; m) and (h; m+ 1) from �h and place

them in the last two positions of �. Otherwise, remove job (i; k) from �i and place it in the last

2766 X. Wang, T.C.E. Cheng / Computers & Operations Research 32 (2005) 2751–2770

position of �, and set h= I , where jobs (h; m) and (h; m+ 1) are the /rst two jobs in �h, and job(i; k) satis/es si2 + bik =min{sg2 + bgl | job (g; l) is the /rst job in �g; g = h}. Go to step 3.

For F2=si1 = si2; aij = bij = tij, class=∑

C[i; j], we construct the following algorithms.Heuristic algorithm C1 (HAC1)Step 1. Let �i = [job(i; 1); job(i; 2); : : : ; job(i; ci)] be a sequence in ascending order of their pro-

cessing times on machine 1 or 2, i = 1; 2; : : : ; c, and set � = �.Step 2. Select a job (i; 1) such that si + ti1 =min{sk + tk1 | k =1; 2; : : : ; c}. Remove job (i; 1) from

�i and place it in the /rst position of �, and set h= i.Step 3. If �1 ∪ �2 ∪ · · · ∪ �c = �, go to step 4, elseIf �h = � and thm6 si+tik , remove job (h; m) from �h and place it in the last position of �. Other-

wise, remove job (i; k) from �i and place it in the last position of �, and set h=I , where job (h; m) isthe /rst job in �h, and job (i; k) satis/es si+ tik=min{sg+ tgl | job (g; l) is the /rst job in �g; g = h}.Go to step 3.

Step 4. For sequence �, interchange the adjacent pairs of batches to improve the objective function.Step 5. For the two batches containing jobs of the same class, move their jobs that satisfy the

conditions for the optimal solution given in Theorem 11. Stop.Heuristic algorithm C2 (HAC2)This heuristic is similar to HAC1 except step 3. We rewrite step 3 as follows.Step 3. If �1 ∪ �2 ∪ · · · ∪ �c = �, go to step 4, elseIf �h = � and (thm + th;m+1)=2 = si + tik , remove jobs (h; m) and (h; m + 1) from �h and place

them in the last two positions of �. Otherwise, remove job (i; k) from �i and place it in the lastposition of �, and set h= I , where jobs (h; m) and (h; m+ 1) are the /rst two jobs in �h, and job(i; k) satis/es si + tik =min{sg + tgl | job (g; l) is the /rst job in �g; g = h}. Go to step 3.

4.2. Branch-and-bound algorithms

For each of the above cases, we derive a lower bound that can be used to reduce the size of thesearch tree generated by the branch-and-bound procedure.

We assume that a partial sequence �1 has been determined, in which job (p; q) is the last job,and �2 is the complement of �1, which includes unscheduled jobs.For case 3.3, in set �2, let akij (k =1; 2; : : : ; ) denote the processing time of job (i; j) on machine

1, where job (i; j) is the kth job when being sequenced among these jobs in increasing order oftheir processing times on machine 1. Let nli ¿ 0 (l = 1; 2; : : : ; �) denote the job number of class iin �2 (excluding class p), where l denotes the lth position in increasing order of sli1=n

li , and s1i1

denotes the setup time of these nli jobs on machine 1. A lower bound for case 3.3 can be expressedas follows:

LB1 =∑

(i; j)∈�1

Cij +�∑

l=1

(sli1

�∑k=l

nki

)+ (Cpq − bpq) +

∑k=1

( − k + 1)akij +∑

(i; j)∈�2

bij: (14)

For case 3.4, in set �2, let bkij (k =1; 2; : : : ; ) denote the processing time of job (i; j) on machine2, where job (i; j) is the kth job when being sequenced among these jobs in increasing order oftheir processing times on machine 2. Let nli ¿ 0 (l=1; 2; : : : ; �) denote the job number of class i in�2 (excluding class p), where l denotes the lth position in increasing order of sli2=n

li and sli2 denotes

X. Wang, T.C.E. Cheng / Computers & Operations Research 32 (2005) 2751–2770 2767

the setup time of these nli jobs on machine 2. A lower bound for case 3.4 can be expressed asfollows:

LB2 =∑

(i; j)∈�1

Cij +�∑

l=1

(sli2

�∑k=l

nki

)+ Cpq +

∑k=1

( − k + 1)bkij: (15)

For case 3.5, in set �2, let tkij (k = 1; 2; : : : ; ) denote the processing time of job (i; j) on machine1 or 2, where job (i; j) is the kth job when being sequenced among these jobs in increasing orderof their processing times on machine 1 or 2. Let nli ¿ 0 (l = 1; 2; : : : ; �) denote the job number ofclass i in �2 (excluding class p), where l denotes the lth position in increasing order of si=nli andsli denotes the setup time of these nli jobs on machine 1 or 2. A lower bound for case 3.5 can beexpressed as follows:

LB3=∑

(i; j)∈�1

Cij +�∑

l=1

(sli

�∑k=l

nki

)+ Cpq +

∑k=1

( − k + 1)tkij

+ ∑

k=1

max{Apq + tkij − Cpq; 0}: (16)

The branch-and-bound algorithm for case 3.3 can be described as follows: at the root node of thebranch-and-bound search tree, the best result generated by HAA1 and HAA2 is applied as an initialupper bound. At each node of the branch-and-bound search tree, the optimal properties of Theorems3 to 5 are used as pruning devices, and if the current lower bound is greater than the upper bound,this node is pruned.

The branch-and-bound algorithm for case 3.4 can be described as follows: at the root node of thebranch-and-bound search tree, the best result generated by HAB1 and HAB2 is applied as an initialupper bound. At each node of the branch-and-bound search tree, the optimal properties of Theorems6 to 8 are used as pruning devices, and if the current lower bound is greater than the upper bound,this node is pruned.

The branch-and-bound algorithm for case 3.5 can be described as follows: at the root node of thebranch-and-bound search tree, the best result generated by HAC1 and HAC2 is applied as an initialupper bound. At each node of the branch-and-bound search tree, the optimal properties of Theorems9 to 11 are used as pruning devices, and if the current lower bound is greater than the upper bound,this node is pruned.

5. Computational results

The measures of the e3ectiveness of the heuristic algorithms are the average relative error andmaximal relative error from the optimal total #owtime, where the relative error is de/ned as:relative error (%)=[(heuristic total #owtime−optimal total #owtime)×100]=[optimal total #owtime].The branch-and-bound algorithms are evaluated with respect to average CPU time in seconds andaverage number of nodes searched. The procedures were coded in VB 5.0 and run on a Celeron300 PC.

2768 X. Wang, T.C.E. Cheng / Computers & Operations Research 32 (2005) 2751–2770

Table 1Performance evaluation of HAA1, HAA2 and the branch-and-bound algorithm

No. of jobs No. of classes HAA1 HAA2 Branch-and-bound

Mean (%) Max (%) Mean (%) Max (%) Nodes Times

20 2 0.050 0.573 0.092 0.869 4179 25.954 0.000 0.000 0.046 0.919 968 5.975 0.000 0.000 0.000 0.000 30 0.2210 0.000 0.000 0.000 0.000 17 0.284

30 3 0.838 3.426 0.497 3.426 65945 1181.525 0.017 0.330 0.060 0.129 2646 44.6586 0.000 0.000 0.284 4.947 37 0.75910 0.006 0.366 0.024 0.146 29 0.832

Table 2Performance evaluation of HAB1, HAB2 and the branch-and-bound algorithm

No. of jobs No. of classes HAB1 HAB2 Branch-and-bound

Mean (%) Max (%) Mean (%) Max (%) Nodes Times

20 2 0.923 3.766 0.922 3.716 5614 36.2274 0.499 4.428 0.055 4.428 3481 19.5385 0.000 0.000 0.002 0.045 37 0.226510 0.000 0.000 0.000 0.000 18 0.291

30 3 0.941 2.137 0.542 4.221 58723 1102.125 0.018 0.356 0.044 0.701 9675 130.066 0.004 0.078 0.948 6.221 613 8.19210 0.000 0.000 0.018 0.066 30 0.789

Fifty random instances were generated for each of feasible combinations of n = 20; 30 jobs anddi3erent numbers of job classes. The job processing times for case 3.3 on machines 1 and 2 wereuniformly distributed integers between 50 and 100 and between 1 and 50, respectively. The jobprocessing times for case 3.4 on machines 1 and 2 were uniformly distributed integers between 1and 50, and between 50 and 100, respectively. The job processing times for case 3.5 were uniformlydistributed integers between 1 and 100. The class setup times for case 3.3 on machine 1, and case3.5 on machines 1 and 2 were uniformly distributed integers between 1 and 100. The class setuptimes for case 3.4 on machine 2 were uniformly distributed integers between 50 and 100. The classsetup times for case 3.3 on machine 2, and for case 3.4 on machine 1 were randomly generatedintegers according to the de/nitions of cases 3.3 and 3.4, respectively. We present a summary ofour /ndings in Tables 1, 2 and 3.Table 1 reports the performance of HAA1 and HAA2 of case 3.3. It is obvious that HAA1 is

better than HAA2 except that for 30 jobs divided into three classes. We notice that the #owtime

X. Wang, T.C.E. Cheng / Computers & Operations Research 32 (2005) 2751–2770 2769

Table 3Performance evaluation of HAC1, HAC2 and the branch-and-bound algorithm

No. of jobs No. of classes HAC1 HAC2 Branch-and-bound

Mean (%) Max (%) Mean (%) Max (%) Nodes Times

20 2 0.947 1.392 0.787 1.351 7042 57.454 0.108 2.153 0.985 9.038 5433 44.455 0.066 1.257 1.351 6.761 228 1.618510 0.000 0.000 0.000 0.000 117 0.897

30 3 1.796 3.969 1.395 3.462 96536 1326.705 0.534 4.900 0.476 2.980 14759 443.456 0.000 0.000 0.532 1.432 110 2.86110 0.048 0.894 1.669 5.339 89 0.914

is made up of the job processing times and the job class setups. In general, the optimal objectiveis obtained through balancing these two items. Since HAA2 tends to produce more batches thanHAA1, HAA2 is more likely to produce a better solution for scheduling problems with a fewer jobclasses. It seems that the mean relative errors of the two heuristics are independent of the numberof jobs. The mean relative error of HAA1 decreases as the number of class decreases.

Table 1 also reveals that the branch-and-bound algorithm can /nd the optimal solutions for allthe problems generated. Both the searched nodes and CPU time tend to decrease as the number ofclasses increases, which is indicated by the expression of the lower bound (14) as the more the jobsare divided into job classes, the tighter the lower bound becomes.

Table 2 reports the performance of HAB1 and HAB2 and the branch-and-bound algorithm forcase 3.4, and Table 3 the performance of HAC1 and HAC2 and the branch-and-bound algorithm forcase 3.5. The algorithms for cases 3.4 and 3.5 have similar characters as those of the algorithmsfor case 3.3.

Since the conditions for the optimal solution for case 3.5 are stricter than those for cases 3.3 and3.4, it is evident that the branch-and-bound algorithm for case 3.5 searches more nodes and requiresmore CPU time than those for cases 3.3 and 3.4.

6. Conclusions

In this paper we have considered several special cases of the two-machine #owshop schedulingwith job class setups and derived some optimal solution properties for these problems to minimizethe total #owtime. We have discussed the use of these optimal properties to develop heuristicalgorithms. We have also developed branch-and-bound algorithms for cases 3:3; 3:4 and 3.5, inwhich the best solution of two heuristic algorithms is used as an initial upper bound, and thederived lower bounds and optimal properties are used to reduce the size of the search tree. We haveconducted computational experiments to test these algorithms and the results demonstrate that all ofthe algorithms are very eMcient and e3ective in solving the special cases under study.

2770 X. Wang, T.C.E. Cheng / Computers & Operations Research 32 (2005) 2751–2770

Acknowledgements

This research was supported in part by The Hong Kong Polytechnic University under a grant fromthe Area of Strategic Development in China Business Services. We are grateful to two anonymousreferees for their helpful comments on an earlier version of this paper.

References

[1] Gupta JND. Optimal schedules for single facility with two job classes. Computers & Operations Research 1984;11:409–13.

[2] Potts CN. Scheduling two job classes on a single machine. Computers & Operations Research 1991;18:411–5.[3] Gupta JND. Single facility scheduling with multiple job classes. European Journal of Operational Research 1988;8:

42–5.[4] Ahn B-H, Hyun J-H. Single facility multi-class job scheduling. Computers & Operations Research 1990;17:265–72.[5] Mason AJ, Anderson EJ. Minimizing #ow time on a single machine with job classes and setup times. Naval Research

Logistics 1991;38:333–50.[6] Crauwels HAJ, Hariri AMA, Potts CN, Van Wassenhove LN. Branch and bound algorithms for single-machine

scheduling with batch set-up times to minimize total weighted completion time. Annals of Operations Research1998;83:59–76.

[7] Crauwels HAJ, Potts CN, Van Wassenhove LN. Local search heuristics for single machine scheduling with batchset-up times to minimize total weighted completion time. Annals of Operations Research 1997;70:261–79.

[8] Potts CN, Van Wassenhove LN. Integrating scheduling with batching and lot-sizing: a review of algorithms andcomplexity. Journal of the Operational Research Society 1992;43:395–406.

[9] Webster S, Baker KR. Scheduling groups of jobs on a single machine. Operations Research 1995;43:692–704.[10] Potts CN, Kovalyov MY. Scheduling with batching: a review. European Journal of Operational Research

2000;120:228–49.[11] Cheng TCE, Gupta JND, Wang GQ. A review of #owshop scheduling with setup times. Production and Operations

Management 2000;9:262–82.[12] Gonzalez T, Sahni S. Flowshop and job shop schedules: complexity and approximation. Operations Research

1978;26:36–52.[13] Woo H-S, Yim D-S. A heuristic algorithm for mean #owtime objective in #owshop scheduling. Computers &

Operations Research 1998;25:175–82.[14] Ho JC, Gupta JND. Flowshop scheduling with dominant machines. Computers & Operations Research 1995;22:

237–46.[15] Allahverdi A. Minimizing mean #owtime in a two-machine #owshop with sequence independent setup times.

Computers & Operations Research 2000;27:111–27.[16] Brucker P. Scheduling algorithms. Berlin: Springer; 1995.