Urban Suite - Positive Feedback

Urban Suite - Positive Feedback preview image

2 collaborators

Uri_dolphin3 Uri Wilensky (Author)
79107734_n00-1 Seth Tisue (Author)


(This model has yet to be categorized with any tags)
Model group CCL | Visible to everyone | Changeable by group members (CCL)
Model was written in NetLogo 5.0.4 • Viewed 554 times • Downloaded 23 times • Run 1 time
Download the 'Urban Suite - Positive Feedback' modelDownload this modelEmbed this model

Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)


This model demonstrates the effect of "positive feedback". In particular, it is an implementation of the model described in the book "Cities and Complexity" by Michael Batty, on pages 38-42. For analysis and discussion beyond that provided with this model, the reader is encouraged to refer to this text.

Positive feedback is, colloquially speaking, a situation where the rich get richer and the poor get poorer. More technically, positive feedback describes the situation where the rate of growth of a quantity is positively correlated with the magnitude of that quantity. With positive feedback, growth leads to size which leads to increased rate of growth. Positive feedback is sometimes called "increasing returns to scale". There can also be "decreasing returns to scale". In this case, all quantities are reduced over time until they eventually equalize - which is beneficial for the poor and harmful for the rich. With "constant returns", there is no growth or decay, so the ratios between rich and poor players stay fixed. This model lets the user explore the realms of increasing, constant, and decreasing returns.


In this model, we have a 21 by 21 grid of squares, each of which is assigned an initial random "activity" value. These squares could represent cities, and the activity value could express populations. Or the squares could represent corporations, with the activity values being market share or profits. This model is merely demonstrating the basic mathematical concept, so the particular analogy to real-world phenomena is not important.

The initial activity values being chosen randomly are suggestive of historical accident. Perhaps two railroad lines happened to meet here, or gold was found in nearby hills, so a large city sprang up. The question this model answers is this: starting with a random distribution of activity levels, what happens to the distribution over time, as a result of the following growth process.

If MOORE-NEIGHBORHOOD? is switched off, these are the rules:

In each time step (or tick), the grid square takes its current activity value to the power of ALPHA (adjustable by a slider), and sets its activity equal to that result. Basically each square is experiencing exponential growth (or decay, if ALPHA < 1). For instance, if ALPHA=2, then the activity value in each location is squared. In the next time step, each activity value is squared again. When ALPHA > 1, the situation is one of positive returns. A location that has a high activity value to begin with has the greatest advantage and will eventually overshadow all the others. When ALPHA = 1, it is a "constant returns" situation, and when ALPHA < 1, it is "decreasing returns".

If MOORE-NEIGHBORHOOD? is switched on, then the rules are only slightly different:

Instead of taking the current activity value to the power ALPHA, each location first averages its own activity value with the activity values of the eight neighboring locations, then takes the resulting average to the power ALPHA.

After each tick, all the activity values are normalized to lie between 0 and 1, with the maximum activity value being scaled to 1.


Press the SETUP button to initialize the grid with random activity values.

Press the GO button to run the model. You will see the view quickly converges to a steady state.

Press the "GO ONCE" button to move forward one tick in model time. This is particularly useful because the model runs very quickly, so the user may miss seeing the process if they just push GO.

The MOORE-NEIGHBORHOOD? switch determines whether grid locations use the average of their neighbors' activity values (ON) or just use their own activity values (OFF), to be raised to the ALPHA power each tick.

The ACTIVITY DISTRIBUTION plot shows the distribution of the activity levels in each of the 441 cells, normalized such that the maximum activity level equals 1.


If MOORE-NEIGHBORHOOD? is switched ON and ALPHA is barely in the positive returns regime (e.g. ALPHA = 1.02), then the whole screen turns white, rather than having a white spot in the midst of black (which occurs with high values of ALPHA). Why is this?


Turn MOORE-NEIGHBORHOOD? to ON. Compare the visual results when you use ALPHA = 1.1 and ALPHA = 2. Both of these are in the increasing returns regime, but the ALPHA = 2 shows a much more concentrated white spot. Can you explain this?


Change the mathematical update function so that some constant amount (determined by a slider) is added to the activity level of each patch each time. Would this be more beneficial for those who are initially poor, or those who are initially rich? Or would it matter at all?


To color the patches appropriately, the activity value (which has been normalized to lie between 0 and 1) is simply multiplied by 9.9. This is because in the NetLogo default color scheme, 0.0 is black and 9.9 is white. See the colors documentation in the NetLogo help for more information about how the color scheme works.


This model is related to all of the other models in the "Urban Suite". In particular, it is demonstrating the same concept as the "Urban Suite - Path Dependence" model, although the focus is slightly different.


This model is based on pages 38-42 of the book "Cities and Complexity" by Michael Batty.

Thanks to Seth Tisue for his work on this model.

The Urban Suite models were developed as part of the Procedural Modeling of Cities project, under the sponsorship of NSF ITR award 0326542, Electronic Arts & Maxis.

Please see the project web site (http://ccl.northwestern.edu/cities/ ) for more information.


If you mention this model in a publication, we ask that you include these citations for the model itself and for the NetLogo software:


Copyright 2007 Uri Wilensky.


This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.

Commercial licenses are also available. To inquire about commercial licenses, please contact Uri Wilensky at uri@northwestern.edu.

Comments and Questions

Please start the discussion about this model! (You'll first need to log in.)

Click to Run Model

patches-own [new-activity activity]

to setup
  ask patches [ set activity random-float 1.0
                recolor ]
  set-plot-x-range 0 count patches

to recolor  ;; patch procedure
  set pcolor 9.9 * activity

to go
  ifelse moore-neighborhood?
    [ ask patches [ set new-activity ((activity + sum [activity] of neighbors) / 9) ^ alpha ] ]
    [ ask patches [ set new-activity activity ^ alpha ] ]
  ask patches [ set activity new-activity ]
  let scaling-factor max [activity] of patches
  ask patches [ set activity activity / scaling-factor ]
  ask patches [ recolor ]

to update-plot
  foreach reverse sort [activity] of patches
    [ plot ? ]

; Copyright 2007 Uri Wilensky.
; See Info tab for full copyright and license.

There are 10 versions of this model.

Uploaded by When Description Download
Uri Wilensky over 9 years ago Updated to NetLogo 5.0.4 Download this version
Uri Wilensky over 10 years ago Updated version tag Download this version
Uri Wilensky over 10 years ago Updated to version from NetLogo 5.0.3 distribution Download this version
Uri Wilensky about 11 years ago Updated to NetLogo 5.0 Download this version
Uri Wilensky over 12 years ago Updated from NetLogo 4.1 Download this version
Uri Wilensky over 12 years ago Updated from NetLogo 4.1 Download this version
Uri Wilensky over 12 years ago Updated from NetLogo 4.1 Download this version
Uri Wilensky over 12 years ago Updated from NetLogo 4.1 Download this version
Uri Wilensky over 12 years ago Model from NetLogo distribution Download this version
Uri Wilensky over 12 years ago Urban Suite - Positive Feedback Download this version

Attached files

File Type Description Last updated
Urban Suite - Positive Feedback.png preview Preview for 'Urban Suite - Positive Feedback' almost 10 years ago, by Uri Wilensky Download

This model does not have any ancestors.

This model does not have any descendants.