Introduction to Complexity MOOC

Unit 1: What is Complexity

13 thoughts
last posted Oct. 14, 2013, 7:46 p.m.
0
get stream as: markdown or atom
0

Examples of complex systems:

  • ant colonies
  • immune systems
  • brains
  • food webs
  • economies
  • stock markets
  • ecosystems
  • social networks
  • computer networks
  • cities
0

Properties of complex systems:

  • simple components
  • nonlinear (whole is more than the parts) interactions
  • decentralized
  • emergent behaviors
0

Examples of emergent behavior:

  • hierarchical organization
  • information processing
  • dynamics (changes in space and time)
  • evolution
  • learning
0

Core disciplines of complexity science:

  • dynamics - change
  • information
  • computation
  • evolution
0

Goals of complexity science:

  • gain cross-disciplinary insights - learn about cities by studying ants, learn about economies by studying brains

  • develop a general theory of complexity (controversial)

0

Methods of complexity science:

  • experimental
  • theoretical
  • simulation
0

Two possible measures of amount of complexity that will be explored in more depth:

  • shannon information
  • fractal dimension

There are many others, defining complexity is hard. You know it when you see it.

0

Weaver in 1948:

19th century - problems of simplicity

20th century - problems of disorganized complexity (avgs. and statistics)

Science's next frontier is problem of organized complexity which have moderate number of variables, with non-linear interactions leading to emergent behavior.

0

Here are some paraphrased contemporary definitions of complex systems from people at the Santa Fe Institute.

Krakauer: "Systems that don't have a compact description because they encode long histories from their environment."

Moore: "Questions are complex if they require a lot of resources to answer. There may be no short cut to doing a laborious step-by-step simulation in real-time."

Crutchfield: "A complex system has a sophisticated internal architecture that stores and processes information."

Rundle: "A system with interactions and non-linear elements, often with power laws and/or fractal elements."

Page: "Systems capable of producing complexity have adaptive, responsive entities that are connected in a network, interdependent with each other, and end up being diverse (even if they started out as the same). Sometimes systems with these characteristics end up in an equilibrium or a predictable pattern and so don't result in complexity."

Newman: "A system of many interacting parts where the system shows emergent behavior."

Forrest: "Complex systems have many active, interacting components with non-trivial and non-linear interactions resulting in non-predictable behavior . The components are capable of learning or otherwise modifying their behavior."

Farmer: "A complex system has a lot of interacting parts with emergent phenomenon."

Bettencourt: "Complex systems tend to be made of heterogeneous parts, tend to be open-ended (evolving), and they often have circular casual chains that provide positive and negative feedback loops."

West: "Complex systems involve enormous numbers of agents interacting non-linearly producing emergent phenomenon. Complex systems are evolving and adapting and can't be described with a few simple equations."

0

Netlogo is a modeling environment to model and study complex systems.

Free download.

File -> Models Library to see library of pre-existing models.

Try out Biology -> Ants.

Info tab explains the model.

Interface tab, then press setup, then press go.

Pressing go again starts and stops the model. Sliders control the simulation speed and model variables and outcomes are plotted.

Code tab shows the NetLogo code.

Getting Started
Help -> NetLogo User Manual
Help -> NetLogo Dictionary

0

Modified Ants model

Try 3 different evaporation rates of ant pheromone: 0, 5 and 20, to see which results in the ants getting all the food the fastest.

This exercise demonstrates the exploitation vs. exploration tradeoff.

0

Netlogo code:

Agents in NetLogo are called "turtles" for historical (Logo) reasons.

You can add buttons to the UI with the GUI.

To create a function:

to <function name="">
...
end

To create a function with a return value:

to-report <function name=""> ... report <return value=""> end

clear-all - clear the world
reset-ticks - ticks back to 0
create-turtles <n> - create n number of agents
tick - increase the tick count by 1


ifelse <condition> [<...>] [<...>] - if condition is true, execute the 1st bracket, otherwise execute the 2nd bracket of code

ask turtles [ <stuff> ]

stuff settings for turtles:
set shape "<shape>"
set size <n>
set color <color>


action settings for turtles:
right <n degrees="">
forward <n steps="">

random <n> - number between 0 and n - 1

Turtles (agents) start in the middle and facing in a random direction.

A button can continue to click itself (such as go) by right clicking it, selecting edit, then clicking the forever checkbox.

The world can have wrapped walls or solid walls. Right click on the world, click edit, then uncheck the wrap horizontal and vertical checkboxes.

Completed Ant1.nlogo exercise.

0

The world in logo is a coordinate system of patches. Each place in the world is a patch. You can control the size of the world.

ask patches [stuff]

stuff settings for patches:
set pcolor <color>

if <condition> [<..>]
if not any? patches with [<condition>] [stop]

ask turtles [ <stuff> ]

set <variable> <value>
set label <value>

To provide state to an agent:

turtles-own [variable]

Add a slider with the UI to let the user set a variable which can then be used by name in the code.

Add a plot with the UI to watch a variable: sum [food-eaten] of turtles

Completed Ant2.nlogo exercise