Urban Suite - Path Dependence

2 collaborators

Uri Wilensky (Author)
Bill Rand (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 383 times • Downloaded 38 times • Run 1 time

WHAT IS IT?

This model explores the concept of path dependence as explained by W. Brian Arthur in his paper, "Urban Systems and Path Dependence" and several other of his papers. Essentially firms walk around a landscape looking for a place to settle. Several mechanisms of how they decide where to locate can be simulated, and the results examined.

HOW IT WORKS

Each firm searches for a place to locate. They do this by taking the quality of the current location and the number of firms already located there. They use this to determine the probability of locating at the current location. They then generate a random number, if this number is less than the probability they settle down in the current location.

HOW TO USE IT

INITIAL-FIRMS - Controls the number of initial firms in the model

DISTRIBUTE? - Determines whether or not the initial firms are distributed to different locations

SETUP - Starts the model

GO - Runs the model

DISTURB - Tells all of the firms to look for a new location to settle

REGION-SIZE - This specifies how regional qualities influence the current location. At 1, only the current patch's quality is taken into account, as this number is increased the quality of more and more nearby patches is taken into account.

INCREASING-RETURNS - This controls the trade-off between quality and number of firms currently located. If it is set to 1.0 then the only thing that determines whether or not a firm settles in the current location is the number of other firms there. If it is set to 0.0 then the only thing that determines whether or not a firm settles there is the quality of the location.

ATTEMPTS - This specifies the number of patches a firm will visit each turn in determining whether or not to settle down.

BIRTH? - If this is set to true then new firms are created every turn.

THINGS TO NOTICE

If INCREASING-RETURNS is set high then the quality of the winning location may not be very high. If INCREASING-RETURNS is set low then the quality of the winning location will almost always be high. This can be seen in the monitor.

The patches are colored according to the quality of their location. Black patches are low quality, white patches are high quality and green patches are in the middle.

The size of the person shape on a patch indicates the number of firms located at that patch.

THINGS TO TRY

Try running the model with both low and high values of INCREASING-RETURNS. Try changing the value and then pressing DISTURB.

Try different sizes of regions and see how that affects the distribution of results.

EXTENDING THE MODEL

The current function to determine the probability of settling is an additive function. Try implementing a multiplicative trade-off function.

In Arthur's original paper, his model had different types of firms; this implementation has only one type of firm. Expand the model to have different firm types and different qualities that would be useful for each firm type. In addition Arthur had different probabilities of different firm types being created. This would also make an interesting extension.

NETLOGO FEATURES

Arthur's original model used global knowledge of the state of the world to decide where each firm would settle, here we take advantage of the fact that firms only have local information and have them wander around the landscape.

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 - Positive Feedback" model, although that model focuses on demonstrating the principle of increasing returns with utmost simplicity, whereas the current model is a little richer in content.

Also, the Segregation library model in NetLogo also explores how individuals decide where to locate but based on very different preferences.

For another urban settlement model, see the SOME model (created by the SLUCE project at University of Michigan), which explores residential settlements. http://www.cscs.umich.edu/sluce/education/sluce_ed.htm

CREDITS AND REFERENCES

This model is loosely based on the model presented in this paper: Arthur, W.B. (1988), "Urban systems and historical path dependence", in Ausubel, J.H., Herman, R. (Eds), Cities and their Vital Systems: Infrastructure, Past, Present and Future, National Academy Press, Washington, DC, pp.85-97.

Thanks to Bill Rand 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

```;; largest population of any of the areas
globals [ largest-population ]

;; All patches have a potential between 0 and 1.
patches-own [ quality ]

;; The moved-in? variable is true if the turtle is a resident of their current path
;; is it false if they are not a resident
turtles-own [ moved-in? ]

;; sets the model up

to setup
ca reset-ticks

;; if we are distributing the firms make sure they are not on the same patches
ifelse distribute? [
ifelse initial-firms > count patches [
repeat initial-firms [
ask patches with [ not any? turtles-here ] [
sprout 1 [ immigrate ]
]
]
]
[
user-message "Can't distribute, fewer patches than people."
]
]

;; otherwise just create them randomly
[
crt initial-firms [  immigrate setxy random-pxcor random-pycor ]
]

;; update the sizes of the firms on the basis of the other firms there
update-sizes

;; set up the patch qualities
ask patches [ set quality random-float 1 set pcolor quality * 10 + green - 5]

;; initialize the plot
do-plot
end

;; the main execution routine

to go

;; if birth is turned on, have a new firm immigrate
if birth? [
hatch 1 [ immigrate ]
]
]

;; record the largest population
set largest-population max [ population ] of patches

;; ask turtles who are moved in, if they want to move out now
ask turtles with [ moved-in? ]
[ if move-out? [ move-out ] ]

;; turtles look for a place to live, moving in if they find a good one
ask turtles with [ not moved-in? ] [ search ]

;; update the sizes
update-sizes

tick

;; update the plot
do-plot
end

;; sets the size of each firm to a relative indication of how many firms are located on that patch

to update-sizes
set largest-population max [ population ] of patches
let new-size population / largest-population
ifelse new-size < 0.1 [
set size 0.1
]
[
set size new-size
]
]
end

;; turtles run this procedure when entering the city

to immigrate
set moved-in? false
set shape "person"
set color red
set heading random 4 * 90
end

;; turtles run this procedure when existing the city

to emigrate
die
end

;; move around and look for a new home

to search        ;; turtle procedure
repeat attempts  [
wander
if ( move-in? ) [ move-in ]
]
end

;; reports the current population in the region

to-report population
end

;; the routine that determines the probability of settling in the current location

to-report suitability
report ( quality * (1 - increasing-returns) ) + ( increasing-returns * ( population / largest-population ) )
end

;; return true if the turtle should move into the current patch

to-report move-in?    ;; turtle procedure
report random-float 1 < suitability
end

;; return true if the turtle should move out of the current patch

to-report move-out?   ;; turtle procedure
;;  report false
report random-float 1 > suitability
end

;; called when a turtle moves in

to move-in       ;; turtle procedure
set moved-in? true
end

;; called when a turtle moves out

to move-out      ;; turtle procedure
set moved-in? false
end

;; has the firm randomly wander

to wander        ;; turtle procedure
rt random 2 * 90
lt random 2 * 90
fd 1
end

to do-plot
set-current-plot "Residents"
set-plot-x-range 0 1 + max [ count turtles-here ] of patches
set-histogram-num-bars 10
histogram [ count turtles-here ] of patches with [ any? turtles-here ]
end

```

There are 10 versions of this model.

Uri Wilensky almost 11 years ago Updated to NetLogo 5.0.4 Download this version
Uri Wilensky over 11 years ago Updated version tag Download this version
Uri Wilensky over 11 years ago Updated to version from NetLogo 5.0.3 distribution Download this version
Uri Wilensky over 12 years ago Updated to NetLogo 5.0 Download this version
Uri Wilensky almost 14 years ago Updated from NetLogo 4.1 Download this version
Uri Wilensky almost 14 years ago Updated from NetLogo 4.1 Download this version
Uri Wilensky almost 14 years ago Updated from NetLogo 4.1 Download this version
Uri Wilensky almost 14 years ago Updated from NetLogo 4.1 Download this version
Uri Wilensky almost 14 years ago Model from NetLogo distribution Download this version
Uri Wilensky almost 14 years ago Urban Suite - Path Dependence Download this version

Attached files

File Type Description Last updated
Urban Suite - Path Dependence.png preview Preview for 'Urban Suite - Path Dependence' about 11 years ago, by Uri Wilensky Download

This model does not have any ancestors.

This model does not have any descendants.