zjt≤1-mj,t-1 j=1,...,M, t=1,...,T (2)
zjt≤mjt j=1,...,M, t=1,...,T (3)
zjt≥(1-mj,t-1)+mjt-1 j=1,...,M, t=1,...,T (4)
The constraint sets (2), (3) and (4) also fix zjt at either 0 or 1.
To make sure that no jobs can be planned during a preventive maintenance (which requires RT
periods of time) we need the next constraints to make mjk one for every
k=t,...,t+RT-1:
zjt ≤ mjk j= 1,...,M, t= 1,...,T, k = t,...,t+RT-1 (5)
Besides constraints (1) through (5), some other key constraints are needed. A fundamental
material balance equation for each period is stated as:
Production + beginning inventory - ending inventory = demand
Or mathematically:
∑M Rijδijt+(I+i,t-1-Ii-,t-1)-(I+it-Ii-t)=Dit i=1,...,N t=1,...,T(6)
j=1
where inventory is defined as Iit+ - Iit- , or positive net inventory minus backorders.
Rij is defined as the capacity of production line j divided by the processing time of product i on
production line j, or: Rij= Capj / pij.
Maintenance and production cannot be scheduled in the same period on a certain production line.
Constraint (7) prevents this from happening:
∑N δijt+mjt≤1 j=1,...,M t = 0,...,T (7)
i=1
The variable yjmt must equal one when the last preventive maintenance job on production line j
occurred in period m and we are now in period t. To ensure this, we define yjmt as:
yjmt = (1-mjt)(1-mj,t-1)...(1-mj,m+1 )mjm
This is again nonlinear, so we use the same technique as applied in constraints (2) through (4):
yjmt≤1-mjk j=1,..., M, t=1,...,T, k=m+1,...,t (8)
yjmt≤mjm j=1,..., M, t=1,...,T, m=0,...,t-1 (9)
t
yjmt≥ ∑ (1-mjk)+mjm-(t-m) j=1,..., M, t=1,...,T, m=0,...,t-1 (10)
k=m+1
where yjmt is greater than or equal to 0.
To initialize some of the variables, we introduce a dummy period 0, where the previous
preventive maintenance was performed and where inventory was zero.
mj,0 = 1 j= 1,..., M
(11)
2
The general rule for linearizing expressions like x1...xk is as follows: replace x1...xk with y and add the next three constraints:
1) y<_ xj, 1_< j<_ k
2) y>_ Σkj=1 xj - (k-1)
3) y>_ 0