Socio-Natural Model
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
WHAT IS IT?
The purpose of the Socio-Natural model is to test which social behaviors contribute to the resiliency of both culture and environment utilizing comparison between two differing social systems.
HOW IT WORKS
The Socio-Natural model is made up of two breeds of agents who interact with the environment and other agents. The environment is a wrapping world made up of patches with a generic resource that have a determined carrying capacity and growth rate assigned at the start of the simulation. For this model one tick or iteration represents one year. Every model should run for at least one-thousand iterations or until population collapse. Population collapse is defined as no more individuals.
The individuals of different breeds possess different land-use, common benefit, and movement rules. For the A-person breed these rules include: (1) equitable distribution of wealth and resources to provide for common benefit (2) demographic regulation with possible seasonal migration to prevent resource depression (3) utilization of diverse resources to prevent resource depression.
The differing elements of the B-person breed include: (1) unequitable distribution of wealth and resources altering levels of benefit (2) sedentariness and sharp shifts in population (3) skewed resource dependence that effects biodiversity.
At every iteration all individuals (1) move, (2) harvest, (3) share, (4) randomly reproduce based on number of possible offspring, (5) age, and (6) randomly die. The world (7) regrows grass at a fixed amount every iteration.
HOW TO USE IT
On the left, adjust the sliders to change initial population levels of each breed, to determne how much resource each inidividual of a breed can share, and to decide reproduction rates.
On the right, monitor the population levels of each breed, resource levels in the world, and the distribution of resources.
THINGS TO NOTICE
The socio-natural model is interested in certain response variables. These include: (1) How long a population sustains before collapse, if collapse occurs, (2) how stable population levels are, (3) how much resource is maintained in the world, and (4) how equitably resources are shared.
THINGS TO TRY
Move sliders to alter how much breeds share, reproduce or to see how initial population effects outcomes.
How long do populations last when they are not competeing against one another? What does the resource level look like? How equitable is their society?
EXTENDING THE MODEL
Advance any of these these settings by altering the code with simple or complex changes. For example, resource regrowth could be altered to seasonal cycles or change the code to reflect agricultural and technological control over resource cycles.
This socio-natural model is currently a closed system which if opened to simulate immigration, has potential to reveal more interesting resilient behavior relational patterns. Additionally, more diverse resources along with diverse use of those resources would enhance the program. Moreover, introducing a level of diversity and modifying to an open system would produce dynamic resource growth rates, advanced migratory and movement patterns and allow for more socio-natural perturbations to be tested.
Another avenue to achieve higher variance in social complexity use of NetLogo’s Hubnet. Hubnet is participatory simulation offering that allows models to run by its programmed rules as well as by human participation.
The socio-natural model can also be advanced with innovation coding. This can be achieved by either equipping agents with coping mechanisms in the programming stage or including a genetic algorithm in which agents learn.
Future simulations with this modification have the potential to illuminate much about resilient behavior adoption and sustainable development education.
RELATED MODELS
This model incorporates features from other netlogo models: diffusion on a directed network, cooperation, feeding, and wolf/sheep predation.
CREDITS AND REFERENCES
George Lescia
Axtell, Robert L., Joshua M. Epstein, Jeffrey S. Dean, George J. Gumerman, Alan C. Swedlund, Jason Harburger, Shubha Chakravarty, Ross Hammond, Jon Parker, and Miles Parker 2002 Population growth and collapse in a multiagent model of the Kayenta Anasazi in Long House Valley. Proceedings of the National Academy of Sciences 99(suppl 3): 7275–7279.
Dean, Jeffrey S., George J. Gumerman, Joshua M. Epstein, Robert L. Axtell, Alan C. Swedlund, Miles T. Parker, and Stephen McCarroll 2000 Understanding Anasazi culture change through agent-based modeling. Dynamics in human and primate societies: Agent-based modeling of social and spatial processes: 179–205.
Epstein, Joshua M. 1996 Growing artificial societies: social science from the bottom up. Brookings Institution Press.
1997 Artificial societies and generative social science. Artificial Life and Robotics 1(1): 33–34.
1999 Agent-based computational models and generative social science. Generative Social Science: Studies in Agent-Based Computational Modeling 4(5): 4–46.
2006 Generative social science: Studies in agent-based computational modeling. Princeton University Press.
2008 Why model? Journal of Artificial Societies and Social Simulation 11(4): 12. Epstein, Joshua M., and Robert Axtell
Gilbert, Nigel, and Klaus G. Troitzsch 2005 Simulation for the Social Scientist (2nd Edition). McGraw-Hill Professional Publishing, Berkshire, GBR.
Kohler, Timothy & Sander Van der Leeuw. (Eds.) 2007 The Model Based Archaeology of Socio-Natural Systems. School for Advanced Research, Santa Fe, NM.
Wilensky, Uri, and William Rand
2015 An Introduction to Agent-Based Modeling: Modeling Natural, Social, and Engineered
Complex Systems with NetLogo. MIT Press, April 10.
Wilensky, U. (1997). NetLogo Cooperation model. http://ccl.northwestern.edu/netlogo/models/Cooperation. Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL
Stonedahl, F. and Wilensky, U. (2008). NetLogo Diffusion on a Directed Network model. http://ccl.northwestern.edu/netlogo/models/DiffusiononaDirectedNetwork. Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL.
Wilensky, U. (1998). NetLogo Wealth Distribution model. http://ccl.northwestern.edu/netlogo/models/WealthDistribution. Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL.
Li, J. and Wilensky, U. (2009). NetLogo Sugarscape 3 Wealth Distribution model. http://ccl.northwestern.edu/netlogo/models/Sugarscape3WealthDistribution. Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL
Wilensky, U. (1999). NetLogo. http://ccl.northwestern.edu/netlogo/. Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL.
Wilensky, U. (2005). NetLogo Wolf Sheep Predation (System Dynamics) model. http://ccl.northwestern.edu/netlogo/models/WolfSheepPredation(SystemDynamics). Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL.
Comments and Questions
globals [ grass gini-index-reserve lorenz-points ] breed [ apersons aperson ] breed [ bpersons bperson ] patches-own [ grass-amount ] turtles-own [ resource ;; the amount of resource this person has age ;; the current age of this person (in ticks) max-age ;; the age at which this person will die of natural causes ] to setup clear-all create-apersons apersons-initial-population [ setup-apersons ] create-bpersons bpersons-initial-population [ setup-bpersons ] ask patches [ set grass-amount random-float 10.0 ;; each patch starts with a random amount of grass recolor-grass ] ;; color it shades of green set grass count patches with [ grass-amount > 0 ] update-lorenz-and-gini reset-ticks end to go if not any? turtles [ stop ] ask turtles [ move harvest if resource >= 5 [ share ] ;; share with a number of neighbors reproduce set age age + 1 if resource < 0 or age > max-age [die] ] regrow-grass set grass count patches with [ grass-amount > 0 ] update-lorenz-and-gini tick end ;;----------------- ;; TURTLE UPDATES ;;----------------- to setup-apersons ;; apersons procedure set color magenta ;; how to color? Shades of a color? set shape "person" set size 1.25;; easier to see setxy random-xcor random-ycor ;;population- what other ways to do this?? where do I want my persons to be? set age 0 set max-age random-float 100 set resource 10 end to setup-bpersons ;; bpersons procedure set color orange set shape "person" set size 1.25;; easier to see setxy random-xcor random-ycor ;;population- what other ways to do this?? where do I want my persons to be? set age 0 set max-age random-float 100 set resource 10 end ;;--------------- ;; GO PROCEDURES ;;--------------- to move ;; how to model migration with vision (high vision for migrators/lower for non?);; make quadrants with different growback rates for seasons? ifelse breed = apersons [ move-apersons ][ if breed = bpersons [ move-bpersons ] ] end to move-apersons let target max-one-of patches [ grass-amount ] face target move-to target set resource resource - 1 end to move-bpersons let target max-one-of neighbors4 [ grass-amount ] face target move-to target set resource resource - 1 end ;;set vision (patches with [ grass-amount > .25 ;; ] in-radius bperson-vision) to harvest ifelse breed = apersons [ harvest-apersons ] [ if breed = bpersons [ harvest-bpersons ] ] end to harvest-apersons ;; eat-cooperative from cooperation model and GL if grass-amount > 5 [ let harvest-amount grass-amount * 0.50 set grass-amount grass-amount - harvest-amount set resource resource + harvest-amount ] recolor-grass end to harvest-bpersons ;; eat-greedy from cooperation model and GL if grass-amount > 0 [ let harvest-amount grass-amount * 1 set grass-amount grass-amount - harvest-amount set resource resource + harvest-amount ] recolor-grass end to share ifelse breed = apersons [ share-apersons ] [ if breed = bpersons [ share-bpersons ] ] end to share-apersons ;;modified from diffusion on a directed network model let recipients apersons in-radius 3 ;; larger radius to suggest more egalitarian, but what if no one from breed in radius? directed link network a better guarantee if any? recipients [ ask recipients [ set resource resource + ( apersons-share-amount / count recipients ) ] ] set resource resource - apersons-share-amount end to share-bpersons ;; modified from diffusion on a directed network model let recipients bpersons in-radius 1 if any? recipients [ ask recipients [ set resource resource + ( bpersons-share-amount / count recipients ) ] ] set resource resource - bpersons-share-amount end to reproduce;;certain age and amount of resource range needed for reproduction; also add sex and neighbor component? ifelse breed = apersons [ reproduce-apersons ] [ if breed = bpersons [ reproduce-bpersons ] ] end to reproduce-apersons ;; must modify reproduction - look at % reproduction in wolf sheep predation model if age >= 15 and age <= 40 ;; and last_reproduced < current_tick - 4 [ hatch random (apersons-number-offspring) [ setup-apersons ] set resource resource / apersons-number-offspring] end to reproduce-bpersons if age >= 15 and age <= 40;; and (last_reproduced < current_tick - 4 [ hatch random (bpersons-number-offspring) [ setup-bpersons ] set resource resource / bpersons-number-offspring] end ;;------------------- ;; PATCH UPDATES ;;------------------- to regrow-grass ask patches [ set grass-amount grass-amount + 0.01 if grass-amount > 10 [ set grass-amount 10 ] recolor-grass ] end to recolor-grass set pcolor scale-color green grass-amount 0 20 end ;;------------------------------------- ;; MONITORING AND REPORTING PROCEDURES ;;------------------------------------- to-report resource-fraction ;; GL, feeding example. the math let possible-resource (count patches) * 10 let total-resource sum [ grass-amount ] of patches report total-resource / possible-resource end to update-lorenz-and-gini let num-people count turtles let sorted-wealths sort [resource] of turtles let total-wealth sum sorted-wealths let wealth-sum-so-far 0 let index 0 set gini-index-reserve 0 set lorenz-points [] repeat num-people [ set wealth-sum-so-far (wealth-sum-so-far + item index sorted-wealths) set lorenz-points lput ((wealth-sum-so-far / total-wealth) * 100) lorenz-points set index (index + 1) set gini-index-reserve gini-index-reserve + (index / num-people) - (wealth-sum-so-far / total-wealth) ] end
There is only one version of this model, created over 7 years ago by Kailin Hatlestad.
Attached files
File | Type | Description | Last updated | |
---|---|---|---|---|
Socio-Natural Model.png | preview | Preview image | over 7 years ago, by Kailin Hatlestad | Download |
This model does not have any ancestors.
This model does not have any descendants.