Jones, Charles  "Achilles Can Catch the Tortoise: Alternative Goal-seeking Structures", 2013 July 21 - 2013 July 25

Online content

Fullscreen
Achilles Can Catch the Tortoise:

Alternative Goal-seeking Structures
Charles Jones
Management & Marketing
University of Massachusetts Boston
100 Morrissey Blvd
Boston MA

Abstract

The standard formulation of a gap-closing heuristic used in system dynamics is computationally
simple, but might present problems in particular applications. From a control perspective, it is
extremely overdamped, approaching but never reaching its goal, far from the optimal control
system. From a behavioral perceptive, it is unrealistic: the initial response is too fast, or the
approach too slow, and the controller changes its behavior for no reason. Whether this matters
for system behavior would have to be tested in particular models — whether persisting small
differences or the pace of response has any important impact. This paper presents some
alternative formulations to test.

In a race, the quickest runner can never overtake the slowest, since the
pursuer must first reach the point whence the pursued started, so that the
slower must always hold a lead.

Zeno of Elea, as recounted by Aristotle, Physics VI:9.

Zeno created his famous paradoxes to show that the world of experience is absurd, so that the
idealized unchanging world of his mentor Parmenides must be true (according to Plato and other
commentators, Rickless 2012 section 2). Several are equivalent to stating that an action can not
ever be completed, because first it must be partially completed, and then the remaining part must
be partially completed, ad infinitum (Aristotle VI:9). The gap-closing structure most often used
in system dynamics models (Sterman 2000) is similar, in that the change in a stock is a fraction
of the gap between the stock and it's goal. The gap between stock and goal is never reduced to
zero starting from a finite difference.

Zeno's paradoxes clearly do not describe the evidence of our experience. We can formally reject
each paradox through the calculus of infinite series, or rejecting the infinite divisibility of time,
or in bypassing the need for intermediate steps. In systems that we model, structure need only
approximate the evidence. We can note that the difference between stock and goal gets arbitrarily
small, specifically less than 1% after 5 time constants. A number of questions remain concerning
whether the standard approximation is close enough.

How small is “small enough’? Although the gap between stock and its goal becomes small, it is
non-zero. Even a small finite quantity might matter if some condition depends on the existence
of a gap, or if some conditions are only met in equilibrium. In many dynamic situations, other
conditions change so that the failure to close an initial gap is overcome by other changes in the
stock or goal, but it may matter in other situations.

What time constant do we use in the model? If in interviews suggest that policy is to close the
gap over 10 weeks, there are two possibilities Setting the time constant at 10 weeks gives the
correct initial response, but the gap becomes small only after 50 weeks. Making sure the gap is
small after 10 weeks means setting the time constant to 2 weeks, meaning the model tries to
close half the gap in the first week. The modeler might choose to pick a time constant between
these two choices, but none of these may be adequate in certain situations.

Is the functional form correct? It is plausible that the initial response should depend on the size
of the gap. Yet the standard assumption has the response vary linearly with gap, when real
systems are often non-linear. A real policy maker might try to close a small gap more quickly
than a large one; or there might be boundaries on the response. Sometimes non-linearity is
imposed by upstream capacity constraints in models, but in some situations the attempt to close
the gap may itself be non-linear.

Why does the response vary constantly? The exponential approach to a goal is not only slow, but
the flow changes every moment. Imagine a behavioral explanation of this structure. At a
planning meeting, the inventory manager notes that she is 100 units short of desired. Based on
company policy, she orders an extra 10 units over expected sales, figuring she will do that for 10
weeks and be all set. At the next weekly meeting, taking into account the supply chain, she is 90
units short, so she orders an extra 9, figuring she will do that for 10 weeks and be all set. Every
week she forgets last week's plan and sets a new one to close the new gap in 10 weeks — which of
course means being all set (close enough) in a year.

There are different ways a real inventory manager might employ a gap-closing heuristic. The
inventory manager could follow a plan of ordering 10 units per week for 10 weeks, or simply
order an extra 100 units one time, which the production manager schedules as 10 per week for 10
weeks. If the company was very sophisticated they might revisit whether the plan was working at
some point in those weeks, but they would not abandon a plan that was working as expected.

Finally, why is every modeled system so overdamped? In control theory terms, the exponential
approach to goal is extremely inefficient. Even overdamped control circuits reach zero gap in a
finite time; the optimal feedback is critically damped, which overshoots once and approaches
from the opposite direction. There is no reason to suppose an optimal feedback in a social
system, and no behavioral explanation equivalent to a spring-mass-dashpot system. But other
levels of damping, including underdamped oscillation should be just as likely a mode of
imperfection.

When might it matter? Is there a variable that depends on difference between stock and goal? If
time constant is short, does large initial response have consequences? A principle for judging
whether a simplification to system structure is to compare the behavior of the more and less
complex versions to see if it makes a difference to system outcomes, then use the most
parsimonious structure needed to correctly represent the problem (Sterman 2000). The lack of
alternatives to the standard gap-closing heuristic in software and molecules makes this more
difficult than necessary.

The following alternative structures are formulated in R (2011), a freely available programing
environment. The code is transparent and could be easily replicated in any language or modeling
package. The formulation is based on a simple situation of a single stock and flow approaching a
constant goal. The different heuristics for responding to a gap are coded as functions which could
be adapted for any situation.

The basic structure of a system dynamics model in R takes care of the functionality built into
purpose-built system dynamics software. Setting constants and defining common functions, plus
the basic iteration method is as follows:

StartTime <- 1 #week

EndTime <- 10 #week

TimeStep <- 1/7 #week ie 1 day

TimeConst <- 2 #week

InitLevel <- 10 #sku

TgtLevel <- 100 #sku

Level <- numeric() #sku a vector to hold value each time
Flow <- 0 #sku/week initial

Time <- seq(StartTime, EndTime, TimeStep) #counts by TimeStep

t_to_i <- function(Time) 1 + (Time - StartTime) / TimeStep
i_to_t <- function(i) StartTime + (i - 1)*TimeStep

Level[1] <- InitLevel
for(i in 2:length(Time) ) {
Gap <- TgtLevel - Level[i-1]
Tést*
Flow <- Heuristic* (Gap)
Level[i] <- Level[i-1] + Flow*TimeStep }

Where in place of Heuristic* is a function that represents each method of calculating response. In
some cases a test will be required to know when to update a plan for example, in place of Test*.
The standard formulation to which others will be compared needs no test, and is:

Standard <- function(Gap) Gap / TimeConst

One simple method for dealing with several plausible non-linearities is to set upper and lower
bounds on the flow. For low values of Gap there is a higher than linear flow, the heuristic of
solving small discrepancies quickly. For high values of Gap a maximum flow is reached, as in a
recognition of capacity constraints. This requires setting threshold values, so that the response
goes to zero when there is no (or sufficiently small) gap and ceases once the gap is closed:

Threshold_xt <- 0 #sku difference needed to exit
Threshold st <- 1 #sku difference needed to start
MaxRate <- 100 #sku/week

MinRate <- 2 #sku/week

Bounded <- function(Gap){ if( Gap > Threshold_xt)
max(MinRate, min(MaxRate, Gap / TimeConst) ) else 0 }

The most behaviorally realistic heuristic, setting a constant response and closing the gap steadily,
requires tests. When there is no plan in place, should we start one? And, if there is a plan, should
we be done? This requires a logical variable Plan to keep track of the state, and a more complex
loop:

Flow <- 0 #sku/week initial

Level[1] <- InitLevel
for(i in 2:length(Time) ) {
Gap <- TgtLevel - Level[i-1]
{if (Plan) Flow <- Flow
else if (Gap>Threshold_st) {Plan <- TRUE; Flow <- Standard (Gap) }
}
Level[i] <- Level[i-1] + Flow*TimeStep
if( (TgtLevel - Level[i]) < Threshold_xt ) {Plan=FALSE; Flow=0}
}

The resulting behavior of these different heuristics can be compared. Using the same initial
conditions and parameters for each, Figures 1-3 show the behavior of a system approaching a
goal of 100 skus from an initial stock of 10 skus; the characteristic time is 2 weeks (the time
constant for the initial response).

sku

sku

100

Week

Figure 1: Response of Standard (exponential decay) Heuristic

100

Week

Figure 2: Response of the Bounded Heuristic


sku

100

Week

Figure 3: Response of Linear / Planned Heuristic

Under the conditions specified, all three heuristics have the same initial response. Under the
standard heuristic, the flow decreases with every iteration, and the stock never reaches the goal.
Under the bounded heuristic, the flow decreases similar to the standard case, but when the gap
becomes small, the flow is kept constant until the gap reaches zero, sometime in week nine. In
the linear case, the flow is kept constant for the duration of the gap-closing period — the initial
response is not reduced until the gap is zero.

References

Aristotle (2004) Physics Translated by R. P. Hardie and R. K. Gaye. New York: Kessinger.
Samuel Rickless (2012) "Plato's Parmenides" in Edward N. Zalta (ed.) The Stanford
Encyclopedia of Philosophy (Winter 2012 Edition), available at
plato.stanford.edu/archives/win2012/entries/plato-parmenides.

John Sterman 2000. Business Dynamics.

R version 2.14.0 (2011-10-31) The R Foundation for Statistical Computing

Metadata

Resource Type:
Document
Description:
The standard formulation of a gap-closing heuristic used in system dynamics is computationally simple, but might present problems in particular applications. From a control perspective, it is extremely overdamped, approaching but never reaching its goal, far from the optimal control system. From a behavioral perceptive, it is unrealistic: the initial response is too fast, or the approach too slow, and the controller changes its behavior for no reason. Whether this matters for system behavior would have to be tested in particular models – whether persisting small differences or the pace of response has any important impact. This paper presents some alternative formulations to test.
Rights:
Date Uploaded:
March 17, 2026

Using these materials

Access:
The archives are open to the public and anyone is welcome to visit and view the collections.
Collection restrictions:
Access to this collection is unrestricted unless otherwide denoted.
Collection terms of access:
https://creativecommons.org/licenses/by/4.0/

Access options

Ask an Archivist

Ask a question or schedule an individualized meeting to discuss archival materials and potential research needs.

Schedule a Visit

Archival materials can be viewed in-person in our reading room. We recommend making an appointment to ensure materials are available when you arrive.