Useful Cplex PDF
Useful Cplex PDF
TigerPrints
All Dissertations Dissertations
8-2017
Recommended Citation
Alghazi, Anas Alsayed, "Balancing and Sequencing of Mixed Model Assembly Lines" (2017). All Dissertations. 2022.
https://tigerprints.clemson.edu/all_dissertations/2022
This Dissertation is brought to you for free and open access by the Dissertations at TigerPrints. It has been accepted for inclusion in All Dissertations by
an authorized administrator of TigerPrints. For more information, please contact [email protected].
BALANCING AND SEQUENCING OF MIXED MODEL
ASSEMBLY LINES
A Dissertation
Presented to
the Graduate School of
Clemson University
In Partial Fulfillment
of the Requirements for the Degree
Doctor of Philosophy
Industrial Engineering
by
Anas Alsayed Alghazi
August 2017
Accepted by:
Dr. Mary E. Kurz, Committee Chair
Dr. David Neyens
Dr. Kevin Taaffe
Dr. Joshua Summers
ABSTRACT
Assembly lines are cost efficient production systems that mass produce identical
products. Due to customer demand, manufacturers use mixed model assembly lines to
produce customized products that are not identical. To stay efficient, management
decisions for the line such as number of workers and assembly task assignment to stations
need to be optimized to increase throughput and decrease cost. In each station, the work to
be done depends on the exact product configuration, and is not consistent across all
products.
In this dissertation, a mixed model line balancing integer program (IP) that
considers parallel workers, zoning, task assignment, and ergonomic constraints with the
objective of minimizing the number of workers is proposed. Upon observing the limitation
of the IP, a Constraint Programming (CP) model that is based on CPLEX CP Optimizer is
developed to solve larger assembly line balancing problems. Data from an automotive
OEM are used to assess the performance of both the MIP and CP models. Using the OEM
data, we show that the CP model outperforms the IP model for bigger problems. A
sensitivity analysis is done to assess the cost of enforcing some of the constraint on the
computation complexity and the amount of violations to these constraints once they are
disabled. Results show that some of the constraints are helpful in reducing the computation
time. Specifically, the assignment constraints in which decision variables are fixed or
bounded result in a smaller search space. Finally, since the line balance for mixed model
is based on task duration averages, we propose a mixed model sequencing model that
ii
minimize the number of overload situation that might occur due to variability in tasks times
overload situations and allow interactions between stations via workers swimming. An IP
model formulation is proposed and a GRASP solution heuristic is developed to solve the
problem. Data from the literature are used to assess the performance of the developed
heuristic and to show the benefit of swimming in reducing work overload situations.
iii
DEDICATION
iv
ACKNOWLEDGMENTS
First and foremost, all praise and thanks to Allah the most merciful and the most
gracious for his guidance and blessings he bestowed upon me and my family.
Beth Kurz for her guidance and support through this journey. I am honored to have her as
my advisor, her support in my research is unmatched by anything else. The dedication and
attention she pays to her students and their work is amazing. She will always be one of my
great role models. I would like also to show my gratitude to my committee members Dr.
Joshua Summers, Dr. Kevin Taaffe, and Dr. David Neyens for their valuable advice and
comments. I am also grateful for the valuable comments and support that our Department
Special thanks are extended to the faculty members and staff in the Department of
Industrial Engineering. I am thankful for Martin Clark and Brandon March for the technical
support they provided to me. Words of appreciation are due to my colleagues in the
for the fruitful discussions we used to have about the line balancing problem. Thanks to
him and to the team at BMW for effort they made in collecting data.
I am thankful to my parents Alsayed Alghazi and Afaf Bahjat for their guidance
and prayers, my brothers and sisters for their unconditional love and support. I am thankful
to my lovely wife and friend Afaf Effat who has been always on my side during times of
serenity and stress. Without her love and support this work would have been much harder.
v
I cannot thank her enough for putting up with me during my studies. Finally, I am thankful
to my children Albatool, Omar, Sofana, and Suhyla for being the gifts that always reminded
me what is important.
vi
TABLE OF CONTENTS
Page
ABSTRACT ......................................................................................................... ii
DEDICATION .................................................................................................... iv
ACKNOWLEDGMENTS ................................................................................... v
CHAPTER
1. INTRODUCTION ......................................................................................... 1
Introduction ............................................................................................ 18
Problem description ............................................................................... 21
Related work .......................................................................................... 33
Motivation .............................................................................................. 46
The mathematical model ........................................................................ 47
The constraint programming model ....................................................... 53
Computational experiments ................................................................... 58
Conclusion ............................................................................................. 62
vii
Table of Contents (Continued)
Page
Introduction ............................................................................................ 64
The line balancing constraints ............................................................... 65
Experimental configuration ................................................................... 67
Results .................................................................................................... 68
Discussion .............................................................................................. 73
Conclusion ............................................................................................. 79
Introduction ............................................................................................ 81
Mixed model sequencing versus car sequencing ................................... 82
Problem description ............................................................................... 84
Related work .......................................................................................... 86
Model formulation ................................................................................. 98
Mathematical model............................................................................. 100
Solution approach ................................................................................ 103
Computational experiments ................................................................. 110
Conclusion ........................................................................................... 121
viii
LIST OF TABLES
Table Page
ix
List of Tables (Continued)
Table Page
x
LIST OF FIGURES
Figure Page
xi
List of Figures (Continued)
Figure Page
xii
CHAPTER ONE
1 INTRODUCTION
production units known as stations. Production is initiated with a job which is a workpiece
that is launched down the line. This workpiece flows through stations using a transportation
system such as a conveyor belt. At each station a number of operations, known as tasks,
are performed on the workpiece. Each task requires a certain amount of time to be
the physical structure of the product, there are relations between tasks that necessitate
finishing some tasks before starting others. These constraints are captured in a precedence
graph in which each task is represented by a node and each precedence relation is
The assembly line balancing problem (ALBP) is the decision problem of finding a
feasible line balance; in other words, assigning each task to one station such that the
precedence constraints and any additional restrictions are fulfilled. For the case of paced
assembly line, the cycle time determines the maximum time a workpiece can spend at each
station. The line balance is feasible only if the total sum of task durations at any given
station, named the station load, does not exceed the cycle time. In addition, if the station
load is less than the cycle time then the idle time for each cycle would be the difference
between the station load and the cycle time. The word “balancing” stemmed from the fact
1
that minimizing the total idle time across all station would yield a balanced workload across
all stations which can be achieved by minimizing the number of workstations. This
problem was named the simple assembly line balancing problem (SALBP) by Baybars
(1986). The assumptions for the SALBP are: production of one product, paced line with
fixed cycle time, deterministic operation times, no assignment restrictions other than the
precedence constraints, serial line layout with one sided stations, and identical stations in
1.1.1 Classification
balancing; the objective used should reflect the strategic goals of the organization. While
using a cost/profit type of objective is tempting, it may not be the best choice because of
the errors that may occur when estimating either the cost of operating the line over a long
period of time or the profit from selling the final products. For this reason, other objectives
are used which define four versions of the SALBP. The first version utilizes the objective
of minimizing the number of stations for a given fixed cycle time which is referred to as
SALBP-1. The second version utilizes the objective of minimizing the cycle time for a
given fixed number of stations which is named SALBP-2. The third version is SALBP-E
which maximizes the line efficiency, and the fourth version is SALBP-F which searches
for a feasible solution given a fixed number of station and cycle time. (Scholl, 1999)
Traditionally the research in the assembly line balancing field was focused on the
SALBP with all of its restricting assumptions. However, recently a lot of research is
generalized because real life line balancing problems require more than the set of limiting
2
assumptions of the SALBP. In the simple problem, other practical consideration are
overlooked in the model such as having more than one product, parallel work stations and
shaped assembly lines. According to Baybars (1986), the attempts to extend the SALBP
by integrating practical issues to make the problem more realistic are categorized under the
general assembly line balancing problem (GALBP). In order to structure the research in
the field of ALBP in an attempt to close the gap between academic discussion and practical
applications, Boysen et al. (2007) introduced a tuple notation similar to the one adopted in
the machine scheduling field so that any ALBP can be easily characterized by it. This tuple
notation characterizes the problem according to: precedence graph characteristics, station
and line characteristics, and objectives. Using this notation more than half a billion
variations of the ALBP can now be easily characterized. This notation also accommodates
more realistic ALBP after the structure of SALBP have been well studied and more
research is going to be geared towards the applicable realistic line balancing problems.
Assembly lines in which one product is assembled are categorized as single model.
If more than one model or version of the product is assembled on the same line, the
different models are intermixed on the assembly line. For random inter-mixing of models
the problem of balancing the line is referred to as the mixed model assembly line balancing
problem (MALBP). The different line types are shown in Figure 1 in which different
models are represented by different geometric shapes. Usually models may differ from
3
each other in size, color, material or any other specifications such that their production may
require new tasks, different task times, or different precedence constraints. However, most
of the time all models contain identical (or interchangeable) parts and usually their
production process is similar. The difference could be as simple as options that are either
present or absent from the desired model. (Becker & Scholl, 2006)
different planning horizons need to be solved. For the long term horizon, the decision on
the assignment of tasks to workstations (line balancing) needs to be taken. This includes
other decisions like determining the number of workstations, station workload, production
rate or equivalently, the cycle time. All of these decisions are part of the MALBP. As in
the single model problem, there are different versions of the MALBP depending on the
4
objective sought. However, the mixed model problem is much harder than the single model
as station utilizations’ need to be balanced with respect to each model or even across all
models. Thus, single model objectives are not adequate in this case. In addition, the cycle
time for each of the mixed models is different from the one used in the single model case
and it is not considered as an upper bound to the station time because average task durations
are used for the mixed model case. So if there are some models with station times that are
significantly smaller than the cycle line, it is expected that for some other models the station
time will exceed the cycle time. This in turn will lead to stations with idle time or work
For mixed model line management, the long term decision of determining the line
balance and the desired production rate is not enough. This is due to the inefficiencies that
result from the variation of station utilizations with respects to the models, which is a result
of using averages of task durations across all models to come up with line balance. To deal
with this, a short term decision problem is used to find a sequence of models that satisfies
the demand over the production period and optimize some given objective. This problem
is named the mixed model sequencing problem (MMS). This problem is considered short
term since it arises every production shift which could be daily or weekly. The balancing
and sequencing problems are interrelated and each depends on the other. The actual
performance of a line balance that is achieved by using task averages depends on the order
of the production sequence. If models with high task times are consecutive in a production
sequence some stations will require more than the cycle time to finish the assembly tasks
assigned to it. This will cause a work overload that disturbs the assembly line and might
5
cause it to stop incurring costs. One way to avoid work overload is to alternate high and
low demanding models such that work overload is minimized. Mixed model sequencing
takes into account worker movement in stations and uses different model task duration to
determine the best production sequence that minimizes the work overload.
6
1.2 Constraint programming background
Operations Research (OR) has been the traditional field of research for solving
combinatorial problems like scheduling. In OR, solutions are achieved by solving simple
mathematical models that heavily exploit the combinatorial structure of the scheduling
problem to get the best performance. So “OR” is more about achieving a high level of
efficiency by using the proper solution algorithm. However, simplifying the problem by
solve a practical combinatorial problem like scheduling using the classical OR models. In
some cases, this makes the solutions to these simplified models uninteresting because they
are not applicable as a solution to the real problem. On the other hand, artificial intelligence
(AI) research in scheduling tends to explore more general scheduling models and solution
was introduced to combine the benefits of OR and AI such that we have algorithms that
are both efficient and can be applied to a wide variety of problems (Baptiste et al. 1995).
programming languages. However, recently operations research (OR) has been a major
influence to CP. The interface and modeling aspect of CP is close to the computer science
field but recently the solution strategies and efficient algorithms in CP has been influenced
by OR. Generally, CP is used to solve what is called the constraint satisfaction problem
7
(CSP). An instance of the CSP is composed of a set of variables, a domain for each variable
that defines the values to which the variable may be assigned, and a set of constraints that
define the relation between the values of one or several variables. Solving a CSP involves
assigning values to variables such that all constraints are satisfied. If a feasible solution is
found by assigning values from the domain to each variable, the problem is said to be
satisfiable. If no assignment of values to variables from their domains that satisfy all
Sometimes it is not useful to only get a feasible solution; instead we want to find a
solution that is optimal with respect to a certain criterion. This problem is called the
constraint optimization problem (COP) which is simply a CSP with an objective function.
CSP can be modified to solve COP by creating an objective variable that represents the
objective function. When an initial feasible solution is found, a new objective constraint is
added that forces the (new) objective variable to be better than the initial solution found.
This is repeated every time a new better feasible solution is found until the problem
becomes unsatisfiable in which the last feasible solution found is the optimal solution to
the COP. It should be noted that there are different approaches to tackle the CSP. One
approach is using IP techniques such as the cutting plane method, and the Branch and
Annealing (SA), Tabu Search (TS), and Genetic Algorithms (GA). The term constraint
programming in general means a computer implementation to solve the CSP but it has been
also used in the literature to denote implementing these algorithms in a conventional logic
8
to overcome some of the insufficiencies and new languages have been developed such as
Constraint Handling in PROLOG (CHIP). During this time, some authors started using the
term constraint logic programming (CLP) in the literature in place of CP which might be
confusing. Another approach to tackle CSP was implementing CP using general purpose
programming languages like C++ or a special declarative language such as the OPL
such as IBM ILOG CPLEX that is based on the OPL language or the Fico Express
optimization suite which is based on the Mosel language. Recently, algebraic modeling
languages such as AMPL and AIMMS have been extended to allow CP. There are also
many free CP modeling languages that can be considered medium level modelling
languages that usually require a low-level CP solver. The area of CSP research has received
more attention lately with the advancement in computer hardware which has made efficient
CP variables may have different types of domains, such as integer, logical, or any
non-numerical domain. Also, unlike linear programming, different types of constraints can
be used for each type of variable such as arithmetic and logical constraints. The solution
search. To demonstrate these techniques, a CSP can be presented as a graph in which the
nodes are variables represented by their domain and the arcs are the constraints between
these variables. We use examples from Fromherz (2001) to demonstrate domain reduction
constraints on a variable’s domain. For example if integer variable X has a domain [0,10]
9
and there is a direct constraint X>3, the domain of X is reduced to [4,10]. If we have another
integer variable Y with the domain [0,10] that is connected to X via a constraint X<Y-3,
then the changes in the domain of X are propagated to change the domain of Y to be [7,10].
The change in Y’s domain is propagated again to change the domain of X to [4,7]. This
process is called domain propagation and results in what is called arc consistency in which
inconsistent values are removed from the variables’ domains along the arcs of the graph.
The process of constraint propagation and arc consistency are illustrated in Figure 2.
The main aim of constraint propagation and domain reduction is to remove values
from variable’s domains that will certainly lead to infeasible solutions in hopes to reduce
not all inconsistent values are removed from the variables’ domains. If all domains are
reduced to one variable then a feasible solution might be found as a result of constraint
10
propagation only but a feasible solution is not guaranteed. In most cases search is usually
propagation is used to reduce the domains of variables that are not fixed in order to reduce
The search in CP is usually done as a depth-first tree search with domain filtering.
constraint is violated the last variable assignment is undone and the variable is assigned
another value from its domain. If there is still no feasible solution backtracking occurs in
which the search backtracks to a previously assigned variable. The search continues until
all branches in the search tree are explored. The search efficiency is affected by the way
the search tree is built in terms of variable ordering; also value ordering is an important
factor. There are several heuristics that can be used to choose a better variable and value
ordering in order to minimize backtracking and increase the search efficiency. In addition,
there are special heuristics that can be used to exploit the structure of some problems and
in turn increase the search efficiency by improving domain filtering which is the process
of removing variables values that will not be part of any feasible solution. Specialized
algorithms are developed for different constraints to help with domain filtering. Also,
11
1.3 Integer programming and constraint programming
tools such as linear programming (LP) and integer programming (IP) to solve
constraint satisfaction and logic programming along with some of OR ideas developed the
CP framework. What is common between IP and CP is that their solution method is based
on a tree search in which branching is used to explore the search space. The main difference
between the two is how the tree is explored and how the branching decisions are made at
each node of the search tree. For example, in IP the branching is done on a node using LP
sub-problems that are generated by relaxing the integrality constraints. The node is
fathomed in case the LP sub-problem has no feasible solution, or has an integer solution
that is better than the best solution found, or has a solution that is worse than the best
solution found. If the solution to the sub-problem is better than the best solution found yet
does not satisfy the integrality constraint a new branching step is required. This process is
repeated until the search terminates when it is proven that there is no feasible solution
available that is better than the best solution found. On the other hand, CP uses domain
reduction and constraint propagation at each node to reduce the domain of each variable.
The node is fathomed if domain reduction reduced all domains such that they are empty,
and the search continues to enumerate all remaining possible solutions after further domain
reduction and constraint propagation steps are done. The search terminates when all nodes
have been fathomed. It should be noted that the constraint propagation algorithm used is a
12
Hooker (2002) compared optimization to CP and gave several examples on the
language. Usually the modeling language “programming” in CP gives the user great control
over the search procedure using a lower level language like Java or C++. However the
the name originated when George Dantzig developed linear programming formulations to
solve planning problems (or programs) in the US Air Force back in 1946. Another
distinction is the use of inference in both CP and IP. In CP inference is done to reduce the
search space directly using domain reduction and constraint propagation. On the other
hand, cutting planes in IP might be considered an inference tool that creates better
13
1.4 Contribution and research questions
Much of the research done in the line balancing problem literature does not consider
most of the real life restrictions that are facing decision makers managing assembly lines.
In well-known car manufacturing plants, assembly line balancing is still done manually
over several days since no applicable tool is available for them. The GALBP started to
appear in the literature in which the limited assumptions of the SALBP are relaxed so that
it becomes more applicable in real life instead of being just in academic research papers.
However, research in the GALBP usually concentrates on one generalization and extends
the model in that direction only. In this research, the MALBP with parallel stations, zoning
constraints, and assignment restriction is extended by adding more detailed task assignment
extended model has four constraints for tasks that need to be done by either the same
worker, or different workers and tasks the need to be done in the same station, or in
different stations. In the extended model, tasks are assigned to workers instead of fixed
workplaces that are tied to certain mounting positions. This way each worker can be
assigned any task regardless of the mounting position. To avoid worker interference, a new
constraint is added to avoid the overlap of any two tasks that share the same mounting
worker from being assigned tasks with opposite mounting positions. Finally, ergonomics
are added to the extended MALBP model so that worker health is not endangered by
assigning him too many ergonomically demanding tasks that might lead to a lifelong injury.
14
In this research, an IP is presented for our extended MALBP model with parallel
proposed to solve the problem using the scheduling module of the CPLEX CP optimizer.
To the best of our knowledge, there is no published research that uses CP to solve the
ergonomics.
automotive OEM to measure the cost of adding the different constraints on the processing
time needed to reach the optimal solution. The problems’ constraints are divided into hard
constraints that make up the assembly line balancing problem, and soft constraints that can
be relaxed without violating the basic assumptions of the line balancing problem.
Experiments are done to build intuition about the relative cost of modeling and forcing
some of the realistic constraints in the mixed model line balancing problem.
Because the mixed model line balancing is done based on task average times, the
related problem of MMS is studied to minimize any disturbance to the assembly line that
might be caused by work overload in any station. An IP is proposed with the objective of
minimizing the work overload situations. The assumption for the proposed MMS model is
based on the skip policy in which the utility worker works exclusively on any work piece
whenever an overload situation is foreseeable while the normal worker skips this work
piece to the next one in sequence. This problem is discussed in the literature with
assumption of closed stations. That is no worker can swim past his station’s boundaries to
15
complete a task if needed. In this research, we extend the work done by assuming open
1- Can we model the mixed model line balancing problem with parallel stations,
2- How sensitive are the IP and CP models’ computation time to the maximum
ergonomic score limit? What is the impact of removing some of the constraints on
3- Is there a more efficient way to solve the mixed model sequencing problem? What
defining the assembly line balancing problem and presenting the different classification of
the problem. This is followed by introducing the mixed model assembly lines and how are
they different from the single and multi-model assembly lines. Then, the interrelated
problems of mixed model balancing and sequencing are defined. Constraint programming
background and its relation to integer programming is given next. Chapter 1 concludes
Chapter 2 presents the problem of mixed model line balancing with parallel
stations, zoning constraints, and ergonomics. The problem description is given first using
16
motivation for this research. The mathematical model along with the integer program is
the proposed models is shown in the computation experiments section along with
the proposed models to assess the cost of enforcing some constraints on the computation
complexity along with the amount of violations occurred when a constraint is disabled.
Chapter 4 introduces the problem of mixed model sequencing and how is it different
from the car sequencing problem. This is followed by a review in related work. Next,
17
CHAPTER TWO
2.1 Introduction
productive areas called stations arranged in a serial manner. The final product starts as a
work piece that is launched down the line passing by all stations on some kind of
operations are performed on the work piece. The amount of time each work piece is within
the boundaries of a station depends on the conveyor speed, which is also defined by the
interval between launching work pieces, is called the cycle time. Generally, the total
amount of assembly operations done on the work piece by a single operator at any given
station cannot exceed this cycle time. In addition, the assembly operations required to be
done on the work piece have some precedence constraints because of technological and
operations to stations with respect to some objective and satisfying the cycle time limitation
and the precedence requirement between operations is referred to as the assembly line
balancing problem.
Initially, assembly lines were used as a cost efficient way for mass production of
identical products. However, in order to respond to customer needs, companies added the
option to customize the products they offer. Automation and multipurpose machines made
it easier to produce customized products on the same line in a cost effective way similar to
18
the mass production counterparts. Yet these assembly lines are associated with
considerable investment costs, which makes the configuration of these lines an important
factor to still make it cost efficient. The configuration of the line includes management
decisions that are related to setting system capacity, such as the cycle time, as well as task
assignment to stations.
on the problem of line balancing. Since most of the work in the literature is based on
simplifying assumptions, the research was named simple assembly line balancing problem
(SALBP) in the review paper by Baybars (1986). Some later studies extended the simple
problem by incorporating practical aspects such as parallel stations and zoning constraints;
this type of research is categorized under the general assembly line balancing name in the
survey by Becker and Scholl (2006). Despite this effort in extending the problem to be
more realistic, there is still a gap between academic papers and practical implementation.
To this day, many automotive assembly organizations still line balance manually. Boysen
et al. (2007) tried to explain the reasons behind this gap between the academia and practice.
The first reason is that researchers have not considered the true real world problem yet.
The second reason is that the problem was studied but no satisfactory solution was found
to it. Finally, the third reason is that scientific results could not be translated into something
practical. The classification scheme proposed in Boysen et al. (2007) was the first step to
The assembly line balancing problem is not just the long term decision of efficiently
designing the assembly line by determining the number of stations required, as re-balancing
19
is needed periodically when production processes, overall demand or demand mix changes.
Choosing the optimization objective impacts the resulting solution and depends on the
surrogate objective is often used to maximize the line utilization or minimize the number
of workers needed.
Becker and Scholl (2009) consider the problem of balancing assembly lines with
multiple workers per station. The model proposed is based on the simple assembly line
model of Becker and Scholl (2009) to the mixed model environment and account for
integer programming (IP) model and a constraint programming (CP) model for the problem
at hand and assess the performance of both models using data from industry.
In this chapter, the problem description is given first with details about the different
constraints that define the problem at hand. This is followed by an example to illustrate the
different constraints of the problem and the solution structure in section 2.2. Next, a
literature review on related work is given in section 2.3 followed by the motivation behind
this work in section 2.4. In section 2.5 the mathematical program is given followed by the
discussion are presented in section 2.7. Finally, concluding remarks and future possible
20
2.2 Problem description
We describe the decision problem that is intended to solve the realistic mixed model
conditions and limitations that are faced in an industry’s real assembly line. The constraints
that make a line balancing problem applicable in real world industrial setting are explained
in detail in Falkenauer (2005). Our problem is based on the assembly line balancing
problem with flexible parallel workstations that was introduced by Becker and Scholl
(2009) and an OEM’s environment in which the objective is to minimize the total number
The characteristics of the problem that are similar to the characteristics of the
SALBP are: serial line layout, fixed cycle time (paced line), and deterministic task times
that are less than the cycle time. In addition, to capture realism the following characteristics
are included: mixed model assembly, parallel workers, zoning constraints, assignment
In a mixed model environment, different base models known as variants that may
include a variety of options are assembled on the same line. Since some automakers provide
their customers with the flexibility in customizing the cars they order with the options they
want, these automakers usually operate under a make-to-order environment. The number
assembled on the same line. The installation of different options typically leads to
21
variations in assembly task times; for example the installation of a power liftgate requires
There are two primary approaches to deal with variation in task durations when it
comes to enforcing the cycle time constraint. The first is enforcing the cycle time on the
average task times, that is the sum of average task times assigned to a worker should not
exceed the cycle time. The drawback of this method is having some models exceed the
cycle time at some stations. The second method is enforcing the cycle time on all model
variations. The drawback of this method is that it requires a higher cycle time which is
translated into a lower production rate. Boysen et al. (2008) reviews the different
approaches used to handle the mixed model problem in the literature. In this chapter, the
first approach is used in which the average task time is guaranteed to be less than the cycle
time. In addition, because of the huge number of models that could be configured,
automakers use option-based forecasts instead of figuring out the forecasts for each
possible model. The option-based precedence graph introduced by Boysen et al. (2009)
will be used in this research based on the proportion 𝑝ℎ of products (cars) that require task ℎ
with duration 𝑑ℎ . This probability is derived for a production run using the forecasted
demand of the volume of cars that will require the execution of that task divided by the
total production volume. The weighted task time for task ℎ, 𝑑̅ℎ is calculated as
follows 𝑑̅ℎ = 𝑝ℎ 𝑑ℎ ∀ ℎ.
The zoning constraints are used to avoid worker interference in a station and reduce
non-productive walking time between mounting positions. Each task to be executed by any
22
worker has to be done in a specific location on the product. This attribute is called the
mounting position and it is one of the different positions available in a product zone map.
Figure 3 shows an example of a product zone map in which there are nine different
mounting positions.
Each task ℎ has a mounting position 𝑞ℎ from the 9 positions on the product zone in
which the task takes place. Mapping each task to a mounting position helps in prohibiting
the overlap in the scheduling of two tasks ℎ, 𝑙 with the same mounting position 𝑞ℎ = 𝑞𝑙 at
any station. Figure 4 shows an example where interference might happen when two
workers execute tasks that share the same mounting positions at the same time.
23
2.2.3 Parallel workers
One operator per station is assumed in the simple assembly line balancing
problem’s literature. However, it is common to have more than one operator working
within the same station in big product assembly lines such as cars, trucks, and big machines.
More specifically in the automobile industry, the assembly of cars involves using relatively
large parts and thus many stations have enough space to accommodate multiple workers
who are able to work at the same time. We assume that each worker is not fixed to one
work area inside the station and can be assigned different tasks that have different mounting
worker to avoid conflicts between workers in the same station and indicate if the line
balance is actually feasible. Infeasibility could occur even if the sum of all tasks assigned
within a station is less than the cycle time. This is because there exist precedence relations
between tasks that could lead to idle time if one operator is waiting for another to finish a
task.
Some tasks are restricted to be assigned to some stations due to different reasons.
For example, a task that requires a resource that is available only on some stations or a task
that is done below the car and requires the car to be elevated. Different assignment
restrictions are needed in order to have a flexible tool that can be useful for real life line
24
2.2.4.1 Resource constraints
This constraint is used when a task requires a certain resource such as a tool that is
not available in all stations. For example, some tools are heavy and expensive to move
between stations so they will be fixed to certain stations. Tasks that require this tool should
be only assigned to this station. For a task ℎ that require a certain resource not available in
all stations there is a set of eligible stations 𝑈ℎ that contains all stations this task can be
assigned to. If a tool is available in only one station, tasks that need this tool are assigned
This constraint is for tasks that need to be executed consecutively by the same
worker. For example, a task for picking up a part must be followed by a task to assemble
it. In this case, the worker is not open to any other tasks since he has the part in his hands.
Adjacency constraints are treated in the preprocessing phase by combining the adjacent set
This constraint is for tasks that need to be executed by the same worker but does
not need to be done consecutively. An example would be inspection or quality checks that
should be done by a worker after finishing a task. Since the inspection may involve several
tasks, the same worker constraint is used instead of the adjacency constraint. All tasks
25
2.2.4.4 Incompatible worker constraint
This constraint is needed when a set of tasks are not allowed to be assigned to the
same worker. This constraint is mainly used to prohibit unproductive walking by limiting
the assignment of tasks with opposite mounting positions to the same worker. An example
for the product zone in Figure 3 would be to limit any worker from being assigned a pair
of tasks ℎ, 𝑙 with mounting positions {(𝑞ℎ , 𝑞𝑙 )} = {(1,9), (7,3), (4,6)}. That is, if a worker
is assigned a task with mounting position 1 the assignment of all tasks with mounting
position 9 is prohibited for him since it would be unproductive to walk all the way from
product zones 1 to 9. All tasks that are incompatible worker are collected in sets labeled
by 𝑅 𝑛𝑤 .
This constraint is used to indicate that a set of tasks needs to be done on the same
station but not necessarily done by the same worker. An example would be a large piece
that needs to be installed by two workers via two different tasks. Both tasks need to be
done on the same station so that each worker would be assigned one of them. All tasks
that need to be assigned to the same station are collected in sets labeled by 𝑅 𝑠𝑠 .
This constraint prohibits a set of tasks from being assigned to the same station. An
example for using this constraint would be for a task to lubricate a movable part and task
to install the seat. These two tasks should be assigned to different stations to avoid the
danger of soiling the seat with the lubrication material. Another example would be a gluing
26
task that needs time for sitting before executing another follower task. All tasks that are
The ergonomic risks are treated in two different ways, directly and indirectly. An
methods. An example for dealing with an indirect station related ergonomic risk is the
relation between tasks and the position of the car on the line. Some tasks that require
installing parts above the car need the car to be tilted to avoid injury for the worker
executing it. These tasks should be restricted to station in which the car can be tilted.
Furthermore, tackling the worker interference issue and unproductive walking are
considered to be indirect worker level ergonomic risk constraints. On the other hand, the
direct application of ergonomic risk mitigation can be accomplished through the use of a
weighted ergonomic risk score 𝑔̅ℎ associated with each task ℎ to make sure that each
worker is assigned tasks with a total weighted ergonomic risk score less than a predefined
2.2.6 Pre-processing
The pre-processing phase is important to prepare the input before it is used with the
mathematical program. For the mixed model problem, this involves computing the
weighted task durations and the weighted ergonomic scores. Furthermore, in order to
reduce the complexity of the solution techniques, some of the available information is
useful in lowering the number of decision variables by fixing some of them. Also, it is
possible to remove unnecessary constraints by reducing the set of variables the constraint
27
applies to. This helps in getting a tighter feasible solution space and helps in reducing the
combinatorial explosion that happened with these type of problems. The pre-processing
- Reduce the number of tasks by combining the tasks in an adjacency set into one
task.
- Defining the feasible stations set 𝐹 for all tasks via the use project management
techniques to calculate the early start and late finish for each task.
- Defining the eligible stations set 𝑈 for all tasks that require a specific resource
that is not available in all stations. If this resource is available in one station only,
- Calculating the weighted task duration 𝑑̅ and the weighted ergonomic score 𝑔̅ for
all tasks.
2.2.7 An example
Consider the example instance with 12 tasks and the option-based task precedence
graph in Figure 5. Assume that 10 cars are to be assembled, each with different options that
require different tasks. The volume and proportion of each task are given in Table 1 along
with the task duration and ergonomic score. The weighted values of both the task duration
and the ergonomic score are calculated based on the volume of cars that require that task.
It should be noted that both the ergonomic and cycle time constraints are enforced on the
weighted (average) values only; that is the total weighted task duration and ergonomic
28
scores are less than the cycle time and the ergonomic risk maximum recommended level
respectively. Figure 6 shows the mounting position for each task, which is the location in
which the task will take place on the car. Since the number of stations is predefined, the
early start and late finish for each task are calculated and shown in the Gantt chart (Figure
7) with each task scheduled at its early start time. The Gantt chart helps reduce the feasible
station set for each task, for example tasks 1, 6, and 12 can only be assigned to stations 1,
2, and 3 respectively. The assignment constraints are given in Table 2. Since tasks 7a and
7b are in an adjacency set, they are joined together as task 7 in the preprocessing phase.
unproductive walking between opposite mounting positions. For example a worker who is
assigned a task with mounting position 1 will not be assigned another task with mounting
position 4 and vice versa but he can be assigned tasks with mounting positions 2 and 3. An
optimal solution to this example is shown in Figure 8 in which all 6 potential workers are
assigned tasks. In Figure 8, the tasks are represented by blocks in which the length denotes
the weighted duration of the task and the height of the block denotes the weighted
ergonomic score. Since task 6 has a high weighted ergonomic score it is the only scheduled
task for worker (2,1). The scheduling of tasks to workers is important for reasons other
than avoiding worker interference since just assigning tasks to workers might yield an
infeasible solution because of the precedence relations. For example worker (1,1) has an
unavoidable idle gap since he had to wait for task 1 to finish before starting task 5 because
29
Figure 5: Option-based joint precedence graph
30
Figure 6: Mounting position for each task
31
Table 2: Assignment constraints
Assignment Tasks
Constraint
Adjacency set (7a,7b)
Same worker (9,12)
Same station (4,5)
Not the same worker {(ℎ, 𝑙): 𝑞ℎ , 𝑞𝑙 = (1,4), (2,3)}
Not the same station (10,11)
32
2.3 Related work
The basic mixed model assembly line balancing problem (MALBP) is based on the
same assumptions that are used for the SALBP. The main difference is having multiple
models each with its own precedence graph and task times. In the MALBP literature, two
basic approaches are used to model and solve the problem: reduction to single model
The MALBP can be transformed to the SALBP by the use of a joint precedence
graph. This graph is constructed by averaging the processing times that varies across
models taking into account the probability of having each model in the expected model
mix. The new joint precedence graph will have tasks with the expected processing times.
This way the mixed model balancing problem is reduced to a single model case and
traditional single model techniques can be used to solve it. With the increase of product
variety in some production fields such as car manufacturing, reliable estimation of each
model is becoming harder. In the paper by Pil and Holweg (2004) the number of model
varieties that are available from different car manufacturers is shown; for some German
car manufacturers, the theoretical variations can reach over 1024 different models. With this
huge number of models, getting an estimation for the demand of each model is impossible.
Boysen et al (2009) propose the use of the occurrence of the options instead of the model
in determining the task times of the joint precedence graph. However, this requires the
assignment of tasks to options and not just models. Van Zante-de Fokkert and De Kok
(1997) review the two approaches of transforming the mixed model problem into a single
33
model: the combined precedence diagram approach and the adjusted task processing time
approach.
Gokcen and Erel (1997) develop a binary goal programming (GP) model for the
MALBP. The authors claim that they are the first to apply the multiple criteria decision
making approach to the MALBP which gives the decision maker a more realistic approach
and the ability to use different conflicting objectives in the model. Although the optimal
solution may not be identified through this solution procedure, a satisfactory result that
compromises the different conflicting objectives is provided. In addition, Gokcen and Erel
(1998) propose a binary integer programming model for the MALBP along with some
computational properties of the model. They claim that their model is superior to the other
shortest route formulation for the MALBP is presented by Erel and Gokcen (1999). The
formulation is based on the shortest route formulation for the single model problem, thus
the reduction of the mixed model to a single model by the combined precedence graph is
Sawik (2002) compares two approaches to solve the combined balancing and
scheduling problem for the flexible assembly line. In the monolithic approach, the
balancing and assembly decisions are made simultaneously using a mixed integer program.
For the hierarchical approach, the station workloads are balanced first and then the
assembly process is scheduled by solving a permutation flow shop problem. Öztürk et al.
(2013) also study the problem of balancing and scheduling in mixed model assembly lines
34
with parallel stations. They formulate the problem as a mixed integer program and then
problem such as the multi-objective approach proposed by Kara et al. (2011) to solve the
MALBP for model mixes that have precedence conflicts. They develop a binary
mathematical model with a single objective and then extend the model to incorporate three
objectives into a single objective model. Mahdavi et al. (2009) propose a fuzzy multi-
objective linear programming model for solving multi-objective MALBP. Their model
makes use of a two-phase linear program: the first using a max-min approach and the
second using the max-min solution as a lower bound to maximize the composite
satisfaction degree.
Most of the literature on exact solution methods is focused on the SALBP as only
a few propose exact methods for the MALBP. To use the single model solution methods
on the mixed model problem, the mixed model need to be reduced to a single model by the
use of combined precedence graph, after which modified single model techniques can be
applied. Swell and Jacobson (2012) present an exact algorithm for the SALBP named the
branch, bound and remember algorithm. The authors claim that this algorithm manages to
find the optimal solution for all combined benchmark problems of Hoffmann, Talbot, and
Scholl. The proposed algorithm is a hybrid method that combines branch and bound with
dynamic programming. Scholl and Becker (2006) review state of the art exact and heuristic
methods used to solve the SALBP. An important point to note is that although solving the
35
average SALBP guarantees that the line balance will not violate the cycle time on average,
the optimal solution might still have significant inefficiencies when put to practice. Scholl
(1999) point out that there are some necessary modifications that need to be done on any
SALBP exact solution when applying it to a MALBP. This could be done by adding a
secondary objective for smoothed stations loads. However, for branch and bound based
algorithms, all optimal solutions have to be considered and the node fathoming procedure
needs to be updated. In addition, the search should not be limited to maximum station loads
Ege et al. (2009) propose a branch and bound algorithm to solve the assembly line
balancing problem with station paralleling. Boysen and Fliedner (2008) propose a two
stage graph algorithm (Avalanche) that is able to solve GALBP with relevant constraints.
The authors claim that this approach can be easily modified to include extensions such as
Vilà and Pereira (2014) study the assembly line worker assignment and balancing
problem. They provide an exact enumeration procedure that is based on the branch-bound
and remember algorithm presented by Swell and Jacobson (2012). The authors develop
several lower bounds, reductions, and dominance rules for the problem.
Wilhelm and Gadidov (2004) develop two models to address different tooling
requirements in the multiple product assembly system design problem. The authors
propose a branch and cut approach that employs a facet generation procedure to generate
cuts in the search tree by exploiting some special structures of the problem. The authors
36
demonstrate the use of the approach through experiments and compare it to the available
solution procedures.
One of the assumptions for the MALBP states that identical tasks have to be
assigned to the same station for all models. The problem can be decomposed into several
SALBP (one for each model) by relaxing this assumption. Bukchin and Rabinowitch
(2006) relax the assumption of assigning identical tasks across different models to the same
station, which allows a common task to be assigned to different stations for different
models. The authors develop an integer program formulation and an exact solution method
based on a backtracking branch and bound algorithm. In their model, some costs are
associated with assigning an identical task to different stations. Hence, they needed to
modify the objective function as the goal is to minimize the total cost associated with
balancing and not just minimizing the number of stations. However, according to Becker
and Scholl (2006), this relaxation is not desired in practice for several reasons such as the
complex production control, facility requirements, loss of specialization effects and setup
inefficiencies.
There has not been much research in using CP to solve the assembly line balancing
problem in the past although it is one of the most successful tools in solving combinatorial
problems. Bockmayr and Pisaruk (2001) propose a hybrid approach for solving the SALBP
by combining CP and IP. The main contribution in their paper is developing a branch and
cut solver for the SALBP and to show how it can make use of the CP solver in pruning the
search tree. Pastor et al. (2007) compare the performance of impulse variables based
37
models, step variable based models, CP models, and IP models in solving the SALBP with
different objectives. The authors conclude that the CP formulation performs better and is
faster than IP but the best results were for the impulse variable based models. Recently
Öztürk et al. (2013b) propose a MIP and a CP model to solve the flexible mixed model
assembly line balancing and sequencing problems. They compare the performance of the
MIP, the complete and various decomposition methods, and CP. According to their
computational study, the CP outperforms all the other approaches over all sizes of the test
instances. To the best of our knowledge there is no other published research that uses CP
in solving the mixed model assembly line balancing problem with parallel station, zoning
The bulk of the research in the solution procedures for the MALBP is based on
heuristics and meta-heuristics. The main reason for that is the complexity of the problem
as the SALBP is just a bin packing problem when the precedence constraints are removed.
The bin packing problem is a known NP-hard problem, thus the MALBP is NP-hard since
it is just a SALBP with more than one model. More details on the complexity of the
2.3.3.1 Heuristics:
Matanchai and Yano (2001) propose an approach to solve the MALBP by using an
objective that helps achieving a better short term workload stability. Based on this
objective, the authors develop a heuristic solution procedure that is based on filtered beam
search in which feasible subsets of tasks are constructed at each station. For every station,
38
several feasible subsets with the best objectives are retained. Potential subsets at
subsequent stations are then constructed by branching off the subset with the best objective.
Bukchin et al. (2002) design a three-stage heuristic to solve the mixed model
assembly line design problem in a make to order environment. The heuristic minimizes the
number of stations given a predetermined cycle time through stages: balancing using
combined precedence graph, balancing for each model given constraints from the first
stage, and neighborhood search. The authors relax the assignment constraint by allowing
Hop (2006) solve the fuzzy MALBP in which processing time is fuzzy. The author
propose a heuristic that aggregates fuzzy time, and used the combined precedence diagram
to transfer the problem into a fuzzy SALBP. In addition, the author develop new
approximated fuzzy arithmetic operations to calculate fuzzy numbers and then formulated
Tonelli et al. (2013) propose a mixed integer program model that is solved by an
mixed model production environment. The iterative heuristic is used to solve linear relaxed
problems and reduced mixed integer program problems. The proposed optimization
39
approach combines the use of mixed integer program solver with a rolling horizon
McMullen and Frazier (1997) present a heuristic to solve a stochastic MALBP with
task paralleling. The authors compared different task selection rules through simulation
for the U-shaped MALBP. The heuristic is based on a branch and bound algorithm applied
balance.
2.3.3.2 Meta-heuristics:
Tsujimura et al. (1995) are the first to use a genetic algorithm (GA) with a GALBP
in which processing time is fuzzy. Falkenauer (1998) propose in his book a modified
version of the GA named the grouping GA in which he shows the advantages of applying
it to grouping problems including the assembly line balancing problem. Simaria and
Vilarinho (2004) develope an iterative GA based procedure and applied it to the MALBP
with parallel stations. The authors claim that their procedure accommodates other
extensions such as zoning constraints and workload balancing. Recently, Sivasankaran and
Shahabudeen (2013) use GA to solve the MALBP without converting the problem to a
SALBP. That is, they used the original task times for each model in determining the line
balance. In addition to the work presented, GA was used to solve the SALBP in many
studies. More details on the use of GA to solve assembly line balancing problem is given
40
Vilarinho and Simaria (2002) develop a two-stage procedure using simulated
annealing (SA) to solve the MALBP with zoning constraints and parallel workstations. The
first stage searches for a sub-optimal solution to the primary objective which is minimizing
the number of stations while the second stage deals with the secondary objective of
smoothing workload across stations. Özcan and Toklu (2009) propose a SA algorithm to
solve the mixed model two-sided line balancing problem by considering two objectives:
minimizing the line length and minimizing the number of workers. Two performance
measures are used: maximizing the weighted line efficiency and minimizing the weighted
the mixed model U-line assembly line balancing problem in a Just in Time (JIT) production
system. The stages are: solving the balancing problem to determine the number of stations,
solving a worker assignment problem, and designing an alert system that is based on the
Vilarinho and Simaria (2006) revisit the same problem that they studied in (2002)
but using an ant colony optimization (ACO) algorithm that searches for solutions in which
the workload among workstations is smoothed. The authors claim that the results obtain
using ACO were better than results obtained in (2002) using SA. Simaria and Vilarinho
(2009) develop another ACO for the two sided MALBP in which two ants work together
to build a feasible balancing solution with respect to zoning, capacity, side and
synchronism constraints. McMullen and Tarasewich (2003) use a heuristic that is based on
ACO to solve the problem of MALBP with constraints such as parallel workstations and
stochastic task times. The authors claim that the solution method developed exploits the
41
properties of the assembly line balancing problem and produces good solutions in a
reasonable time.
Bock (2008) uses clustered Tabu search as a base for his distributed search
approach to solve the integrated problem of mixed model line balancing, personal, and
process planning. The idea behind this approach is to use the distributed search technique
Furthermore, hybrid heuristics have been used to solve the mixed model assembly
line balancing problem. Noorul Haq et al. (2006) propose a hybrid GA approach to solve
the MALBP in which the modified ranked positional solution is used as an initial solution
to reduce the search space. Akpınar and Bayhan (2011) develop a hybrid GA algorithm to
solve the MALBP with parallel workstations and zoning constraints. To overcome the
GA’s shortage of exploring the search space effectively, the approach sequentially
hybridized three well known heuristics with GA. Akpınar et al. (2013) solve the MALBP
with parallel workstations, zoning constraints, and sequence dependent setup times
between tasks using a ACO-GA hybrid algorithm. The authors aimed at combining the
power of diversification in the ACO with the power of intensification in the GA.
work. McMullen and Frazier (1998) use SA to solve a multi-objective MALBP with
such as cycle time and design cost. McMullen and Tarasewich (2006) develop a technique
that is derived from ACO to solve the multi-objective GALBP. Several objectives are
42
addressed simultaneously such as crew size, system utilization, and system design cost.
Recently, Chutima and Chimklai (2013) present a special PSO algorithm to solve the two-
sided multi-objective MALBP. The primary objectives include mated stations and number
of stations and the conflicting secondary objectives are workload relatedness and
smoothness.
The summary of the extensions and methodology used in related literature is shown
in Table 3.
43
Table 3: Summary of related literature
Researchers (Year) Mixed Eligible Tooling Task Parallel Worker- Ergonomics Methodology
model stations (Worker/Station) stations interference
compatibility zoning
Akpınar & Bayhan
(2011) Hybrid GA
Hop (2006)
Fuzzy binary
LP
Kara (2011)
MO GP
Manavizadeh et al.
(2013) SA
44
McMullen &
Tarasewich (2003) ACO
Sawik (2002)
IP
Sivasankara &
Shahabudeen (2013) GA
45
2.4 Motivation
The main motivation for this work is the fact that there is no applicable model that can be
used to solve real life assembly line balancing problems. There is a gap between the research and
the industry in the area of line balancing. Falkenauer (2005) discussed how the SALBP solution
methods discussed in the literature has little or no application to the real world assembly line
balancing problem. Furthermore, even the reported extensions in the general assembly line
balancing problem literature are not applicable to real problems in the industry. The reason is that
each extension usually tackles a generalization in one direction, while another research might
consider other generalizations in another direction. What the industry really needs is a way to deal
with all of these generalizations at the same time. The main characteristics needed to capture
- The majority of real life line balancing takes place at an already built assembly plants so
- Each station has its own identity with the tooling and restrictions of the tasks that can be
done on it.
- Since the assembly plants are already built, elimination of stations is not feasible.
- Smoothing the workload across stations should be an important objective of the line
balance.
- Station level ergonomic risks should be considered and might lead to assignment
restrictions.
46
Also incorporating worker level ergonomic risks such as avoiding work area interference
- In a multi-product line, care should be taken in computing the average task times,
To the best of our knowledge, no published research has considered all of these
characteristics simultaneously. Thus there is a need for a solution approach that takes most if not
The integer program formulation for this problem is based on the formulation by Becker
and Scholl (2009) for the single model variable parallel workstations assembly line balancing
problem. In our model, it is assumed that tasks have a duration that is less than the cycle time so
there is no need to divide tasks between stations. Also, mounting positions are not assigned to
workers so several workers in the same station can be assigned tasks that share the same mounting
position. Detailed scheduling is used to make sure that worker interference does not occur.
47
Each product assembled on the line starts with a work-piece that is launched down the line
and have assembly tasks done on it until the work-piece exits the final station as a finished product.
The work-piece enters the first station at time 𝑡 = 0 and leaves the last station at time 𝑡 = 𝐾𝑐. For
each of the 𝑖 = 1, … 𝐾 stations in the line there are 𝑗 = 1, … , 𝑊 potential workers available, so
worker (𝑖, 𝑗) represents the potential worker 𝑗 at station 𝑖. The binary variable 𝑦𝑖,𝑗 is associated
with each potential worker (𝑖, 𝑗) and is equal to 1 if the potential worker is assigned and 0
otherwise. Figure 9 shows an example profile for a line with 3 stations and 4 workers, the greyed
blocks represent the assignment of potential worker (𝑖, 𝑗) when 𝑦𝑖,𝑗 = 1. In this example 3, 2, and
4 workers are assigned to stations 1, 2, and 3 respectively. The model’s notations are shown in
Table 4.
48
Notations:
Table 4: Line balancing problem’s notations
Decision Variables:
49
Objective:
𝑚𝑖𝑛𝑖𝑚𝑖𝑧𝑒 𝑍 = ∑ ∑ 𝑦𝑖𝑗
𝑖 𝑗
Task assignment to worker: each task has to be assigned to only one worker.
∑ ∑ 𝑥𝑖𝑗ℎ = 1 ∀ℎ (C2.1)
𝑖∈𝐹𝑆ℎ 𝑗
Cycle time: the total weighted duration assigned to a worker should not exceed the
cycle time.
Station time: each task assigned to a worker should be scheduled between the
𝑠ℎ ≥ ∑ ∑ 𝑆𝑖 𝑥𝑖𝑗ℎ ∀ℎ (C2.3)
𝑖∈𝐹ℎ 𝑗
Precedence relations: a task can only start when all of its predecessors are finished.
𝑠ℎ + 𝑑̅ℎ ≤ 𝑠𝑙 ∀ ℎ, 𝑙 ∈ 𝑂𝑙 (C2.5)
50
𝑓
𝑠ℎ + 𝑡ℎ ≤ 𝑠𝑙 + (1 − 𝑣ℎ𝑙 )(𝑡ℎ − 𝑡ℎ𝑠 ) ∀ℎ ≠ 𝑙 (C2.7)
Worker interference: tasks that share the same mounting position should not
overlap.
Ergonomic risk: the total weighted ergonomic risk for each worker should be within
limits.
Assignment restrictions: pairs of tasks with same (station/worker) or not the same
(station/worker) restrictions.
eligible stations.
51
Breaking symmetry.
Variables domain.
The original model formulation proposed by Becker and Scholl (2009) did not provide a
good lower bound for the integer program. The introduction of the cycle time constraint (C2.2)
provides a good lower bound for the integer program that is equivalent to the capacity bound (LB1)
presented in their paper. The lower bound achieved by this constraint gives the lowest possible
number of workers needed to perform all tasks which is equivalent to rounding up the sum of all
∑ℎ 𝑑̅ℎ⁄
𝐿𝐵 = ⌈ 𝑐⌉ (2.1)
In addition, the assumption that all tasks that share the same mounting position are to be
assigned to the same worker is relaxed in this work. Any task can be assigned to any worker
regardless of its mounting position. Reducing the unproductive waking from a position to another
is achieved by prohibiting the same worker from being assigned tasks with non-contiguous
mounting positions. To avoid worker interference, constraint (C2.8) is added to make sure that no
two tasks that share the same mounting position overlap in time in any station. Constraints (C2.10)
and (C2.13) are for the same station and same worker assignment restrictions constraints. The
52
original model uses the worker incompatible and station incompatible constrains only. Constraint
(C2.14) helps in reducing the feasible space by fixing some decision variable by the use of the
eligible station set for each task. Since all workers are identical, constraint (C2.15) reduces the
problem’s feasible region by removing the symmetry from the problem in an effort to reduce the
computation time. For example, the constraint enforces the assignment of worker 1 before
assigning worker 2.
Since it is anticipated that the mathematical programming model will face difficulties in
finding a solution for real life sized problem instances, we propose a constraint programming (CP)
model. CP is proven to be a useful technique for solving scheduling problems efficiently. Several
tools exist for developing CP models; ILOG CPLEX optimization studio is one of the most used
for scheduling problems because of the ILOG Scheduler extension that was developed specifically
with several constraint propagation and search algorithms that exploit the structure of scheduling
problems. ILOG Scheduler is used in this work to model the mixed model line balancing problem.
Before presenting the formulation we first introduce some basic variable types used in the ILOG
Scheduler environment. After that some specialized constraints used in the model are introduced.
These specialized constraints state some relation between different variables in the model.
Although these relations could be modeled using traditional logical constraints; the use of the
specialized constraint increases the efficiency of the solver by exploiting the structure of the
53
2.6.1 CP variables and special constraints
Interval variables represent an interval of time in which a task or an activity is carried out
whose position in time is unknown and need to be scheduled. This decision variable is
characterized by a start value, an end value and a size. Interval variables can be optional; that is
not all variables would be considered in the solution. This is usually helpful in modeling optional
tasks that doesn’t need to be executed, tasks that can be executed on alternative resources, and
tasks with alternative modes of operation. If an interval variable is optional it can be present or
absent. An absent variable is not considered in any constraint or expression it is involved in.
The interval sequence variable is defined over a set of interval variables and its value
represents the ordering of the tasks in that set. Absent interval variables are not considered in this
ordering. All the permutations of the intervals in the set are possible values for the interval
sequence decision variable. It should be noted that this variable does not enforce any constraint on
the relative position between interval variables but there are several constraints that can be used
Alternative constraint:
and a set of optional interval variables {𝑏1 , … , 𝑏𝑛 } such that if interval 𝑎 is present then exactly
54
The no overlap constraint:
sequence variables to define a chain of non-overlapping intervals. The intervals in the chain are
scheduled such that any interval in the chain ends before the start of the next interval in the chain.
There are several constraints that can be used to restrict the relative position of the interval
variables. One of these special constraints is the 𝑒𝑛𝑑𝐵𝑒𝑓𝑜𝑟𝑒𝑆𝑡𝑎𝑟𝑡 constraint that enforces the
precedence relation between two interval variables such that the predecessor interval ends before
Logical constrains:
The presence status of interval variables can be controlled by using the logical
𝑝𝑟𝑒𝑠𝑒𝑛𝑐𝑒𝑂𝑓(𝑎) ≥ 𝑝𝑟𝑒𝑠𝑒𝑛𝑐𝑒𝑂𝑓(𝑏)
Decision variables:
𝑇𝑎𝑠𝑘ℎ : Interval variable associated with task ℎ with a size equal to 𝑑̅ℎ
𝑓
station 𝑖, limited to lie within [𝑡ℎ𝑠 , 𝑡ℎ ] ∩ [𝐴𝑖 , 𝐴𝑖 + 𝑐]
Objective:
55
Subject to:
Task assignment to worker: defining the alternative interval variable such that each task
interval variable has an alternative variable for each worker at each station. Only one of
the alternatives will be present; in other words each task is assigned to only one worker.
Precedence relations: a task can start when all of its predecessors are finished.
Tasks overlap: tasks that are assigned to one worker should not overlap.
Worker interference: tasks that share the same mounting position should not overlap.
• Ergonomic risk: the total weighted ergonomic risk for each worker should be within limits.
∑ 𝑝𝑟𝑒𝑠𝑒𝑛𝑐𝑒𝑂𝑓(𝑇𝑎𝑠𝑘𝐴𝑠𝑠𝑖𝑔𝑛ℎ,𝑖,𝑗 ) 𝑔̅ ≤ 𝐺 ∀ 𝑖, 𝑗 (CP2.5)
ℎ
• Assignment restrictions: pairs of tasks with same (station/worker) or not the same
(station/worker) restrictions.
∑ 𝑝𝑟𝑒𝑠𝑒𝑛𝑐𝑒𝑂𝑓(𝑇𝑎𝑠𝑘𝐴𝑠𝑠𝑖𝑔𝑛ℎ,𝑖,𝑗 ) =
𝑗
∀ 𝑗 𝑎𝑛𝑑 (ℎ, 𝑙) ∈ 𝑅 𝑠𝑠 (CP2.6)
= ∑ 𝑝𝑟𝑒𝑠𝑒𝑛𝑐𝑒𝑂𝑓(𝑇𝑎𝑠𝑘𝐴𝑠𝑠𝑖𝑔𝑛𝑙,𝑖,𝑗 )
𝑗
𝑝𝑟𝑒𝑠𝑒𝑛𝑐𝑒𝑂𝑓(𝑇𝑎𝑠𝑘𝐴𝑠𝑠𝑖𝑔𝑛ℎ,𝑖,𝑗 ) =
∀ 𝑖, 𝑗, 𝑎𝑛𝑑 (ℎ, 𝑙) ∈ 𝑅 𝑠𝑤 (CP2.7)
= 𝑝𝑟𝑒𝑠𝑒𝑛𝑐𝑒𝑂𝑓(𝑇𝑎𝑠𝑘𝐴𝑠𝑠𝑖𝑔𝑛𝑙,𝑖,𝑗 )
56
∑(𝑝𝑟𝑒𝑠𝑒𝑛𝑐𝑒𝑂𝑓(𝑇𝑎𝑠𝑘𝐴𝑠𝑠𝑖𝑔𝑛ℎ,𝑖,𝑗 )
𝑗
≤1
𝑝𝑟𝑒𝑠𝑒𝑛𝑐𝑒𝑂𝑓(𝑇𝑎𝑠𝑘𝐴𝑠𝑠𝑖𝑔𝑛ℎ,𝑖,𝑗 )
∀ 𝑖, 𝑗, 𝑎𝑛𝑑 (ℎ, 𝑙) ∈ 𝑅 𝑛𝑤 (CP2.9)
+ 𝑝𝑟𝑒𝑠𝑒𝑛𝑐𝑒𝑂𝑓(𝑇𝑎𝑠𝑘𝐴𝑠𝑠𝑖𝑔𝑛𝑙,𝑖,𝑗 ) ≤ 1
• Resource requirement: tasks that require a resource should only be assigned to eligible
stations.
• Breaking symmetry:
max 𝑝𝑟𝑒𝑠𝑒𝑛𝑐𝑒𝑂𝑓(𝑇𝑎𝑠𝑘𝐴𝑠𝑠𝑖𝑔𝑛ℎ,𝑖,𝑗+1 )
ℎ
∀ (𝑖, 𝑗 ≤ 𝑊 − 1) (CP2.11)
≤ max 𝑝𝑟𝑒𝑠𝑒𝑛𝑐𝑒𝑂𝑓(𝑇𝑎𝑠𝑘𝐴𝑠𝑠𝑖𝑔𝑛ℎ,𝑖,𝑗 )
ℎ
57
2.7 Computational experiments
solving industrial sized assembly line balancing problems. Data from the automotive industry is
used to define a test bed. The data belongs to 3 different bands of actual auto assembly lines,
Details on the size of each band before and after the preprocessing phase is provided in Table 5.
Four instances generated from each band’s data with different number of tasks (50, 100, 150, and
all tasks) and different number of stations. Details on test instances from all bands are provided on
The IP model is coded in AMPL and solved using Gurobi 6 solver. The CP is coded under
the ILOG CPLEX optimization studio 12.6 and solved using the CPLEX CP Optimizer engine.
The computer has an Intel i7-3770 CPU with 3.4 GHz clock speed and 32 GB of memory. The
solution time is limited to one hour; if the optimal solution is not provably found, the best solution
is recorded along with the time at which the best solution was reached. For CP, the lower bound
is similar to the IP one which is equivalent to LB in (5.1). The search in CP is terminated when the
solution is equal to the lower bound. Since CP search is based on random number generation, 10
runs were done for each instance with different seeds and the average solution time is recorded.
The default inference level is set to “extended” in the CP along with the precedence, interval
58
Table 6: Test instances
B1.1 50 5
B1.2 100 10
B1.3 150 10
B1.4 209 13
B26.1 50 5
B26.2 100 6
B26.3 150 10
B26.4 174 10
B47.1 50 5
B47.2 100 7
B47.3 150 11
B47.4 178 12
Table 7 summarizes the results of both the IP and CP subject to a one hour time limit. Since
10 runs were executed for each instance in CP, the number of runs the given solution (number of
workers) was found is also shown. As expected the IP faced difficulties as the size of the instance
increases. The optimal solution is found only in 3 small sized instances while no feasible solutions
were found on the largest instance of each band within the one hour time limit. On the other hand,
the CP managed to find optimal solutions in 10 out of the 12 instances with only a small gap in the
solution of the other two instances. In CP instance B1.3 two different solutions were found for
different seed runs, of which one is optimal. It is clear that Band 1 instances were difficult for both
the CP and IP solvers. Table 8 presents the processing time needed by the IP solver to reach the
optimal solution for different instances under no time limits. Results show that CP clearly
outperforms the IP in terms of processing time making it more applicable in the industry. Table 8
shows the time it takes the IP to reach the optimal solution when there is no time limit, in which
59
Table 7: Solution time under time limit
60
Table 8: IP solution time under no time limit
61
2.8 Conclusion
In this chapter, the model by Becker and Scholl (2009) is extended to the mixed model
environment with additional constraints from Falkenauer (2005) to improve the model’s
applicability to real mixed model assembly lines. First, we explain each constraint incorporated
into the model and illustrate the problem at hand with an example. Then, we propose an IP
formulation to solve the mixed model assembly line balance with parallel stations, zoning
constraints, and ergonomics. Since the problem is NP-hard, we develop a scheduling CP model to
To test the model’s applicability to real assembly lines, the data of three bands from an
automotive assembly line were used. The results show the limitation of the IP, in which only
instances with 50 tasks were solved to optimality within the allowed 1 hour of processing time.
On the other hand, the CP model’s results were optimal for 10 out of the 12 instances under the
same time limit. For example, the CP managed to balance 178 tasks over 12 stations for band 47.
The computational results show the potential of CP scheduler as a tool to solve real life sized
This work can be extended in future research by incorporating the idea of horizontal
balancing and model sequencing to the mixed model line balancing problem. If a worker is
expected to have a notably different amount of time to work on different models, his station might
not be able to manage the work overload caused by having several models with time consuming
tasks since only the average task duration satisfies the cycle time constraint. There are two ways
to address this problem: horizontal balancing and model sequencing. Horizontal balancing makes
the workload of each station (with respect to models/options) as uniform as possible over time
regardless of the product sequence. This can be seen as a robust mixed model line balance that
62
minimizes work overload regardless of the sequence used. On the other hand, this problem can
also be avoided by solving a sequencing problem that prohibits having multiple demanding models
in a consecutive sequence and thus avoids any work overload. This can be achieved by developing
an integrated model that solves real life sized line balancing / sequencing problems simultaneously.
63
CHAPTER THREE
3 A CASE STUDY
3.1 Introduction
This chapter explores the models developed for the assembly line balancing problem
presented in chapter two through an increased sensitivity analysis using the case study data
supplied by an automaker. In generating the data for the case study, the research team learned that
some data is relatively easier or harder to obtain and maintain, and some constraints may not be
discovered until a potential solution is presented that violates the constraints. Requiring an OEM
to maintain large databases that are needed for only application to line balancing may increase the
accomplished by a small permutation of the current solution, or the decision maker may determine
that this or another constraint can be violated. The nature of the mathematical programming
techniques used in this dissertation is to enforce all constraints provided, even if the decision maker
considers some of them to be less-critical. The motivation is to build intuition about the relative
cost of modeling, data collection and maintenance required to enforce some of the realistic
Some of the line balancing constraints define the problem at a fundamental level and cannot
be ignored or relaxed. These constraints are items such as assigning each task to one worker, cycle
time, task precedence relations, and tasks overlap constraints. On the other hand, some other
ergonomic risk, the worker/station compatibility assignment constraints, and the eligibility
constraints. It maybe that some elements that are described as constraints are in fact preferences,
and can be accommodated partially. If such constraints, when included in the model, are
64
computationally difficult, it may be acceptable to remove them and manually accommodate them
later. Moreover, some constraints may not be acknowledged until a balance is proposed, at which
time a manual readjustment is made, instead of reformulating and resolving. By studying the
effects of relaxing or removing some of these constraints on the model behavior, we gain more
insight on the complexity each constraint contributes to the model so that decision makers can
make better use of it. In the following section a classification of the different line balancing
constraints is given.
We classify the line balancing constraints as hard or soft constraints. A constraint is labeled
“hard” if removing it will either violate any of the SALBP assumptions or fundamentally affect
the way the problem is modeled. On the contrary, a soft constraint will not violate any of the
This constraint ensures that every task is assigned to one worker only.
2. Cycle time:
This constraint ensures that the total expected task durations assigned to a worker does not
3. Station time:
This constraint defines each station’s time window so tasks scheduled on that station are
limited to start at or after the start of that station and finish before or at the finish time of that
station.
65
4. Precedence relation:
The precedence relation between assembly tasks is a hard constraint that cannot be relaxed.
Without the precedence constraint the problem can be transformed into a bin-packing problem in
which the goal is to assign (pack) as many tasks to every station (bin) such that the number of
stations is minimized.
5. Tasks overlap:
This constraint prohibits two tasks that are assigned to a worker from overlapping in time.
That is, the worker should finish a task before starting another one.
This constraint prohibits schedules in which two workers work on the same mounting
position at the same time. That is, no two tasks that share the same mounting position overlap in
time. This constraint can be relaxed assuming that the interference can either be avoided by
manually changing the station’s schedule or by communication between workers in the same
This includes same worker/station and not same worker/station constraints in addition to
the task/station eligibility constraints. These constraints are either enforced or not.
3. Ergonomic risk:
This constraint limits the maximum possible weighted ergonomic score for the tasks
assigned to any worker. This constraint can take different levels of maximum ergonomic score, or
be completely eliminated.
66
3.3 Experimental configuration
The experiments use data provided by an OEM for 3 bands in their assembly line. The
summary of the data sets used with the number of tasks along with the number of different
constraints is given in Table 9. The experiments are conducted using both the IP and CP models
developed previously.
It should be noted that because of the IP’s limitation, the maximum number of tasks is
limited to 100 in order to reach a solution in reasonable time. The solution time of the IP is limited
to a day and 3600s for the CP; if no optimal solution is found the best solution is recorded along
with the time it took the IP or CP to reach that solution. The CP experiments are run 10 times for
each instance and the average is recorded along with the number of times the solution was found.
There are two main experiments to assess the models’ sensitivity. The first experiment
varies the maximum weighted ergonomic score allowed for each worker and recording both the
solution and computation time. The second experiment is conducted by disabling a subset of
constraints and recording the solution along with the computation time. Because the CP
performance is based on the random number used, each CP instance is run for 10 times with
random number seeds from 0 to 9. Both of these experiments are done on an i7-4790 CPU with 32
GB on Windows 10 platform. For the IP, AMPL Version 20161220 is used along with Gurobi
7.0.2 solver. For the CP, IBM ILOG CPLEX Optimization Studio Version 12.7.0 is used.
67
3.4 Results
In this experiment, the maximum ergonomic score allowed is varied depending on the
tasks’ ergonomic scores for each band. Table 10, Table 11, and Table 12 show results for bands 1,
26, and 47 respectively. In these tables, the maximum ergonomic score used is shown along with
the IP’s lower bound (LB) on the solution (number of workers), the IP solution (optimal is bolded),
the computation time to reach this IP solution, the CP solution(s) (optimal is bolded), the number
The range of possible maximum ergonomic scores for the different bands increases as the
problem size increases. This range might be limited by the possible number of workers in each
station. It should be noted that for each band there is a setting for the maximum ergonomic score
in which the IP fails to reach the optimal solution even though values below and above this setting
allows optimal solutions to be found. For these hard instances, the CP finds the optimal solution
in some of the runs with increased computational time. This indicates that the problem becomes
harder for some imposed maximum ergonomic levels as the solution pool becomes smaller.
Results also show that relaxing the maximum ergonomic score does not always help in reducing
Exp Max IP CP
(Band1) Ergo. LB Solution Time Solution # found Avg time
(HH:MM:SS) (HH:MM:SS)
E1.1 155 9 9* 00:03:59 9 10 00:00:49
E1.2 160 8 8 00:00:45 8 10 00:00:50
E1.3 165 8 8 00:01:01 8 10 00:00:53
E1.4 170 8 8 00:00:33 8 10 00:00:47
7 7 00:38:56
E1.5 175 7 8 00:00:11
8 3 00:00:38
E1.6 180 7 7 00:00:33 7 10 00:01:33
E1.7 No limit 7 7 00:00:07 7 10 00:00:36
* Optimal solution is bolded
68
Table 11: Sensitivity to maximum ergonomic score in Band 26
Exp Max IP CP
(Band26) Ergo. LB Solution Time Solution # found Avg time
(HH:MM:SS) (HH:MM:SS)
E26.1 150 12 12 00:05:43 12 10 00:00:57
10 3 00:23:54
E26.2 170 10 11 00:02:38
11 7 00:00:54
E26.3 180 10 10 00:09:20 10 10 00:01:08
E26.4 200 9 9 00:10:07 9 10 00:00:57
E26.5 250 7 8 00:00:49 7 10 00:09:00
E26.6 350 7 7 00:05:13 7 10 00:01:22
E26.7 No limit 7 7 00:08:26 7 10 00:01:08
Exp Max IP CP
(Band Ergo. LB Solution Time Solution # found Avg time
47) (HH:MM:SS) (HH:MM:SS)
E47.1 90 32 32 06:47:13 32 10 00:02:17
E47.2 100 29 29 08:03:06 29 10 00:02:17
26 5 00:02:18
E47.3 110 26 27 05:32:34
27 5 00:02:26
E47.4 120 24 24 05:50:04 24 10 00:02:11
E47.5 130 22 22 08:02:31 22 10 00:02:14
E47.6 140 21 21 05:21:45 21 10 00:02:14
E47.7 150 19 19 10:03:30 19 10 00:02:25
E47.8 160 18 18 03:19:44 18 10 00:02:10
E47.9 170 17 17 07:05:31 17 10 00:02:12
E47.10 180 16 16 10:39:56 16 10 00:02:13
E47.11 200 15 15 05:12:00 15 10 00:02:13
E47.12 300 11 11 09:02:07 11 10 00:02:15
E47.13 500 11 11 11:32:06 11 10 00:02:15
E47.14 No limit 11 11 07:51:35 11 10 00:02:18
69
3.4.2 Experiment 2: Sensitivity to constraints
In this experiment, the effect of disabling one (or more) soft constraints on the solution
quality and computation time is studied. For each band, a set of 8 different instances is generated.
The first instance is created by disabling all three types of constraints, namely the ergonomics,
mounting and assignment constraints. In the next three instances, only one type of constraints is
disabled. The following three instances study the interaction between the different constraints by
disabling two of them at a time. The last instance is the problem with no constraints disabled for
comparison.
Table 13, Table 14, and Table 15 summarize the constraints sensitivity results for Bands
Exp Constraints IP CP
Ergonomics Mounting Assignment LB Solution Time Solution Avg time
(Max=165) (HH:MM:SS) (HH:MM:SS)
S1.1 7 7 00:00:08 7 00:00:36
S1.2 8 8 00:03:08 8 00:00:37
S1.3 7 7 00:01:05 7 00:00:34
S1.4 7 7 00:00:10 7 00:00:37
S1.5 8 8 07:37:56 8 00:00:40
S1.6 8 8 00:00:51 8 00:00:52
S1.7 7 7 00:00:07 7 00:00:36
S1.8 8 8 00:01:01 8 00:00:53
Exp Constraints IP CP
Ergonomics Mounting Assignment LB Solution Time Solution Avg time
(Max=200) (HH:MM:SS) (HH:MM:SS)
S26.1 7 7 00:04:59 7 00:00:55
S26.2 9 9 02:28:42 9 00:00:56
S26.3 7 8 00:03:58 7 00:01:21
S26.4 7 7 00:00:51 7 00:00:55
S26.5 7 10 00:04:08 7 00:01:02
S26.6 9 9 01:07:20 9 00:00:52
S26.7 7 7 00:08:26 7 00:01:09
S26.8 9 9 00:10:07 9 00:00:57
70
Table 15: Band 47 sensitivity to constraints
Exp Constraints IP CP
Ergonomics Mounting Assignment LB Solution Time Solution Avg time
(Max=200) (HH:MM:SS) (HH:MM:SS)
S47.1 11 11 12:34:17 11 00:02:07
S47.2 15 15 11:53:30 15 00:02:05
S47.3 11 11 26:06:38 11 00:02:12
S47.4 11 11 03:32:52 11 00:02:04
S47.5 15 16 10:56:52 15 00:02:04
S47.6 15 15 01:17:59 15 00:02:02
S47.7 11 11 07:36:31 11 00:02:08
S47.8 15 15 05:12:00 15 00:02:13
There is an obvious trend in computation time increase for both the IP and CP as the
number of tasks increase from 50 to 75, then to 100 across the different bands. Removing the
assignment constraints in Band 1 increased the IP time to reach an optimal solution drastically. In
addition, the IP was unable to find an optimal solution within a day after removing the assignment
constraints in bands 26 and 47. On the contrary, solving the problem with only the mounting
constraints increased the computation time in band 47; no optimal solution was reached in band
26. It should be noted that the effect of disabling all constraints in CP is minimal as the standard
Table 16, Table 17, Table 18 show the number of IP violations in the line balance incurred
by disabling the constraints for bands 1, 26, and 47 respectively. We set the maximum ergonomic
score for each band as shown in the 2nd column for those experiments in which the ergonomic
constraints are included. In the “Number of violations” column, the total number of mounting and
assignment constraints is listed. It should be noted that it is not possible to violate all constraints
at the same time, as the total number of constraints represent the number of ways a violation may
occur.
71
Table 16: Number of IP violations in Band 1
72
3.5 Discussion
In this section, we discuss the sensitivity analysis results obtained for each band. The
distribution of both the ergonomic score and mounting positions are shown for each band followed
The histogram for the ergonomic scores of tasks in band 1 is shown in Figure 10. A high
ergonomic score means the task is physically demanding and might cause injury to the worker
performing it. Results for band 1 - experiment 1 are shown in Table 10. The average ergonomic
score for band 1 is 24.29. The first “maximum ergonomic score” level used for this band is 155,
in which an optimal solution is found with 9 workers. Increasing the maximum ergonomic score
to 160 reduced the number of workers in the optimal solution to 8. The IP struggles when the
maximum ergonomic score is increased to 175 as the lower bound is reduced to 7 workers but the
best solution found within the time limit is 8. The CP managed to find the optimal solution in 7
out of 10 replications. The combinatorial problem of finding a combination of tasks with a total
score of 175 assigned to 7 workers and conforming to the rest of constraints seems to be harder
than other levels of maximum ergonomic score. The ergonomic constraint is not binding if a
maximum score limit of 180 or more are used as the solution to the problem is 7 workers which is
73
Band 1
30
Frequency
20
10
0
10 20 30 40 50 60 70 80 90 100
Ergonomic score
The mounting positions used for tasks in band 1 are shown in Figure 11. Mounting position
0 is for tasks that are sub assembled on the side of the station. The tasks are distributed on the four
corners of the car; this is reflected on the lower count of mounting position constraints and
violations shown in Table 16. Also, this explains why this band behaved differently when the
mounting position constraints are the only constraints enforced as shown in Table 13. The solution
time did not change significantly as it did in the other two bands. The biggest impact on solution
time occurred when both the mounting and ergonomics constraints are enforced. The IP solution
time increased from a minute to over 7 hours. The CP solution time did not change and is consistent
Band 1
15
Frequency
10
5
0
0 1 2 3 4 5 6 7 8 9
Mounting positions
74
3.5.2 Band 26 (75 tasks):
Ergonomic scores of band 26 tasks are shown in the histogram of Figure 12. The average
ergonomic score for band 26 is 22.53. Unlike band 1, band 26 histogram shows a trend in the
relation between the number of tasks and ergonomic score. Results for band 26 - experiment 1 is
shown in Table 11. Starting maximum ergonomic score for experiment 1 is 150; solving the
problem gives an optimal line balance with 12 workers. Increasing the maximum ergonomic score
to 170 makes the problem hard to solve for the IP. The number of workers are reduced to 11 but
the lower bound is 10. The IP is unable to reach the optimal solution within the time limit. The CP
managed to find an optimal line balance with 10 workers in 3 out the 10 replications. In addition,
the IP was unable to reach the optimal when the maximum score limit is increased to 250 while
the CP managed to get to the optimal in all 10 replications. Increasing the maximum ergonomic
Band 26
20
Frequency
15
10
5
0
10 20 30 40 50 60 70 80 90 100
Ergonomic score
The tasks in band 26 mostly belongs to two mounting position as shown in Figure 13. This
is the reason behind having so many mounting position constraints. It took the IP 5 minutes to
reach the optimal solution without enforcing any of the soft constraints. Adding the ergonomics
constraints increased the time to reach the optimal for the IP. The huge number of mounting
75
constraints affected the IP as expected; no optimal solution is found by the IP within the time limit.
By enforcing the assignment constraint only the IP solution time is reduced to less than a minute.
By enforcing all soft constraints, the IP is able to find an optimal solution in 10 minutes. Disabling
the mounting constraints only led to an increase in the IP’s computation time. In addition, by
disabling the assignment constraints, the IP is unable to reach the (relaxed) optimal solution within
Band 26
60
Frequency
40
20
0
1 2 3 4 5 6 7 8 9
Mounting positions
The number of band 26 violations recorded for experiment 2 is shown in Table 17. The
highest number of violations occurred when no soft constraints are enforced. Among the 75 tasks,
there are 67 worker interference cases in the line balancing schedule. This number might look
small when compared to the number of mounting constraints, but it is not possible to violate all of
the constraints at the same time and this number is large relative to the number of tasks. The
number of assignments violation is also large relative to the total number of tasks. That is, almost
half of the tasks violated the assignment constraint. Enforcing either the ergonomics, the
76
3.5.3 Band 47 (100 tasks)
The histogram for the ergonomic scores of band 47 is shown in Figure 14. The average
ergonomic score for this band is 28.29. The scores for this band are almost uniform with more
tasks having a low ergonomic score. This is reflected on the wide range of maximum ergonomic
scores for which the IP is able reach an optimal solution. The results of band 47 - experiment 1 is
shown in Table 12; the maximum ergonomic score for this band is varied between 90 and 500.
The lower maximum ergonomic score used (90) yielded a line balance with 32 workers while the
highest level used (300) resulted in a line balance with only 11 workers. This range gives the
decision maker a good room to change the maximum ergonomic score based on the balance of
cost/workers’ health risks. Again for one level of maximum ergonomic score (110), the IP is unable
to reach the optimal solution within the time limit. However, the CP reached the optimal solution
in 5 out of the 10 replications. The time of CP computations is more consistent when compared to
Band 47
40
Frequency
30
20
10
0
10 20 30 40 50 60 70 80 90 100
Ergonomic score
The mounting positions used in band 47 are shown in Figure 15. In this band, all mounting
position are used except for mounting position 5. The results for band 47 - experiment 2 are shown
in Table 15. Solving the problem with no soft constraints enforced yielded a line balance with 11
workers. It took the IP over 12 hours to reach the optimal solution; perhaps there are many alternate
77
solutions, and symmetry breaking constraints would help. When the mounting position constraints
are the only soft constraints enforced, the IP computation time is doubled when comparing to the
solution time when no constraints are enforced. For the case when the mounting position
constraints are disabled and the assignment and ergonomic constraints are enforced, the IP
computation time is reduced from 12 hours to 1 hour. Also, enforcing only the assignment
constraints reduced the IP time to reach the optimal solution. On the other hand, the IP is unable
to reach an optimal solution within the time limit when the assignment constraints are removed
and the other two soft constraints are enforced. Enabling all constraints reduced the computation
Band 47
20
Frequency
15
10
5
0
1 2 3 4 5 6 7 8 9
Mounting positions
The number of constraint violations recorded for each instance of band 47 - experiment 2
is shown in Table 18. When disabling all soft constraints, the number of mounting and assignment
violations amount to less than half the number of tasks on this band which is still high. In this line
balance, one of the workers is assigned tasks with a total weighted ergonomic score of 456.59. By
applying only the ergonomic constraints, both the mounting and assignment violations are reduced.
78
3.6 Conclusion
In this chapter, two sensitivity analysis experiments are conducted using data from an
automaker. The first experiment studies the effect of changing the maximum ergonomic score limit
on the solution quality and computational time. Results show that the problem becomes harder for
some levels of maximum ergonomic level limit. For these instances, the IP failed to reach the
optimal solution within the allowed time. However, the optimal solution is found in some of the
CP runs for each hard instance. The decision maker should be aware of this when deciding on the
maximum ergonomic limit. The second experiment studies the effect of disabling a subset of
constraints on the solution quality and computational time. Results show that the assignment
constraint helps the IP reach the optimal solution within the time limit. By disabling the assignment
constrain the IP is unable to reach the optimal in two bands and the computation effort required to
reach the optimal increased in one band. Furthermore, using only the mounting constraint led to a
huge computational effort to reach the optimal in one band while the optimal is not even reached
in one band.
These three bands, while from an operating OEM and hence observed and not designed for
this study, provide varied characteristics that may be useful in future research. The bands have
different distributions of ergonomic scores and different types of mounting positions that may
provide some hypotheses for future research. For example, a further study of the impact of
ergonomic score distribution can be conducted assuming all parts are in the same mounting
position and only one worker can be assigned to each station; this would extend the concept
presented earlier of a two-dimensional bin packing problem enhanced with precedence constraints.
As a result of such a study, individual tasks could be targeted for redesign or increased attention,
based on their impact on the overall line balance. As another example of a future study, we observe
79
that two bands studied here had disjoint mounting positions while the third had contiguous
mounting positions. Further, in band 26, the mounting positions were such that no single person
could work in more than one, while the potential for a person to work in more and more mounting
positions was moderate in band 1 and extreme in band 47. The types of creative assignments of
tasks to workers in the bands with more potential for work being done in adjacent mounting
Exploring other soft constraints that are just a preference and may not have significant
technical implications (e.g., some precedence relations) maybe a good direction for future
research. By identifying which of these constraints are hard on the IP, the computation time can
be reduced without affecting the quality of the results obtained. In addition, since the results of
80
CHAPTER FOUR
4.1 Introduction
Mixed model assembly lines are used to produce a variety of customized products in a cost
efficient flow mass production environment. Customers have the privilege of selecting the options
they would like to be included in their product and the manufacturer will have to manage
significant product variety as a result. In order to keep costs down, manufacturers utilize the
worker/machine flexibility that is available in the mass production environment to jointly produce
different unique products in an intermixed fashion on the same line. After dealing with the long
term problem of line balancing, another short term problem is faced which is the sequencing
problem. The sequencing problem is solved to answer the question of how to sequence the given
different models for production in a production run. Different production sequences will have
different economic impacts that are related to worker utilization or material usage. The sequencing
problem in the literature is introduced using two different general objectives, namely work
overload minimization and leveling part usage. Work overload occurs when several work intensive
models are sequenced in a consecutive manner, which can be avoided by choosing a sequence in
which models that require much work alternate with others that require less work. Furthermore,
since different options usually require different parts or material, the model sequence is an
important factor in parts logistics. In this work we will be concentrating on the work overload
minimization objective. See Boysen et al. (2009a) for a survey on level scheduling research.
According to Boysen et al. (2009a), there are two different approaches in the literature to
81
The mixed model sequencing problem: In this approach, a detailed schedule of the
production run is sought taking into account operation times, worker movement, station
The car sequencing problem: This approach avoids the troubles of collecting data that is
needed for the detailed mixed model sequencing by minimizing the work overload in an
indirect manner by formulating a set of sequencing rules. These rules are to limit the
occurrence of certain time consuming options in a given length of order sequence. The
In the following section a review on the comparison between the two approaches is given
followed by a literature review on related work. The subsequent section illustrates the problem
description with an example. This is followed by model building and mathematical formulation.
The two approaches to handle the work overload problem in a mixed model assembly line
are the mixed model sequencing problem (MMS) and the car sequencing (CS) problem. Although
the two problems may have the same business goal, they are based on two different mathematical
formulations with different objective functions. The MMS objective directly minimizes the work
overload while the CS problem has an indirect objective in which the number of sequencing rules’
violations is minimized. These rules are generated using different approaches that aim to avoid
having several labor-intensive car models in consecutive order which in turn causes work overload.
CS is a more aggregate approach for finding a production sequence when compared with MMS. It
assumes that different models can be distinguished by either having the option or not. For each
option 𝑜, CS uses a sequencing rule 𝐻𝑜 : 𝑁𝑜 to limit the occurrence of that option to at most 𝐻𝑜 in
82
any subsequence of 𝑁𝑜 models. For example, a rule 2:5 for the option sunroof means that among
any subsequence of five models only two of them may have the option sunroof.
Golle et al. (2014) conducted experiments to quantify the difference in solution quality
between the two approaches. They used different approaches to generate the rules from the
literature such as the Bolat and Yano sequencing rule which assumes only one option at each
station. Since the Bolat and Yano rule is limited and was found to exclude feasible solutions from
consideration, Golle et al. (2014) also tested the multiple sequencing rule approach that ensures
that no feasible sequence violates a sequencing rule. In addition, the authors considered the three
most commonly used objective functions in the literature. Also, several weighting factors from the
literature were used. Tests were done on a large number of randomly generated instances. The
results showed that although the objectives of the two approaches are positively/ linearly
correlated, the MMS solution quality outperformed the CS counterpart. The authors claim that the
solution of the CS problem is not even competitive across all test instances and the different
objectives used. According to the authors, the CS results in solutions with at least 23% more work
overload when compared to the MMS problem. They managed to decrease this gap to 15% by
considering their weighting factor for CS. Furthermore, they noted that the difference in quality
increases with the use of inadequate rules and objective functions. They concluded that the use of
surrogate objective function in CS aggregate too much data which makes it less useful in finding
a sequence that truly minimizes the work overload. Following this result, we will be using the
MMS approach.
83
4.3 Problem description
In mixed model assembly lines, different models that have a variety of customizations are
assembled on the same line. Since these models require different processing times at each station
depending on the custom options required, usually some of them will require an amount of time
that is higher than the cycle time while others will have a processing time which is less than the
cycle time. If several of the models with the high processing times are produced in a consecutive
order, workers at some station will have a hard time finishing the required task before reaching the
end of the station which will result in the inability to return to the beginning of the station when a
new work piece enters the station, or in other words, the worker will fall behind. This shift in a
worker’s position will accumulate as long as models that require a processing time that is higher
than the cycle time are sequenced after each other. Work overload occurs when the worker is
unable to finish working on the work piece within the boundaries of the station. If work overload
occurs, several reactions are possible including but not limited to:
- The assembly line is stopped until all work is done on work pieces across all stations.
- Utility workers are used either to help workers or to take over the work on the work piece
- The unfinished work is left to be done off line in a special station after the work piece exists
- The worker increases his/her production speed at the risk of quality issues.
To avoid any of the costly reactions to work overload, mixed model sequencing attempts to
find a sequence such that cars with options that require a high processing time alternates with other
cars that require less processing time at each station. The use of utility workers has been studied
in the literature as one of the methods to handle work overload but the detail of how utility workers
84
are used differed. The assumption that is usually used in the literature was named the side-by-side
policy by Boysen et al. (2011). In this assumption the utility worker is called whenever an overload
situation is anticipated. The utility worker is assumed to support the regular worker by working
with him side by side and doubling his processing speed. This way the worker will only require
half the duration of the work overload amount to finish processing the required tasks on the car. It
is assumed that the utility worker help starts at a position in the station such that the work required
at that station is done by the right hand border of the station assuming that the flow of the assembly
is from left to right. Boysen et al. (2011) argue that the assumption of side-by-side policy is
restrictive and not realistic because, for example, work piece size may allow only one worker, the
assumption of doubling speed is not realistic and dependent on the interaction between the
workers, and utility workers cannot simply show up exactly when needed. As an alternate solution,
they propose the skip policy which they claim is being used by major European car manufacturers.
In the skip policy, the worker calls the utility worker whenever a work overload is expected. The
utility worker then takes over the work on the work piece that is expected to cause the overload
while the normal worker skips it and starts working on the next work piece coming after it. The
utility worker is usually a group leader who is responsible for several stations and who is cross
trained to be able to handle all tasks that are assigned to any of his stations. The difference between
Stations on a production line might be closed in the sense that no operators can cross their
boundaries to an adjacent station. This limitation is necessary if the working area require specific
environmental conditions such as heating champers or paint shops. On the contrary, workers can
cross borders of open stations but the range of how far they can go into an adjacent stations is
always limited. The restriction might be related to a limit on the range of a power tool or the
85
window of the material handling system. Furthermore, the areas of adjacent stations may overlap
but workers from the two stations are not allowed to interfere with each other by working on the
same work-piece at the same time. Open stations are useful in mixed model production because it
possible for a worker who finished working early on a work-piece to “swim” (move upstream) to
the previous station so he can have more time to work on labor-intensive models. With a proper
production sequence, the worker can avoid any work overload or the need of the utility worker
help.
Yano & Rachamadugu (1991) investigate the mixed model sequencing problem with the
objective of minimizing work overload. First, the authors propose an optimal algorithm for the
case of one station and two products. Then they propose a greedy heuristic that is based on branch
and bound to solve the problem with multiple stations. They tested the proposed heuristic on data
provided by an automobile company and compared the heuristic results against the results the
company get using their own procedure. Yano & Rachamadugu (1991) claim that the proposed
Bolat & Yano (1992a) develop a procedure to minimize utility work for the MMS problem
with one station, two types of products, and no buffers. They prove that the proposed spacing rule
simple procedure is optimal if the load in the system is sufficiently high or low. In addition, they
develop error bounds on the algorithm if the load conditions are not satisfied. For a moderately
loaded system, Bolat & Yano (1992a) develop a greedy algorithm that is optimal under certain
processing time requirements. For cases in which the optimality is not guaranteed, the authors
develop a dynamic program in addition to a variation of the greedy algorithm proposed. Results
show that the greedy algorithm outperforms the spacing rule procedure over some parameter
86
values. The authors note that in the class of problems for which the solutions are still far from
optimal require a combination of different procedure to be solved. Moreover, Bolat & Yano
(1992b) introduce a surrogate objective to the utility work that yields a scheduling problem that is
easier to solve. The objective is a car sequencing rule of not having a number of cars with an option
Tsai (1995) considers the problem of mixed model sequencing for one station with the
objectives of minimizing both utility work and the risk of line stoppage. The author lists two
different management philosophies in handling work overload in U.S. and Japan. In the U.S. the
utility worker is deployed to finish work left undone by the primary worker. On the other hand in
Japan the operator pushes a stop button when he is unable to finish his work. A proof that the
problem of minimizing either objective is NP hard in the strong sense is given first. Assuming that
product processing times can take only one of two distinct values, Tsai (1995) proposes an optimal
algorithm that minimizes both objectives in O(log N) computation time. Furthermore, the objective
value from the single station case can be used as a lower bound for a multiple stations/processing
times case.
Sarker & Pan (1998) consider a mixed model assembly line with both open and closed
stations. They study the problem of minimizing the utility and idle time costs that are incurred due
to various line parameters along with the sequencing of different models. The authors develop two
different models for the open-station and closed-station systems in order to find the optimal
parameters and sequences for each system. The models are able to provide the best parameters that
would minimize the total cost. The results show that for a given line length, the open-station system
87
Scholl et al. (1998) study the MMS problem with fixed launch rate, closed stations, and the
objective of minimizing the work overload. They propose a reformulation of the problem to
consider patterns in subsequences that can be put together to make the complete sequence. The
basic idea is to decompose the problem of finding the complete sequence to problems of finding
appropriate patterns and then combining them to get the solution. They define a pattern to be a
subsequence in which the worker resets his position to the station border after completing all the
work required for that subsequence. Scholl et al. present a method to solve the problem by first
generating patterns based on a pattern based vocabulary building strategy using the column
generation technique and then searching for a complete sequence (solution) using tabu search.
Furthermore, the authors show that the vocabulary building procedure of the method is not affected
by the number of products to be sequenced while other phases of the method will be affected by
Bautista & Cano (2008) propose a single station sequencing heuristic algorithm with two
types of products that is based on the heuristics proposed by Yano & Rachamadugu (1991) and
Bolat & Yano (1992a). They also extend their heuristic to account for multiple products and
multiple stations. Results show a satisfactory performance in terms of quality and speed.
Cano-Belmán et al. (2010) use a hyper heuristic to solve the problem of MMS with closed
stations (without links). The proposed hyper heuristic uses scatter search as high level
metaheuristic along with a low level priority rule constructive heuristic. The authors compare the
two proposed hyper heuristics against other algorithms from Bautista and Cano (2008), improved
best solution using local search, and exact solution using CPLEX. They find that improvement
methods are needed to get good quality solutions that outperform other heuristics in comparison.
88
Bautista & Cano (2011) extend the models of Yano and Rachamadugu (1991) with the
objective of maximizing the total work completed in the assembly line, and Scholl (1998) with the
objective of minimizing the work overload. The proposed models take into consideration the link
between neighboring stations. This is done by adding a new constraint that limits the starting
position of the work done on a work piece form starting while work is not finished in the previous
station. The variables of the model are based on the work piece instead of a period. The authors
introduce an interruption rule for the management of interruptions and work intensification and
propose two new models based on the rule to make the stations more autonomous. Furthermore,
they propose a solution that they named the bounded dynamic programming to solve the given
sequencing problem. Computational results on 225 instances form the literature show the fast
performance of the proposed method compared to the CPLEX solver. Next, the authors present a
case study from the Nissan powertrain plant in Barcelona to test the new proposed solution method
on real world assembly lines. The solution and lower bounds of the proposed approach were better
Bautista et al. (2012) present two models for mixed model sequencing problem for
assembly lines with stations in series and homogeneous processors in parallel extending the models
in Bautista & Cano (2011). The difference between the two models is the use of absolute time
scale versus the use of relative time scale. The same assumptions that the line can be stopped and
operation interruption can happen anytime while retaining the work in progress still hold. In
addition, it is assumed that a worker who did not complete all the work at the station is allowed to
leave the unit so that the unfinished work can be completed later. Bautista et al. (2012) define an
alternate surrogate for workload minimization which is minimizing the variation of work overload
rates across all stations on the line. They propose different approaches to avoid work overload
89
concentrations at each workstation and at specific time instants of the work day. These approaches
are regulating the work required, the work completed, or the overload at a station throughout the
workday. They apply the proposed approaches to a set of examples representing different scenarios
from the powertrain production line of a Nissan plant in Barcelona. Finally, they compare the
different approaches and conclude that models with regularity functions produce better results
Boysen et al. (2011) study utility work organization in the MMS problem with closed
stations. They propose a more realistic problem in which the objective is to minimize the work
overload situations. In the literature, the side-by-side policy is often assumed in which a utility
worker helps the regular worker finish the remaining work whenever the regular worker is unable
to finish the work assigned to him within the stations’ boundaries. In the proposed policy, a normal
worker skips working on a work-piece whenever work overload is expected and the utility worker
starts working alone on that work-piece (calling this the skip policy). In addition, Boysen et al.
(2011) develop a branch and bound procedure along with different heuristics to solve the problem.
Finally, the authors show the advantage of the proposed skip policy by comparing it to the
Tamura et al. (2011) consider the MMS problem with the objective of minimizing the line
stoppage time. They propose a formulation for the problem and derive a relationship between the
line stoppage time and makespan. The authors develop a branch and bound algorithm and show
packages. They conclude that heuristics are needed to solve larger problems.
Gujjula et al. (2011) develop a heuristic that is based on Vogel’s approximation to solve
the MMS problem. The motivation for their work is to find a method to solve real-life large
90
problems. They use two other heuristics from the literature to benchmark the results of the test
scenarios; the first is a combination of a priority rule-based method with lower bounds
determination, and the second is an adjusted version of the heuristic proposed by Bautista and
Cano (2008). Finally, Gujjula et al. (2011) show the performance of the proposed heuristic by
Cortez, & Costa (2015) study the problem of MMS with a heterogeneous workforce which
is motivated by assembly lines in sheltered work centers for the disabled. Based on heterogeneous
workforce, task processing time is both model and worker dependent. The authors formulate the
problem and propose a constructive heuristic method that is based on a simplified and
approximated models for the problem. Furthermore, Cortez, & Costa (2015) propose a meta-
heuristic that is based on the greedy randomized adaptive search procedure (GRASP). The authors
show the speed of proposed heuristics by comparing it against the solution obtained using CPLEX.
Bautista et al. (2015) consider the mixed model sequencing in which the objective is to
minimize the work overload. They propose to consider the work pace factor in the model by the
use of variable processing times with the objective of minimizing the work overload or increasing
the completed work. The activity of workers is set by using a function that represents the periods
of adaptation and fatigue throughout the working day. The authors use a case study from the Nissan
powertrain plant in Barcelona to analyze the performance of the proposed model using the Gurobi
solver. The results show that a very small increase in the activity of the operators can reduce the
Recently, Mosadegh et al. (2016) study the problem of MMS with one station, stochastic
processing times, and the objective of minimizing the expected total work overload. The authors
find that their proposed dynamic programming approach is not guaranteed to find the optimal
91
solution because of the recursive computation required to calculate the work overload. To
overcome this problem, the authors reformulated the problem as a shortest path problem. They
propose a heuristic that is based on Dijkstra’s algorithm to solve the problem and show the quality
4.4.1 An example
Consider an assembly line with 3 stations, in which each station has a length of 13 time
units (TU) which is the time a work-piece spends in the station. Assume that every 10 TU a new
work-piece is launched down the assembly line (cycle time) and that workers are not allowed to
swim past the station borders. Furthermore, assume that the processing time for each model at each
station is as shown in Table 19 and the demand is 2 units of models 1 & 2 and 1 unit of models 3
& 4. Let the sequence be (model 1, model 1, model 2, model 2, model 3, and model 4).
Table 19: Example data for the mixed model sequencing problem
In the figures, the production sequence starts from the bottom and ends at the top of the
figure. Figure 16 shows the position and movement of both the regular and utility workers for the
side-by-side policy. The horizontal solid blocks represent the movement of the regular worker
when he is working on a work-piece while the diamond filled blocks represent the movement of
both the regular and utility workers when they are working together on a work-piece. The dashed
diagonal lines represent the return movement of the regular worker to start working on the next
work-piece.
92
The outlined diamond blocks represent the time in which both the utility worker and the
normal worker are both working side-by-side on the work piece. The time it takes the regular
Figure 17 shows the movement for the skip policy case, resulting in an overload usage
count of 3 compared to 5 in the side by side policy for the same given sequence. The checkerboard
blocks represent the time the utility worker is working at the regular pace alone on the work-piece.
93
Figure 17: Movement in the skip policy
If it is assumed that a regular worker can swim across his station’s border to the previous
station, he can start working on the coming work piece in the station that precedes his station if he
is ready and if the worker in the previous station has finished the required tasks on that work piece
early. The number of overload usage can be reduced for the given sequence if swimming is allowed
as in Figure 18.
94
Figure 18: Movement with swimming allowed
Even if swimming of workers is not allowed, an optimal model sequence to the example
reduce the number of overload usage count to 1. The detailed worker movement diagram for an
optimal solution is shown in Figure 19. The worker in station 2 working on the first Model 2 car
is able to swim into the previous station to start working on it early. This way, no utility worker is
needed for the second Model 2 car at station 2 because the overload situation is avoided.
95
Figure 19: Worker movement in an optimal solution for the example
In this work, the skip policy with swimming allowed is used in the formulation and the solution
of the mixed model sequencing problem with the objective of minimizing the work overload
situations. The following assumptions are often used in real world assembly lines and are used to
- The mixed model demand and the processing time of all tasks is deterministic.
- Working across the borders of the station is possible (open stations), and we assume that a
worker can swim (drift) to the previous station so he can start working on the work piece
earlier if the worker in that station finished working before the end of the station.
- The processing time for all tasks is always less than the station’s length.
96
- Regular workers will not be required to drift to the next station to complete any task since
utility workers take care of overload situations and tasks are always less than the station
length.
- The length units (LU) and time units (TU) are the same assuming that conveyor velocity is
normalized to 1 LU/TU.
- The operator returns to the next work piece with infinite velocity. This is because the speed
- Regeneration is not required, i.e. there is no need to reset workers’ position to zero after
- Stations may have different lengths and different starting positions for workers.
- The cycle time is fixed and work pieces are launched down the line in equal intervals.
97
4.5 Model formulation
In this work, we extend the model provided by Boysen et al. (2011) by adding station to
station interaction via worker swimming. We propose an IP and a heuristic to solve the MMS
problem with swimming and assess their performance using data from Bautista & Cano (2011).
Therefore, we will compare the IP and heuristic performance as opposed to comparing our
The parameters and variables needed for the MMS are shown in Table 20 and are
illustrated in Figure 20. Each station 𝑘 has a length 𝑙𝑘 that is greater than the cycle time 𝑐, and an
early start position 𝑞𝑘 that may be less than 0 to allow the worker to swim to the previous station
so he can start working early on the next work piece in sequence if that is needed. The worker will
not be able to swim to the previous station unless the worker in that station finishes his work early
98
in the previous period (due to the potential for work location overlap). The binary decision variable
𝑥𝑚𝑡 takes the value 1 when car model 𝑚 is assigned to period 𝑡 and 0 otherwise.
If the projected ending time for model 𝑚 at station 𝑘 (𝑝𝑚,𝑘 ) in period 𝑡 is greater than the
station’s length (𝑠𝑘,𝑡 + ∑𝑚 𝑝𝑚𝑘 𝑥𝑚𝑡 ≥ 𝑙𝑘 ), a utility worker is called to help and the regular worker
completely skips the overload causing work piece to start working on the work piece that follows
it (𝑦𝑘,𝑡 = 1). Thus, the starting position of each worker depends on both the finishing position of
the same worker in the previous period and the finishing position of the worker in the previous
99
4.6 Mathematical model
Decision variables:
The model may be represented with the use of an additional variable 𝑓𝑘𝑡 that represents
the finishing position of worker in station 𝑘 when cycle 𝑡 ends. In the following we use the
expression 𝑠𝑘𝑡 + ∑𝑚 𝑝𝑚𝑘 𝑥𝑚𝑡 instead of introducing an additional decision variable to the integer
program.
Objective:
𝑚𝑖𝑛𝑖𝑚𝑖𝑧𝑒 𝑍 = ∑ ∑ 𝑦𝑘𝑡
𝑡 𝑘
The objective is to minimize the number of overload situations across all production cycles
and stations.
100
Only one model is assigned to each production cycle.
∑ 𝑥𝑚𝑡 = 1 ∀ 𝑡 = 1, … , 𝑇 (C4.1)
𝑚
Demand for car models should be satisfied during the production horizon.
∑ 𝑥𝑚𝑡 = 𝑑𝑚 ∀ 𝑚 = 1, … , 𝑀 (C4.2)
𝑡
The variable that indicates an overload situation is flagged using the following constraints.
This variable 𝑦𝑘𝑡 should be equal to 1 if an overload will occur when the finishing position
of the worker 𝑓𝑘𝑡 exceeds the station’s length 𝑙𝑘 . (Recall, 𝑠𝑘𝑡 + ∑𝑚 𝑝𝑚𝑘 𝑥𝑚𝑡 represents the
finishing position of worker in station 𝑘 when cycle 𝑡 ends). It should be noted that a
redundant constraint is used (C4.4) compared to the formulation in Boysen et al. (2011) in
which only one constraint is used. The reason is because when one constraint only is used,
𝑦𝑘𝑡 will be free to take any value in some cases but will be pushed to equal zero since the
minimization of the sum of 𝑦𝑘𝑡 is the objective. The redundant constraint will help setting
the flag variable 𝑦𝑘𝑡 correctly regardless of the objective function and will define the
The starting position of the worker of each station depends on the finishing position of the
same worker in the previous cycle if no utility worker is needed (no overload situation). In
101
the case of overload situation, a utility worker is called to help and the worker can skip the
current cycle’s car and start working on the next cycle’s car.
2, … , 𝑇, 𝑘 = 1, … , 𝐾
A worker cannot start working on a car unless the worker in the previous station has
finished working on it. In case the previous station had a utility worker in the previous
period, the utility worker will always finish working on the car before the end of the station.
The starting position of workers should be greater than or equal to the minimum starting
position allowed in his station and less than or equal the difference between the length of
𝑠𝑘𝑡 ≥ 𝑞𝑘 ∀ 𝑡 = 1, … , 𝑇, 𝑘 = 1, … , 𝐾 (C4.8)
𝑠𝑘𝑡 ≤ 𝑙𝑘 − 𝑐 ∀ 𝑡 = 1, … , 𝑇, 𝑘 = 1, … , 𝐾 (C4.9)
𝑠𝑘1 ≥ 𝑎𝑘 ∀ 𝑘 = 1, … , 𝐾 (C4.10)
Variable domains.
102
4.7 Solution approach
problem, we expect that there will be limitation in using the Integer Program (IP) to solve
that is able to solve small and medium sized problems and that can be used as a benchmark to any
other solution methods used. In this section we present a meta-heuristic named the greedy
procedures that coordinate simple heuristics or rules to find good quality solution for hard
The GRASP metaheuristic is an iterative greedy heuristic that was proposed by Feo and
Resende (1989) as a heuristic to solve the set covering problem and later was named in the
following paper by Feo and Resende (1995). GRASP is composed of two steps: construction of a
solution and local search. In the construction step, the solution is constructed by iteratively adding
elements to the partial solution in a greedy way such that each added element has a minimal impact
on the solution’s objective value. After a solution is constructed, local search is performed to check
the solution’s neighborhood for a better solution. The greedy algorithm is randomized to be able
to generate several solutions. Since the local search depends on the initial solution, this
metaheuristic will be efficient if the constructive heuristic samples different promising parts of the
search space.
103
4.7.1.1 Constructive greedy randomized algorithm
The first step in the GRASP metaheuristic is to generate a good feasible solution to the problem.
The heuristic starts with an empty solution and appends an element from a restricted candidate list
RCL to the solution at each iteration. The determination of the next element to be added to the
solution is done in part using a greedy evaluation function that represents the incremental increase
in cost that accompanies adding that element to the partial solution. Using that function a list of
candidate elements that have the lowest increase on the cost of the partial solution is generated.
The candidate set is the set of all possible elements that can be incorporated into the solution.
Furthermore, the RCL is the list of candidate elements that will impact the objective the least. In
order to make use of randomness in generating different solutions with good quality, the element
to be added to the partial solution is selected randomly from the RCL. A pseudo code for the greedy
104
Algorithm: Constructive greedy randomized algorithm.
1. 𝑆 ← ∅;
2. Populate the candidate set 𝐶;
3. Evaluate the incremental cost 𝑐(𝑒) for all 𝑒 ∈ 𝐶;
4. while 𝐶 ≠ ∅
5. Build a restricted candidate list with elements that have an
incremental cost equal to the minimum across the candidate set.
𝑅𝐶𝐿 ← 𝑒 ∀ 𝑐(𝑒) = min(𝑐(𝑒): 𝑒 ∈ 𝐶);
6. Select element 𝑠 ∈ 𝑅𝐶𝐿 at random;
7. Incorporate 𝑠 into the solution: 𝑆 ← 𝑆 ∪ {𝑠};
8. Update the candidate set 𝐶;
9. Reevaluate the incremental cost 𝑐(𝑒) for all 𝑒 ∈ 𝐶;
10. end
11. return 𝑆;
end
metaheuristic that is based on a single solution (such as simulated annealing and tabu search) and
not a population of solutions (such as genetic algorithms). This function should be selected
neighborhood of a solution 𝑆 is defined by the set 𝑁(𝑆) ⊆ 𝑋. The members of the neighborhood
set are generated by the application of a move operator that performs a small perturbation to the
that yields small changes in the solution value. There are two general types of operators for a
permutation solution representation. The first is the position-based neighborhood such as the
insertion operator in which one random element is removed from its position to be inserted into a
new random position in the sequence. The insertion operation is illustrated in Figure 22. The
105
second is the order-based neighborhood, with operators like the exchange and inversion operators
illustrated in Figure 23 and Figure 24 respectively. In the exchange operator, two randomly
selected elements are swapped while in the inversion operator, two random elements are selected
Local search iteratively generates solutions from a predefined neighborhood 𝑁(𝑆) and
moves to a better solution once and if it is found. The exploration of the neighborhood is usually
106
Algorithm: Local search
1. while the max number of iteration is not reached do
2. Find 𝑆 ′ ∈ 𝑁(𝑆) with 𝑓(𝑆 ′ ) < 𝑓(𝑆);
3. 𝑆 ← 𝑆′;
4. end
5. return 𝑆;
end
There are two primary design decisions to implement GRASP for the MMS problem: the
Objective function:
For a given sequence, let 𝑏𝑘,𝑡 denote the current processing time for the model assembled
in station 𝑘 in cycle 𝑡. In order to know the number of overload situations for this given sequence,
the starting 𝑠(𝑘, 𝑡) and finishing 𝑓(𝑘, 𝑡) position of workers at all stations 𝑘 = 1, … , 𝐾 for all
production sequences 𝑡 = 1, … , 𝑇 should be calculated. The overload for each station at each
production cycle 𝑜(𝑘, 𝑡) can be easily calculated using the skip policy detailed earlier. The number
of overload situation for the given sequence is equal to the sum of all overload situation across all
the stations and production cycles. The algorithm for the evaluation of a given sequence is given
in Figure 26.
107
Algorithm: overload situations for a given sequence
1. Initialize starting positions at t=1
for 𝑘 = 1 𝑡𝑜 𝐾
𝑠(𝑘, 1) = 0;
end
2. Calculate workers’ finish & start positions for all production cycles and record any overload situation
for 𝑘 = 1 𝑡𝑜 𝐾
𝑓(𝑘, 1) = 𝑠(𝑘, 1) + 𝑏(𝑘, 1);
end
for 𝑡 = 2 𝑡𝑜 𝑇
if 𝑓(1, 𝑡 − 1) ≤ 𝑙(1) & 𝑜(1, 𝑡 − 1) == 0
𝑠(1, 𝑡) = max{0, 𝑓(1, 𝑡 − 1) − 𝑐} ;
else
𝑠(1, 𝑡) = max{0, 𝑠(1, 𝑡 − 1) − 𝑐} ;
end
𝑓(1, 𝑡) = 𝑠(1, 𝑡) + 𝑏(1, 𝑡);
if 𝑓(1, 𝑡) ≥ 𝑙(1)
𝑜(1, 𝑡) = 1;
𝑠(1, 𝑡) = 0;
𝑓(1, 𝑡) = 𝑠(1, 𝑡) + 𝑏(1, 𝑡);
end
end
for 𝑘 = 2 𝑡𝑜 𝐾
for 𝑡 = 2 𝑡𝑜 𝑇
if 𝑓(𝑘, 𝑡 − 1) ≤ 𝑙(𝑘) & 𝑜(𝑘, 𝑡 − 1) == 0
𝑠(𝑘, 𝑡) = max{𝑞(𝑘), 𝑓(𝑘, 𝑡 − 1) − 𝑐, 𝑓(𝑘 − 1, 𝑡 − 1) − 𝑙(𝑘 − 1)} ;
else
𝑠(𝑘, 𝑡) = max{𝑞(𝑘), 𝑠(𝑘, 𝑡 − 1) − 𝑐, 𝑓(𝑘 − 1, 𝑡 − 1) − 𝑙(𝑘 − 1)} ;
end
𝑓(𝑘, 𝑡) = 𝑠(𝑘, 𝑡) + 𝑏(𝑘, 𝑡);
if 𝑓(𝑘, 𝑡) ≥ 𝑙(𝑘)
𝑜(𝑘, 𝑡) = 1;
𝑠(𝑘, 𝑡) = 0;
𝑓(𝑘, 𝑡) = 𝑠(𝑘, 𝑡) + 𝑏(𝑘, 𝑡);
end
end
end
5. Calculate the total overload
𝑇𝑜𝑡𝑎𝑙𝑜𝑣𝑒𝑟𝑙𝑜𝑎𝑑 = ∑𝑘 ∑𝑡 𝑜(𝑘, 𝑡);
108
4.7.1.5 Neighborhood function for the MMS problem:
The solution to the MMS problem is naturally represented by a permutation since it is the
models’ sequence to be assembled on the assembly line. The adjacency of the models in the
sequence affects the number of overload situations. Thus, the order-based neighborhood is more
suitable for the MMS problem and specifically the exchange (swap) operator. This operator swaps
the position of a predefined number of elements in the sequence. Swapping more than two elements
in the sequence of the MMS problem makes a big perturbation that might never lead to a better
solution. For the GRASP algorithm, the 2- exchange operator is used in which two production
The first step in the randomized greedy algorithm is to populate the candidate set, 𝐶, which
in our case is the different models to be assembled on the assembly line. The inputs to the algorithm
are the task duration on all stations for all models, cycle time, stations’ length, swimming amount
allowed for each station, and the demand of each model. Initially, the candidate list will have all
models and the solution can start by picking a model randomly. However if swimming is not
allowed, the task with highest total task duration across all stations can be picked first since it is
the most demanding model and the starting position for workers are initialized to zero. The next
step in the greedy algorithm is to update the candidate list, by updating the demand for each model
and removing models with a demand of zero, and calculate the cost (overload situations) of adding
each of the models to the sequence. After that, a restricted candidate list (RCL) is generated from
the candidate list by keeping models that will incur the minimum cost when added to the sequence
and removing all the other candidate models. Afterwards, one of the models in the RCL is selected
randomly and appended to the sequence. The procedure will iterate until all demand is satisfied.
109
4.8 Computational experiments
In our computational experiments, we use instances from the Nissan powertrain plant in
Barcelona that are presented in Bautista & Cano (2011). The plant assembles nine types of engines
that are grouped under three families (4x4, vans and trucks) through an assembly line that is
composed of 21 workstations. The stations are arranged serially and are linked to each other. In
addition, each station has the same number of operators under normal operating conditions. The
processing time for each type of engine on each stations is provided in Table 21. This table is a
result of a line balance presented in Bautista and Pereira (2007) that is done for the Nissan
powertrain plant in Barcelona. The 46 instances are grouped into two blocks: the first has 23
demand plans each for 270 units, which is equivalent to a production schedule for a full working
day with two shifts. The second block has 23 demand plans for 540 units, which is equivalent to a
production schedule for two working days. An effective cycle time (c=175s) is used in the
experiments with a fixed station length for all stations (l=195s) with no swimming allowed (q=0).
The demand plans for the 46 instances are shown in Table 22.
110
Table 21: Processing time for the 9 types of engines
Stations
i
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
p1 104 103 165 166 111 126 97 100 179 178 161 96 99 147 163 163 173 176 162 164 177
p2 100 103 156 175 114 121 96 97 174 172 152 106 101 155 152 185 179 167 150 161 161
p3 97 105 164 172 114 122 96 95 173 172 168 105 102 142 156 183 178 181 152 157 154
p4 92 107 161 167 115 124 93 106 178 177 167 97 101 154 152 178 169 180 152 159 168
p5 100 101 148 168 117 127 96 94 178 178 167 101 99 146 153 169 173 172 160 162 172
p6 94 108 156 167 117 130 89 102 171 177 166 100 101 143 152 173 178 173 151 160 170
p7 103 106 154 168 115 120 94 103 177 175 172 96 96 154 154 172 174 173 155 162 167
p8 109 102 164 156 111 121 101 102 171 173 157 104 102 153 156 182 175 168 148 158 149
p9 101 110 155 173 111 134 92 100 174 175 177 96 99 155 156 171 175 184 167 157 169
111
Table 22: Demand plans for 46 instances
i Block 1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
p1 30 30 10 40 40 50 20 20 70 10 10 24 37 37 24 30 30 60 10 20 60 20 10
p2 30 30 10 40 40 50 20 20 70 10 10 23 37 37 23 30 30 60 10 20 60 20 10
4x4
p3 30 30 10 40 40 50 20 20 70 10 10 23 36 36 23 30 30 60 10 20 60 20 10
P4 30 45 60 15 60 30 75 30 15 105 15 45 35 45 55 35 55 30 90 15 15 90 30
Van
p5 30 45 60 15 60 30 75 30 15 105 15 45 35 45 55 35 55 30 90 15 15 90 30
p6 30 23 30 30 8 15 15 38 8 8 53 28 23 18 23 28 18 8 15 45 15 8 45
p7 30 23 30 30 8 15 15 38 8 8 53 28 23 18 23 28 18 8 15 45 15 8 45
Trucks
p8 30 22 30 30 7 15 15 37 7 7 52 27 22 17 22 27 17 7 15 45 15 7 45
p9 30 22 30 30 7 15 15 37 7 7 52 27 22 17 22 27 17 7 15 45 15 7 45
Total 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270 270
i Block 2
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
p1 60 60 20 80 80 100 40 40 140 20 20 47 74 74 47 60 60 120 20 40 120 40 20
p2 60 60 20 80 80 100 40 40 140 20 20 47 73 73 47 60 60 120 20 40 120 40 20
4x4
p8 60 45 60 60 15 30 30 75 15 15 105 55 45 35 45 55 35 15 30 90 30 15 90
p9 60 45 60 60 15 30 30 75 15 15 105 55 45 35 45 55 35 15 30 90 30 15 90
Total 540 540 540 540 540 540 540 540 540 540 540 540 540 540 540 540 540 540 540 540 540 540 540
112
The integer program experiments were run on AMPL version 20161220 using two different
versions of the Gurobi solver, namely Gurobi 6.5.0 and Gurobi 7.0.2 solvers. The GRASP
experiments were coded and run on MATLAB R2016a. Block 1 and Block 2 experiment with
50,000 iterations were run on a machine that has an Intel core i7-3770 @3.4 Ghz processor, 32GB
RAM, and Windows 7. Block 2 experiments with 100,000 iterations were executed on a machine
with an Intel core i7-2600 @ 3.4 Ghz processor, 16GB RAM, and Windows 7.
IP results using the two versions of the Gurobi solver are shown in Table 23. The lower
bound (LB) and best solution (number of overload situations) are reported along with the
computation time required to reach the best solution. Computational time might be very small
compared to the 3600 seconds time limit because the branch and bound method used by the IP
solver might get stuck on a solution early on and need over 3600 seconds to find a better solution.
The time column is the time at which the reported solution was found. The newer version of the
solver found better solutions in 17 out of the 46 instances, while it found worse solutions in 14 out
of the 46 instances (best values bolded). Furthermore, for instances in which both versions found
the same objective function value, the newer version was faster in 6 instances and slower in 6
(lower time bolded). Also, the newer version found a better lower bound in 3 instances but had a
worse lower bound in 1. The better result, regardless of which solver found it, is used in the rest
of this chapter.
113
Table 23: IP results for two versions of Gurobi
instance Gurobi ver 6.5.0 (3600 Seconds time limit) Gurobi ver 7.0.2(3600 Seconds time limit)
LB Solution Time* (sec) LB Solution Time* (sec)
1 3 8 2856 3 7** 324
2 11 20 1929 11 22 2135
3 18 24 582 18 24 1611
4 9 13 3558 9 13 2501
5 23 34 3203 24 36 3443
6 11 21 1292 11 21 2858
7 30 38 203 30 38 2823
8 4 4 3111 4 4 1680
9 25 36 1178 25 34 3122
10 51 60 1810 51 58 474
Block 1
11 3 3 281 3 3 360
12 8 17 2921 10 17 1908
13 7 14 23 7 15 223
14 13 26 1129 12 25 2441
15 17 24 1681 17 28 217
16 5 13 168 5 13 479
17 18 29 267 18 28 186
18 18 29 1730 18 28 109
19 40 47 571 40 49 67
20 3 3 3322 3 3 2283
21 18 30 1703 18 27 2140
22 41 49 2174 41 50 951
23 5 5 17 5 5 9
24 6 26 800 6 20 1939
25 23 44 2905 23 42 1006
26 38 50 801 38 53 465
27 20 34 1197 20 33 2004
28 50 84 41 50 77 1125
29 24 49 2602 24 54 2392
30 63 81 2710 63 84 602
31 7 12 2817 7 15 909
32 52 80 3397 52 77 927
33 103 120 1261 103 116 3479
Block 2
34 6 7 1492 6 7 1229
35 21 36 2745 21 46 810
36 16 38 1607 16 36 878
37 27 55 959 27 55 183
38 35 52 1516 35 52 1346
39 11 28 3547 11 27 2309
40 37 53 2521 37 62 1022
41 36 75 185 37 66 1449
42 81 100 3595 81 97 731
43 6 13 2903 6 13 3530
44 38 65 852 38 67 1789
45 84 105 1920 84 110 484
46 10 11 3598 10 11 2350
* The time at which the reported solution was found.
** Bolded is better.
114
In order to benchmark the GRASP algorithm in solving the MMS problem, the results
obtained using the algorithm are compared against the best IP solution from Table 23. Since
GRASP is based on randomization, a number of replications is done for each instance to better
assess the performance of the algorithm. Each instance is solved 30 times using GRASP and the
following is recorded: minimum solution, maximum solution, solution average, solution standard
deviation, number of times the best solution is reached, and the average computation time. The
GRASP was limited to 100,000 iterations for block 1 instances, which is equivalent to
approximately 10 minutes of computation time. For block 2 instances, the 50,000 iterations is
equivalent to approximately 10 minutes of computation time while the 100,000 iterations takes
Results of the IP and GRASP algorithm for Block 1 and Block 2 are shown in Table 24
and Table 25 respectively. Note that the IP was able to find the optimal solution for only 4 instances
of block 1 within the one hour time limit. On the other hand, no optimal solutions were found for
block 2, which is expected due to the size of the problem. The GRASP algorithm managed to find
better or optimal solutions to all instances including the ones in which the IP has failed to reach
the optimal solution. In addition, the worst GRASP solution found among the 30 replications is
still better than the IP solution for all but two of these instances. The average time for the GRASP
to reach the best solution is around 4.4 minutes for block 1 instances, 6.2 minutes for block 2
instances with 50,000 iterations, and 14.7 minutes for block 2 instances with 100,000 iterations.
Looking at Table 24 it is clear that some instances are easier than the others for the IP and GRASP.
Instances 8, 11, 20, 23 in which the IP has found an optimal solution are easier than the other
instances even for the GRASP algorithm. Another way to look at the difficulty of the different
115
instances is by looking at the number of times the best solution is found by the GRASP algorithm
across the 30 replications. This number varies between instances but it is clear that the number of
times the best solution is reached for instances in block 1 is higher than the same number for
instances of block 2. This is expected as block 2 instances are bigger and require more computation
time for the algorithm to be efficient. Furthermore, the average solution is improved when the
number of iterations is doubled as we can see in Table 25. It should be noted that the instances in
which the demand patterns with more truck engines (p6, p7, p8, p9) are easier to solve when
compared to other instances and have lower bounds from the IP for the total number of overload
situations. This is a result of how the line balance distributed the truck engines’ related tasks across
Instance IP (3600 seconds time limit) GRASP (600 seconds time limit, 30 replications)
LB Solution Time* (sec) Min Max Avg. SD # of best Avg. Time* (sec)
1 3 7 324 5 6 5.53 0.51 14 321.89
2 11 20 1929 15 17 15.40 0.56 19 294.85
3 18 24 582 21 22 21.27 0.45 22 184.20
4 9 13 2501 12 13 12.50 0.51 15 236.68
5 24 34 3203 29 32 30.37 0.81 4 344.70
6 11 21 1292 15 18 17.10 0.84 1 389.64
7 30 38 203 34 35 34.17 0.38 25 238.29
8** 4 4 1680 4 5 4.07 0.25 28 204.29
9 25 34 3122 30 33 31.60 0.86 3 325.19
10 51 58 474 55 56 55.17 0.38 25 234.60
Block 1
116
Table 25: IP vs GRASP Block 2 results
Instances IP (3600 seconds time limit) GRASP (50,000 iterations, 30 replications) GRASP (100,000 iterations, 30 replications)
LB Solution Time* Min Max Avg. SD # of Avg. Min Max Avg. SD # of Avg.
(sec) best Time* best Time*
(sec) (sec)
24 6 20 1939 15 19 16.73 1.01 2 440.90 13 17 15.13 1.01 1 840.63
25 23 42 1006 33 39 36.63 1.27 1 410.05 34 37 34.97 0.85 9 965.92
26 38 50 801 43 46 44.90 0.76 1 317.87 43 46 44.33 0.71 3 722.22
27 20 33 2004 27 31 28.77 0.97 2 451.55 26 29 27.63 0.85 3 919.57
28 50 77 1125 65 69 67.27 1.20 4 429.57 64 67 65.97 0.89 1 954.46
29 24 49 2602 38 44 41.17 1.49 1 441.83 37 41 38.67 1.06 5 1055.59
30 63 81 2710 71 74 72.40 0.81 3 415.26 70 73 71.37 0.72 2 861.42
31 7 12 2817 9 13 11.30 0.84 1 353.50 8 12 10.23 1.01 2 957.99
32 52 77 927 69 72 70.23 1.04 8 425.39 66 70 67.93 1.36 6 1080.62
33 103 116 3479 112 115 113.90 0.80 1 261.68 112 114 113.27 0.58 2 668.76
Block 2
117
In order to assess the benefit of swimming on minimizing the overload situation,
experiments are conducted using GRASP to compare the results when 𝑞𝑘 = 0 and 𝑞𝑘 =
−17 for 𝑘 = 2, . . , . 𝐾. The swimming amount 𝑞𝑘 is chosen to be 10% of the cycle time 𝑐 =
175. The experiments are done with the same random number seed for both cases. Table
26 and Table 27 show the results for blocks 1 and 2 respectively. Results show that by
allowing workers to swim 10% of the cycle time the work overload situations is reduced
by 46.6% and 48% on average for blocks 1 and 2 respectively. Swimming had most impact
%58.8 from 9.7 to 4, and in instance 24 of block 2 in which the average of work overload
119
Table 27: Effect of swimming on Block 2 overload situations
Instances Overload situations with no swimming, Overload situations with swimming
𝑞𝑘 = 0 allowed, 𝑞𝑘 = −17
Min Max Avg SD # of Min Max Avg SD # of
best best
24 13 16 14.50 0.94 5 5 6 5.33 0.48 20
25 33 37 35.07 1.23 2 16 18 16.63 0.72 15
26 43 46 44.43 0.82 4 24 25 24.93 0.25 2
27 26 29 27.27 0.83 5 14 16 15.03 0.72 7
28 63 68 65.70 1.24 1 34 36 35.03 0.76 8
29 37 41 39.27 1.01 1 19 21 19.70 0.53 10
30 71 73 71.67 0.61 12 40 42 40.87 0.43 5
31 9 12 10.57 0.82 3 5 5 5.00 0.00 30
32 65 70 67.73 1.17 1 37 40 38.47 0.63 1
33 112 115 113.30 0.65 2 65 67 65.83 0.53 7
34 7 8 7.03 0.18 29 4 4 4.00 0.00 30
Block 2
120
4.9 Conclusion
In this chapter, the MMS problem with open stations and skip policy is studied. The
problem is introduced first and then compared to the car sequencing problem. This is
followed by a literature review on related work. In this work, we adopt the skip policy in
managing work overload in which a utility worker takes over all the work required for a
work piece in a given station whenever an overload is expected. In the case a utility worker
is called, the normal worker skips the current work piece to the next one in sequence. In
stations boundaries. The problem description is given and both the skip policy and
followed by the details of the proposed GRASP algorithm that is developed to solve the
problem.
To assess the performance of the IP and GRASP, computation experiments are done
on data from the literature. Two different versions of the IP solver are used and the best
result is compared against the GRASP result. Results show that the GRASP algorithm
performed better in a fraction of the time when compared to the IP solution. In addition,
results show that work overload situations can be reduced by up to 63.3% by allowing
workers to swim a distance (LU) equal to 10% of the cycle time (TU).
The MMS problem discussed in this work and in the literature consider the
movement of one worker per station. A possible future research is considering the
movement of multiple workers per station along with the mounting position they are
working on. For example, a worker can still swim to work on a free mounting zone while
121
other workers are still working on other mounting zones. This will open up the possibility
of having more room for swimming. This could also change the way line balancing is done
by trying to schedule tasks on certain mounting zones early to anticipate for workers
122
CHAPTER FIVE
In this dissertation, the model by Becker and Scholl (2009) is extended by considering
the suggestions, in Falkenauer (2005) and Pearce (2015), to build a realistic mixed model
line balancing model with parallel stations, zoning constraints, assignment restrictions, and
developed to solve industrial sized assembly line balancing problems. Both models were
compared using data provided from an OEM. Results show that the CP model
outperformed the IP model and is considered a potential tool for solving the mixed model
In the following chapter, the OEM data are used for two sensitivity analysis
experiments. The first experiment studies the effect of changing the maximum ergonomic
score limit on the performance of both the IP and CP models. The second experiment
examines the effect of disabling a subset of constraints on the performance of the IP and
CP. Results show that CP computation time was always consistent except in some hard
instances which required more computation time. The problem becomes harder to solve
for some levels of maximum ergonomic score. Results also show that disabling the
assignment constraint increased the time needed for the IP to reach the optimal solution.
stations are allowed through workers swimming. The skip policy is used to manage the
that is developed to solve the problem. Results show that the GRASP algorithm managed
123
to find better solutions in less computation time than the IP. By allowing workers to swim,
work overload situations can be reduced by up to 63.3%. This managerial insight is a key
assembly systems modeled in this dissertation. A microscopic view explores the details to
increase the realism of the models presented. This would make the models more applicable
but would add to the complexity of the problem. One possible future direction would be to
add constraints to the IP or CP models such as a cognitive constraint. Since each assembly
task requires some skill and knowledge from the worker to perform it, would it be more
realistic to assume that each worker has a limited knowledge of how different assembly
tasks are performed? Moreover, could the demand of switching tasks, as in a station or
work assignment that manages many different models, be cognitively tiring, even if it is
model in the CP and how would that affect solution time and quality? Furthermore, since
tasks duration and demand values are assumed to be deterministic in this work, what if they
are assumed to be stochastic? In addition, the effect of line balancing on the robustness of
the sequencing problem can be studied. How would the model/task correlation in two
consecutive stations affect the sequencing? Also, since line balancing is done using parallel
workers; how would the mixed model sequencing problem differ if the movement of more
124
A macroscopic extension looks at the big picture and not the details. This approach
ignores the details for the sake of solving an integrated problem. An interesting research
direction would be to integrate the mixed model line balancing problem with the
sequencing problem. Is it better to solve the line balancing and sequencing problems in one
step? Another research idea would be to develop a model that can solve bigger problems.
Is it possible to come up with a line balance for the whole assembly line? Finally, line
balancing and sequencing problems can be also integrated with the incoming and outgoing
supply chains. How would integrating supply chain affect the line balancing and
sequencing decisions?
125
REFERENCES
Akpınar, S., & Bayhan, G. M. (2011). A hybrid genetic algorithm for mixed model
assembly line balancing problem with parallel workstations and zoning constraints.
Engineering Applications of Artificial Intelligence, 24(3), 449-457.
AkpıNar, S., Bayhan, G. M., & Baykasoglu, A. (2013). Hybridizing ant colony
optimization via genetic algorithm for mixed-model assembly line balancing problem
with sequence dependent setup times between tasks. Applied Soft Computing, 13(1), 574-
589.
Bautista, J., & Cano, J. (2008). Minimizing work overload in mixed-model assembly
lines. International Journal of Production Economics, 112(1), 177-191.
Bautista, J., & Cano, A. (2011). Solving mixed model sequencing problem in assembly
lines with serial workstations with work overload minimisation and interruption rules.
European Journal of Operational Research, 210(3), 495-513.
Bautista, J., Cano, A., & Alfaro, R. (2012). Modeling and solving a variant of the mixed-
model sequencing problem with work overload minimisation and regularity constraints.
An application in Nissan’s Barcelona Plant. Expert systems with applications, 39(12),
11001-11010.
Bautista, J., Alfaro, R., & Batalla, C. (2015). Modeling and solving the mixed-model
sequencing problem to improve productivity. International Journal of Production
Economics, 161, 83-95.
Bautista, J., & Pereira, J. (2007). Ant algorithms for a time and space constrained
assembly line balancing problem. European journal of operational research, 177(3),
2016-2032.
Baybars, I. (1986). A survey of exact algorithms for the simple assembly line balancing
problem. Management science, 32(8), 909-932.
Becker, C., & Scholl, A. (2006). A survey on problems and methods in generalized
assembly line balancing. European journal of operational research, 168(3), 694-715.
Becker, C., & Scholl, A. (2009). Balancing assembly lines with variable parallel
workplaces: Problem definition and effective solution procedure. European Journal of
Operational Research, 199(2), 359-374.
Bock, S. (2008). Using distributed search methods for balancing mixed-model assembly
lines in the automotive industry. Or Spectrum, 30(3), 551-578.
126
Bockmayr, A., & Pisaruk, N. (2001). Solving assembly line balancing problems by
combining IP and CP. Proceedings of the 6th Annual Workshop of the ERCIM Working
Group on Constraints, Prague, Czech Republic.
Bolat, A., & Yano, C. A. (1992a). Scheduling algorithms to minimize utility work at a
single station on a paced assembly line. Production Planning & Control, 3(4), 393-405.
Bolat, A., & Yano, C. A. (1992b). A surrogate objective for utility work in paced
assembly lines. Production Planning & Control, 3(4), 406-412.
Boysen, N., Fliedner, M., & Scholl, A. (2007). A classification of assembly line balancing
problems. European Journal of Operational Research, 183(2), 674-693.
Boysen, N., & Fliedner, M. (2008). A versatile algorithm for assembly line balancing.
European Journal of Operational Research, 184(1), 39-56.
Boysen, N., Fliedner, M., & Scholl, A. (2008). Assembly line balancing: which model to
use when? International Journal of Production Economics, 111(2), 509-528.
Boysen, N., Fliedner, M., & Scholl, A. (2009). Assembly line balancing: Joint
precedence graphs under high product variety. IIE Transactions, 41(3), 183-193.
Boysen, N., Fliedner, M., & Scholl, A. (2009a). Sequencing mixed-model assembly lines:
Survey, classification and model critique. European Journal of Operational Research,
192(2), 349-373.
Boysen, N., Kiel, M., & Scholl, A. (2011). Sequencing mixed-model assembly lines to
minimise the number of work overload situations. International Journal of Production
Research, 49(16), 4735-4760.
Bukchin, J., Dar-El, E. M., & Rubinovitz, J. (2002). Mixed model assembly line design in
a make-to-order environment. Computers & Industrial Engineering, 41(4), 405-421.
Bukchin, Y., & Rabinowitch, I. (2006). A branch-and-bound based solution approach for
the mixed-model assembly line-balancing problem for minimizing stations and task
duplication costs. European Journal of Operational Research, 174(1), 492-508.
Cano-Belmán, J., Ríos-Mercado, R. Z., & Bautista, J. (2010). A scatter search based
hyper-heuristic for sequencing a mixed-model assembly line. Journal of
Heuristics, 16(6), 749-770.
Cortez, P. M., & Costa, A. M. (2015). Sequencing mixed-model assembly lines operating
with a heterogeneous workforce. International Journal of Production Research, 53(11),
3419-3432.
127
Chutima, P., & Chimklai, P. (2012). Multi-objective two-sided mixed-model assembly
line balancing using particle swarm optimisation with negative knowledge. Computers &
Industrial Engineering, 62(1), 39-55.
Ege, Y., Azizoglu, M., & Ozdemirel, N. E. (2009). Assembly line balancing with station
paralleling. Computers & Industrial Engineering, 57(4), 1218-1225.
Erel, E., & Gokcen, H. (1999). Shortest-route formulation of mixed-model assembly line
balancing problem. European Journal of Operational Research, 116(1), 194-204.
Falkenauer, E. (2005, July). Line balancing in the real world. In Proceedings of the
International Conference on Product Lifecycle Management PLM (Vol. 5, pp. 360-370).
Falkenauer, E. (1998) Genetic Algorithms and Grouping Problems. New York: John
Wiley & Sons.
Feo, T. A., & Resende, M. G. (1989). A probabilistic heuristic for a computationally
difficult set covering problem. Operations research letters, 8(2), 67-71.
Feo, T. A., & Resende, M. G. (1995). Greedy randomized adaptive search procedures.
Journal of global optimization, 6(2), 109-133.
Gökcen, H., & Erel, E. (1997). A goal programming approach to mixed-model assembly
line balancing problem. International Journal of Production Economics, 48(2), 177-185.
Gökcen, H., & Erel, E. (1998). Binary integer formulation for mixed-model assembly line
balancing problem. Computers & Industrial Engineering, 34(2), 451-461.
Golle, U., Rothlauf, F., & Boysen, N. (2014). Car sequencing versus mixed-model
sequencing: A computational study. European Journal of Operational Research, 237(1),
50-61.
Gujjula, R., Werk, S., & Günther, H. O. (2011). A heuristic based on Vogel's
approximation method for sequencing mixed-model assembly lines. International
Journal of Production Research, 49(21), 6451-6468.
Haq, A. N., Rengarajan, K., & Jayaprakash, J. (2006). A hybrid genetic algorithm
approach to mixed-model assembly line balancing. The International Journal of
Advanced Manufacturing Technology, 28(3-4), 337-341.
Hop, N. V. (2006). A heuristic solution for fuzzy mixed-model line balancing problem.
European Journal of Operational Research, 168(3), 798-810.
Jin, M., Luo, Y., & Eksioglu, S. D. (2008). Integration of production sequencing and
outbound logistics in the automotive industry. International Journal of Production
Economics, 113(2), 766-774.
128
Kara, Y., Özgüven, C., Seçme, N. Y., & Chang, C. T. (2011). Multi-objective approaches
to balance mixed-model assembly lines for model mixes having precedence conflicts and
duplicable common tasks. The International Journal of Advanced Manufacturing
Technology, 52(5-8), 725-737.
Mahdavi, I., Javadi, B., Sahebjamnia, N., & Mahdavi-Amiri, N. (2009). A two-phase
linear programming methodology for fuzzy multi-objective mixed-model assembly line
problem. The International Journal of Advanced Manufacturing Technology, 44(9-10),
1010-1023.
Manavizadeh, N., Hosseini, N. S., Rabbani, M., & Jolai, F. (2013). A Simulated
Annealing algorithm for a mixed model assembly U-line balancing type-I problem
considering human efficiency and Just-In-Time approach. Computers & Industrial
Engineering, 64(2), 669-685.
Matanachai, S., & Yano, C. A. (2001). Balancing mixed-model assembly lines to reduce
work overload. IIE Transactions, 33(1), 29-42.
McMullen, P. R. (1998). JIT sequencing for mixed-model assembly lines with setups
using tabu search. Production Planning & Control, 9(5), 504-510.
McMullen, P. R., & Frazier, G. V. (1997). A heuristic for solving mixed-model line
balancing problems with stochastic task durations and parallel stations. International
Journal of Production Economics, 51(3), 177-190.
McMullen, P. R., & Tarasewich, P. (2003). Using ant techniques to solve the assembly
line balancing problem. IIE transactions, 35(7), 605-617.
McMullen, P. R., & Tarasewich, P. (2006). Multi-objective assembly line balancing via a
modified ant colony optimization technique. International Journal of Production
Research, 44(1), 27-42.
Mosadegh, H., Fatemi Ghomi, S. M. T., & Süer, G. A. (2016). Heuristic approaches for
mixed-model sequencing problem with stochastic processing times. International Journal
of Production Research, 1-24.
Otto, A., & Scholl, A. (2011). Incorporating ergonomic risks into assembly line
balancing. European Journal of Operational Research, 212(2), 277-286.
Özcan, U., Toklu, B. (2009). Balancing of mixed-model two-sided assembly lines.
Computers & Industrial Engineering, 57(1), 217-227.
Öztürk, C., Tunalı, S., Hnich, B., Örnek, A. (2013). Balancing and scheduling of flexible
mixed model assembly lines with parallel stations. The International Journal of
Advanced Manufacturing Technology, 67(9-12), 2577-2591.
129
Öztürk, C., Tunalı, S., Hnich, B., & Örnek, M. A. (2013b). Balancing and scheduling of
flexible mixed model assembly lines. Constraints, 18(3), 434-469.
Pastor, R., Ferrer, L., & García, A. (2007). Evaluating optimization models to solve
SALBP. In International Conference on Computational Science and Its Applications (pp.
791-803). Springer Berlin Heidelberg.
Pearce, B. (2015). A study on general assembly line balancing modeling methods and
techniques. (Doctoral dissertation). Retrieved from Clemson University’s Dissertation
database (tigerprints No. 1549).
Pil, F.K., & Holweg, M. (2004). Linking product variety to order-fulfilment strategies.
Interfaces, 34, 394–403.
Sarker, B. R., & Pan, H. (1998). Designing a mixed-model assembly line to minimize the
costs of idle and utility times. Computers & industrial engineering, 34(3), 609-628.
Sawik, T. (2002). Monolithic vs. hierarchical balancing and scheduling of a flexible
assembly line. European Journal of Operational Research, 143(1), 115-124.
Scholl, A., Klein, R., & Domschke, W. (1998). Pattern based vocabulary building for
effectively sequencing mixed-model assembly lines. Journal of Heuristics, 4(4), 359-381.
Scholl, A. (1999). Balancing and sequencing assembly lines (2nd ed.). Physica,
Heidelberg.
Scholl, A., & Becker, C. (2006). State-of-the-art exact and heuristic solution procedures
for simple assembly line balancing. European Journal of Operational Research, 168(3),
666-693.
Sewell, E. C., & Jacobson, S. H. (2012). A branch, bound, and remember algorithm for
the simple assembly line balancing problem. INFORMS Journal on Computing, 24(3),
433-442.
Simaria, A. S., & Vilarinho, P. M. (2004). A genetic algorithm based approach to the
mixed-model assembly line balancing problem of type II. Computers & Industrial
Engineering, 47(4), 391-407.
Simaria, A. S., & Vilarinho, P. M. (2009). 2-ANTBAL: An ant colony optimisation
algorithm for balancing two-sided assembly lines. Computers & Industrial Engineering,
56(2), 489-506.
Sivasankara, P., & Shahabudeen, P. M. (2013). Genetic Algorithm for Concurrent
Balancing of Mixed-Model Assembly Lines with Original Task Times of Models.
Intelligent Information Management, 5(3), 84-92.
130
Sparling, D., & Miltenburg, J. (1998). The mixed-model U-line balancing problem.
International Journal of Production Research, 36(2), 485–501.
Tamura, T., Okumura, T., Singh Dhakar, T., & Ohno, K. (2011). Optimal production
sequencing problem to minimise line stoppage time in a mixed-model assembly line.
International Journal of Production Research, 49(14), 4299-4315.
Tasan, S. O., & Tunali, S. (2008). A review of the current applications of genetic
algorithms in assembly line balancing. Journal of intelligent manufacturing, 19(1), 49-69.
Tonelli, F., Paolucci, M., Anghinolfi, D., & Taticchi, P. (2013). Production planning of
mixed-model assembly lines: a heuristic mixed integer programming based approach.
Production Planning & Control, 24(1), 110-127.
Tsai, L. H. (1995). Mixed-model sequencing to minimize utility work and the risk of
conveyor stoppage. Management Science, 41(3), 485-495.
Tsujimura, Y., Gen, M., & Kubota, E. (1995). Solving fuzzy assembly-line balancing
problem with genetic algorithms. Computers and Industrial Engineering, 29(1-4), 543–
547.
Van Zante-de Fokkert, J. I., & de Kok, T. G. (1997). The mixed and multi model line
balancing problem: a comparison. European Journal of Operational Research, 100(3),
399-412.
Vilà, M., & Pereira, J. (2014). A branch-and-bound algorithm for assembly line worker
assignment and balancing problems. Computers & Operations Research, 44, 105-114.
Vilarinho, P. M., & Simaria, A. S. (2002). A two-stage heuristic method for balancing
mixed-model assembly lines with parallel workstations. International Journal of
Production Research, 40(6), 1405-1420.
Vilarinho, P. M., & Simaria, A. S. (2006). ANTBAL: an ant colony optimization
algorithm for balancing mixed-model assembly lines with parallel workstations.
International journal of production research, 44(2), 291-303.
Wilhelm, W. E., & Gadidov, R. (2004). A branch-and-cut approach for a generic
multiple-product, assembly-system design problem. INFORMS Journal on Computing,
16(1), 39-55.
Yano, C. A., & Rachamadugu, R. (1991). Sequencing to minimize work overload in
assembly lines with product options. Management Science,37(5), 572-586.
131
APPENDIX
# PARAMETERS
param c >= 0; # Cycle time
param LB >= 0; # Lower Bound
param t {h in task} >= 0; # t[h] is the expected duration of task h
param q {h in task} >= 0; # q[h] is the mounting position of task h
param es {h in task} >= 0; # es[h] is the earliest time to start task h
param lf {h in task} >= 0; # lfn[h] is the latest time to finish task h
param EST {h in task} = ceil(es[h]/c);
param LFN {h in task} = ceil(lf[h]/c);
param ER {h in task} >= 0; # ER[h] is the expected ergonomic risk of
task h
param Eli1 {h in tasklimit} >= 0;
param Eli2 {h in tasklimit} >= 0;
param Eli3 {h in tasklimit} >= 0;
# VARIABLES
# OBJECTIVE
minimize number_of_workers:
sum {(i,j) in worker} Y[i,j];
# CONSTRAINTS
132
subject to C_1 {h in task}: sum {(i,j) in worker: i>=EST[h] and i<=LFN[h]}
X[i,j,h] = 1;
subject to C_3 {(i,j) in worker}: sum {h in task:i>=EST[h] and i<=LFN[h]}
X[i,j,h]*t[h] <= c*Y[i,j];
subject to C_4 {(h,l) in prec}: S[h]+t[h]<=S[l];
subject to C_5 {(i,j) in worker}: sum {h in task} X[i,j,h]*ER[h] <= Erg;
subject to C_6 {h in task}: S[h] >= sum {i in station,j in workplace:i>=EST[h]
and i<=LFN[h]} ST[i]*X[i,j,h];
subject to C_7 {h in task}: S[h]+t[h]<= sum {i in station,j in
workplace:i>=EST[h] and i<=LFN[h]} (ST[i]+c)*X[i,j,h];
subject to C_8 {h in task,l in task, (i,j) in worker: h<>l and
i>=max(EST[h],EST[l]) and i<=min(LFN[h],LFN[l])}: V[h,l]+V[l,h] >=
X[i,j,h]+X[i,j,l]-1;
subject to C_9 {i in station,h in task,l in task: (q[h]<>0 && q[l]<>0) and
q[h]==q[l] and h<>l and l>h and i>=max(EST[h],EST[l]) and
i<=min(LFN[h],LFN[l])}: V[h,l]+V[l,h] >= sum {j in workplace}
(X[i,j,h]+X[i,j,l])-1;
subject to C_10 {h in task,l in task: h<>l}: S[h]+t[h] <= S[l]+(1-
V[h,l])*(lf[h]-es[l]);
subject to C_11 {i in station,(h,l) in ss: i>=max(EST[h],EST[l]) and
i<=min(LFN[h],LFN[l])}: sum {j in workplace} X[i,j,h]= sum {j in
workplace}X[i,j,l];
subject to C_12 {(i,j) in worker,(h,l) in sw: i>=max(EST[h],EST[l]) and
i<=min(LFN[h],LFN[l])}: X[i,j,h]=X[i,j,l];
subject to C_13 {i in station,(h,l) in ns: i>=max(EST[h],EST[l]) and
i<=min(LFN[h],LFN[l])}: sum {j in workplace} (X[i,j,h]+X[i,j,l]) <= 1;
subject to C_14 {(i,j) in worker,(h,l) in nw: i>=max(EST[h],EST[l]) and
i<=min(LFN[h],LFN[l])}: X[i,j,h]+X[i,j,l] <= 1;
subject to C_15 {(i,j) in worker:j<=card(workplace)-1}: Y[i,j]>=Y[i,j+1];
subject to C_16 {(i,j) in worker, h in tasklimit:i<>Eli1[h] and i<>Eli2[h] and
i<>Eli3[h]}: X[i,j,h] = 0;
133
Example data file:
set task := 1 2 3 4 5 8 9 10 15 16 17 18 19 21 23 27 29 30 31 32 33 34 35 38
41 42 44 48 55 56 58 59 60 62 64 65 67 68 69 71 73 74 75 78 79 80 83 85 86 87;
set prec := (1,3) (1,4) (1,5) (1,8) (1,9) (9,10) (15,16) (15,17) (15,18)
(15,19) (15,21) (21,23) (15,27) (15,29) (1,30) (33,31) (38,32) (1,33) (15,34)
(15,35) (15,38) (1,41) (1,42) (30,44) (29,48) (3,55) (62,58) (62,59) (60,62)
(17,64) (71,67) (71,68) (69,71) (4,73) (30,74) (1,75) (83,78) (83,79) (80,83)
(18,85) (29,86) (15,87) (16,27) (59,58) (68,67) (56,73) (79,78) (65,85);
set ss :=;
set sw := (58,59) (59,60) (60,62) (67,68) (68,69) (69,71) (78,79) (79,80)
(80,83);
set ns :=;
set nw :=;
set tasklimit := 8 9 19 21 55 64 73 85;
param: t ER q es ls:=
1 60 20 1 1 5
2 3300 17.90909091 1 1 5
3 13500 19.8 1 1 5
4 11340 19.57142857 3 1 5
5 4020 23.59701493 1 1 5
8 24840 22.60869565 3 1 5
9 18900 35.94285714 3 1 5
10 7020 44 1 1 5
15 60 20 9 1 5
16 3120 26.94230769 7 1 5
17 13500 19.8 7 1 5
18 11340 19.57142857 9 1 5
19 23940 22.09022556 9 1 5
21 22680 35.34920635 9 1 5
23 10620 44 7 1 5
27 3300 17.90909091 9 1 5
29 9828 18.82 9 1 5
30 10008 19.03934426 3 1 5
31 6216 19.40135135 1 1 5
32 6216 19.40135135 7 1 5
33 4536 10.15 1 1 5
34 5724 6.622641509 7 1 5
35 11592 16.38913043 7 1 5
134
38 5166 9.851219512 7 1 5
41 6264 6.822413793 1 1 5
42 12852 15.60588235 1 1 5
44 10122 16.18423237 3 1 5
48 10626 14.81897233 9 1 5
55 70320 24.14846416 1 1 5
56 1440 24 1 1 5
58 3960 24 0 1 5
59 4320 46 0 1 5
60 5220 12 0 1 5
62 11520 49 0 1 5
64 70320 24.12798635 7 1 5
65 1440 24 7 1 5
67 3960 24 0 1 5
68 4320 46 0 1 5
69 5220 12 0 1 5
71 11520 49 0 1 5
73 67260 26.64942016 3 1 5
74 4200 15.64285714 3 1 5
75 13500 19.04 3 1 5
78 3960 27 0 1 5
79 4320 23 0 1 5
80 5280 12 0 1 5
83 11880 90 0 1 5
85 67260 26.87421945 9 1 5
86 4200 14.91428571 9 1 5
87 13500 19.04 9 1 5
;
135
Mixed Model Line Balancing Constraint Program (CPLEX Optimization Studio)
using CP;
// Number of WorkStations
int nbWorkstations= ...;
range Workstations= 1..nbWorkstations;
// Tasks names
{int} TaskN=...;
// Number of Stations
int nbStations=...;
range Stations= 1..nbStations;
// Cycle time
int Cycle= ...;
// Duration, mounting position, and expected ergonomic rating for each task
int duration[TaskN]= ...;
int mount[TaskN]= ...;
float ER[TaskN]= ...;
// Precedence relation
tuple Precedence {
int pre;
int post;
};
{Precedence} precedences = ...;
// Assignment constraints
tuple AssignConst {
136
int task1;
int task2;
}
{AssignConst} ss = ...;
{AssignConst} sw = ...;
{AssignConst} ns = ...;
{AssignConst} nw = ...;
// Decision variables
dvar int usage in 0..nbStations*nbWorkstations;
dvar interval Task[i in TaskN] in est[i]..lfn[i] size duration[i];
dvar interval TaskStaWork[i in TaskN][j in Stations][k in Workstations]
optional in (card(bounds[i][j])==0 ? 0 :
first(bounds[i][j]))..(card(bounds[i][j])==0 ? 0 : last(bounds[i][j]));;
dvar sequence Seq[j in Stations][k in Workstations] in all(i in TaskN)
TaskStaWork[i][j][k];
// Objective
minimize usage;
// Constraints
subject to
{
forall(i in TaskN) {
alternative(Task[i], all(j in Stations,k in Workstations)
TaskStaWork[i][j][k]);
}
// No overlap on Workers
forall(j in Stations)
forall(k in Workstations)
noOverlap(Seq[j][k]);
// Precednece relation
forall(i in precedences )
endBeforeStart(Task[i.pre], Task[i.post]);
137
forall (j in Stations)
sum(k in Workstations) (presenceOf(TaskStaWork[t.task1][j][k])+
presenceOf(TaskStaWork[t.task2][j][k]))<=1;
// Same worker constraint
forall(t in sw)
forall(j in Stations)
forall(k in Workstations)
presenceOf(TaskStaWork[t.task1][j][k]) ==
presenceOf(TaskStaWork[t.task2][j][k]);
// Not same worker constraint
forall(t in nw)
forall(j in Stations)
forall(k in Workstations)
presenceOf(TaskStaWork[t.task1][j][k])+presenceOf(TaskStaWork[t.task2][j
][k])<=1;
// Ergonomics
forall(j in Stations)
forall(k in Workstations)
sum(i in TaskN) presenceOf(TaskStaWork[i][j][k])*ER[i]<= Erg;
// Eligibility constraint
forall(i in TaskLimit)
forall(j in Stations: j!=Eli1[i] && j!=Eli2[i] && j!=Eli3[i])
forall(k in Workstations)
presenceOf(TaskStaWork[i][j][k])==0;
// Breaking symmetry
forall(j in Stations, k in 1..nbWorkstations-1)
max(i in TaskN) presenceOf(TaskStaWork[i][j][k+1]) <= max(i in TaskN)
presenceOf(TaskStaWork[i][j][k]);
138
Example data file:
nbWorkstations=5 ;
nbStations=5;
Cycle=103000;
Erg=500;
TaskN=
{1,2,3,4,5,8,9,10,15,16,17,18,19,21,23,27,29,30,31,32,33,34,35,38,41,42,44,48,
55,56,58,59,60,62,64,65,67,68,69,71,73,74,75,78,79,80,83,85,86,87};
TaskLimit={8,9,19,21,55,64,73,85};
SStart=[0,103000,206000,309000,412000];
SEnd=[103000,206000,309000,412000,515000];
duration=[60,3300,13500,11340,4020,24840,18900,7020,60,3120,13500,11340,23940,
22680,10620,3300,9828,10008,6216,6216,4536,5724,11592,5166,6264,12852,10122,10
626,70320,1440,3960,4320,5220,11520,70320,1440,3960,4320,5220,11520,67260,4200
,13500,3960,4320,5280,11880,67260,4200,13500];
est=[0,60,60,60,60,60,60,18960,0,60,60,60,60,60,22740,3180,60,60,4596,5226,60,
60,60,60,60,60,10068,9888,13560,0,21060,16740,0,5220,13560,0,21060,16740,0,522
0,11400,10068,60,21480,17160,0,5280,11400,9888,60];
lfn=[431180,515000,444680,447740,515000,515000,507980,515000,431180,511700,444
680,447740,515000,504380,515000,515000,504374,504878,515000,515000,508784,5150
00,515000,508784,515000,515000,515000,515000,515000,447740,515000,511040,49520
0,506720,515000,447740,515000,511040,495200,506720,515000,515000,515000,515000
,511040,494840,506720,515000,515000,515000];
mount=[1,1,1,3,1,3,3,1,9,7,7,9,9,9,7,9,9,3,1,7,1,7,7,7,1,1,3,9,1,1,0,0,0,0,7,7
,0,0,0,0,3,3,3,0,0,0,0,9,9,9];
precedences={<1,3>,<1,4>,<1,5>,<1,8>,<1,9>,<9,10>,<15,16>,<15,17>,<15,18>,<15,
19>,<15,21>,<21,23>,<15,27>,<15,29>,<1,30>,<33,31>,<38,32>,<1,33>,<15,34>,<15,
35>,<15,38>,<1,41>,<1,42>,<30,44>,<29,48>,<3,55>,<62,58>,<62,59>,<60,62>,<17,6
4>,<71,67>,<71,68>,<69,71>,<4,73>,<30,74>,<1,75>,<83,78>,<83,79>,<80,83>,<18,8
5>,<29,86>,<15,87>,<16,27>,<59,58>,<68,67>,<56,73>,<79,78>,<65,85>};
ER=[20,17.91,19.8,19.57,23.6,22.61,35.94,44,20,26.94,19.8,19.57,22.09,35.35,44
,17.91,18.82,19.04,19.4,19.4,10.15,6.62,16.39,9.85,6.82,15.61,16.18,14.82,24.1
5,24,24,46,12,49,24.13,24,24,46,12,49,26.65,15.64,19.04,27,23,12,90,26.87,14.9
1,19.04];
ss={};
ns={};
sw={<58,59>,<59,60>,<60,62>,<67,68>,<68,69>,<69,71>,<78,79>,<79,80>,<80,83>};
nw={};
Eli1=[1,1,1,1,3,3,4,4];
Eli2=[0,0,0,0,0,0,0,0];
Eli3=[0,0,0,0,0,0,0,0];
139
Mixed Model Sequencing Integer Program (AMPL)
# SETS
param nbrstations;
param nbrcycles;
param nbrmodels;
set station=1..nbrstations;
set cycle=1..nbrcycles;
set models=1..nbrmodels;
# PARAMETERS
param c >= 0; # Cycle time
param l {k in station} >= 0; # Station length
param d {m in models} >=0; # Demand for each model
param q; # Min station start
param p {m in models, k in station} >= 0; # Processing time for car m at
station k
param e=0.1;
# VARIABLES
var X {m in models, t in cycle} binary;
var Y {k in station, t in cycle} binary;
var S {k in station, t in cycle};
# OBJECTIVE
minimize utility:
sum {k in station, t in cycle} Y[k,t];
# CONSTRAINTS
subject to C_1 {t in cycle}: sum {m in models} X[m,t]=1;
subject to C_2 {m in models}: sum {t in cycle} X[m,t]=d[m];
subject to C_3 {k in station, t in cycle}: S[k,t]+ sum {m in models}
p[m,k]*X[m,t]- l[k]-e>=-l[k]*(1-Y[k,t]);
subject to C_4 {k in station, t in cycle}: S[k,t]+ sum {m in models}
p[m,k]*X[m,t]-l[k]<=l[k]*Y[k,t];
subject to C_5 {k in station, t in cycle:t>=2}: S[k,t] >= S[k,t-1]+ sum {m in
models} p[m,k]*X[m,t-1]-c-(l[k]*Y[k,t-1]);
subject to C_6 {k in station, t in cycle:t>=2}: S[k,t] >= S[k,t-1]-c-((1-
Y[k,t-1])*l[k]);
subject to C_7 {k in station, t in cycle:k>=2 && t>=2}: S[k,t] >= S[k-1,t-1]+
sum {m in models} p[m,k-1]*X[m,t-1]-l[k-1]-(l[k-1]-c)*Y[k-1,t-1];
subject to C_8 {k in station, t in cycle}: S[k,t] >= q;
subject to C_9 {k in station, t in cycle}: S[k,t] <= l[k]-c;
subject to C_10 {k in station}: S[k,1] = 0;
subject to C_11 {t in cycle}: S[1,t] = 0;
140
Example data file:
param nbrstations := 21;
param nbrcycles :=270;
param nbrmodels :=9;
param c := 175;
param q :=0;
param : l :=
1 195
2 195
3 195
4 195
5 195
6 195
7 195
8 195
9 195
10 195
11 195
12 195
13 195
14 195
15 195
16 195
17 195
18 195
19 195
20 195
21 195
;
param d:=
1 10
2 10
3 10
4 105
5 105
6 8
7 8
8 7
9 7
;
param p: 1 2 3 4 5 6 7 8 9 10 11
12 13 14 15 16 17 18 19 20 21 :=
1 104 103 165 166 111 126 97 100 179 178 161
96 99 147 163 163 173 176 162 164 177
2 100 103 156 175 114 121 96 97 174 172 152
106 101 155 152 185 179 167 150 161 161
3 97 105 164 172 114 122 96 95 173 172 168
105 102 142 156 183 178 181 152 157 154
4 92 107 161 167 115 124 93 106 178 177 167
97 101 154 152 178 169 180 152 159 168
5 100 101 148 168 117 127 96 94 178 178 167
101 99 146 153 169 173 172 160 162 172
141
6 94 108 156 167 117 130 89 102 171 177 166
100 101 143 152 173 178 173 151 160 170
7 103 106 154 168 115 120 94 103 177 175 172
96 96 154 154 172 174 173 155 162 167
8 109 102 164 156 111 121 101 102 171 173 157
104 102 153 156 182 175 168 148 158 149
9 101 110 155 173 111 134 92 100 174 175 177
96 99 155 156 171 175 184 167 157 169
142
Mixed Model Sequencing Heuristic Functions (MATLAB)
% Calculate the overload situations for a given sequence
function [a,s,f,o] = overload(nPeriods,nStations,c,l,q,x,dur)
%c = cycle time
%l = stations length (vector)
%q = station start (vector)
%x = sequence (vector)
%dur = duration
%a = total number of overload situations
%s = start times
%f = finish times
%o = overload situations
s=zeros(nPeriods,nStations);
f=zeros(nPeriods,nStations);
o=zeros(nPeriods,nStations);
%period 1
for station= 1:nStations
f(1,station)=s(1,station)+dur(x(1),station);
end
%station 1
for period= 2:nPeriods
if f(period-1,1)<=l(1) && o(period-1,1)==0
s(period,1)=max([0,f(period-1,1)-c]);
else
s(period,1)=max([0,s(period-1,1)-c]);
end
f(period,1)=s(period,1)+dur(x(period),1);
if f(period,1)>l(1)
o(period,1)=1;
s(period,1)=0;
f(period,1)=s(period,1)+dur(x(period),1);
end
end
%complete
for station= 2:nStations
for period= 2:nPeriods
if f(period-1,station)<=l(station) && o(period-1,station)==0
s(period,station)=max([q(station),f(period-1,station)-
c,f(period-1,station-1)-l(station-1)]);
else
s(period,station)=max([q(station),s(period-1,station)-
c,f(period-1,station-1)-l(station-1)]);
end
f(period,station)=s(period,station)+dur(x(period),station);
if f(period,station)>l(station)
o(period,station)=1;
143
s(period,station)=0;
f(period,station)=s(period,station)+dur(x(period),station);
end
end
end
a=sum(sum(o));
***********************************************************
*****
function [a,cost] = P_overload(nStations,c,l,q,x,dur)
%c = cycle time
%l = stations length (vector)
%q = station start (vector)
%x = sequence (vector)
%dur = duration
%a = total number of overload situations
%s = start times
%f = finish times
%o = overload situations
nPeriods=length(x);
s=zeros(nPeriods,nStations);
f=zeros(nPeriods,nStations);
o=zeros(nPeriods,nStations);
%period 1
for station= 1:nStations
f(1,station)=s(1,station)+dur(x(1),station);
end
%station 1
for period= 2:nPeriods
if f(period-1,1)<=l(1) && o(period-1,1)==0
s(period,1)=max([0,f(period-1,1)-c]);
else
s(period,1)=max([0,s(period-1,1)-c]);
end
f(period,1)=s(period,1)+dur(x(period),1);
if f(period,1)>l(1)
o(period,1)=1;
s(period,1)=0;
f(period,1)=s(period,1)+dur(x(period),1);
end
end
%complete
for station= 2:nStations
for period= 2:nPeriods
if f(period-1,station)<=l(station) && o(period-1,station)==0
s(period,station)=max([q(station),f(period-1,station)-
c,f(period-1,station-1)-l(station-1)]);
144
else
s(period,station)=max([q(station),s(period-1,station)-
c,f(period-1,station-1)-l(station-1)]);
end
f(period,station)=s(period,station)+dur(x(period),station);
if f(period,station)>l(station)
o(period,station)=1;
s(period,station)=0;
f(period,station)=s(period,station)+dur(x(period),station);
end
end
end
a=sum(sum(o));
cost=sum(max(f(nPeriods,:)-c,0));
***********************************************************
*****
% Greedy random creator
function [x]=GRC(nStations,c,l,q,dur,demand)
count=0;
avail=1:length(demand);
temp=sum(dur,2);
x=datasample(avail,1);
demand(x)=demand(x)-1;
while ~isempty(avail)
zcost=0;
over=0;
tmp=0;
for i=1:length(avail)
[over(i,1)]= P_overload(nStations,c,l,q,[x,avail(i)],dur);
end
over=[avail',over];
zcost=find(over(:,2)==min(over(:,2)));
xn=datasample(zcost,1);
x=[x,over(xn)];
demand(over(xn))=demand(over(xn))-1;
avail=find(demand~=0);
count=count+1
end
***********************************************************
*****
% Randomly swap n elements in the vector x.
function x=randswap(x,n)
l=length(x);
y = datasample(1:l,2*n,'Replace',false);
y=y(randperm(length(y)));
x(y)=x([y(n+1:2*n),y(1:n)]);
end
145
***********************************************************
*****
% GRASP search
function [best,Timetobest]=GRASP(nPeriods,nStations,c,l,q,dur,demand)
iter=100000;
best=0;
Timetobest=0;
xn=0;
fxn=0;
initime=cputime;
x=GRC(nStations,c,l,q,dur,demand);
f=overload(nPeriods,nStations,c,l,q,x,dur);
best=f;
Timetobest=cputime-initime;
for i=1:iter
xn=randswap(x,1);
fxn=overload(nPeriods,nStations,c,l,q,xn,dur);
if fxn<=f
f=fxn;
x=xn;
if f<best
best=f;
Timetobest=cputime-initime;
end
end
fprintf('iter= %d, the current sol= %d , the best solution so far
is %d.\n',i,f,best);
***********************************************************
*****
146