Cellular Automata, L-Systems, Fractals, Chaos and Complex Systems

overwhelmedblueearthΤεχνίτη Νοημοσύνη και Ρομποτική

1 Δεκ 2013 (πριν από 3 χρόνια και 17 μέρες)

78 εμφανίσεις

Cellular Automata, L-Systems,
Fractals, Chaos and Complex
Systems

EXTRA READING:
Online tutorial for CAs:
http://users.utu.fi/jkari/ca/CAintro.pdf

Online tutorial for Chaos: http://www.viewsfromscience.com/documents/webpages/
chaos.html

Books: The Algorithmic Beauty of Plants, The Fractal Geometry of Nature
Paper:
Evolving L-systems to generate virtual creatures

Also see original papers from my teaching webpage.
Cellular Automata



Cellular automata (CA) were originally conceived by Ulam and von
Neumann in the 1940s to provide a formal framework for investigating
the behaviour of complex, extended systems.



CAs are dynamical systems in which space and time are discrete.



A cellular automaton consists of a regular grid of cells, each of which
can be in one of a finite number of k possible states, updated
synchronously in discrete time steps according to a local, identical
interaction rule.



The state of a cell is determined by the previous states of a
surrounding neighbourhood of cells.



The cellular array (grid) is n-dimensional, where n=1,2,3 is used in
practice.

Cellular Automata



The identical rule contained in each cell is essentially a finite state
machine, usually specified in the form of a rule table (also known as
the transition function), with an entry for every possible neighbourhood
configuration of states.



The neighbourhood of a cell consists of the surrounding (adjacent)
cells.



For one-dimensional CAs, a cell is connected to r local neighbours
(cells) on either side, where r is a parameter referred to as the radius
(thus, each cell has 2r+1 neighbours, including itself).



For two-dimensional CAs, two types of cellular neighbourhoods are
usually considered: 5 cells, consisting of the cell along with its four
immediate nondiagonal neighbours, and 9 cells, consisting of the cell
along with its eight surrounding neighbours.

Cellular Automata



The term
configuration
refers to an assignment of states to cells in the
grid.



When considering a finite-sized grid, spatially periodic boundary
conditions are frequently applied, resulting in a circular grid for the
one-dimensional case, and a toroidal one for the two-dimensional
case.

Cellular Automata



This CA has k=2 states for
each cell (black or white).



The CA has radius r = 1 (two
neighbours per cell, and the
state of the current cell is
ignored).



The grid is circular: the
neighbour of the leftmost cell is
the rightmost one, and the
neighbour of the rightmost cell
is the leftmost one.



Notice the way the pattern in
the initial configuration is
preserved, but shifted to the
left every iteration.



Will this happen for every
configuration? Can you prove it?
Conway’s Game Of Life


One of the most notorious CAs of all was invented by John Horton
Conway some 40 years ago.



It is a two dimensional CA, with each cell having nine neighbours
(including itself), and two states (black or white).



Conway discovered that his CA was capable of generating astonishing
patterns and structures.



He also showed that it was computation-universal.

Conway’s Game Of Life
Conway’s Game Of Life
Ramona Behravan’s 3D R-D cellular automata

Ramona Behravan’s 3D reaction-diffusion CA

Ramona Behravan’s 3D reaction-diffusion CA

Ramona Behravan’s 3D reaction-diffusion CA

Ramona Behravan’s R-D cellular automata

Cellular Automata


Over the years CAs have been applied to the study of general aspects
of the world, including communication, computation, construction,
growth, reproduction, competition and evolution.



One notable example was the work of Melanie Mitchell who
demonstrated that a genetic algorithm could evolve the rules of a 1D CA
to make it perform a simple computation.



For example, she evolved CAs capable of producing a final configuration
of all 1’s or all 0’s depending on whether there were more 1’s in the
initial configuration or not.



Other work by Hugo de Garis and later Bentley and Kumar has
examined how a GA can evolve CA rules capable of developing a “seed”
configuration into specific shapes. This is intended to be similar to the
way natural evolution evolved our DNA, which determines how we
develop. We’ll return to this in a later lecture.

Cellular Automata


CAs have been used to provide simple models of common differential
equations of physics, such as the heat and wave equations and the
Navier-Stokes equation.



CAs also provide a useful discrete model for a branch of dynamical
systems theory which studies the emergence of well-characterized
collective phenomena such as ordering, turbulence, chaos, symmetry-
breaking, fractals, etc.



The systematic study of CAs in this context was pioneered by Wolfram
and studied extensively by him, identifying four qualitative classes of CA
behaviour (referred to as Wolfram classes), with analogues in the field of
dynamical systems.



Non-uniform CAs can also be used in which the local update rule (i.e.,
rule table) need not be identical for all grid cells.

Lindenmayer Systems


Lindenmayer was a biologist who was interested in expressing natural
growth using a computer.


He created a system, or language, for describing how things change
over time.


Today we call this language

an L-System
Lindenmayer Systems


L-systems are a string-rewriting grammar. They define a string and a set
of rules which are applied in parallel to rewrite that string into a new
form, each iteration.


Lindenmayer's original L-system for modelling the growth of algae:
variables : A B
constants : none
start : A
rules : (A → AB), (B → A)


which produces:
n = 0 : A
n = 1 : AB
n = 2 : ABA
n = 3 : ABAAB
n = 4 : ABAABABA
n = 5 : ABAABABAABAAB
n = 6 : ABAABABAABAABABAABABA
n = 7 : ABAABABAABAABABAABABAABAABABAABAAB

Lindenmayer Systems


The fractal plant shown a couple of slides back is defined by:
2 variables : X F
constants : + −
Starting string : X
rules : (X → F-[[X]+X]+F[+FX]-X), (F → FF) angle : 25°


We can then interpret parts of the resulting string as drawing
instructions, where, F means "draw forward", - means "turn left 25°” and
+ means "turn right 25°”.


X does not correspond to any drawing action and is used to control the
evolution of the curve. [ corresponds to saving the current values for
position and angle, which are restored when the corresponding ] is
executed.

Lindenmayer Systems


There are many variations of L-System. We commonly use a parametric
L-systems
defined
as a tuple


G = (V, ω, P),


Where
V (the alphabet) is a set of symbols containing elements that can be replaced (variables)
ω (start, axiom or initiator) is a string of symbols from V defining the initial state of the
system
P is a set of production rules or productions defining the way variables can be replaced
with combinations of constants and other variables.


A production consists of two strings, the predecessor and the successor.
For any symbol A in V which does not appear on the left hand side of a
production in P, the identity production A → A is assumed; these
symbols are called constants.


The rules of the L-system grammar are applied iteratively starting from
the initial state. As many rules as possible are applied simultaneously,
per iteration.

Lindenmayer Systems


An L-system is context-free if each production rule refers only to an
individual symbol and not to its neighbours.


Context-free L-systems are thus specified by either a prefix grammar, or
a regular grammar. If a rule depends not only on a single symbol but
also on its neighbours, it is termed a context-sensitive L-system.


If there is exactly one production for each symbol, then the L-system is
said to be deterministic (a deterministic context-free L-system is
popularly called a D0L-system).


If there are several, and each is chosen with a certain probability during
each iteration, then it is a stochastic L-system.
Evolving Generative Systems


Evolving L-systems to generate virtual creatures
Gregory S. Hornby, Jordan B. Pollack


Greg had the idea of evolving L-Systems, first for virtual creatures, then
for designs. (After completing his PhD he went to work for NASA and
used the same method to evolve an antenna which was sent to space.)


Some of his evolved virtual creatures:
Evolving Generative Systems


Jon McCormack’s evolved generative artwork

Evolving Generative Systems


Jon McCormack’s evolved generative artwork

Fractals


A fractal is “
a rough or fragmented geometric shape that can be split into
parts, each of which is (at least approximately) a reduced-size copy of
the whole
” according to Mandelbrot.


In other words it has
self-similarity
.


Although L-Systems can create fractals, the first and most famous
fractal was discovered by the mathematician Benoit Mandelbrot in 1978.


It is known as the Mandelbrot Set and some regard it as so important
that they call it “the true geometry of nature”.



Mandelbrot used a computer to visualise a very simple equation:



x
t+1
=
x
t
2
+ c






Rather like the L-System rules, this equation is applied iteratively,
transforming the current state into a new state.
Fractals


Mandelbrot was interested in what this equation did for
imaginary
numbers.


Benoit Mandelbrot wanted to know which values of
c
would make the
length of
x
t
stop growing when the equation was applied for an infinite
number of times.


He discovered that if the length ever went above 2, then it was
unbounded – it would grow forever. But for the right imaginary values of
c
, sometimes the result would simply oscillate between different lengths
less than 2.


Mandelbrot used his computer to apply the equation many times for
different values of
c
. For each value of
c
, the computer would stop early
if the length of the imaginary number in
x
t
was 2 or more. If the computer
hadn’t stopped early for that value of
c
, a black dot was drawn.


The dot was placed at coordinate (
m
,
n
) using the numbers from the
value of
c
: (
m
+
ni
) where
m
was varied from –2.4 to 1.34 and
n
was
varied from 1.4 to -1.4, to fill the computer screen.
Fractals


The resulting image was the Mandelbrot Set – an inkblot resembling a
squashed bug with little tendrils at the edges. Instead of being a pure
geometric form such as a square or circle, it looked distinctly organic.


Its appearance was so strange that Mandelbrot tried magnifying the
image – only to find more detail. The more he zoomed in, the more
intricate structure he saw.
Chaos


As we’ve seen from CAs, L-Systems and Fractals, even deterministic
systems can be unpredictable. Chaotic systems are another example:
Chaos


Chaotic systems can be defined as:


sensitive to initial conditions

an arbitrarily small perturbation of the current trajectory may lead to significantly
different future behaviour (the Butterfly Effect)


topologically mixing

the system will evolve over time so that any given region or open set of its

phase space will eventually overlap with any other given region


dense periodic orbits

every point in the space is approached arbitrarily closely by periodic orbits
Chaos


strange attractors



some chaotic systems are only chaotic in one region of their phase spaces


although a chaotic system is unpredictable, it may have
strange attractors

classes of behaviours that the system may switch between.


the most famous is the Lorenz attractor, derived from a simple model of weather
Complex Systems
Complex Systems


An example of a complex system is a society.


A society consists of many independent, locally interacting
components, namely humans.


The current state of the society is the global structure.


Each and every individual responds to the current state and thereby
create the new state of society in the next moment.


And so on.


Other examples of complex systems include: the economy, the
Internet, and most biologist systems, e.g., evolution, the brain,
embryogenesis, the immune system, an ant colony, etc…

Complex Systems


A complex system:


consists of many independent components,


these components interact locally,


the overall behavior is independent of the internal structure of the
components, and


the overall behavior of the system is well-defined.

Complex Systems


"The system consists of many independent components”


Two important points: there are
independent
components in the
system and there are
many
of them.


In other words, a Complex system is NOT a whole that is built up of
parts. It is a whole built up of other wholes.


These components may therefore themselves be complex systems.
(Think of an ecology built from animals, built from cells, built from
molecules, etc)

Complex Systems


"The components interact locally”


a neuron only interacts with its nearby neurons, ants with its nearby
ants and so on.


No component interacts with all the other components in the system,
at least not simultaneously. Each component is
indirectly
connected to
all other components in the system via other components.


So although the components of the system only interact locally they
have global effect on the system.


An example of this is a car queue. If a car in car queue suddenly slows
down from 50 m/h to 40 m/h then the car behind him would have to
slow down too and the car behind that car and so on. The speed
reduction of that single car will propagate like a shock wave through
the car queue and affect the speed of the cars miles down the road.
This illustrates how local interactions produces global effects in
complex systems.

Complex Systems


"The overall behavior is independent of the internal structure of
the components”


it doesn't matter how the components of the complex system is built
up
as long as they do the same things
.


This means that the same emergent property will arise in completely
different systems.


One example of this is the wave. Waves of course emerge in water
and air. We also saw that a speed reduction travels like a wave
through a car queue. You’ll even see the same thing in an ant colony:
bump one ant and it moves erratically, bumping into other ants which
makes them move erratically, until the whole nest is boiling.
Complex Systems


"The overall behavior of the system is well-defined”


If we disregard the components in a complex system and only look at
the emergent phenomenon then it turns out that it behaves in easily
described patterns.


Indeed, the simplest of all emergent phenomena, the wave, is
incorporated as a part of mathematics because it has exact and well-
defined overall properties. Waves are linear, i.e. they can be added,
and the derivative of a sine wave is a cosine wave.


Likewise more complex emergent phenomena evolves along quite
distinct patterns. You could even say economies follow clear patterns
– cycles of boom and bust.
Properties of Complex Systems


A complex system is not amenable to precise prediction


Same as a chaotic system: there are often clear types of behaviour,
but it is not possible to predict exactly which behaviour the system will
be exhibiting (or the precise details of that behaviour) at any arbitrary
point in the future. This is true even if the rules that govern the
behaviour are deterministic (non random).


For example, despite using the most powerful computers in the world
the weather remains unpredictable; despite intensive study and
analysis, ecosystems and immune systems do not behave as
expected. Even in something as simple as a CA, no-one can predict
what emergent behaviours will result from a few simple rules applied
iteratively.


However – like chaotic systems, a complex system may have a state
space containing attractors, where each attractor corresponds to a
common type of behaviour.
Properties of Complex Systems


A complex system is emergent


Rather than being planned or controlled, the agents in a complex
system interact (perhaps in apparently random ways).


From all these interactions, patterns
emerge,
which inform the
behaviour of the agents within the system and the behaviour of the
system itself.


For example a termite hill is a wondrous piece of architecture with a
maze of interconnecting passages, large caverns, ventilation tunnels
and much more. Yet there is no grand plan and no central controller,
the hill just emerges as a result of the termites following a few simple
local rules.
Properties of Complex Systems


A complex system is embodied / co-evolves


All systems exist within their own environment and they are also part
of that environment.


Therefore, as their environment changes they change to ensure best
fit.


But because they are part of their environment, when they change,
they change their environment, and as it changes they need to change
again, and so it goes on as a constant process.
Properties of Complex Systems


A complex system is non-homogeneous


If everything was the same in a complex system then when one agent
fails (e.g. from a new disease) then they all fail.


Variety within the system makes the system stronger.


Evolution could not occur without variation driving novelty.


Democracy is a good example in that its strength is derived from its
tolerance and even insistence of a variety of political perspectives.
Properties of Complex Systems


A complex system is highly connected


The ways in which the agents in a system connect and relate to one
another is critical to the survival of the system, because it is from
these connections that the patterns are formed and the feedback
disseminated.


The relationships between the agents are generally more important
than the agents themselves.


Indeed, you can argue that the three most important ways to vary a
complex system are: the number of agents, the number of connections
between the agents, and the strength of the connections between
agents. (For more on this, read about Kauffman’s N-K model, where
systems are modelled as N nodes linked by K connections.)
Properties of Complex Systems


A complex system is driven by simple rules


Complex adaptive systems are often not complicated.


The emerging patterns may have a rich variety, but like a
kaleidoscope the rules governing the function of the system are quite
simple.


A classic example is that all the water systems in the world, all the
streams, rivers, lakes, oceans, waterfalls etc with their infinite beauty,
power and variety are governed by the simple principle that water
finds its own level.
Properties of Complex Systems


A complex system is driven by iteration


Because those simple rules are iterated over and over, small changes
in the initial conditions of the system can have significant effects after
they have passed through the emergence-feedback loop a few times
(often referred to as the butterfly effect in chaotic systems).


A rolling snowball for example gains on each roll much more snow
than it did on the previous roll and very soon a fist sized snowball
becomes a giant one.
Properties of Complex Systems


A complex system is self-organising


There is no hierarchy of command and control in a complex adaptive
system.


There is no planning or managing, but there is a constant re-
organising to find the best fit with the environment.


A classic example is that if one were to take any western town and
add up all the food in the shops and divide by the number of people in
the town there will be near enough two weeks supply of food, but there
is no food plan, food manager or any other formal controlling process.


The system is continually self organising through the process of
emergence and feedback.
Properties of Complex Systems


A complex system is “on the edge of chaos”


Complexity theory is not the same as chaos theory, which is derived
from mathematics.


But chaos does have a place in complexity theory in that systems exist
on a spectrum ranging from equilibrium to chaos.


A system in equilibrium does not have the internal dynamics to enable
it to respond to its environment and will slowly (or quickly) die.


A system in chaos ceases to function as a system. The most
productive state to be in is at the “edge of chaos” where there is
maximum variety and creativity, leading to new possibilities
Properties of Complex Systems


A complex system comprises nested systems / embedded
hierarchies


Most systems are nested within other systems and many systems are
systems of smaller systems.


Take the example in self organising previously and consider a food
shop.


The shop is itself a system with its staff, customers, suppliers, and
neighbours. It also belongs the food system of that town and the larger
food system of that country. It belongs to the retail system locally and
nationally and the economy system locally and nationally, and
probably many more. Therefore it is part of many different systems
most of which are themselves part of other systems.
End of Lecture!