INTRODUCTION
Background and Motivation
Nowadays, using effectively the workforce, making the most use of resources, minimizing the completion time of products… become the significant factors which help businesses gain the competitive advantages, especially in mold producing industry Therefore, to achieve all of those elements, companies have been working and investing in production planning and scheduling In addition, with the continuous improve of automated systems, it is strongly necessary to have effective schedules which support to reduce the production completion time and the delay of products Consequently, the field of production scheduling in various production environments have attracted a lot of researchers all over the world, in that Flexible Job Shop Scheduling Problem (FJSS) is the most complexible and attractive
FJSS aims to assign jobs on machines in order to achieve one or more production objectives Like traditional Job shop scheduling, every job has various operations with its own predefined processing order But in Flexible Job shop environment, each operation of a job can be processed on a set of machines instead of only one machine Therefore, solving the problem can be divided into two parts: choosing the machine that will process each operation and arranging the order of operations assigned on each machine Some common production objectives are minimizing the completion time, minimizing the tardiness, minimizing the lateness, minimizing the number of late jobs, maximizing the machine workload, machine utility, etc In fact, the enterprises often desire to achieve several objectives simultaneously so using the multiple-objective approach is important and highly realistic
Once objectives, constraints and the input data are collected, a production schedule can be proposed by using one of many different algorithms based on the complexity and the problem size However, applying this schedule at the shop floor is affected by unexpected events or uncertainties such as machine breakdown, adding a new job or cancellation a job that has been scheduled, changing the processing order or the processing time, rework, quality problems and shortage of raw materital These events can disrupt the production process and make the schedule not effective anymore
Derived from the mentioned problems, it is necessary to study about the field of “ Multi-
Objective Predictive-reactive Production Scheduling in Dynamic Flexible Job Shop Environment ” This study is highly applicable, practical and provides the basis for further research.
Objectives
This study aims to develope a predictive-reactive scheduling algorithm for Flexible Job shop scheduling problem that can adapt to uncertainties and unexpected events that can disrupt the schedule implementation on the shop floor The predictive scheduling algorithm has to satisfy simultaneously both objectives about minimzing the completion time and minimizing the maximum tardiness of jobs with a short computational time The reactive scheduling is a rescheduling strategy that helps to reduce the impact of disruptions and keep the generated schedule not be changed too many times.
Scope
The flexible job shop environment concerned in this research is the popular production environment in make-to-order companies, especially in mold production industry Some assumptions are considered as below:
− The processing order of operations of a job is predefined and fixed during the scheduling cycle
− The setup time is included in the operation processing time The time to transfer a job between machines to process next operation is not considered
− Each operation has it owns processing time and cannot be disrupted There is no constraint between the operations of different jobs
− The time spending on generating a new schedule in rescheduling process is very short and trivial.
Methodology
To solve the problem, the predictive-reactive scheduling method is applied This methodology is the combination between predictive scheduling method and reactive scheduling method Firstly, a deterministic schedule for each period is sequently made by the predictive method with on-hand input data To be stable in the shop floor, that means to avoid changing the schedule too many times, the scheduling duration is divided into several periods for rescheduling The period can be defined by specific cycle time or the appearances of important events If the disruption significantly impacts on the schedule performance, rescheduling is immediately implemented when one of properly rescheduling conditions is met A new schedule is proposed from the solution of previous schedule and the real shop floor conditions This study includes four stages shown in Figure 1.1
Figure 1.1 Four main stages of the research’s methodology
In this early stage, the production scheduling problem need to be solved is described clearly by a mathematical model with all objectives, constraints, assumptions All related information is mentioned based on the literatures
Proposing the algorithm for the predictive scheduling problem
Proposing the algorithm for the reactive scheduling problem
1.4.2 Proposing the algorithm for the predictive scheduling problem
This stage aims to proposed an algorithm to generate the solution for the deterministic problem described in the first stage when all the input data are on-hand A heuristic algorithm based on dispatching rules is given to shorten the computational time with the large-scale problem A comparison is carried out among combinations of dispatching rules to choose the best one
1.4.3 Proposing the algorithm for the reactive scheduling problem
In this stage, uncertainties and unexpected events that cause disruptions or have effects on the shop floor are considered and classified into some groups A rescheduling strategy is introduced with a reaction for each group based on hybrid rescheduling combining periodic and event-driven method
A set of instances is used to test whether it is correct or not If it is incorrect, stage 1 or stage 2 or both of them will be revised To evaluate the proposed algorithm, the performance of proposed algorithm is compared to some other algorithms.
Contributions
This research has some meaningful contributions to the field of production scheduling
− Firstly, a suitable mathematical model is proposed for Flexible Job Shop Scheduling problem with the constraints about release time and due time of job, job’s processing time depending on processing machine, available time of machine to simultaneously satisfy both objective of minimizing makespan and objective of maximum tardiness
− Secondly, an effective heuristic algorithm based on dispatching rules is proposed to deal with the problem in determistic environment This algorithm is a good choice for generating an effective schedule in a very short computational time
− Thirdly, a reactive scheduling (or rescheduling strategy) is proposed to help reducing the impacts of uncertainties or unexpected events that occur during the process of implementing the predictive schedule on the shop floor so that the schedule can keep its stability and avoid altering too many times.
Organization of the Thesis
This thesis consists of 7 chapters, each chapter execute a specific research content summarised as follows
− Chapter 1 – Introduction: This chapter mentions background and motivations to conduct the research Besides, the problem’s objectives, contents, scope and research approach are also presented.
LITERATURE REVIEW
Production Scheduling Overview
Figure 2.1 Diagram of information flow in a production system [1]
Scheduling is considered as a decision-making process, which plays a vital role in production industry as well as service industy In production systems, scheduling function interact with other decision-making processes as shown in Figure 2.1 [2]
It aims to assign all resources to excecute projects or jobs by using mathematic or other methods A good and properly resource assigment allows the company or the organisation to be possible to achieve some optimal objectives The resources can be machines on a shop floor, manpower in a construction project Jobs can be operations in plants, stages in the construction project Each job can have its own preemption, release time or due time
Choosing carefully a proper scheduling method could make important efforts on the system performance, reduce significantly direct and indirect costs, especially in complex production environments.
Production Scheduling Problem Model
Production scheduling problem for machines aims to assign jobs on machines which will process them in order to accomplish the involved objectives A specific problem is oftens described via α|β|γ [1] In that:
− β: Describes in detail the processing characteristics and constraints
Production environment is the relationship between machines on the shop floor and the way material flows on them As follow, some basic production environment and their corresponding notations are presented in the order of increasing complexity
− Single machine (1): Single machine is the simplest environment in production scheduling Single machine models are considered in various conditions with different objective functions It is also important in case of breaking down the more complex production environment into a small number of single machine problems
− Identical Parallel machines (𝐏 𝐦 ): There are m identical machines in parallel An operation of a job could be processed on any one of the available machines with the same processing time
− Distinct Parallel machine (𝐐 𝐦 ): Similar to P m but the machines are not exactly identical The differences may come from the operation speed, the quality or so on
The processing time to execute the same job is depended on the assigned machine
− Flow shop (𝐅 𝐦 ): There are m continuous machines All jobs have the same processing order so each job has to be sequentially processed on those machines
− Flexible Flow shop (𝐅𝐅): This is the combination of flow shop problem and parallel machine problem There are c workstations on the shop floor instead of m machines in ordinary flow shop Each job has to be sequentially processed on those machines and is assigned on only one machine in each workstation
− Job shop (𝐉 𝐦 ): There are m machines on the shop floor Each job has its own processing order and it is not necessary to be processed on all the machines
− Flexible Job shop (𝐅𝐉): This is the combination of ordinary job shop problem and parallel machine problem Allowing Kaweegitbundit and Eguchi [3], there are two types of flexible job shop models:
+ Workstation type: There are c workstations on the shop floor instead of m machines in ordinary Job shop Each workstation has a number of parallel machines Every job has its own order of processing on workstations and is assigned on only one machine in each workstation
+ Random type: The machines are not set in workstations and they are often multi- function Each operation can be processed on one in a defined set of machines
In addition, in reality, there are some production environments based on combining above basic environments
The process of executing jobs on machines has many different characteristics that lead to many constraints such as preemptions, setup time, job’s family, batch processing The scheduling problem considered in this research involves some follow constraints:
− Precedence constraints: It could be the relationship between operations in the same job or between different jobs A job or an operation is only allowed to be processed if its predecessor is finished
− Processing time (p ij ): It is the time that operation j of job i is processed and it could depend on the processing machine or not
− Job’s release time (r i ): A job cannot be processed before its release time
− Job’s due time (d i ): It is the time that a specific job needs to be finished
Objective function is a mathematical function which describes the expected output of the problem Objective function can be maximum or minimum of a value In the production scheduling, some objective functions which are oftens cosidered are as follow:
− Minimize the completion time – makespan (C max )
In that, C i is the completion time of job i, C max is the completion time of the final job as well as the time all jobs are completed
− Minimize the maximum lateness (L max )
In that, L i is the lateness of job i, is calculated by (C i − d i ) with C i is the completion time and d i is the due time of job i The lateness of a job can be possitive value if that job is late or can be negative value if that job is finished before its due time
− Minimize the maximum tardiness (T max )
In that, T i is the tardiness of job i The difference between tardiness and lateness of a job is that tardiness is always in possitive value The tardiness of a job, which is finished before theirs due time, is 0
− Minimize the number of late jobs (U)
In that, U is the number of tardy jobs, U i is the binary variable defining job i is tardy or not
In fact, a number of objectives demand to be satisfied simultaneously These objectives often conflict with each other It is known as multi-objective problem, which is difficult to find the optimal solution that satisfied all objectives.
Deterministic scheduling algorithm
Deterministic scheduling is the scheduling problem in that all input data are predefined and unchanged during the implementation of the schedule Algorithms for this problem can be clasified into three types shown on Figure 2.2 [4]
Figure 2.2 Types of scheduling algorithm
− Exact algorithm: Exact algorithms help to find out the optimal solution Some popular examples are Linear Programming, Mixed Integer Programming, Branch and Bound algorithm However, applying those algorithms on large-scale problems may take very large computational time to process In that long duration, the shop floor conditions may have some changes and the generated schedule may be no longer feasile with new conditions
− Heuristic algorithm: With heuristic algorithms, it aims to propose a procedure that will give a feasible solution in short time But the drawback is that the created solution may not be the optimal and the procedure even can result to the worst solution To deal with difficult problems with large input data and demand of short computational time, heuristic algorithm is one of the best choices There are two types of heuristic algortihms: o Construction heuristic: There is not an initial solution Each job is assigned sequently Some examples are dispatching rule, shifting bottle-neck o Improvement heuristic: This algorithm starts by generating an initial solution
Approximation algorithms then tries to find out a better solution by make some changes from the intial solution Some examples are genetic algorithm, annealing simulation algorithm, tabu search, beam search
− Approximation algorithm: This type of algorithm uses a procedure (can be heuristic or others) with some conditions to assuring the given solution is approximate to the optimal solution in a specific proportion This can be considered to be a special type of heuristic algorithm.
DETERMINISTIC PROBLEM FORMULATION
Problem description
This thesis focuses on studying about Flexible Job Shop Scheduling (FJSS) problem which is one of the most attractive titles with researchers in production scheduling field because of its high complexity and applicability in real It aims to find out a scheduling method to solve the FJSS problem so as to minimize simultaneously the completion time (makespan) and the latest tardiness
In the deterministic FJSS problem, there are some jobs need to be processed Each job has its own number of operations and the specific processing order The release time of a job is the time when its first operation is ready to be processed, while the due times of job is the time when the last operation should be finished Both these data are predefined and different from others Each operation is only able to be processed by one machine in a set of defined machines In addition, there are some more constraints that contribute to the problem’s complexity such as the available time of machine, the job’s priority, the machine’s setup time, the transportation time, batch production
However, to make the problem simpler, many previous studies assume that all machines and jobs are available at the beginning This assumption is infeasible in practice because it is difficult to prepare all required resources for all jobs or to make all machines available at the same time Hence, both the available time values of machines and the release time values of jobs are considered in this research
This research is conducted in the Flexible Job Shop Scheduling environment with the characteristics and the assumptions as below
− Each machine can process only one operation of one job at a time At the beginning time, each machine has its own available time
− Each operation has it owns processing time and cannot be disrupted There is no constraint between the operations of different jobs
− The release time and the due time of each job are predefined
− The order to process operations of a job is given and fixed
− The setup time is included in the operation processing time The time to transfer a job between machines to process next operation is not considered
Many studies have been conducted in production scheduling field with a single objective related to performance of the schedule such as minimizing the makespan, the total tardiness, the maximum tardiness, the maximum lateness, the number of delay jobs or maximizing the machine’s utility However, in fact, many production companies demand to achieve more than one objective, and these objectives often conflict with each other With the complex problem like flexible job shop scheduling, the addition of multi-objective consideration makes the problem’s complexity higher The problem mentioned in this research aims to satisfy simultaneously two objectives, those are minimizing the completion time (makespan) and minimizing the maximum tardiness
The objective regarding minimizing makespan C max is set to shorten the lead time of products, to increase the competitiveness with other companies However, this objective does not consider the due time of each job that are agreed between the company and the customer in the production order Some jobs may be late if only the makespan objective is considered Therefore, the objective of minimizing the maximum tardiness T max is also proposed Once the tardiness of the latest job is decreased, the tardinesses of others are also shorten In the ideal situation, if the tardiness of the latest job is zero, that means no job is late Therefore, consideration of decreasing both makespan and maximum tardiness is realy necessary.
PREDICTIVE SCHEDULING
Proposed heuristic algorithm
There are various methods to construct a heuristic algorithm for FJSS Beside being an isolated algorithm that gives solution in a short time, a good heuristic algorithm could be used to generate the initial solution for improvement algorithms A better initial solution can drive to a better evolutionary solution, due to its effects on solution quality
As previously mentioned, FJSS problem algorithm often consists of two processes: choosing a machine to process each operation and sequencing all operations assigned on each machine In this algorithm, some time points are considered At each time point, one or more operations are chosen based on a dispatching rule, then assigned to a machine also based on another dispatching rule The start time of the operation belongs to its release time, the completion time of its predecessor and the next availble time of the machine that it is assigned on Thus, the proposed algorithm can be considered as three choosing processes: choosing an operation to be scheduled, choosing a proper machine to process that operation and choosing an operation in a machine’s waiting list to be processed
The notations used are: n i : The number of operations of job i
N : The total operations of all jobs N = ∑ n i=1 n i
N u : The number of operations which have not yet been schedule in N r ij : The release time of operation O ij of job i d ij : The due time of operation O ij of job i s ij : The starting time of operation O ij of job i c ij : The completion time of operation O ij of job i p ij : The processing time of operation O ij of job i a k : The next available time of machine k t : The current time (the considered time)
R : The set of operations that are released and not in any machine’s waiting list at the time t
O ij ∗ : The chosen operation at the considered time
M ij : The set of machines that are able to process operation O ij ∗
4.1.1 The main procedure of proposed algorithm
The proposed heuristic algorithm can be described as follow: At the earliest time when there is at least a machine finishing an operation, an operation is selected among unscheduled and released operations based on a specific dispatching rule denoted as OR (Operation selection Rule) If the selected operation can be processed on more than one machine, MR (Machine selection Rule) is used to choose the machine that will process it If that machine is idle and there is no operation on its waiting list, the selected operation is assigned and begins to be processed on that machine If that machine is busy, the selected operation is moved to that machine’s waiting list Simultaneously, we also considered each the machine that have already finished, select an operation in its waiting list to be processed still based on OR The process is implemented until all operations are scheduled
The main procedure of the algorithm is illustrated on Figure 4.1
Figure 4.1 The main procedure of proposed algorithm
In term of production scheduling with job’s due time, three dispatching rules are proposed here to be the candidates of Operation selection Rule (OR) All of them are based on the concept of operation due time
The first candidate for OR (OR1) is a dispatching rule that is well known as Operation Due Date (ODD) with the function shown as Equation 4.1 The operation’s due time d ij is the latest time when operation j th of job i has to be finished in order to keep job i in time with the assumption that all following operations of job i are processed in a successive way The operation with the minimum d ij is chosen d ij = d in i − ∑ n h=j+1 i p ih (4.1)
In that, p ih is the processing time of operation h of job i In this study, because of the processing time of an operation is belong to the machine processed it, the processing time p ih here will be defined by the min processing time of operation O ih on all machines that are able to process it
The second candidate for OR (OR2) is another way to define the operation due time based on slack time of corresponding job Slack time is an amount of time a job can be delayed without impacting the completion time of it It is the deviation of the remaining time before the due time of job and the sum of processing time of remaining operations The function of slack time of job i (sl i ) is shown as Equation 4.2, where d i is the due time of job i, t is the considered time and j is the index of considered operation of job i sl i = d i − t − ∑ n h=j i p ih (4.2)
This slack time is equally divided among the number of remaining opearations of job i Hence, each operation has an equally slack time and the due time of it is defined by adding this slack time to its processing time, as shown in Equation 4.3 The operation with the minimum d ij is chosen d ij = sl i rn ij + p ij =d i − t − ∑ n h=j i p ih rn ij + p ij (4.3)
In that, d ij is the due time of operation O ij , rn ij is the number of remaining operations of job i from operation j, p ij is the average processing time of operation O ij between its doable machines
The third candidate for OR (OR3) is another way to define the operation due time based on slack time of corresponding job The remaining time before the due time of job i is divided equally among the units of remaning processing time of that job The operation with longer processing time will have a longer divided slack time Hence, the function of due time of operation O ij following this rule is shown as Equation 4.4 The operation with the minimum d ij is chosen d ij = d i − t
∑ n h=j i p ih × p ij (4.4) where d ij is the due time of operation O ij , t is the considered time, p ij is the average processing time of operation O ij between its doable machines
After an operation is chosen to be scheduled, the MR dispatching rule is used for choosing a machine to assign chosen operation on Two effective dispatching rules for machine selection used in this research are:
− MR2: (WINQ + RPT + PT) × PT
The highest priority is given again to the operation that has the smallest priority value The priority values of these rules are the combinations of 3 parameters:
− WINQ: Work In Next Queue is the total processing time of all operations in waiting list of machine k
− RPT: Remaining Processing Time of machine k if that machine is busy at the considered time
− PT: Processing Time of operation O ij on machine k.
Comparison of dispatching rules
From the simple rule of OR and MR that are developed, there are 6 combinations:
C 1 : OR1 + MR1 C 2 : OR2 + MR1 C 3 : OR3 + MR1
C 4 : OR1 + MR2 C 5 : OR2 + MR2 C 6 : OR3 + MR2
The performance of combinations is analysed using 20 test instances proposed by Behnke and Geiger [9] This study is involved both minimizing makespan objective and minimizing maximal tardiness objective, but these test instances did not mention the release times, the due times of jobs and the available time of machines So, the release time values of jobs and the available time values of machines are uniformly distributed between 0 and 20 One of the best due time estimating rules - Total Work content (TWK) method (Baker, 1984) – will be used to estimate the due time of each job via the Equation 4.5 In that, p ij is the average processing time of operation O ij among its doable machines and k is the tightness parameter, uniformly distributed between 1 and 3 “Larger value of the tightness parameter leads to larger due time of the job” [10] d i = r i + k × ∑ p ij n i j=1 (4.5)
The results of makespan value C max and maximum tardiness value T max of the study are presented in Table 4.1
Table 4.1 The results of combinations of OR and MR
Relative Performance Deviation (RPD) parameter is used to compare the effectivenesses of these combinations It is calculated by Equation 4.6
F best × 100(%) (4.6) where F i is the performance value of the result of combination, while F best is the performance value of the best solution (the smallest value) among solutions given from six combinations If F i = F best , RPD will be zero, that means the combination method i generated the best solution among six combinations The performance value can be objective function value F (Equation 3.4), the makespan value C max The F and RPD value of each combination are presented in Table 4.2 The bold values of each row are
F value and RPD value of the best result of each instance
Table 4.2 The objective function values and RPDs of combinations
F RPD F RPD F RPD F RPD F RPD F RPD
However, with the maximum tardiness value, T max may be equal to 0 when all jobs are not late and the Equation 4.6 has no meaning To deal with this problem, the tardiness deviation given by Equation 4.7 is used for the purpose of comparison T max
Figure 4.2 The RPDs of rule combinations
Figure 4.3 Box-plot diagram depicts the comparison of rule combinations
Figure 4.2 compares the RPD of objective function value between combinations At a glance, the combination C4 (OR1 + MR2) gave the best solutions or a solution nearer with the best than others Especially with large instances (B51 – B60), the result is better than those in small instances (B41 – B50) The next good combinations are C5 (OR2 +
MR2) and C6 (OR3+ MR2) It can be stated that MR2 is more effective than MR1, especially with large instances Figure 4.3 also depicts the comparison under Box-plot diagram It shows that with objective function value, C4 (OR1 + MR2) has the mean value that is nearest to 0 and the shorter interquartile range in comparison with other combinations Although in the diagram about relative deviation of makespan value, C5
(OR2 + MR2) and C6 (OR3+ MR2) are quite more effective than C4, C4 outperforms in field of maximum tardiness deviation Therefore, C4 (OR1 + MR2) is considered to be the best choice for the proposed scheduling procedure
Besides, this algorithm also gives the feasible solution in a very short time shown in Table 4.3, that gives it an additional advantage The algorithm is coded via Visual Basic for Application in MS Excel and conducted on the computer i5 2.3GHz, RAM 8GB
Table 4.3 Computational time of the proposed algorithm
The detailed steps of proposed algorithm
According to the main procedure and the selected rules for OR and MR, the detailed steps of the algorithm are as follows
+ Set the release time of the first operation r i1 of each job equal to the release time r i of that job: r i1 = r i (i = 1 … n)
+ Set the due time of the last operation d in i of each job equal to the due time d i of that job: d in i = d i (i = 1 … n)
+ Set the next available time of each machine equal to the initial available time of them: a k = a 0k (k = 1 … m)
+ Calculate the due time of the remaining operations of each job: d ij = d in i − ∑ p ih n i h=j+1
+ At the beginning, the number of operations that have not yet scheduled equal to the total number of operations: N u = N
+ The initial considered time: t = min(a k )
+ Selecting operation O ij ∗ in set R in order of ascending ODD
+ Selecting machine k ∗ to process O ij ∗ in the set M ij of machines that are able to process operation O ij ∗ based on (WINQ + RPT + PT) × PT rule
If machine k ∗ is idle and there is not any operation in its waiting:
▪ Assigning O ij ∗ on machine k ∗ , the starting time is s ij = max(r ij , a k ∗ )
▪ Set the release time of the next operation of job i: r ij+1 = s ij + p ijk ∗
▪ Set the next available time of machine k ∗ : a k ∗ = s ij + p ijk ∗
Otherwise: Adding O ij ∗ into the waiting list of machine k ∗
+ Repeating this step until all the operations in set R are considered
+ Sequently considering each machine k that has the next available time equal to the time t (machine k have already finished an operation processing and is available to process another operation)
If there is at least one operation in machine k’s waiting list:
▪ Selecting an operation O ij in the waiting list of machine k by ODD rule to be processed on it at the time t: s ij = t
▪ Set the release time of the next operation of job i: r ij+1 = s ij + p ij𝑘
▪ Set the next available time of machine k ∗ : a k ∗ = s ij + p ij𝑘
If there is not any operation in machine k’s waiting list then skip this step
+ Set the next considered time by the minimum available time of all the busy machine t = min a k (k ∈ the set of busy machines at previous t) If there is no operation releases at the new t, then set t = min r ij among all operations that has not yet scheduled
Numerical example
To be more specific, a numerical example will be presented here to describe each step of the procedure In the example, there are 3 machines on the shop floor with their available time are 1, 2 and 2 in that order The number of jobs have to be scheduled is 3 and the total number of operations is 8 Characteristics about values of release time, due time of jobs and doable machines, values of corresponding processing time of operations are shown in Table 4.4
Table 4.4 Numerical example – The input data
Firstly, the release time of the first operation of each job, the average processing time and the due time of all operations of each job is calculated as in Table 4.5
Table 4.5 Numerical example – The initial status (Note: Status: N – not yet scheduled; Y – scheduled; Q – in queue)
Set the initial considered time t = min a k = min(1; 2; 2) = 1
At this time, there are 2 release operations, those are O 11 and O 21 with the corresponding d ij (ODD) are 5 and 2 So, O 21 is chosen to be considered first, then O 11
Operation O 21 is able to be processed on machine M1 or machine M3 with the corresponding (WINQ + RPT + PT) x PT are 9 and 2 According to the rule, O 21 is assigned on M3 but this machine is busy at t = 1 Hence, O 21 is added to the waiting list of machine M3
Operations O 11 is able to be processed on machine M1 or machine M2 with the corresponding waiting time (WINQ + RPT + PT) x PT are 4 and 20 M1 is chosen but that machine is busy at this time, so O 11 is added to the waiting list of machine M1
Machine M1 is available at t = 1 and it has only the operation O 11 in the waiting list, so
O 11 is assigned on M1 with the starting time is s 11 = t = 1 The completion time of O 11 , the release time of its successor O 12 as well as the next available time of M1 is c 11 r 12 = a M1 = 1 + 2 = 3
At the current time t = 1, M2 and M3 are busy Therefore, set the next considered time t = min a k = min(a 2 ; a 3 ) = min(2; 2) = 2 with the status updated as in Table 4.6
Table 4.6 Numerical example – The status at t = 2
At t = 2, there is no release operation, so skipping this step
There are 2 machines available at that time: machine M2 and machine M3
Machine M2 is available at t = 2 but there is no operation in its waiting list
Machine M3 is available at t = 2 and it has only the operation O 21 in the waiting list, so O 21 is assigned on M3 with the starting time is s 21 = t = 2 The completion time of
O 21 , the release time of its successor O 22 as well as the next available time of M3 is c 21 = r 22 = a M3 = 2 + 1 = 3 The status of operations and machines after these steps is shown in Table 4.7
At the current time t = 2, machine M1 and M3 are busy Set the next considered time t = min a k = min(3; 3) = 3 with the status updated as in Table 4.7
Table 4.7 Numerical example – The status at t =3
Repeating those steps until all operations has been scheduled, the result is shown in Table 4.8 and by Gantt chart in Figure 4.4
The final solution gives C max = 11 and T max = 2
Table 4.8 Numerical example – The result
Figure 4.4 Numerical example – The Gantt chart
REACTIVE SCHEDULING
Overall
Reactive scheduling is implemented when a disruption occurs Because of effects of uncertainties and unexpected events on the generated schedule, the scheduler or the manager has to react as soon as possible to them and the schedule need to be properly updated [5] To react with them, rescheduling is proposed, which can be considered via three components: the environment, the strategy and the policy [4]
− Rescheduling environment: The disruption may impact on some jobs or some parts of jobs not all jobs in the initial scheduling Hence, it is necessary to define the rescheduling environment which means the jobs need to be considered in rescheduling process and their characteristics
− Rescheduling policy: This component is the answer for the question “when to reschedule” At the considered time, the decision of generating new schedule or not based on rescheduling strategy
− Rescheduling method: After deciding to reschedule, rescheduling method provides the method used to revise the initial schedule There may be different methods applied in different cases
The main objective of reactive scheduling is to reduce the impact of the event on the shop floor Besides, production scheduling is also necessary to be stable, that means there is not too many differences from the predefined schedule Hence, if an event is not significantly impact on the initial schedule, rescheduling is not necessary to be done in order to keep the production process stable
Based on the above reasons, the main idea of proposed reactive scheduling method is classifying unexpected events into some groups, then proposing a proper reaction against each group in order to satisfy the rescheduling’s objectives Therefore, the following consists of two parts:
− Event evaluation: The uncertainties or unexpected events is evaluated and classified into some groups based on their impact level on the existing schedule
− Rescheduling strategy: The rescheduling policy and the rescheduling method are proposed Policy illustrates the reaction to each type of events, in other words, deciding whether a new schedule is in need or not Rescheduling method with its detailed revision steps decribes how to revise the previous schedule and create a new schedule so as to satisfied the rescheduling objectives.
Rescheduling strategy
As mentioned in literature review, there are three types of rescheduling policy (some previous studies also called it as triggering mechanism [5]): periodic rescheduling, event-driven rescheduling and hybrid rescheduling [6] Periodic rescheduling is more stable than two remain policy because the rescheduling process is only implemented after a predefined period of time that is the the time between two consecutive times of rescheduling, but it desires to propose a proper length of period [5] On the other hand, event-driven rescheduling makes change on the schedule whenever an event occurs The issue is that the schedule may be changed too many times, which reduces the schedule stability Hybrid policy combines periodic and event-driven rescheduling to overcome their disadvantages In that, the schedule is updated periodicly and also when there is a significant impact event Based on scheduling objectives, scheduling environment and the type of events, there will be necessary to properly design the hybrid policy in order to keep the stability of the schedule and make the computation more easy [5] Hence, hybrid policy is used in this research
In some cases, an event may only make an acceptably small impact or even not affect on the initial schedule due to idle durations on machines after predictive scheduling No further action is necessary to be executed in this situation [5] On the other hand, there are some events that significantly change the schedule or even make it infeasible (machine breakdown, urgent job arrival ) It strongly desires to update the schedule immediately in that case Therefore, evaluating events play a vital role in reaction decision process Therefore, events are tried to be divided into three groups based on the impact level of them on the existing schedule: significant impact events (Group 1), acceptable impact events (Group 2) and none impact events (Group 3)
After evaluating the impact of event and classifying it into one in three groups, rescheduling policy is applied as follows Significant impact events of Group 1 will be reacted immediately by implementing the rescheduling method With the events of Group 2 which make acceptable impact on the initial schedule, they will wait for the the next periodic condition to be considered The events of Group 3 which do not affect the initial schedule are skipped, there is no rescheduling against them
About rescheduling method, this is the revision procedure of the existing schedule to generate a new one There are three most common rescheduling method: right-shift rescheduling, partial rescheduling, and complete regeneration [6] The method of right- shift rescheduling postpones each remaning operation by the amount of time needed to make the schedule feasible Partial rescheduling only considers affected operations, so its stability is kept more stable than complete regeneration In that, fix-sequence method is a special case which remains the machine assignment of opeartions and the order of operations on machines, but postpones the start time of affected operations by the amount of downtime Complete regeneration method creates a new schedule for both affected operations and not affected operations It may take more computational effort to deal with and the stability may be lower, but it can create a better schedule However, with the advantage of computating in a short time of the proposed heuristic scheduling in Chapter 4, the drawback of this method will be overcome Therefore, complete regeneration is used as the rescheduling method in this research Besides, fix-sequence rescheduling method is also applied for disruptions in Group 2 and Group 3 until the periodic rescheduling time point At this time point, if all disruptions are in Group 3, new schedule generation is not necessary to be excecuted, solution from fix-sequence method is still applied until the periodic rescheduling point is achieved Otherwise, if there is at least a disruption in Group 2, the rescheduling will be executed
Because the heuristic algorithm for predictive scheduling is not sure to give good solution, once a new schedule is generated, its performance will be compared to the one given from fixed-sequence rescheduling method, except the rescheduling period with new job arrival
The entire proposed rescheduling strategy is shown in Figure 5.1
COMPUTATIONAL RESULTS
Design of experiments
A test instance numbered 60 by Behnke and Geiger [9] is chosen to apply the proposed predictive-reactie algorithm In all of these test instances, there are 100 jobs that have to be scheduled on 60 machines
Because the original test instance assumes that all jobs and machines are available at the beginning time and no due time, in this study they will be randomly generated The initial release times of jobs and the available times of machines are generated from uniform distribution U [0, 200] The due time of each job is calculated from Equation 4.5 with the tightness parameter k of each job is generated from U [2.0, 2.5] All the detail of additional input data about jobs, operations and machines for the experiments is shown in Appendix C
Some events may occur during the schedule implementation, they will be randomly generated in this study through the information in Table 6.1, where:
− n i : number of operations of job i
− p ij : processing time of operation O ij
− c ij : completion time of operation O ij
− TWK = ∑ n j=1 i p ij : total work content of job i
− (*): detailed information of new jobs is shown in Appendix B
Delay in machine available time
Deviation E4 [-0.05C max , -0.01C max ] Job cancellation F
Occuration time G2 [0.25C max , 0.75C max ] New job index G3 {J1, J2, J3} (*)
According to that, 15 experiments are generated with the detail information of those experiments is shown in Appendix C This study evaluates the proposed reactive scheduling based on these experiments
Some parameters for the experiments are set as follows:
− The rescheduling period is set at T = 48 This can be explained that a time unit in the experiments can be considered as one hour In the real world, a shop floor is often operated under constant period like one day, one week or two week or a month And the working time of an organization is commonly 6 days per week and 8 hours per day Hence, T = 48 corresponds to one-week period in reality
− The average tightness among 100 initial jobs is calculated at 2.30
− The accepted maximum tardiness is set at 32 Hence, β value is defined by the deviation between accepted value and the current maximum tardiness value
− Because the makespan can be changed due to job addition or job cancellation (change of load), there is no constant accepted makespan and it will be updated after two above events Hence, α value is constantly set at 10.
Experiment results
The result gained from hybrid policy application is compared to those gained by applying periodic policy and event-driven policy
− With periodic policy, at the beginning of each scheduling period, the rescheduling process will be implemented if there is at least one event in group 1 or group 2 occured before Otherwise, the fixed-sequence method is applied
− With event-driven policy, once an event in group 1 or group 2 occurs, the rescheduling process will be implemented immediately Otherwise, the fixed- sequence method is applied
The efficiency of algorithm is evaluated via two following criteria:
− The objective function value (F = 0.5C max + 0.5T max ): RPD (Relative Performance Deviation in Equation 4.6) parameter is also used in this case to compare the effectivenesses of these approaches The 0 value illustrates that that policy made the best (the smallest) objective function value among three policies
− The number of rescheduling times (n re ) A small n re decribes that the shop floor is more stable
The results are shown in Table 6.2
Table 6.2 The results of experiments
Case Event-driven Periodic Hybrid
Figure 6.1 shows the RPD value among three policies applying on 15 experimetns, while Figure 6.2Figure 6.2 The number of rescheduling times comparison between policies compares the number of rescheduling times between them It is illustrated that although there were 7/15 experiments event-driven policy gave the best solution with the smallest objective function value F, the high average value of RPD shows that its solutions are so far from the best solution in the other experiments Besides, event-driven policy rescheduled many times, that may make the shop floor unstable Periodic policy almost makes a least number of rescheduling times but the relative performance about objective function is less than Hybrid policy has the number of rescheduling times in the medium level but its average relative performance deviation of objective value is the smallest In almost experiments, hybrid policy gave the solution that is better than or nearer the best solution than others
Figure 6.1 RPD comparison between three rescheduling policies
Figure 6.2 The number of rescheduling times comparison between policies
From the results on the sample instance, the proposed approach for predictive-reactive scheduling in this study shows that it is effective with the objective of minimizing both makespan and maximum tardiness in flexible job shop scheduling
In this research, the problem considered is production scheduling in the dynamic flexible job shop environment with two objectives that are minimzing the makespan and the maximum tardiness The predictive-reactive scheduling method was applied to deal with the problem
With predictive scheduling, previous research on deterministic flexible job shop scheduling often skipped the release time values of jobs and the initial available time values of machines, that made the rescheduling process difficult to deal with updating the shop floor condition This research begun with proposing a heuristic algorithm using ODD dispatching rule for operation selection process and (WINQ+RPT+PT)×PT rule for machine selection process Its outperformed effectiveness was proven through comparing with some other dispatching rules and the short computational time
After that, a rescheduling strategy was proposed for reactive process in order to cope with uncertainties and unexpected events during the schedule application on shop floor Each occuring event is classified into one in three groups based on its impact on the initial schedule, then a proper reaction will be applied corresponding with each group The result on some experiments illustrated that the proposed rescheduling strategy is more effective than periodic method and event-driven method based on performance deviation and stability of the schedule (evaluating via the number of rescheduling times)
This research can be applied effectively in real-world production due to its high reality and ease to operate For the further research, the objective can be changed by considering about operation cost and punish cost for late order In addition, it is necessary to make some efforts to define the proper rescheduling point, that could be right at the point when the significant event occurs or when it is known or another one The time for the scheduler to make a new schedule also need to be considered in the rescheduling problem
[1] M L Pinedo, Planning and Scheduling in Manufacturing and Services 2nd edition, New York: Springer, 2009
[2] M L Pinedo, Scheduling Theory, Algorithm, and Systems 5th edition, New York: Springer, 2012
[3] P Kaweegitbundit and T Eguchi, "Flexible job shop scheduling using genetic algorithm and heuristic rules," Journal of Advanced Mechanical Design,
Systems, and Manufacturing, vol 10, no 1, 2016
[4] W P Syam and I M Al-Harkan, "Comparison of three meta heuristics to optimize hybrid flow shop scheduling with parallel machines," International
Journal of Mechanical, Aerospace, Industrial, Mechatronic and Manufacturing Engineering, vol 4, no 267-271, 2010
[5] P Zheng, J Wang, J Zhang, C Yang and Y Jin, "An adaptive CGAN/IRF- based rescheduling strategy for aircraft parts remanufacturing system under dynamic environment," Robotics and Computer Integrated Manufacturing, vol
[6] G E Vieira, J W Herrmann and E Lin, "Rescheduling Manufacturing Systems:
A Framework of Strategies, Policies, and Methods," Journal of Scheduling, vol
[7] K M M A Bukkur, M I Shukki and O M Elmardi, "A review for dynamic scheduling in manufacturing," The Global Journal of Researches in Engineering, vol 18, no 5, pp 25-37, 2018
[8] I Y Kim and O L de Weck, "Adaptive weighted sum method for multi objective optimization: a new method for Pareto front generation," Structural and Multidisciplinary Optimization, vol 31, pp 105-116, 2006
[9] D Behnke and M J Geiger, "Test Instances for the Flexible Job Shop
Scheduling Problem with Work Centers," Germany, 2012
[10] T C E Cheng, "Analytical determination of optimal TWK due-dates in a job shop," International Journal of Systems Science, vol 16, no 6, pp 777-787,
[11] F Geyik and I H Cedimoglu, "The strategies and parameters of tabu search for job-shop scheduling," Journal of Intelligent Manufacturing, vol 15, no 4, pp 439-448, 2004
[12] F Koblasa, "Single swap local search for classical Job Shop and Flexible Job Shop scheduling Problem," in Mezinárodní Baťovy konference pro doktorandy a mladé vědecké pracovníky, Zlín, 2010
[13] A Baykasoğlu, L ửzbakir and A İ Sửnmez, "Using multiple objective tabu search and grammars to model and solve multi-objective flexible job shop scheduling problems," Journal of Intelligent, vol 15, no 6, pp 777-785, 2004
[14] F Glover and E Taillard, "A User’s Guide to Tabu Search," Annals of
Operations Research, vol 41, no 1, pp 1-28, 1993
[15] T V T Huong, L N Q Lam and V Q Nhi, "Flexible Job shop scheduling with batch and discrete processing machines," in MMMS, Danang, 2018
[16] N B Ho and J C Tay, "GENACE: an efficient cultural algorithm for solving the flexible job-shop problem," in The congress on Evolutionary Computation, Portland USA, 2004
[17] J C Tay and N B Ho, "Evolving dispatching rules using genetic programming for solving multi-objective flexible job-shop problems," Computers & Industrial
[18] I Kacem, S Hammadi and P Borne, "Approach by localization and multiobjective evolutionary optimization for flexible job-shop scheduling problems," IEEE Transactions on Systems, Man, and Cybernetics, vol 32, no 1, pp 1-13, 2002
[19] N A Masruroh, "Adaptive Scheduling Systems: A decision-theoretic approach," National university of Singapore, Singapore, 2009
CPlex Code for the proposed mathematical model in Chapter 3 tuple Job { int jobId; int rel; int due;
}; tuple Mch{ int MchId; int Avail;
}; tuple Operation { int opId; int jobId; int pos;
}; tuple Mode { int opId; int mch; int pt;
{Mode} Modes = ; int jlast[j in Jobs] = max(o in Ops: o.jobId == j.jobId) o.pos;
//Variables dvar boolean x[Ops][Machine]; dvar boolean y[Ops][Ops]; dvar int s[Ops]; dexpr int c[o in Ops]=(s[o] + (sum(i in Machine, m in Modes: m.opId==o.opId && m.mch==i.MchId) (x[o][i]*m.pt))); dexpr int com[j in Jobs]=max(o in Ops: o.jobId == j.jobId && o.pos==jlast[j]) c[o]; dexpr int T[j in Jobs]= maxl(0, (com[j]-j.due)); dexpr int Cmax = max(j in Jobs, o in Ops: o.pos==jlast[j]) c[o]; dexpr int Tmax = (max(j in Jobs) T[j]);
//Constraints subject to{ forall(o in Ops) sum(i in Machine,m in Modes:m.opId==o.opId && m.mch==i.MchId) x[o][i]==1; forall(o in Ops) sum(i in Machine) x[o][i]==1; forall(o in Ops) s[o] >= sum(i in Machine) (i.Avail * x[o][i]); forall(o in Ops, j in Jobs: o.jobId==j.jobId) s[o] >= j.rel; forall(o1 in Ops, o2 in Ops: o1.jobId==o2.jobId && o2.pos==o1.pos+1) s[o2]>=c[o1]; forall(a in Ops, b in Ops: a.opId >= b.opId) y[a][b]==0; forall(a in Ops, b in Ops, i in Machine: a.opId < b.opId) (s[a] >= c[b] - (2 - x[a][i]-x[b][i]+y[a][b])*10000); forall(a in Ops, b in Ops, i in Machine: a.opId < b.opId) (s[b] >= c[a] - (3 - x[a][i]-x[b][i]-y[a][b])*10000);
The following is the added information for jobs and machines of the test instance used to evaluate the proposed algorithm in Chapter 6 The used instance is the B60 instance which is gained from the study of Behnke and Geiger [9] with 100 jobs and 60 machines (𝐫: release time; 𝐝: due time; 𝐚: available time)
The information of three new job used to generate cases in experiments in Chapter 6
Job Oper- ration (Doable machine – Processing time)
5 (57-28), (58-27), (59-14), (60-30) The notation meaning of attributes of each type of events describe as follows
Machine breakdown A Notation Occuration time
Delay in job arrival B Notation Occuration time
Delay in machine available time C Notation Occuration time
Processing time variation D Notation Occuration time
Operation index Deviation Tightening due time E Notation Occuration time
Job cancellation F Notation Occuration time
Job addition G Notation Occuration time
The information of generated cases in Chapter 6