win gershdspace.mit.edu/bitstream/handle/1721.1/74134/2-852...oint. conjecture: this is optimal if z...
TRANSCRIPT
Design and Operation
of Manufacturing Systems |
The Control-Point Policy
by
Stanley B. Gershwin
Massachusetts Institute
of Technology
Cambridge, Massachusetts
02139 USA
I I E Annual Conference
Orlando, Florida, May 19-22 2002
Outline
� Goals
� Dynamic Programming Formulation
� Dynamic Programming Solution:
Surplus-Based Policy
{ Special Cases
{ General Case
� Solution: Time-Based Policy
� Relationship with Other Policies
� Solution: Token-Based Policy
{ Decomposition
{ Optimization
� Preliminary Simulation Results
� Future Research
Goals
� to propose a real-time scheduling policy,
� to present the policy in three forms,
� to show how factories and policies can b e simultane-
ously designed,
� to describe some preliminary simulation results,
� to suggest fruitful research directions.
Class of Systems
Type 1Type 1 Type 2 Type 2
M 1 M 4B41
B11 B51 B12 B32 B71 B31
B22
B61M 2 M 3
B21
� Reentrant ow
� Flexible, unreliable machines
� Continuous material
� Homogeneous, �nite bu�ers
� Constant demand rate
� No setups or batches
Objective
Cumulative
d t q
P (t)sq
sq
sq
Production and Demand
of Type parts
t
earliness
demand
surplus x (t)
production
� Minimize a weighted area b e t ween the production line
and the demand line.
Dynamic Programming Formulation
� S(s; q) is the sth machine that type q parts visit.
� Demand dq
� Operation time 1=�sq
� Availability ei X
dq� Feasibility: < ei
for all i�sq
fs;qjS(s;q)=ig
� Control: usq(t) is the instantaneous production rate
of type q parts at stage s at time t
Z t� Cumulative production Psq(t) = 0
usq(� )d�
� State: xsq(t) = Psq(t) � dqt, surplus
� State: �i(t) = 0 or 1: repair state of Machine i
Dynamic Programming Formulation
� Constraints:
if �i(t) = 0; usq(t) = 0;
X usq(t)
if �i(t) = 1; � 1; usq
� 0:
fs;qjS(s;q)=ig
�sq
� Dynamics:
dxsq
= usq
� dqdt
� dynamics | unreliable machines
� Bu�er levels
bsq
= xsq
� xs+1;q
� Constraints: 0 � bsq
� Nsq
� Objective:
Z TJ = min E 0
g(b11(s); b 12(s); :::; x K (`);`(s))ds
Dynamic Programming Solution
| Surplus-Based Policy
� Solution is a control law of the form u(x(t); � (t); t ).
� Impossible to determine exactly except in special cases.
� Impossible to determine numerically except in spe-
cial cases.
� Strategy: Investigate special cases and extrapolate.
Special Case:
One Machine, One Part Type
+
Z
d t
d t Z
surplus (x )
t
demand
hedging point
Production and Demand Cumulative
production
� If � = 1,
if x > Z u = 0
if x = Z u = d
if x < Z u = �
� If � = 0, u = 0.
� Bielecki-Kumar (1988)
Special Case:
One Machine, Multiple Part Types
If � = 1,
x2
u = u = 0
x1
1 2
dx dt
µ2
µ1
2
1u = 1
u = 0
u = 0
u =
1
2
µ
2
u = d1
µ2 1
2
1
u = 0
u = d1
1
u = 01
2u = d2
u = (1 − d / )
� Type 1 has priority because of g() and �1
and �2.
� Rishel (1975), Kimemia-Gershwin (1983), Srivatsan
(1993).
� Complete solution found only for two part types when
Z = 0. Srivatsan and Dallery (1998) showed that
boundaries are more complicated when Z 6= 0.
Special Case:
One Machine, Multiple Part Types
Conjectured generalization
0. Before executing the policy, rank order the products.
This is a static ranking.
1. Produce the highest ranking product, until its surplus
reaches its hedging p o i n t Z1. (The others fall behind.)
2. Keep the highest ranking product at its hedging point.
Devote all remaining capacity to the second highest
ranking product, until it reaches its hedging p o i n t Z2.
(The others fall further behind.)
3. Keep the two highest ranking products at their hedg-
ing p o i n ts. Devote all remaining capacity to the third
highest ranking product, until it reaches its hedging
p oint Z3. (The others fall still further behind.)
4. etc.
Simpli�ed statement: Produce the highest ranking part
whose surplus is below its hedging point.
Conjecture: This is optimal if Z = 0.
��������������������������
�������������������
�������������������
�������������������
�������������������
Special Case:
Multiple Machines, One Part Type, Tandem
x1 b
x2
u2If �1
= �2
= 1,
u1
������������� ������������� ������������� ������������� ������������� ������������� ������������� ������������� ������������� ������������� ������������� ������������� ������������� ������������� ������������� ������������� ������������� ������������� ������������� ������������� ������������� ������������� ������������� ������������� �������������
������������� ������������� ������������� ������������� ������������� ������������� ������������� ������������� ������������� ������������� ������������� ������������� ������������� ������������� ������������� ������������� ������������� ������������� ������������� ������������� ������������� ������������� ������������� ������������� �������������
���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ����������������������
���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ���������������������� ����������������������
���������� ���������� ���������� ���������� ���������� ���������� ���������� ���������� ���������� ���������� ���������� ���������� ���������� ���������� ���������� ���������� ���������� ����������
���������� ���������� ���������� ���������� ���������� ���������� ���������� ���������� ���������� ���������� ���������� ���������� ���������� ���������� ���������� ���������� ���������� ����������
������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� �������������������
������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ������������������� ����������
���������� ���������� ���������� ���������� ���������� ���������� ���������� ���������� ���������� ���������� ���������� ���������� ���������� ���������� ���������� ���������� ����������
���������� ���������� ���������� ���������� ���������� ���������� ���������� ���������� ���������� ���������� ���������� ���������� ���������� ���������� ���������� ���������� ���������� ����������
1 u = µ
1
u = µ2 2
1 xx =
2
1 Z Z
2,( )
u = 2
1 u = µ
1
0
x 2
u = 2
1 u =
u = µ2 2
1 u =
0
0
0
1 x =
2 x + N
x 1
8>>
> if xi
> Zi; ui
= 0; > > > <
�
if xi
= Zi; ui
= d; > > > > > :
> if xi
< Zi; choose ui
as large as possible.
� \As large as possible" means
if 0 < x1
� x2
< N , then u1
= �1
and u2
= �2;
if x1
� x2
= N , then u1
= min(�1; u 2) and u2
= �2;
if x1
� x2
= 0, then u1
= �1
and u2
= min(u1; � 2).
� Van Ryzin (1987); Van Ryzin, Lou, and Gershwin
(1993); Lou et al.
General Case
0. Before executing the policy,
� rank order the work items at each machine,
� determine bu�er sizes,
� determine hedging p o i n ts Zsq
.
At every t, if �i(t) = 1, divide the set of part types q at
stage s (work item types sq) such that S(s; q) = i into
four sets.
Initially, they are:
Q1: the set of all work item types for which xsq
(t) > Zsq
;
Q2: the set of work item types for which xsq(t) = Zsq
and
for which there are no higher ranking work item types
such that xsq(t) < Zsq
;
ZQ3: the highest ranking work item type for which xsq(t) <
sq
. If there is no sq for which this is true, Q3
is
initially empty.
Q4: all other work item types.
General Case
Then assign production rates and modify the sets accord-
ing to the following:
u1. For each work item type sq in Q1, xsq(t) > Zsq
and
sq(t)=0.
u2. For each work item type sq in Q2, xsq(t) = Zsq
and
sq(t) = dq
3. If Q3
and Q4
are not empty, allocate as much of the
remaining capacity as possible to the work item type
in Q3.
u4. � If all capacity is allocated, then
sq
(t) = 0 8 sq 2 Q4, and stop.
� If Q4
is empty, stop.
� Otherwise,
(a) Move the work item type from Q3
into Q2. Do
not change its production rate usq(t).
(b) Move the highest ranking work item type from
Q4
into Q3.
(c) Go to Step 3.
Real-Time Capacity Allocation
When capacity is allocated,
� Q1
= fsqjxsq(t) > Zsq
and usq(t) = 0:g
S� Q2
Q3
= fsqjxsq(t) � Zsq
and usq
(t) > 0g
� Q4
= fsqjxsq(t) < Zsq
and
rank is lower than any item in Q3g
Solution: Time-Based Policy
� Hedging time = Hsq
= Zsq
=dq.
� Due date of the = Psq
(t)th part is Dsq
(t) = Psq(t)=dq:
� Earliness at time t is Esq
(t) = Dsq
(t) � t.
� Policy: Same as surplus-based except replace xsq
>
Zsq
with Esq(t) > Hsq, etc.
sq
q sq
sqsq
H sq
Z sq
sq
H sq
q d t+
sq
q d t
qH sqsq sq
Cumulative Production and Demand
of Type parts
P (t) =
t-
surplus x (t)
hedging time
t
demand
earliness
production
x (t)
P (t)/dD D (t) =
hedging point
Z d t+
Adaptation for Discrete Parts
� Observation: There are essentially never any parts
such that Esq
= Hsq.
� De�nition: sq is available if BS(s�1;q)
is not empty
and BS(s;q)
is not full.
H� De�nition: sq is ready if it is available and Esq(t) <
sq.
� Policy: select the highest ranking ready work item.
If no items are ready, wait.
Control Point Policy: implement the policy as stated
at a limited set of control p o i n ts; do something sensible
elsewhere.
Add to Step 0: select control p o i n ts.
Relationship with Other Policies
� Least slack: no static ranking; in�nite bu�ers; no
waiting (ie, no concept of readiness).
H� MRP scheduling: Intermediate due dates Dsq
(t)�
sq
are targets; no rule speci�ed for when targets are
missed.
� Base stock: In�nite bu�ers.
� Kanban: No surplus/earliness information.
� ConWIP: Limited inventory similar to due date in-
formation, as described b e l o w.
� Drum-Bu�er-Rope: Variant of ConWIP.
� PAC, EK: are generalizations.
Single-Part Type Equivalence
Assertion: Operating M according to a hedging point
policy
M
is isomorphic to operating the three-machine assembly
system
M
D
S
FG
B
in which D is the demand generator, S is a synchroniza-
tion machine which is in�nitely fast and perfectly reliable,
the size of FG is Z, and B is in�nite.
Solution: Token-Based Policy
Controlling a three-machine tandem system
M B M B M1 1 2 2 3
is equivalent to operating an acyclic assembly/disassembly
system
D
S
1
1
B M B M1 2 2 3M1
D
S
D
S
2
2
3
3
when demand is constant.
Solution: Token-Based Policy
More generally, when demand is not constant, controlling
a three-machine tandem system
M B M B M1 1 2 2 3
is equivalent to operating an assembly/disassembly sys-
tem
B M B M1 2 2 3M1
S S2 3
D
S1
Multiple-Part Type Equivalence
Assertion: Operating M according to a multiple-part-
type hedging p o i n t policy
Machine controlled by hedging point policy
is isomorphic to operating the assembly system
by tokens Machine controlled
Demand Machines
Material Flow
Token Flow
Synchronization Machines
with part ranking.
Decomposition
� Single-part type systems can b e analyzed with 20th
century methods.
{ tandem lines
{ assembly/disassembly trees
{ single-loop systems (Frein, Commault and Dallery, 1996)
� Considerable progress has b e e n made recently.
{ multiple-failure mode tandem lines and trees (Tolio et al.)
{ improved single loop analysis
{ multiple-loop systems | preliminary results
{ multiple-part type systems | preliminary results
Optimization
� EÆcient optimization methods based on decomposi-
tion have b e e n developed (Schor, 1995; Schor and
Gershwin, 1996) for single-part-type tandem systems.
� They work well because of the concavity and mono-
tonicity of the production rate as a function of bu�er
sizes.
� We can hope that these properties hold for more com-
plex systems.
In that case,
� we can eÆciently determine good bu�er sizes and hedg-
ing points/times to develop a policy for an existing
factory.
� we can simultaneously design a factory and its oper-
ating policy. The analysis of such a factory should
b e more accurate than current simulations for factory
design.
Performance
�
1 1 2 2 3 3 4 4 5 5 6 6 7
Production line:
� Parameters: all ri
= .1; all pi
= .01; all bu�er sizes
20.
� Problem: achieve a random demand (rD
= pD
= .05)
with minimal inventory.
� Kanban control:
1 1 2 2 3 3 4 4 5 5 6 D6 7 FG
Total WIP (not including FG): 108 (decomposition)
Single-Point Control
� Downstream
1 1 2 2 3 3 4 4 5 5 6 6 7
9
11
12
D
Total WIP: 95 (decomposition)
� Mid-line
1 1 2 2 3 3 4 4 5 5 6 6 7
8
10
11
D
Total WIP: 60 (decomposition)
� Upstream
1 1 2 2 3 3 4 4 5 5 6 6
7
9
10
7
D
Total WIP: 25 (decomposition)
9
Three-Point Control
1 1 2 2 3 3 4 4 5 5 6 6 7
7 8
9 10
10 11 12
D
Invariant 2 = 0
11
0
10
20
30
40
50
60
70 n1 n2 n3 n4 n5 n6
total
-30 -20 -10 0 10 20 30 40 50 60 70
Invariant 1
Simulation
Future Research
� Incorporate existing HP research for more general sys-
tems (subcontracting, etc.).
� Develop decomposition methods for token-based con-
trol schemes. Extensions of existing methods include
{ non-acyclic networks with multiple loops
{ multiple-part-type systems
{ reentrant systems
{ improve assembly performance by using tokens to
coordinate production.
� Develop optimization methods for these kinds of sys-
tems.
� Optimize token ow subnetwork structure.
� Develop real-time extensions for batching and setups,
and modify the decomposition method accordingly.