Modelling Complex Software Systems
Lecture Cx.01 Introduction to Complex Systems
Semester 1, 2022
Copyright By PowCoder代写 加微信 powcoder
What are complex systems?
What is a system?
A set of things working together as parts of a mechanism or an interconnecting network; a complex whole
Physiology: A set of organs in the body with a common structure or function Biology: The human or animal body as a whole
Computing: A group of related hardware units or programs or both, especially
when dedicated to a single application
Astronomy: A group of celestial objects connected by their mutual attractive
forces, especially moving in orbits about a centre Oxford Dictionary
But what makes a system complex?
Few parts, simple rules, simple behaviour
the two-body problem:
can be solved analytically
produces regular trajectories
FigureA single planet orbiting a star
The two-body problem is to determine the motion of two interacting bodies; for example, a moon orbiting a planet, a planet orbiting a star (gravitational force) or, at a microscopic scale, an electron orbiting an atomic nucleus (electromagnetic force).
The two-body problem can be solved by resolving into two one-body problems, eac of which can be solved independently.
Few parts, simple rules, complex behaviour
the three-body problem:
no exact mathematical solution produces chaotic trajectories
FigureThe path of a single planet orbiting two stars http://sprott.physics.wisc.edu/chaos/3body.htm
The addition of a third body with it’s own position, mass and motion renders the system’s dynamics much more complex. Examples include the motion of a moon around a planet, that simulatenously orbits a star, or a planet within a binary star system.
Formalised in the 17th Century by Newton, it’s technical importance was in sea navigation, enabling determination of lonitude.
More recent application is in the area of space flight, for example considering the trajectory of spacecraft in conjunction with the movement of the Earth and Moon.
NB: this and the following few slides are based on lectures developed by René Doursat, whose (excellent) slides are available here: http://doursat.free.fr/teaching.html
Few parts, simple rules, complex behaviour
low-dimensional chaos:
the logistic equation: xn+1 = rxn(1 − xn) more on this next lecture
FigureA bifurcation diagram based on the logistic map https://www.flickr.com/photos/davidmxg
The logistic map is an example of a relatively simple dynamical equation that can give rise to broad range of complex emergent behaviours, including chaos. We are going to explore this model in some detail on Wednesday.
Many parts, simple rules, simple behaviour
crystals and gases
highly ordered and regular (crystal)
highly disordered but statistically homogeneous (gas)
FigureDiamond crystal structure http://www.crystalmaker.com
http://ccl.northwestern.edu/netlogo/models/GasLabMovingPiston
FigureGas in a piston
In contrast to the preceding systems, these examples consist of many interacting parts (molecules). The rules for their interaction are relatively simple, defined by the strength of interaction forces between particles, and their kinetic energy.
For crystals, the emergent structure of the lattice will depend upon the arrangement of atoms for that material. For gases, the emergent behaviour is governed by Newtonian dynamics or complex dynamics, and can analysed and described at a macro-level using statistical mechanics.
Many parts, simple rules, complex behaviour
flocking behaviour
also cellular automata, pattern formation, complex networks archetypal complex systems
http://www.alaindelorme.com/ https://www.youtube.com/watch?v=eakKfY5aHmY
FigureA murmuration of starlings
Again, we have systems composed of many relatively simple parts, interacting according to relatively simple rules, but now the behaviour that emerges is much more complex. A key feature of these systems is that the interesting global behaviour is very difficult, if not impossible, to predict by examining a single part of the system.
For example, examining a single starling won’t provide us with the key to understanding the flight
patterns produced by the whole flock.
Yet, we can use three simple rules to generate this flocking behaviour:
1. separation: each bird wants to maintain a certain distance from its neighbours
2. alignment: each bird wants to be heading in the same direction as its neighbours
3. cohesion: each bird wants to remain within the flock
Human crowds can also spontaneously exhibit such flocking behaviour.
We will focus on this class of systems throughout the course, particularly in Weeks 3 (Cellular Automata models) and 5 (Complex networks).
Many parts, complicated rules, complex behaviour
biological development, evolution, societies, markets
heterogeneous rules, specialisation, hierarchies
behaviour is complex, but can be reproducible and robust
FigureDevelopment of C. elegans
Esnard, J. 2001. The Plant Health Instructor http://animal-kid.com/termite-mound.html
FigureTermite mound structure
Again, we have many parts, but now these parts are more specialised, and the rules that govern their interaction are more detailed.
Consider biological development: a single fertilised egg cell divides, again and again, with each new generation of cells becoming more specialised in their functional role, until the full organism is formed. While the genome within each cell can be considered a ‘blueprint’ for this process, the end result is a product of a complex interplay among the cells, and between the cells and their environment.
At a different scale, a termite colony contains individuals with multiple different roles (defense, construction, foraging, reproduction), but while there is a queen, who has reproductive responsibilities, there is no centralised leader who directs the actions of each termite. Their interactions are local, with one another, and mediated by the environment, via chemical signals that they deposit. Nonetheless the mounds they construct are complex and multi-functional structures.
Other systems in this category include the brain and immune system, in which various specialised classes of cell interact to produce cognition and defense against disease, and human societies, in which people play a wide variety of specialised roles.
We will focus on this class of system in Weeks 4 (Agent-based models) and 5 (Complex networks).
Many parts, complicated rules, deterministic behaviour
classical engineering
many specialised parts
globally designed to ensure predictable behaviour
http://en.wikipedia.org/wiki/Systems_engineering
Now we move onto systems that also consist of many intricate parts that interact via complicated rules.
These systems are not typically considered ‘complex systems’ because their behaviour is designed rather than emergent. These globally complicated systems can be decomposed into subsystems that interact with one another in a linear fashion.
Some people have described emergence as ‘surprising’ behaviour. A goal of the design of these systems is explicitly to avoid such surprise.
Many parts, complicated rules, centralised behaviour
orchestra, military, administration
behaviour governed by a central cause, leader or plan
FigureDublin orchestra FigureUS Fife & Drum Corps
http://en.wikipedia.org/wiki/Orchestra http://www.acclaimimages.com/_gallery/_pages/0420-0908-1715-3754.html
Again, we have many parts in these systems, and potentially complicated rules determining how they all interact with one another. There is also a sense in which the global behaviour is emergent: the symphony produced by an orchestra is greater than the individaal parts played by each musician. However, these systems are not considered complex, because this global behaviour is the result of a centralised controller: the conductor, score, general, etc.
What is a complex system?
A working definition:
Complex systems. . .
are made up of a number of components. . .
that interact with each other. . .
typically in a non-linear fashion. Complex systems. . .
may arise from and evolve through self-organization. . .
are neither completely regular nor completely random. . .
permit the development of emergent behaviour at macroscopic scales.
from , Introduction to the Modelling and Analysis of Complex Systems
Properties of complex systems
Properties of complex systems
The system has properties that the individual parts do not
These properties cannot be easily inferred or predicted
Different properties can emerge from the same parts, depending upon context or
arrangement
Self-organisation
Order increases without external intervention
Typically as a result of interactions between parts
Emergence:
In the bird flock, we can see global patterns of movement (the shape of the flock) that are not apparent from observing any individual bird, and indeed, we could not predict the shape of the flock on the basis of observing an individual bird.
In biological development, cells differentiate into more specialised types (eg, skin cells, blood cells, nerve cells) depending upon signals they receive from their surrounding environment (including from other cells)
Self-organisation:
In the bird flock, the global pattern is neither completely regular nor completely random, but it does display some order or organisation. This order is not imposed externally, but results from a simple set of rules describing how each bird moves in response to the other birds around it.
In biological development, a single egg cell transforms into a complex organism without an explicit ‘blueprint’ or instruction set.
Properties of complex systems
Decentralisation
There is not a single controller or ‘leader’
distribution: each part carries a subset of global information bounded knowledge: no part has a full view of the whole
parallelism: parts can act simultaneously
Positive feedback amplifies fluctuations in system state Negative feedback dampens fluctuations in system state
Decentralisation:
In the bird flock, the bird at the front is not the ‘leader’, they all act independently (guided by *local* cues. No bird could be aware of the whole flock of which they are apart, and all birds are continuously updating the position.
Positive feedback in the stockmarket: – people buy shares with the expectation that prices will go up
– as more people buy shares, demand increases and drives the price up – therefore *more* people want to buy shares, further increasing the price
Negative feedback in an air-conditioner thermostat: – As temperature *increases*, a switch is triggered and the air-conditioner turns *on* – The air-conditioner reduces the temperature – As temperature *decreases*, the reverse switch is triggered and the air-conditioner turns *off*
Note: *negative* feedback acts to make system behaviour more *stable*, while *positive* feedback makes system behaviour more *unstable*.
What are some of the complex systems found in cities? What are the parts? What are the interactions? What are the effects of complexity?
http://www.fastcoexist.com/1680269
Modelling complex systems
What is a model?
A simplified description, especially a mathematical one, of a system or process, to assist calculations and predictions.
Oxford Dictionary
Why build models?
Models allow us to examine system behaviour in ways that are not feasible in the real world:
too expensive
too time-consuming not ethical
simply not possible
Models help us to understand a system by building it
Types of models
Mathematical models
For some systems, we can describe the global state and behaviour in terms of
macro-equations
For example, in a predator-prey system:
[W,S] whereW =#wolves,S=#sheep
behaviour:
dS/dt = αS − βSW dW/dt = δSW − γW
where α, β, δ and γ are interaction parameters
Types of model
Mathematical models – analytic solutions
For some systems, these macro-equations exist and have an analytical solution (found using calculus):
eg, geometric GDP growth → exponential function dG(t)/dt = ρG(t) → G(t) = G(0)eρt
Unfortunately, many systems have no such analytic solution
Mathematical models – numerical analysis
Here, numerical analysis can be used
discretization of space into cells and time into steps
solve algorithmically (step-by-step) to discover future trajectory
Types of model
What if there are no macro-equations?
no macroscopic description of system such as pressure or GDP
systems contain heterogeneity
parts are irregularly located in space
parts are connected in a complex network
parts are differentiated/specialised into various types
systems are dynamically adaptive
interaction topology changes over time in response to environment
Types of model
Computational models
In particular agent-based models (ABMs), which arose (in the 1960s) to model systems that were too complex for analytical descriptions
system parts :
agents with local state and rules
system structure :
patterns of local interaction between agents
system behaviour :
dynamic rules for updating agent state on the basis of interactions
The rapid growth of computational power has made ABMs a practical tool
Steps in modelling a complex system
1. define the key questions
2. identify the structure (parts and interactions) of the system
3. define the possible states for each part
4. define how the state of each part changes over time through interactions with
other parts
5. verify, validate and evaluate the model in terms of simplicity, correctness and
robustness
6. define and run experiments with the model to address key questions
Questions in complex system modelling
how can we explain current and past events? evolution of multicellular life, disease outbreaks
global climate change, mass extinctions
political and social extremism, the collapse of civilisations stock market crashes, economic bubbles
how can we predict future behaviour?
this is often why we want to understand systems
how can we design and build better engineered systems? nature-inspired optimisation (ant colony, particle swarm)
decentralised computing (the Internet)
autonomous sensor networks, ambient computing
Assignment
Replication of an existing NetLogo model in Java
“replication is a critical component of the scientific method and a core practice of
scientists”
Wilensky & Rand (2007), Making Models Match: Replicating an Agent-Based Model, JASSS 10(4):2
work in groups of three
choose a NetLogo model (I will provide a shortlist) explore the behaviour of the NetLogo model
design and implement the model in Java
analyse your Java model and compare to the original extend the model to address a new question
write a report on what you find
submit report and code Full details available on LMS.
References and further information
Boccara, M (2010) Modeling Complex Systems. Springer. (ebook online via library)
Flake, GW (1998) Thye Computational Beauty of Nature. MIT Press. (ebook online via library)
Bar-Yam, Y (1997). Dynamics of Complex Systems http://necsi.edu/publications/dcs/index.html#fulltext
Wolfram, SA new kind of science. http://www.wolframscience.com/
Complex Systems Institute http://necsi.edu/
Santa Fe Institute for Complex System http://www.santafe.edu/
The Journal of Artificial Societies and Social Simulation http://jasss.soc.surrey.ac.uk/
Netlogo http://ccl.northwestern.edu/netlogo/
Axelrod, R and Tesfatsion, L On-Line Guide for Newcomers to Agent-Based Modeling in the Social Sciences http://www2.econ.iastate.edu/tesfatsi/abmread.htm
程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com