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 the production environment
− β: Describes in detail the processing characteristics and constraints.
− γ: Describes the problem’s objectives.
2.2.1 Production Environment
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 Pm 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.
2.2.2 Processing Characteristics and Constraints
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 (pij): 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 (ri): A job cannot be processed before its release time.
− Job’s due time (di): It is the time that a specific job needs to be finished.
2.2.3 Objective Function
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 (Cmax)
Cmax = max(Ci) (2.1)
In that, Ci is the completion time of job i, Cmax is the completion time of the final job as well as the time all jobs are completed.
− Minimize the maximum lateness (Lmax)
Lmax = max Li = max( Ci− di) (2.2) In that, Li is the lateness of job i, is calculated by (Ci− di) with Ci is the completion time and di 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 (Tmax)
Tmax = max Ti = max(max(Li, 0)) (2.3) In that, Ti 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)
U = ∑ UiUi = { 1, ifCi > di
0, otherwise (2.4) In that, U is the number of tardy jobs, Ui 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.