000
 
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 ]
[ Mail us your comments ]