environment(Zhang et al, 2013 ). Gao et al proposed
A two-stage artificial bee colony (TABC) algorithm
with several improvements to solve FJSP(flexible
job shop problem) with fuzzy processing time and
new job insertion constraints, and compared against
seven existing algorithms for solving five well-
known benchmarks of FJSP , the results illustrated
the competitiveness of the proposed algorithm(Gao,
2016) .
Although the optimization algorithms mentioned
above have achieved good results in solving the job
shop rescheduling problem, the solution time of
these algorithms is too long which is not good
enough to be applied in the actual production. In
actual production, decision makers often need to
make a relatively feasible decision in a short time.
Constraint satisfaction technique is an effective
method to solve the above problem. This technique
can not only simplify the complexity of the model,
but also reduce the computational complexity of the
problem by using the constraint relation between
variables. In recent decades, researchers have made
a lot of research on Constraint Satisfaction Based
Job Shop scheduling algorithm, and the constraint
programming is applied to job shop scheduling and
some excellent research results have been obtained.
For example, Nuijten, Sahraeian, Moukrim,
Lacomme and other scholars, their research results
show that constraint programming features in shop
scheduling are quickly and effectively, it can
provides a feasible scheme for the enterprise timely
and effectively(Nuijten et al, 1998)( Sahraeian et al,
2014)( Moukrim et al, 2014)( Lacomme et al, 2011).
Based on the above, this paper applies the
constraint programming to the job shop rescheduling
problem, and adopts the global rescheduling strategy
to achieve the goal of solving the shop Job
rescheduling problem with the insertion of new job
rapidly.
2 JOB SHOP RESCHEDULING
PROBLEM
2.1 Problem description
In the reality of job shop production, there are often
a lot of dynamic factors leading to the job shop need
to rescheduling, this paper focuses on the job shop
rescheduling problem of the insertion of new job.
When a new job arrives and insert into the original
schedule, some conflicts may arise and the original
schedule may not be executed. Hence, it is necessary
to reschedule in this situation. And most
importantly, the machines are available for
rescheduling only when the operations on them are
all completed. That means machines and jobs may
have different start times in the rescheduling.
In order to facilitate the establishment of the
model, we assume a new job arrives at the time of
T
b
. If o
ib
is processing on the machine b at the time
of Tb, this operation will be considered as an
operation which has been processed in rescheduling,
and the earliest start time of machine b is equal to
c
i,j
. If a machine j does not process any job, the
earliest starting time of machine j is equal to T
b
.
In this paper, all operations of original schedule
are included in the set Ω. Since the insertion of new
job, we reset n as the total jobs in the rescheduling,
and m as the total machines. All operations need
rescheduling are included in the set Ω’.
2.2 Rescheduling model
In the JSRP, each job consists of a sequence of
operations. An operation can be executed by a set of
candidate machines and each operation of a job is
processed only on one machine at a time, while each
machine can only process one operation at a time.
Minimizing the total completion time is the most
important objective of the job shop production in the
dynamic shop floor. In this paper, we use constraint
programming to establish the model, and solve the
rescheduling problem. The following notations and
assumptions are used for the formulation of JSRP.
i: job index (i=1,…,n) , a set of n jobs to be
scheduled;
j: machine index (j=1,…,m) , a set of m
machines;
c
i,j
denotes the completion time of the operation
o
i,j
;
y
i,j
denotes the start time of the operation o
i,j
;
Xiuj=1denotes job i should be processed on the
machine j after on the machine u(otherwise,
Xiuj=0);
Zikj=1 denotes machine j should process the job
i before job k (otherwise, Zikj =0);
p
i,j
denotes the processing time of o
i,j
;
M is a large enough value;
S
j
denotes the earliest starting time of machine j
in the rescheduling;
x
i,j
denotes the ending time of o
i,j
in the original
scheduling
Min C
max
(1)
s.t.
C
max
≥c
i,