At 10:28 AM 11/12/2000 +0000, Geoff Coyle wrote:
>Bob Eberlein correctly reminds us that the common practice of using DELAY3
>may mislead and we should be more careful. I dont think that he is right in
>saying that Vensims pipeline delay has an infinite number of hidden levels.
>It is more likely to be DEL/DT hidden levels> Maybe hell correct me.
Geoff Coyles count of the hidden levels in pipeline delays is correct. At
the same time, since the time step can be made (almost) arbitrarily small
(within limits of modeler patience and the numerical precision of the SW),
the number of levels might as well be infinite, so Bobs right too. This
illustrates a hidden cost of pipeline or infinite-order delays: computation
time. Its fairly easy to bog down a large model with careless use of
pipeline delays; they should be used where theyre realistic, not just easy.
As always, putting the structure to the test is an effective solution. Its
really easy to use a built-in Nth order delay function and vary the order
parameter to see what happens. Its almost as easy to use arrays, varying
the array bounds to change the delay order. This can be a good way to
critique an existing model - just browse around for DELAY or SMOOTH-type
functions and change their order, or insert delays into the first-order
outflows of stocks.
You can demonstrate the N = Delay^2/StdDev^2 rule of thumb by testing with
an Nth order delay structure (a sample model follows at the end of this note):
DTOrderMeanStd DevDelay^2 /SD^2
0.062519.9959.9461.01
0.06253105.7193.06
0.06255104.4015.16
0.062510103.06110.66
119.9969.4711.11
13104.834.29
15103.16210.00
110100NA
319.9988.361.43
519.9997.0692.00
101100NA
One thing to note here is that the rule of thumb works well as long as the
time step (DT) is much less than delay time/delay order. As the time step
gets large, the model is no longer a good approximation of continuous.
When the delay time/delay order = DT, the model is effectively discrete
(with Euler integration). This is how most demographic models that Ive
seen work; they have zero dispersion in the transit time of individuals
through the population cohorts, because the cohort duration (1 or 5 years)
is the same as the time step. The dispersion in life expectancy then comes
entirely from the fact that all cohorts are subject to some death rate,
initially small but larger for later cohorts.
One other complication introduced by higher-order delays is decision rule
formulation. In a classical SD supply chain model, you might find a 2nd
order system - a stock of work-in-progress feeding a stock of finished
inventory. Its then easy to formulate an production start rule that has a
nice behavioral interpretation and behaves reasonably in steady-state
conditions, e.g. Production Starts = MAX(0, Expected Sales + a*(Desired
Inventory-Inventory) + b*(Desired WIP - WIP). Its easy to make the
work-in-progress stock into 10th order delay, but then how do you write the
decision rule? Assume people manage the system as if its first order? Find
out how the Nth order algorithm in their MRP system works? You may quickly
find yourself headed toward a detailed simulation of the shop floor thats
not appropriate for strategic questions at hand. This is not an argument
against higher-order delays; just an appreciation of the challenges involved.
After all this, Im not sure weve answered the original question; it
sounded to me like Ram was interested in modeling the stochastic effects
explicitly, rather than just understanding how they boil down to various
deterministic delay structures for large populations.
Tom
A simple delay test:
********************************
.Delay
********************************
Delay=10
"Delay^2/Var"=ZIDZ(Delay^2,Var Arrival Time)
Inflow=IF THEN ELSE(Time = 0, 1/TIME STEP, 0)
Mean Arrival Time= INTEG (Weighted Arrival Time, 0)
Order=1
Outflow= DELAY N(Inflow,Delay, 0, Order)
SD Arrival Time=Var Arrival Time^0.5
Sq Diff Arrival Time=Outflow*(Delay-Time)^2
Var Arrival Time= INTEG (Sq Diff Arrival Time, 0)
Weighted Arrival Time=Outflow*Time
********************************
.Control
********************************
Simulation Control Parameters
FINAL TIME = 100
INITIAL TIME = 0
SAVEPER = 1
TIME STEP = 1
****************************************************
Thomas Fiddaman, Ph.D.
Ventana Systems
http://www.vensim.com
8105 SE Nelson Road Tel (253) 851-0124
Olalla, WA 98359 Fax (253) 851-0125
Tom@Vensim.com http://home.earthlink.net/~tomfid
****************************************************