# Urban Suite - Positive Feedback

### 2 collaborators

Uri Wilensky (Author)
Seth Tisue (Author)

### Tags

(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

## WHAT IS IT?

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.

## HOW IT WORKS

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.

## HOW TO USE IT

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.

## THINGS TO NOTICE

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?

## THINGS TO TRY

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?

## EXTENDING THE MODEL

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?

## NETLOGO FEATURES

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.

## RELATED MODELS

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.

## CREDITS AND REFERENCES

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.

## HOW TO CITE

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

Click to Run Model

```patches-own [new-activity activity]

to setup
clear-all
ask patches [ set activity random-float 1.0
recolor ]
set-plot-x-range 0 count patches
reset-ticks
update-plot
end

to recolor  ;; patch procedure
set pcolor 9.9 * activity
end

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 ]
update-plot
tick
end

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

```

There are 10 versions of this model.

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 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.