Professional Documents
Culture Documents
10.A Branch and Bound Algorithm For Two Stage No Wait Hybrid Flow Shop Scheduling
10.A Branch and Bound Algorithm For Two Stage No Wait Hybrid Flow Shop Scheduling
To cite this article: Shijin Wang, Ming Liu & Chengbin Chu (2015) A branch-and-bound algorithm
for two-stage no-wait hybrid flow-shop scheduling, International Journal of Production Research,
53:4, 1143-1167, DOI: 10.1080/00207543.2014.949363
This research investigates a two-stage no-wait hybrid flow-shop scheduling problem in which the first stage contains a single
machine, and the second stage contains several identical parallel machines. The objective is to minimise the makespan. For
this problem, existing literature emphasises on heuristics or optimal solutions for special cases, whereas this paper proposes
a branch-and-bound algorithm. Several lower bounds for optimal and partial schedules are derived. Also, three dominance
rules are deduced, and seven constructive heuristics are used to obtain initial upper bounds. Extensive computational tests
on randomly generated problems are conducted. The results with comparisons indicate that the proposed bounds (especially
partial lower bounds), dominance rules and the branch-and-bound algorithm are efficient.
Keywords: scheduling; no-wait; hybrid flow-shop; branch-and-bound
1. Introduction
Scheduling concerns the assignment of limited resources to tasks over time to optimise one or more objectives (Pinedo
1995). During the past five decades, practitioners and researchers have investigated various scheduling problems in different
manufacturing environments, including single machine, parallel machine, flow shop, job shop, flexible job shop, etc. (Brucker
2007).
Due to its high practical relevance to process industry (Tang and Wang 2010), hybrid flow-shop scheduling problems
have been studied for several decades (Linn and Zhang 1999; Kis and Pesch 2005; Ribas, Leisten, and Framinan 2010;
Ruiz and Vázquez-Rodríguez 2010). This paper considers a unique hybrid flow-shop scheduling problem, the two-stage
hybrid flow-shop scheduling problem with no-wait job processing to minimise makespan, in which the first stage contains
a single machine and the second stage contains several identical parallel machines (denoted as F2(1, Pm)|no-wait|C max ).
Hoogeveen, Lenstra, and Veltman (1996) proved that F2(1, Pm)||Cmax , a relaxation of concerned problem, is NP-hard
in the strong sense. With no-wait constraint, additional complexity is introduced. In no-wait environment, every job must
be processed from start to finish without any interruption either on or between machines (Hall and Sriskandarajah 1996).
This constraint can be motivated by many types of manufacturing environments: (1) Production processes with physical
space limitation will consider carefully such problem due to limited warehouse space available for finished goods, space-
efficient way to reduce the holding costs and requirements of quality of service to customers (Hall, Posner, and Potts 1998).
(2) Scheduling goods is with high decay rate. This is the case of the production of steel, concrete wares, chemical products or
food (Mascis and Pacciarelli 2002). For example, in food processing industry, the canning operation must immediately follow
cooking to ensure freshness (Hall and Sriskandarajah 1996). Moreover, the two-stage no-wait hybrid flow-shop scheduling
model has also been applied into some practical applications, including a computer system composed by a single server and
two identical parallel machines (Guirchoun, Martineau, and Billaut 2005), two-stage assembly model (Gupta, Hariri, and
Potts 1997) and meta industry (Liu et al. 2003).
Given its importance and complexity, the two-stage no-wait hybrid flow-shop scheduling problem has been studied
since 1990s. Srishandarajah (1993) addressed the issue of worst-case bound for F2(1, Pm)|no-wait|Cmax and established
a tight worst-case bound of r = 3 − 1/m using an arbitrary sequence for the list-scheduling algorithm, where m is the
number of identical parallel machines at the second stage. Hall and Sriskandarajah (1996) conducted a survey of the no-wait
and blocking scheduling in different shops based on papers published before 1993, which reveals that there is no research
for F2(1, Pm)|no-wait|Cmax with a branch-and-bound enhanced with lower bounds and dominance rules. Gupta, Hariri,
and Potts (1997) considered a two-stage hybrid flow-shop problem F2(Pm, 1)||Cmax with branch-and-bound, and heuristic
algorithms. But no-wait processing constraint was not considered. Cheng, Sriskandarajah, and Wang (2000) studied the
computational complexity of some two-and three-stage no-wait flow-shop makespan problems. However, in one stage of
all problems they considered, all the jobs require a constant processing time. We extended the two-stage no-wait problem
without specific requirements of constant processing time on either stages. Glass, Shafransky, and Strusevich (2000) proposed
a polynomial time algorithm for F2, S|no-wait|Cmax problem in which each operation has a setup phase and this phase needs
to be attended by a single server, common for all jobs and different from the processing machines (S in the problem
notation stands for ‘server’). Liu et al. (2003) proposed a greedy heuristic named Least Deviation (LD) algorithm for the
F2(1, Pm)|no-wait|Cmax and tested its average performance. Xie et al. (2004) extended the LD into minimum deviation
algorithm (MDA) for two-stage no-wait hybrid flow shop scheduling with multiple identical machines at both stages with
the objective of makespan minimisation. Guirchoun, Martineau, and Billaut (2005) considered a computer system as a two-
stage hybrid flow-shop with a single machine at the first stage (as a server) and m parallel machines at the second stage
with a no-wait constraint between the two stages. The objective is to minimise the total completion time. A mathematical
formulation was proposed for the general case and two polynomial time algorithms were proposed for special cases with
m = 2. Haouari, Hidri, and Gharbi (2006) studied the two-stage hybrid flow-shop problem with multiple machines at each
stage and they presented a branch-and-bound algorithm to find the optimal solution. However, no-wait constraint is not
considered. Carpov et al. (2012) studied two versions (the classical and no-wait) of the two-stage hybrid flow-shop problem
where the second stage contains several parallel machines subject to precedence constraints with the objective of makespan
minimisation. An adaptive randomised list-scheduling (ARLS) heuristic, together with two priority rules, has been proposed
for solving both problem versions. Wang and Liu (2013a) investigated a two-stage hybrid flow shop with dedicated machine
to minimise the makespan. To solve the problem, a heuristic method based on a branch-and-bound algorithm structure is
proposed. However, on the one hand, no-wait constraint is not considered. On the other hand, the proposed method is not an
exact method though it is built on the structure of a branch-and-bound algorithm. Wang and Liu (2013b) employed genetic
algorithms to solve the two-stage no-wait hybrid flow-shop problem with the objective of makespan minimisation. However,
mixed linear programming model and exact algorithms are not explored yet.
From the literature mentioned above, it can be found that most researches in two-stage no-wait hybrid flow shop focus
on the development of heuristics or optimal solutions for special cases. There is no report for F2(1, Pm)|no-wait|C max with
a branch-and-bound method. In this context, this paper proposes a branch-and-bound method for the problem to investigate
the properties of the problem and to see how large-scale problems can be solved optimally within reasonable computational
times. Several dominance rules are first proposed and employed.
The rest of the paper is organised as follows: Section 2 describes the problem both in notation and in graph representation.
Several lower bounds are derived in Section 3, while Section 4 develops a branch-and-bound algorithm which incorporates
some derived dominance rules. Section 5 reports the results of computational tests. Finally, Section 6 concludes the paper
and gives future research.
2. Problem definition
The parameters, notations and variables used in this paper are listed as follows.
Parameters
m the number of parallel machines at stage two
n the number of jobs
aj the processing time of job j at stage one, j ∈ I = {1, . . . , n}
bj the processing time of job j on any machine at stage two, j ∈ I = {1, . . . , n}
Notation
A the single machine at stage one
i, v the machine index at stage two, i, v ∈ {1, . . . , m}
Bi the ith machine at stage two, Bi ∈ B = {B1 , . . . , Bm }
j, k, l the job index, j, k, l ∈ I = {1, . . . , n}
International Journal of Production Research 1145
Variables
σ = {σ1 , . . . , σn } a feasible schedule, where σ j = (B([ j]), [ j]), [ j] denotes the jth job scheduled
on machine A, and B([ j]) indicates on which machine, at stage two, this job is
processed
Ci, j (σ ) (i = A, B1 , . . . , Bm ) the job j’s completion time on machine i in the schedule σ
L i (σ ) the completion time of machine i (i ∈ B)
Cmax (σ ) the objective function (makespan) value of the schedule σ . If it is not ambiguous,
Cmax (σ ) can be written as Cmax
ni the number of jobs assigned on the machine Bi at stage two
πi = {πi (1), . . . , πi (n i )} (i = 1, . . . , m) a sequence of assigned jobs on machine Bi at stage two
C A,0 (σ ) = 0
L i (σ ) = 0, i ∈ B. (1)
1146 S. Wang et al.
Jobs 1 2 3 4 5 6 7 8
A 4 4 3 4 1 3 6 3
B1 3 – 6 – 3 – 2 –
B2 – 5 – 4 – 4 – 2
Objective function:
Cmax (σ ) = max{L i (σ )}, i ∈ B. (3)
For this model, the makespan under schedule σ can also be computed by determining the critical path in a directed graph.
In this directed graph, node (i, j) denotes the completion time of job j from machine i. Let (0, 1) be the start of the graph
and set a virtual node t to be the finish of the graph. In this graph, the arcs have weights. Node (0, k) (k = 1, . . . , n) has one
outgoing arc which has a weight ak . Node (A, k) (k = 1, . . . , n − 1) has two outgoing arcs; one arc goes to node (B(k), k)
and has a weight bk , the other arc goes to node (0, k + 1) and has a weight zero. Node (A, n) has one arc going to node
(B(n), n) with a weight bn . Node (B(k), k) ,k = 1, . . . , n, has one outgoing arc; if on machine B(k) job k is not the last and
followed by job l, the arc goes to node (A, l), otherwise, the arc goes to the virtual node t. The makespan under schedule σ
is equal to the length of the maximum weight path from start (0, 1) to finish t.
Example 1 (Graph Representation of No-wait Two-stage Hybrid Flow-shop)
Consider eight jobs on two-stage hybrid flow-shop which has one machine A at stage one and two parallel machines
B1 and B2 at stage two. Job processing times on each machine are presented in Table 1, i.e. σ = {(1, 1), (2, 2), (1, 3), (2, 4),
(1, 5), (2, 6), (1, 7), (2, 8)}.
The corresponding directed graph and Gantt chart are depicted in Figures 1 and 2. From the directed graph, it follows
that the makespan is 31. This makespan is determined by the critical path.
International Journal of Production Research 1147
B2 2 4 6 8
8 13 15 19 20 24 31
B1 1 3 5 7
4 7 20 2628
A 1 2 3 4 5 6 7 8
0 4 8 11 15 17 20 26 29
Since the time complexity of critical path method is O(|V |2 ) where |V | is the number of nodes in the graph. Since nodes
(0, k) are useless in the proposed graph (k = 2, . . . , n) and node (A, k) can be directly linked to node (A, k + 1), hence
|V | = 2n + 2.
Then, we know
Lem m a 1 Given a schedule for F2(1, Pm)|no-wait|Cmax , the makespan is calculated in O(n 2 ) time.
To further explore the problem, define the inverse of F2(1, Pm)|no-wait|Cmax to be the problem F2(Pm, 1)|no-wait|Cmax
where the processing times of job j ∈ I at the first and second stage are b j and a j , respectively. The equivalence between
these two problems was established by Srishandarajah (1993), which can alternatively be shown by finding the path with
maximal weights in a directed graph.
In this paper, we focus on the problem F2(1, Pm)|no-wait|Cmax . However, in view of the above theorem, all of our
results and algorithms are applicable to the equivalent inverse problem F2(Pm, 1)|no-wait|Cmax .
Hoogeveen, Lenstra, and Veltman (1996) proved that F2(1, Pm)||Cmax is NP-hard in the strong sense for m ≥ 2. Since
the proof can serve directly for our concerned problem, therefore
Lem m a 2 F2(1, Pm)|no-wait|Cmax is NP-hard in the strong sense.
Let σ denote a schedule without unnecessary machine idle time (i.e. an active schedule). Let πi = {πi (1), . . . , πi (n i )}
(i = 1, . . . , m) be a corresponding
m sequence of jobs on machine Bi at stage two, where n i denotes the number of jobs
on machine Bi . Thus, i=1 n i = n. There exists one job πv ( j ), v ∈ {1, . . . , m} and j ∈ 1, . . . , n i , in stage two with
the property that there is no idle time between jobs πv ( j ), . . . , πi (n v ) on machine Bv at stage two, and job πv ( j ) starts
processing at the second stage immediately after completion of its first-stage operation. We refer to πv ( j ) as a critical job.
Note that πv ( j ) ∈ I. In Example 1, jobs π1 (4) and π2 (4) are critical jobs which can also be, respectively, denoted by jobs
7 and 8. The makespan of schedule σ can be expressed as
Cmax (σ ) = max{L i (σ )}
i∈B
⎧ ⎫
⎨
nv ⎬
= max C A, j (σ ) + bπv (l) , (4)
j∈I ⎩
⎭
l= j
where j satisfies πv ( j ) = j. The maximum is achieved in Equation (4) for some index j, where j is a critical job.
3. Lower bounds
In this section, we derive different lower bounds.
Besides the notations and parameters defined in the former section, a list of parameters used in this section is defined as
follows.
n
Cmax (σ ∗ ) ≥ L B1 = a j + bmin . (5)
j=1
m
m
m
C A,ki (σ ∗ ) ≥ C A,[i] (σ ∗ ) = ha[m−h+1] (7)
i=1 i=1 h=1
where [i] denotes the ith job in the schedule. Arranging the jobs in the non-decreasing order of a j (i.e. SPT rule), we get a
sequence η = {η1 , . . . , ηn }. Together with the above inequality, we obtain the next lower bound
⎡ ⎛ ⎞⎤
1 n m
Cmax (σ ∗ ) ≥ L B3 = ⎢
⎢m
⎝ bj + haηm−h+1 ⎠⎥⎥. (8)
⎢ j=1 h=1⎥
We use a linear time median-finding technique to find job η1 , . . . , ηm ∈ {1, . . . , n}. For this implementation, the time
requirement for L B3 is O(n + m log m).
4. A branch-and-bound algorithm
This section gives details of the proposed branch-and-bound algorithm. In order to improve the search efficiency, the algorithm
is combined with the lower bounds for optimal schedule and ones for partial schedule that are described in Section 3.
Furthermore, three dominance rules are derived, and initial upper bounds are also generated by seven heuristic algorithms.
Then, the complete procedure of the proposed branch and bound algorithm is given.
The new parameters for this section are defined as follows:
ψ a partial sequence
ψ→ j the partial sequence in which job j is arranged immediately after the last job in ψ
Dk (χ ) the earliest time at which machine k can proceed the next job, after scheduling each job in (partial) sequence
χ , where k ∈ {A, B1 , . . . , Bm }
where L k , k = A, B1 , . . . , Bm , denotes the completion time of machine k immediately before scheduling job [ j]. Therefore,
under a given sequence, an optimal second-stage schedule is found in O(mn) time. The proof is completed.
From now on, we only consider the sequence (or permutation) of jobs since its corresponding second-stage schedule can
be obtained by applying ECT rule. In the following, we always apply Theorem 1 on a sequence or permutation to construct
its corresponding second-stage schedule.
We define ψ as a partial sequence which can be empty. For example, ψ = {[1], [2], [3]}, where n − 3 jobs still in I need
to be sequenced. Let ψ → j denote the partial sequence in which job j is arranged immediately after the last job in ψ. Let
Dk (χ ) denote the earliest time at which machine k can proceed the next job, after scheduling each job in (partial) sequence
χ , where k ∈ {A, B1 , . . . , Bm } and χ ∈ {ψ, ψ → j, ψ → j → i, ψ → i, ψ → i → j}. For example, D A (ψ) denotes the
completion time of last job in ψ on machine A. Note that Dk (χ ) = max{L k (χ ), L A (χ )} for k ∈ {B1 , . . . , Bm }.
Lem m a 3 Given a schedule χ → y for F2(1, Pm)|no-wait|Cmax , if D A (χ ) + a y ≥ Dl (χ ), arranging job y on machine
Bl dominates others (where job y is scheduled on one of second-stage machines except Bl ).
Proof Find machine Bh which satisfies Dh (χ ) = mink∈B Dk (χ ). If l = h, it is trivial by Theorem 1. Therefore, we assume
that l = h in the following. By Theorem 1, arranging job y on machine Bh is one of best choice. We prove this lemma
1150 S. Wang et al.
by showing that assigning y to machine Bl is also a best choice, which means this assignment results in the same state of
machines as applying ECT rule. From the definition of h, we know Dh (χ ) ≤ Dl (χ ) ≤ D A (χ ) +a y . We discuss the following
two situations.
Situation 1 Job y is scheduled on machine Bl .
It follows
Dl (χ → y) = D A (χ ) + a y + b y
Dh (χ → y) = D A (χ ) + a y
Dk (χ → y) = max{Dk (χ ), D A (χ ) + a y }, k = {l, h}, k ∈ B. (11)
Situation 2 Job y is scheduled on machine Bh (ECT rule).
We know
Dh (χ → y) = D A (χ ) + a y + b y
Dl (χ → y) = D A (χ ) + a y
Dk (χ → y) = max{Dk (χ ), D A (χ ) + a y }, k = {l, h}, k ∈ B. (12)
Since all the second-stage machines are identical, interchanging the index of machines Bl and Bh in Situation 1 will not
delay the start time of the next job. Therefore, this operation results in Situation 2 and it completes the proof.
Theorem 2 Given a partial sequence ψ for F2(1, Pm)|no-wait|Cmax , a (partial) sequence ψ → j → i is dominated by
ψ → i → j if jobs i and j satisfy ai ≥ a j ≥ bi ≥ b j .
Proof Construct a new sequence ψ → i → j from ψ → j → i by interchanging the positions of j and i. We will prove
this theorem by showing that Dk (ψ → i → j) ≤ Dk (ψ → j → i) for k = A, B1 , . . . , Bm . Without loss of generality,
suppose that under ψ → j → i the second-stage machine which proceeds job j is B1 . We discuss the following two cases.
Case 1 D A (ψ) + a j ≥ D B1 (ψ).
In this case, there is no idle time between j and the last job in ψ on machine A. Regarding ψ → j, we have
D A (ψ → j) = max{D A (ψ) + a j , D B1 (ψ)}
= D A (ψ) + a j .
D B1 (ψ → j) = D A (ψ → j) + b j
= D A (ψ) + a j + b j .
Dk (ψ → j) = max{Dk (ψ), D A (ψ → j)}, k = B2 , . . . , Bm . (13)
Under sequence ψ → j → i, by Lemma 3, job i is processed on machine B1 since D B1 (ψ → j) ≤ D A (ψ → j) + ai
(respectively, substitute χ and y in Lemma 3 by ψ → j and i). There is also no idle time between j and i on machine A. By
Equation (13), we have
D A (ψ → j → i) = D A (ψ → j) + ai
= D A (ψ) + a j + ai .
D B1 (ψ → j → i) = D A (ψ → j → i) + bi
= D A (ψ) + a j + ai + bi .
Dk (ψ → j → i) = max{Dk (ψ), D A (ψ → j → i)}
= max{Dk (ψ), D A (ψ) + a j + ai }, k = B2 , . . . , Bm . (14)
Now we consider sequence ψ → i → j. Since D A (ψ) + a j ≥ D B1 (ψ) and ai ≥ a j , we have D A (ψ) + ai ≥ D B1 (ψ).
We know job i is processed on a second-stage machine which can be B1 . Without loss of generality, let this machine be B1 .
There is no idle time between i and ψ on machine A. Regarding ψ → i, it follows that
D A (ψ → i) = max{D A (ψ) + ai , D B1 (ψ)}
= D A (ψ) + ai .
D B1 (ψ → i) = D A (ψ → i) + bi
= D A (ψ) + ai + bi .
Dk (ψ → i) = max{Dk (ψ), D A (ψ → i)}, k = B2 , . . . , Bm . (15)
International Journal of Production Research 1151
D A (ψ → i → j) = D A (ψ → i) + a j
= D A (ψ) + ai + a j .
D B1 (ψ → i → j) = D A (ψ → i → j) + b j
= D A (ψ) + ai + a j + b j .
Dk (ψ → i → j) = max{Dk (ψ), D A (ψ → i → j)}
= max{Dk (ψ), D A (ψ) + ai + a j }, k = B2 , . . . , Bm . (16)
L k (ψ → i → j) ≤ L k (ψ → j → i), k = A, B1 , . . . , Bm . (17)
D A (ψ → j → i) = D A (ψ → j) + ai
= D B1 (ψ) + ai .
D B1 (ψ → j → i) = D A (ψ → j → i) + bi
= D B1 (ψ) + ai + bi .
Dk (ψ → j → i) = max{Dk (ψ), D A (ψ → j → i)}
= max{Dk (ψ), D B1 (ψ) + ai }, k = B2 , . . . , Bm . (19)
Let us consider the sequence ψ → i → j. Comparing D A (ψ) + ai with D B1 (ψ), there are two possibilities.
Case 2.1 D A (ψ) + ai ≥ D B1 (ψ).
Similar to Case 1, considering D A (ψ) + a j < D B1 (ψ), this case can be proved.
Case 2.2 D A (ψ) + ai < D B1 (ψ).
In this situation, there exists idle time between i and ψ on machine A. Since D A (ψ) + a j < D B1 (ψ) and the assumption
that under sequence ψ → j → i job j is scheduled on B1 , we know D B1 (ψ) = mink∈B {Dk (ψ)}. Therefore, by ECT rule,
job i is processed on B1 under ψ → i. It follows that
D A (ψ → i → j) = D A (ψ → i) + a j
= D B1 (ψ) + a j .
D B1 (ψ → i → j) = D A (ψ → i → j) + b j
= D B1 (ψ) + a j + b j .
Dk (ψ → i → j) = max{Dk (ψ), D A (ψ → i → j)}
= max{Dk (ψ), D B1 (ψ) + a j }, k = B2 , . . . , Bm . (21)
Since ai ≥ a j and bi ≥ b j , comparing Equation (19) with Equation (21), we obtain that L k (ψ → i → j) ≤ L k (ψ →
j → i), for k = A, B1 , . . . , Bm . This completes the proof.
Theorem 3 Given a partial sequence ψ for F2(1, Pm)|no-wait|Cmax , a (partial) sequence ψ → j → i is dominated by
ψ → i → j if jobs i and j satisfy ai ≤ a j ≤ bi ≤ b j and they are processed on a same second-stage machine.
Proof Construct a new sequence ψ → i → j from ψ → j → i by interchanging jobs j and i. We will prove this theorem
by showing that Dk (ψ → i → j) ≤ Dk (ψ → j → i) for k = A, B1 , . . . , Bm . We assume that b j > 0 since if b j = 0 it
is trivial. Without loss of generality, suppose that under ψ → j → i the second-stage machine which proceeds job j is B1 .
From this assumption, we know that
D B1 (ψ) = min Dk (ψ). (22)
k∈B
Since job i is scheduled on the same second-stage machine B1 under ψ → j → i, we observe that
D B1 (ψ → j) ≤ Dk (ψ → j), k = B2 , . . . , Bm . (23)
In Equation (24), the equation with regard to Dk (ψ → j) holds because if D A (ψ → j) > Dk (ψ), together with b j > 0,
we have D B1 (ψ → j) > D A (ψ → j) = Dk (ψ → j). This is a contradiction to inequality (23).
By inequality (23) and Equation (24), we have
Under sequence ψ → j → i, from the assumption, we know that job i is scheduled on machine B1 . Since ai ≤ b j
and, thus, D A (ψ → j) + ai ≤ D B1 (ψ → j), there is no idle time between j and i on machine B1 . By Equation (24) and
inequality (25), we have
D A (ψ → j → i) = D B1 (ψ → j)
= D A (ψ) + a j + b j .
D B1 (ψ → j → i) = D A (ψ → j → i) + bi
= D A (ψ) + a j + b j + bi .
Dk (ψ → j → i) = max{Dk (ψ), D A (ψ → j → i)}
= Dk (ψ), k = B2 , . . . , Bm . (26)
D A (ψ → i → j) = D B1 (ψ → i)
= D A (ψ) + ai + bi .
D B1 (ψ → i → j) = D A (ψ → i → j) + b j
= D A (ψ) + ai + bi + b j .
Dk (ψ → i → j) = max{Dk (ψ), D A (ψ → i → j)}
= Dk (ψ), k = B2 , . . . , Bm . (28)
L k (ψ → i → j) ≤ L k (ψ → j → i), k = A, B1 , . . . , Bm . (29)
D A (ψ → i → j) = D B1 (ψ → i)
= D B1 (ψ) + bi .
D B1 (ψ → i → j) = D A (ψ → i → j) + b j
= D B1 (ψ) + bi + b j .
Dk (ψ → i → j) = max{Dk (ψ), D A (ψ → i → j)}
= Dk (ψ), k = B2 , . . . , Bm . (31)
Here, we give the reason why the equation concerned with Dk (ψ → i → j) in Equation (31) holds. From D A (ψ)+a j ≥
D B1 (ψ), bi ≤ b j and inequality (25), we have D A (ψ → i → j) ≤ D A (ψ) + a j + bi ≤ D A (ψ) + a j + b j ≤ Dk (ψ).
1154 S. Wang et al.
Since D A (ψ) + a j ≥ D B1 (ψ) and b j ≥ bi , comparing Equations (26) and (31), we deduce that
L k (ψ → i → j) ≤ L k (ψ → j → i), k = A, B1 , . . . , Bm . (32)
From the assumption, job i is scheduled on machine B1 under sequence ψ → j → i. Since ai ≤ b j and, thus,
D A (ψ → j) + ai ≤ D B1 (ψ → j), there is no idle time between j and i on machine B1 . By Equation (33) and inequality
(34), we have
D A (ψ → j → i) = D B1 (ψ → j)
= D B1 (ψ) + b j .
D B1 (ψ → j → i) = D A (ψ → j → i) + bi
= D B1 (ψ) + b j + bi .
Dk (ψ → j → i) = max{Dk (ψ), D A (ψ → j → i)}
= Dk (ψ), k = B2 , . . . , Bm . (35)
Let us consider the sequence ψ → i → j. Since ai ≤ a j and D A (ψ) + a j < D B1 (ψ), we deduce that D A (ψ) + ai <
D B1 (ψ). Together with Equation (22), we know that under ψ → i → j, job i is scheduled on machine B1 , and on machine
B1 , there is no idle time between the last job in ψ on this machine and i. Considering inequality (34), it follows that
D A (ψ → i → j) = D B1 (ψ → i)
= D B1 (ψ) + bi .
D B1 (ψ → i → j) = D A (ψ → i → j) + b j
= D B1 (ψ) + bi + b j .
Dk (ψ → i → j) = max{Dk (ψ), D A (ψ → i → j)}
= Dk (ψ), k = B2 , . . . , Bm . (37)
International Journal of Production Research 1155
To compute L B2 , first we use LDT rule to get a sequence τ = {τ1 , . . . , τn } = {3, 2, 4, 6, 1, 5, 7, 8}, then
⎧ ⎫
⎨ j ⎬
L B2 = max aτi + bτ j = max{3 + 6, 3 + 4 + 5, 4 + 3 + 4 + 4, 4 + 3 + 4 + 3 + 4,
j∈I ⎩ ⎭
i=1
4 + 4 + 3 + 4 + 3 + 3, 4 + 4 + 3 + 4 + 1 + 3 + 3,
4 + 4 + 3 + 4 + 1 + 3 + 6 + 2,
4 + 4 + 3 + 4 + 1 + 3 + 6 + 3 + 2} = 30
To compute L B3 , first we use SPT rule to get a sequence η = {η1 , . . . , ηn } = {5, 3, 6, 8, 1, 2, 4, 7}, since
1
(3 + 5 + 6 + 4 + 3 + 4 + 2 + 2 + 1 × 3 + 2 × 1) = 34/2
2
then, ⎡ ⎛ ⎞⎤
1 n
m
L B3 = ⎢
⎢m
⎝ bj + haηm−h+1 ⎠⎥
⎥ = 17
⎢ j=1 h=1 ⎥
Then, lower B = max(L B1 , L B2 , L B3 ) = 30.
Then, go to step 2.2, calculate the upper bounds.
For Johnson’s rule, the job sequence is {5, 3, 6, 2, 4, 1, 8, 7}, U B1 = 30.
For Modified Johnson’s rule, the job sequence is {5, 3, 6, 4, 2, 8, 7, 1}, U B2 = 31.
For LPT rule, the job sequence is {3, 2, 4, 6, 1, 5, 7, 8}, U B3 = 30.
For Large–Small rule, the job sequence is {3, 8, 2, 7, 4, 5, 6, 1}, U B4 = 31.
For Large–medium rule, the job sequence is {3, 1, 2, 5, 4, 7, 6, 8}, U B5 = 30.
For LD rule, the job sequence is {1, 3, 7, 5, 6, 2, 4, 8}, U B6 = 30.
For Modified Gilmore and Gomory’s rule, the job sequence for U B71 is {4, 8, 2, 5, 6, 7, 3, 1}, U B71 = 30. the job
sequence for U B72 is {5, 6, 7, 4, 8, 3, 2, 1}, U B72 = 30. Hence, U B7 = 30.
Then, we can get bestc = min(U Bi) = 30. For this example, the proposed BBA algorithm steps by step 3 since
bestc = lower B = 30.
International Journal of Production Research 1157
Though we do not need dominance rules for this example problem, let us illustrate them. For the example mentioned
above, a (partial) sequence ψ → 1 → 4 is dominated by ψ → 4 → 1 since they satisfy a4 ≥ a1 ≥ b4 ≥ b1 , according to
Theorem 2. Similarly, according to Theorem 2, a (partial) sequence ψ → 8 → 1 is dominated by ψ → 1 → 8 since jobs 8
and 1 satisfy a1 ≥ a8 ≥ b1 ≥ b8 .
According to Theorem 3, a (partial) sequence ψ → 3 → 6 is dominated by ψ → 6 → 3 if they are processed on a same
second-stage machine since jobs 3 and 6 satisfy a6 ≤ a3 ≤ b6 ≤ b3 . Similarly, a (partial) sequence ψ → 6 → 5 is dominated
by ψ → 5 → 6 if they are processed on a same second-stage machine since jobs 5 and 6 satisfy a5 ≤ a6 ≤ b5 ≤ b6 . Also,
job 5 and job 3, job 2 and job 4, job 2 and job 6, and job 4 and job 6 can also apply Theorem 3.
As for the partial lower bounds, let us assume we have a partial schedule ψ = {3, 4}, then we can obtain
L B4 = 3 + 4 + 4 + 4 + 1 + 3 + 6 + 3 + 2 = 30
1
L B5 = 3 + 4 + 1 + (max{3 + 6 − (3 + 4 + 1), 0},
2
max{4 + 4 − (3 + 4 + 1), 0} + 3 + 5 + 3 + 4 + 2 + 2)
= 18
5. Computational results
In this section, we present the results of our computational tests with the proposed branch-and-bound procedure.All algorithms
are coded in Visual C++ 6.0 with minheap class and implemented on a personal computer with an Intel 2.10 GHz CPU and
1.96 GB RAM.
CLASS 1
Number of problems
ACTa ANENb solved in 900 s
Number of problems
n m BB0 BBD23 BBP BBA BB0 BBD23 BBP BBA solved at root node BB0 BBD23 BBP BBA
and CLASS 3, respectively. For example, as shown in Table 2, the average CPU computation time in seconds of 10 CLASS
1 problem instances with n = 10, m = 5 are 1.625, 2.169, 0.395 and 0.481 for BB0, BBD23, BBP and BBA, respectively.
The average numbers of exploring nodes with these four methods are 365,863, 363,888, 46,921 and 46,807, respectively.
There is 1 out of 10 problem instances that can be solved at root node because the upper bound equals to the lower bound.
All 10 problem instances can be solved by these four methods in pre-set 900 s.
Computational results with average makespan compared with initial lower bounds and upper bounds, number of problems
whose initial lower bound and initial upper bounds equals optimal solution are shown in Tables 5–7, for CLASS 1, CLASS 2
and CLASS 3, respectively. Note that, number of problems whose initial lower (upper) bound value equals optimal solution
are listed in the parenthesis if all 10 problems can be solved in 900 s. The bold values are used to highlight the better bound
(either lower bound or upper bound). Based on the results, the following observations can be made.
(1) Comparison of effectiveness of branch-and-bound methods: Tables 2–4 show that, all four branch-and-bound
algorithms perform satisfactorily when there are 10 or 12 jobs. Computation times and number of exploring nodes
become larger as the number of jobs increases. This is an expected result due to the increasing search space. BBA is
most effective at fathoming nodes when compared with BBP,BBD23 and BB0, indicating the combined strength of
the partial lower bounds and dominance rules. In addition, the number of exploring nodes of BBP is less than those
of BBD23, which in turn is less than those of BB0. This indicates the important roles of the partial lower bounds and
two dominance rules separately, and the partial lower bounds is relatively more effective than two dominance rules
in these tested cases.
(2) Comparison of efficiency of branch-and-bound methods: As for the computation times, as the number of machines
increases, it needs much more time for BB0 and BBD23 than BBA and BBP. Since the computational times for
BBD23 and BB0 are already relatively large, only BBA and BBP are used to test the problems with 15 jobs and 20
jobs. The results in Tables 2–4 show that the quality of solutions of BBA and BBP are comparable. It takes a little
more time for BBA than BBP. This may be explained as follows: as the number of machines increases, the probability
of satisfying the conditions of Theorem 2 becomes less, meanwhile the probability of satisfying the conditions of
Theorem 3 cannot be increased either due to the constraint of the same machine on the second stage (the possibility
of the same machine is getting less as the number of machines increased), but the additional computational efforts
of subroutines of these two dominance rules are still needed.
(3) Effects of problem configurations: It is apparent from Table 3 that problems in CLASS 2 are relatively easy to solve.
There are more problems that can be solved at root node with the initial upper bound equivalent to the initial lower
Table 3. Results of four branch and bound algorithms for CLASS 2 problems.
CLASS 2
ACT ANEN Number of problems solved in 900 s
Number of problems
n m BB0 BBD23 BBP BBA BB0 BBD23 BBP BBA solved at root node BB0 BBD23 BBP BBA
20 2 0.006 0.007 51 50 7 10 10
3 0.106 0.114 12,136 11,286 5 10 10
5 90.024 90.027 10,422,347 8,673,192 6 9 9
10 360.006 360.006 34,177,494 28,090,744 5 6 6
1159
1160
Table 4. Results of four branch and bound algorithms for CLASS 3 problems.
CLASS 3
ACT ANEN Number of problems solved in 900 s
Number of problems
n m BB0 BBD23 BBP BBA BB0 BBD23 BBP BBA solved at root node BB0 BBD23 BBP BBA
10 2 291.5 291.5 291.5 291.5 272.3(1) 274.6(4) 257.5 323.6 318.5 344.7 355.6 343.4 333.9 323.1
3 204.8 204.8 204.8 204.8 174.2 181.1(1) 189.1 248.3 223 241.5 253 251.6 249.9 230.5
5 132.2 132.2 132.2 132.2 115.1(2) 124.2(4) 114.7 163.7 142.4(1) 149.5 170.4 166.3 172.1 165.2
10 99.3 99.3 99.3 99.3 66.2 99.3(10) 71.2 126 105.8(2) 99.3(10) 109.8(1) 109.6(1) 121.5(2) 121.3
12 2 323.4 323.4 323.4 323.4 304.6(3) 304.9(3) 293 374.5 366.8 394.5 396.7 392.8 389.5 356.3
3 223.7 223.7 223.7 223.7 197.5 200.5 214.6 264.4 260.6 283.5 289 286.7 293.4 273.6
5 147.8 147.8 147.8 147.8 129.7(2) 136.6(3) 131.9 185.2(1) 161.9 177.7 190.2 185.3 193.5 193.4
10 105.1 105.1 105.1 105.1 72.1 105(9) 80.9 132.6 111.7 105.1(10) 123.5(1) 124.9(1) 143.2 133.9
15 2 411.3 411.3 391.1(4) 391.1(4) 370.9 483.8 476.2 500.6 502.6 499.8 488.2 468
3 293.2 293.2 259.7(3) 259.7(3) 276(3) 344.8 329.5 364.1 364.6 366.1 362.5 345
5 170.5 170.5 159.3(3) 161.6(3) 161.2 224.1 199.5 215.1 224.6 226.4 243.7 222.1
International Journal of Production Research
10 115.3 115.3 86.5 113.5 93.9 147.9 127.6 124.6 145.7 145.1 159.6 152.7
20 2 568.2 568.2 505.6 480.5 530.1 652.1 647.2 681.7 706.6 677.5 654.2 637.6
3 363.2 363.2 342.6 328 338.6 436.3 434.9 463.8 453.1 443.7 454.4 425.3
5 225.7 225.7 215.3 203.4 201.4 268.7 257.8 283.2 285.8 278 298.7 284.3
10 137.9 137.5 111.3 116.3 114.7 181.7 145.6 157.6 177.2 170.4 189.1 181.7
1161
1162
Table 6. Average makespan of four branch and bound algorithms, lower bounds, and upper bounds for CLASS 2 problems.
10 2 491.3 491.3 491.3 491.3 488.6(9) 437.9 255.6 513.2(3) 501.4(8) 503.3(6) 532.3 512.1(3) 526.5(2) 497.9(6)
3 354.6 354.6 354.6 354.6 352.1(7) 323.2 182.1 356.3(7) 355.2(8) 358(5) 388.9 377.4(3) 393.1(1) 366.6(3)
5 201.3 201.3 201.3 201.3 198.2(8) 176.9 119 216.7(3) 205.1(6) 216.1(6) 238.4 228.3(1) 241.5 223.3(1)
10 136.6 136.6 136.6 136.6 124 136.6(10) 99.4 160(1) 140(4) 136.6(10) 162.7 157.8 174.8 160.5(1)
12 2 568.4 568.4 568.4 568.4 568.4(10) 511 324.1 594.4(4) 594.3(4) 618.6(3) 629.1 597.9(3) 614.3 579.1(6)
3 384.5 384.5 384.5 384.5 384.5(10) 357.4 219.4 399.4(6) 398.1(6) 409.4(3) 434.7 420.2 441.4 398.9(3)
S. Wang et al.
5 238.8 238.8 238.8 238.8 235.7(7) 213.6 135.7 254.5(2) 240.1(9) 250.8(2) 274.9 261.9(1) 291.8 270.4
10 139.3 139.3 139.3 139.3 132.2(4) 139.3(10) 96.6 180.7 141.1(6) 139.4(9) 175.5 166.4 194.3 174.9(1)
15 2 716.2 716.2 716.2(10) 665.9 386.5 755.2(3) 753(4) 768.5(2) 778 742.8(3) 758.7(1) 732.4(5)
3 537.2 537.2 537.2(10) 507 278.4 553(2) 549.1(6) 554.3(5) 579.3 551(1) 587.7 552.6(3)
5 299.1 299.1 299.1(10) 281.9 162 311.1(5) 303(7) 313.5(4) 341.3 316.6(1) 344.7 324.4
10 183.2 183.2 180.1(6) 183.2(10) 111.1 221 183.8(7) 183.2(10) 223 223 231.4 221.8
20 2 1059.4 1059.4 1059.4(10) 1003.8 514.0 1096.1 1092.8(1) 1109.3(1) 1128.9(1) 1098.7 1089.2 1060.7(7)
3 676.3 676.3 676.3(10) 641.3 350.7 702.6(2) 704.5(3) 698.5(3) 730.8 710.1(1) 726.6 693.2(2)
5 421.4 421.4 420.8 400.3 214.8 434.6 426.2 437.3 461.6 447.5 478.8 453.6
10 220.1 220.1 217.6 211.1 124.8 238.3 221.7 222.6 259.7 253.2 272.6 264.0
Table 7. Average makespan of four branch and bound algorithms, lower bounds, and upper bounds for CLASS 3 problems.
10 2 264.9 264.9 264.9 264.9 186.1 173.6 261.1(2) 292.5 293.1 311.9 312.5 308.1 298.4 286.3
3 189 189 189 189 125.5 123.8 184.2 223.7 207.2 221.7 226.2 230.1 227.5 214.8
5 119.9 119.9 119.9 119.9 81.6 99.2 108 151.2 134.3(1) 136.5 146.9 143.8 150.2 137.9
10 92.9 92.9 92.9 92.9 50.9 92.9(10) 65.8 109.8 102.1 92.9(10) 95.9(4) 97.9(2) 107.6 105.9(1)
12 2 304.9 304.9 304.9 304.9 204.9 191.4 299.6 334.2 335.7 349.7 360.2 347.2 340.1 341.3
3 194.5 194.5 194.5 194.5 132.2 133.4 189.5 227.9 212.6 229.6 236.7 235.6 236.9 226.6
5 136.8 136.8 136.8 136.8 91.4 104.8 129.2 176.8 157.6 158.4 171.2 173 175 168.2
10 102.3 102.3 102.3 102.3 53.3 102.3(10) 81.6 128.1 116.8 103(8) 112.7 116.1 122 121.7
15 2 407.9 407.9 250.4 232.5 406.5(1) 447.7 451.2 480.8 481.6 457.6 453.2 440.8
3 249.6 249.6 172.4 165.7 247.8 290.9 278.9 298.8 296.1 290.3 294.4 280.5
5 152.6 152.6 111.6 111.2 147.7 191.8 170.6 186.8 192.7 188.4 194.2 198.7
International Journal of Production Research
10 102 102 58 100.3 83 133.9 118 105 111.9 110.8 125.3 126.7
20 2 502.7 502.7 342.7 343.5 501.8 557.8 558 585 576.2 565.1 554.8 551.2
3 344.2 344.2 221.8 225.6 343 388.4 380.3 398.6 403 395.4 397.6 385.3
5 231.1 231.1 153.9 163.6 226.4 267.8 253.3 271.1 275.8 273.2 282.1 280.2
10 122 122 74 100.7 110.5 158.8 141.7 136.4 157.4 154.7 163.6 157.6
1163
1164 S. Wang et al.
Paired Samples Test
Paired Differences
95% Confidence
Interval of the
Std. Error Difference
Mean Std. Deviation Mean Lower Upper t df Sig. (2-tailed)
Pair 1 UB2 - UB3 -11.29792 12.77490 1.84390 -15.00736 -7.58847 -6.127 47 .000
Pair 2 UB2 - UB7 -10.04583 16.71871 2.41314 -14.90044 -5.19123 -4.163 47 .000
Pair 3 UB3 - UB7 1.25208 24.08985 3.47707 -5.74288 8.24705 .360 47 .720
Table 8. The comparisons of computational efforts between the proposed BBA and the CPLEX.
ACTa
CLASS 1 CLASS 2 CLASS 3
n-m CPLEX BBA CPLEX BBA CPLEX BBA
bound for CLASS 2 than for CLASS 1 and CLASS 3. This means that the proposed lower bound and upper bound
are more effective for CLASS 2 than for other two classes. Tables 2 and 4 show that problems in CLASS 3 are
slightly harder than those in CLASS 1, since the number of problems in CLASS 1 that can be solved is more than
those in CLASS 3 for most cases of (n,m) combination when n = 15 or n = 20. This is mainly because of the lighter
workload at the second stage, the less idle time (i.e. jobs can processed after each other immediately) is expected at
the first stage for CLASS 1, which will lead to less makespan and make the method may discard more nodes during
the searching process.
(4) Comparison of bounds: It can also be obtained that from Tables 5–7, in most of the tested problems, L B2 ,L B1 and
L B3 have largest mean lower bound values in CLASS 1, CLASS 2 and CLASS 3, respectively. As for the upper
bound, UB2 has smallest mean upper bounds values for most tested problems in CLASS 1, CLASS 2 and CLASS
3. However, as the number of machines increases, UB3 is getting more and more closer to optimal solutions. UB3
results into the optimal solution if the number of machines equals to the number of jobs. It is also observed that UB7
performs better when the number of machines at the second stage is 2. Therefore, L B2 ,L B1 and L B3 may be more
effective for problems in CLASS 1,2 and 3, respectively, than other lower bounds. While UB2,UB3 and UB7 are
more effective upper bounds for problems in all three classes, and based on paired-samples t test, we found that UB2
is best (as shown in Figure 3). This can be used to guide the design of constructive or local search-based heuristics
for large-scale problem.
International Journal of Production Research 1165
Based on the above results, we conclude that dominance rules, bounds, (especially partial lower bounds) play an important
role in the branch-and-bound algorithm. BBA and BBP are comparable (The results for almost all cases are same of these
two methods. BBA performs slightly better for the case of (n = 20, m = 10) of CLASS 1), and are more efficient than the
other two methods. BBA takes slightly more CPU seconds than BBP does, which may be due to the additional testification
of dominance rules (Theorems 2 and 3) during the computational process.
We have also included the MIP model in the appendix. Then, we have used ILOG CPLEX to solve the problems to
compare the performance of the proposed BBA method. The comparison results are shown in Table 8. The results show the
efficiency of the proposed BBA compared with the CPLEX. The results also show that it is most difficult for CPLEX to solve
CLASS 2 problems, while it is easiest for CPLEX to solve CLASS 3 problems. On the contrary, the proposed BBA method
is much easier to solve CLASS 2 problems.
6. Conclusions
This paper considers a two-stage no-wait hybrid flow-shop scheduling problem in which the first stage contains a single
machine, and the second stage contains several identical parallel machines. The objective is to minimise makespan. We
developed a branch-and-bound algorithm which incorporates some lower bounds, partial lower bounds, upper bounds and
dominance rules. The computational results with comparisons show the efficiency and effectiveness of the partial lower
bounds and dominance rules. The proposed branch-and-bound algorithm can solve problems with up to 20 jobs within
reasonable computational time. The effects of different problem configurations and different bounds are also analysed.
Further research may explore stronger dominance rules and tighter bounds to improve the branch-and-bound algorithm
to solve larger size problem. There is also a need for efficient heuristic or meta-heuristic methods. Consideration of other
objectives, such as minimisation of total flow time or total tardiness, is also interesting and worthy of future investigation.
Acknowledgements
The authors would like to thank the editors and anonymous referees for their helpful comments and suggestions which have significantly
improved the presentation of the paper.
Funding
This work was supported by the National Science Foundation of China [grant number 71101106], [grant number 71171149], [grant number
71428002]; NSFC major program [grant number 71090404/71090400].
References
Liu, Z. X., J. X. Xie, J. Li, and J. F. Dong. 2003. “A Heuristic for Two-stage No-wait Hybrid Flowshop Scheduling with a Single Machine
in Either Stage.” Tsinghua Science and Technology 8: 43–48.
Mascis, A., and D. Pacciarelli. 2002. “Job-shop Scheduling with Blocking and No-wait Constraint.” European Journal of Operational
Research 143: 498–517.
Pinedo, M. 1995. Scheduling: Theory, Algorithm, and Systems. 2nd ed. Englewood Cliffs, NJ: Prentice Hall.
Ribas, I., R. Leisten, and J. M. Framinan. 2010. “Review and Classification of Hybrid Flow Shop Scheduling Problems from a Production
System and a Solutions Procedure Perspective.” Computers & Operations Research 37: 1439–1454.
Ruiz, R., and J. Vázquez-Rodríguez. 2010. “The Hybrid Flow Shop Scheduling Problem.” European Journal of Operational Research
205: 1–18.
Srishandarajah, C. 1993. “Performance of Scheduling Algorithms for No-wait Flowshops with Parallel Machines.” European Journal of
Operational Research 70: 365–378.
Tang, L. X., and X. P. Wang. 2010. “An Improved Particle Swarm Optimization Algorithm for the Hybrid Flowshop Scheduling to Minimize
Total Weighted Completion Time in Process Industry.” IEEE Transactions on Control Systems Technology 18: 1303–1314.
Wang, S. J., and M. Liu. 2013a. “A Heuristic Method for Two-stage Hybrid Flow Shop with Dedicated Machines.” Computers & Operations
Research 40: 438–450.
Wang, S. J., and M. Liu. 2013b. “A Genetic Algorithm for Two-stage No-wait Hybrid Flow Shop Scheduling Problem.” Computers &
Operations Research 40: 1064–1075.
Xie, J. X., W. X. Xing, Z. X. Liu, and J. F. Dong. 2004. “Minimum Deviation Algorithm for Two-stage No-wait Flowshops with Parallel
Machines.” Computers and Mathematics with Applications 47: 1857–1863.
Appendix
In this part, we present a mixed integer linear programming (MIP) model for the considered problem. The purpose is to use ILOG CPLEX
12.5 to solve the same problem as a comparison for the proposed heuristics. First, we denote the coefficients and then define decision
variables.
Coefficients
N set of jobs, i.e. N = {1, 2, . . . , n}
M set of second-stage machines, i.e. M = {1, . . . , m}
ai job i’s processing requirement on the first stage
bi job i’s processing requirement on the second stage
M̄ a sufficiently large integer
Decision variables
yik binary, equal to 1 iff job i is assigned to the second-stage machine k
xiAj binary, equal to 1 iff job i precedes job j on the first-stage machine A
xikj binary, equal to 1 iff job i precedes job j on the second-stage machine k ∈ M, provided that yik = y kj = 1
Sik job i’s start time on a second-stage machine k ∈ M. Sik = 0 if yik = 0
Cik job i’s completion time on a second-stage machine k ∈ M. Cik = 0 if yik = 0
SiA job i’s start time on the first-stage machine A
CiA job i’s completion time on the first-stage machine A, i.e. CiA = SiA + ai
Cmax the makespan
No-wait constraint:
Convexity constraint on y:
yik = 1, i ∈ N. (50)
k∈M
Convexity constraint on x A :
xiAj + x ji
A = 1, {i = j} ∈ N . (51)
Linking constraint:
Range of variables: