Evolution of Central Places
(Urban Morphogenesis)
An agent based replication of Paul Krugman's Edge City model.
[Introduction]
[Description
of the Model]
[A Short Summary of the Case Study]
[Description of the Agent Based Version]
[The
MAML Source Code]
[Results of the Agent Based Version]
[Summary]
Introduction
This model of Krugman's was published in the appendix of his book, The
Self-Organizing Economy (Blackwell Publishers Inc., 1996, pp. 101-106.).
The model itself is a simple illustration of "how independent location
decisions by individual businesses can lead to a self-organization of space.
The basic idea is that there is a tension between "centripetal" forces
that pull businesses together and "centrifugal" forces that drive them
apart".
The published model however does not uses the agent (or individual) based approach,
which leads to some consequences in the system's behavior. We used this model
as a subject of our case study in transforming traditional social models into
agent based ones, and as an education example of social science modeling at
the same time. The final implementation also serves as an example of
the
modeling language developed at
Agent-lab.
TO THE TOP OF THE PAGE
Description of the Model
The problem is simplified by assuming a one-dimensional metropolitan area.
This metropolitan area is represented by a circular line (that is the distance
function of it differs from the one of the usual circle). Let x
be some location on this circle and let
(A.1)
denote the density of firms at that location. The model assumes
that the desirability (market potential) depends both positively
and negatively on the density of firms at other locations. Both forces
decline with distance but the positive forces decline faster. The market
potential equation in the model takes the form
(A.2)
where Dxy is the distance
function and r1>r2.
The distance function is the following: abs(x-z). In (A.2)
A
represents the strength of the centripetal forces while B
stands for the strength of the centrifugal forces. r1
and r2 are the rates of declination
for the forces respectively.
The dynamics of this minimalist model is driven by the assumption that
businesses gradually migrate toward locations with above average market
potential and away from those with below average potential. Thus, having
average potential defined as
(A.3)
the dynamic rule is the following:
(A.4)
The last thing to set is the initial market share for which the equation
below is proposed to use:
(A.5)
where k is a 'flattening' parameter.
Finally, the paper proposes 12, 24 (or multiples of these) locations
for computer simulation since they both have considerably large number
of divisors.
TO THE TOP OF THE PAGE
A Short Summary of the Case Study
We used this model to study the the problems arising when transforming a traditional
(social science) model into this novel approach of agent (individual) based modeling
and simulation. We have implemented four versions of the model, studied and compared
their behavior. These comparisons have led to interesting consequences. These
results however will not be detailed here. They will be summarized in another
document.
Here
are a few slides of a presentation discussing some of the problems encountered
during the case study.
The following 4 versions have been implemented:
1. The Original Model
We have implemented the original model successfully, getting results pretty
similar to those published. This version of the model was implemented in
Swarm 1.0.2. The source
code is included in the forthcoming paper summarzing this case study in
more details.
In the following we summarize the behavior of the system for the parameter
set given below:
| r1 |
-0.1
|
| r2 |
-0.05 |
| A |
1 |
| B |
1 |
| gamma |
0.5 |
| k |
55 |
The original market distribution was the following:
The distribution changed to the following after 275 and 594 timesteps,
respectively:
You can see on these shots how central places (cities) emerged.
2. The Introduction of 'Marionettes'
If you examine the original model carefully, you discover that while it
talks about the firms (agents) as the source of the dynamics of the system,
the formal description does not refer to the firms themselves, but the
market shares, that is the aggregate value of the firms' moving behavior.
Correspondingly, in the implementation of the original version, the firms
themselves were not implemented, as the only thing needed to be present
was the distribution of the market shares. The dynamics of the system was
defined as transitions in it.
As this setup has little to say about the local, firm-level behavior
in this social system, we decided to introduce the firms, and their rules
into the system, while keeping the overall behaviour as similar to the
original, as possible. To preserve the similarity to the original behavior,
we have introduced the new features in small steps. In this step we have
introduced the firms as implemented entities into the implementation, but
left them without (local) rules. That is we kept the system dynamics described
in the original paper, so that is was still driven by the aggregate market
share values. However, these values were now corrected according to the
actual distribution of the firm entities. Then the new distribution
was determined by the original equations, and the firms were relocated
according to the new values.
It is obvious that these 'firms' are far from reflecting to the real
behavior of firms, so we called them 'marionettes' as they did not have
any autonomy and were completely driven by superior forces (the global
dynamics of the system).
It may seem to you that this step is hardly worth doing as this is just
similar to the one above. In fact, this was exactly our expectation too.
However, it turned out, that it is not that easy to have the same results.
Especially, as a new parameter (the number of firms) comes in to play.
And since fractions of firms are not defined here, this new parameter
might get real importance: the number of firms moving from one location
to another is expressed in the system's dynamics as a given percentage
of the whole population of firms. If this percentage does not form a whole
firm, the dynamics is lost, the system is stuck in the particular situation,
which would not happen in the previous implementation.
This version of the model was implemented in
Swarm
1.0.2. The source code is included in the forthcoming paper summarzing
this case study in more details.
In the following we present the results we had for the same parameter
set as above, with 10000 number of firms involved. (Note, that the original
distribution of firms is not shown here, as it is exactly the same as above.)
Although there are some differences compared to the original
version, the similarity is pretty well. We must also note, that the shots
shown on the figures above was not taken at the same timesteps as in the
case of the orignal model (but those were pretty close to the right time).
These will be corrected later.
3. 'Marionettes' with Some Memory
In this step we have started to build up the internal structure of the
agents (firms), the base on which their internal behavioral rules can be
defined. The only important internal structure of the firms in the model
is the location of themselves. As in the previous implementation this information
was not stored in the firms internal structure, they were replaced by the
'superior power' of the system's dynamics independently from their previous
location. This was changed in this implementation. So, in fact, these agents
are still 'marionettes', however this time with some limited memory about
their past.
This version of the model was implemented in
Swarm
1.0.2. The source code is included in the forthcoming paper summarzing
this case study in more details.
In the following we presents the results for the same parameter set
as above. (Note, the initial distribution is not shown here, as it is exactly
the same as in the case of the original model.)
Although there are some differences compared to the original
version, the similarity is pretty well. We must also note, that the shots
shown on the figures above was not taken at the same timesteps as in the
case of the orignal model (but those were pretty close to the right time).
These will be corrected later.
4. Localizing the Control (Let The Agents Live Their Life)
The final step of the study was to implement the model in a fully agent
(or individual) based manner. This meant to redefine the elementary dynamics
of the system from the firms' point of view. That is, let the firms decide
on where to go and thus effect the system's overall parameters, instead
of having the system decide where the firms want to move. In particular
this meant, that we had to rebuild the dynamics of the system from the
bottom up, instead of from the top down. This was an enlightening
experience as it clarified what the hidden assumptions of the original
model were on the level of the individual behaviour of the firms.
As this was the most interesting part of this case study, the details
of it are described below as different sections of this document, including
an overview,
the source code,
and
the results.
TO THE TOP OF THE PAGE
Description of the Agent Based Version
TO THE TOP OF THE PAGE
The
MAML Source Code
This implementation of the model also serves as an example of the MAML
language (v0.03), so it is a thoroughly commented source.
The
MAML code consists
of the following 5 files:
and there is an extensional agent needed for the Observer. This
agent is a modified implementation of one of the several graphical tools
of
Swarm.
Note, that you only have compile and run the Observer, as it
imports the graphical tool and the model which later imports everything
else.
TO THE TOP OF THE PAGE
Results of the Agent Based Version
The results obtained by several runs of the agent based version of Krugman's
model are in general similar to the ones described in the original paper,
and those produced by the first implementation, which followed the lines
of the paper. However, as the individual version is more or less a new
model itself, it is not surprising that the results in particular show
some real differences.
Although there might be other ways to transform the original model into
an agent based one, we have chosen the stochastical approach, expressing
the probability of each rule the firm might follow. This approach is not
the most realistic one, it is very likely to be the most easily understandable
one to localize global rules. This approach however lead to a consequence
which has a meaning in general, considering transformations of orfinary
models to agent based ones. And this lesson to learn is again the importance
of the size of the agent population (we already faced this problem in a
different context, at the second version of the model).
The problem here is, that while a slight change in aggregate values
may start a transition in the system's state which later produces big changes.
However, this change only appear at the local (firms') level as a probability
value, usually very low one, let's say 0.0001, or so. It is easy to see,
that it takes aooriximately 10000 agents facing this decision to make to
have one which actually follows the rule given. If the agent population
is smaller than this limit, then the chances of the change are even lower.
There are other differences also, but those will not be discussed here.
They will be summarized in another work.
In the following we present the results for the same parameter set as
in the cases of the former implemetations (this also means that the additional
'noise' parameter introduced was set to 0). The initial distribution is
the following:
The distribution of the market shares after 275 and 594 timesteps are
the following:
summary lent,
koros representacio, noise
TO THE TOP OF THE PAGE
Summary
TO THE TOP OF THE PAGE
[Introduction]
[Description
of the Model]
[A Short Summary of the Case Study]
[Description of the Agent-Based
Version]
[The MAML Source Code]
[Results of the Agent-Based Version]
[Summary]
[Top]
Initiative ][
Introduction
][
Overview ][
Supported
Swarm versions ][
Compiler Download
Page ][
Compiler Usage Guide
][
Tutorial ][
Course
Outline ][
Examples ][
Reference
Manual ][
Papers ][
Comments
for Swarmites ][
Technical Manual
]
|