Computer Science / Software Engineering Notes Network

Evolution of Complexity

Matthew Barnes

Recorded Lectures        3

Introduction        5

Evolutionary Algorithms        6

Representation of Individuals        8

Fitness Function        8

Selection        9

Variation Operators        11

Variations on a theme        13

Evolution History        14

Pre-Darwinian Evolution        14

Natural Selection        15

The Modern Synthesis        18

Fitness Landscapes        19

Definitions        19

Intuition        21

Properties        22

Epistasis        23

Examples: Synthetic Landscapes        25

Functions of unitation        25

NK landscapes        25

Royal Roads and Staircases        28

Long paths        29

Examples: Biological Landscapes        31

Complications        32

Sex        36

Linkage Equilibrium        37

Fisher / Muller Hypothesis        40

Muller’s Ratchet        41

Crossover in EAs        42

Focussing Variation        42

Schemata and Building Blocks        46

Schemata Theorem        46

Building Block Hypothesis        46

Two-Module Model        48

Coevolution        51

Pairwise vs Diffuse        53

Sasaki & Godfray Model        54

Coevolution in GAs        55

Why use Coevolution        57

Problems with Coevolution        59

Cooperative Coevolution        60

What is Cooperative Coevolution        61

Competitive vs Cooperative        61

Divide and Conquer        63

Modularity        64

Types of modularity        64

Concepts of modularity        66

Examples        67

Simon’s “nearly-decomposable” systems        67

Modularity in EC        70

Hierarchical IFF as a Dynamic Landscape        71

Representations        76

Graphs (TSP)        77

Structured Representations        80

Variable-size Parameter Sets        81

Trees        82

Grammar Based Representations        83

Cellular Encoding        84

Turtle Graphics        85

Advanced Representations        86

Artificial Life        89

Concept, Motivation, Definitions        89

Examples        90

Karl Sims Creatures        90

Framsticks        91

Darwin Pond        91

Cellular Automata Based        92

Computer Program Based        94

Arrow of Complexity        95

Information Entropy        95

Kolmogorov Complexity        95

Structural Complexity        96

McShea’s Passive Diffusion Model        97

Hierarchical Structure        99

Natural Induction (not examinable)        101

Compositional Evolution        108

Gradual vs Compositional        110

Complex Systems        112

HIFF        113

Random Genetic Map and SEAM        114

Recorded Lectures

Week

num (date)

Monday 9AM

Monday 11AM

Tuesday 1PM

1 (1/2)

Richard had really bad connection problems.

Richard forgot to record.

Evolutionary Algorithms part 1

  • Assignment 1
  • Hillclimber
  • Four requirements for natural selection
  • Evolutionary Algorithms (EAs)
  • Pseudocode of EA
  • Components of EA
  • Representation
  • Fitness functions
  • Selection (roulette wheel)

2 (8/2)

Evolutionary Algorithms part 2

  • Selection:
  • Boltzmann
  • Stochastic Universal Sampling
  • Tournament
  • Truncation
  • Rank-based
  • Variation operators
  • Mutation
  • Crossover
  • Steady state vs generational

Evolutionary Algorithms part 3

  • EA schools
  • Parameters of EAs
  • Assignment 1

Evolution History part 1

  • Levels of life
  • Carolus Linnaeus’ “Systema Naturae” 1735
  • Early Evolutionary Theory
  • Lamarck
  • Pre-Darwinian Views
  • Voyage of the Beagle
  • Natural Selection
  • Darwin’s “On the Origins of Species”
  • Trouble with Inheritance
  • Post-Darwin

3 (15/2)

Evolution History part 2

  • Questions on evolution history
  • The Modern Synthesis
  • Neo-Darwinism
  • Fisher vs Wright
  • Contention over ‘speciation’
  • Punctuated Evolution

Evolution History part 3 and Fitness Landscapes part 1

  • Contention over ‘level of selection’
  • Growing knowledge

  • Terminology

Fitness Landscapes part 2

  • Definition
  • Wright’s genotype sequence space
  • Wright’s fitness landscape
  • Properties of landscapes
  • Epistasis
  • Synthetic landscapes (unitation)

4 (22/2)

Fitness Landscapes part 3

  • Epistasis networks
  • NK-landscapes
  • Royal Road / Staircase
  • Path lengths
  • Probing high-dimensional landscapes
  • Fitness distance scatter plots

Fitness Landscapes part 4

  • Biological examples
  • Visualisations
  • Protein folding
  • “And then it gets complicated...”
  • Individuals vs Populations
  • Neighbourhoods and variations
  • Designing a landscape

Assignment 1 solution

  • Richard’s results of Assignment 1
  • GAs vs hillclimbers

5 (1/3)

Sex part 1

  • Two-fold cost of sex
  • Sexual reproduction
  • Sexual recombination
  • Crossover
  • Genetic linkage
  • Linkage (dis)equilibrium

Assignment 2

  • Assignment 2 explanation
  • Reading through papers

6 (8/3)

Sex part 2

  • Fisher/Muller hypothesis
  • Muller’s Ratchet

Sex part 3 and Crossover in EAs part 1

  • Doesn’t go over deterministic mutation hypothesis
  • Sex from POV of an EC
  • Natural Selection and Variation study and review

  • “Focussing search”
  • Hurdles problem
  • Schemata and building blocks

Crossover in EAs part 2

  • Schemata and building blocks
  • GA vs hillclimber on RRs
  • Two-module model
  • Richard’s weird PDF simulation

7 (15/3)

Crossover in EAs part 3 and Coevolution part 1

  • Analysis with + without recombination
  • Analysis mutation-only vs crossover

  • Definition of coevolution
  • Normal vs reciprocal
  • Pairwise and diffuse coevolution
  • Sasaki & Godfray model
  • Coevolutionary algorithm basics
  • Why use them

Coevolution part 2

  • Why use them
  • Coevolution examples
  • Funny YouTube video of evolved 3D creatures
  • Subjective vs objective fitness
  • Types of coevolutionary failure
  • Cool Java simulation animation

Cooperative Coevolution

  • Cooperative coevolution
  • Shared domain model
  • Divide and conquer
  • Talking about papers from Assignment 2

🐰 EASTER 🥚

  • Types of modularity
  • Concepts of modularity
  • Simon’s “nearly-decomposable” systems + examples
  • Modularity in EC
  • Hierarchical IFF

  • Genotype → phenotype → fitness
  • Types of representation
  • Structured genotypes
  • Tree encodings
  • Grammar-based encodings
  • Turning strings into structure

  • Strong / Weak
  • Wet / Dry
  • Sims creatures, Framsticks
  • Darwin Pond
  • Cellular automata based
  • Computer program based

  • Information Entropy
  • Kolmogorov complexity
  • Structural complexity (object, process, (non)hierarchical)
  • McShea’s passive diffusion model
  • Hierarchical structure
  • Major transitions in evolution

  • (Not examinable; tbh I barely understand this lecture)
  • Motivation
  • What is Natural Induction
  • Examples

  • Gradual vs Compositional
  • Complex systems
  • HIFF
  • Genetic maps
  • SEAM

Introduction

A calculator

(one that you’re allowed to use in exams)

You, probably

Evolutionary Algorithms

A computer scientist climbing a solution space

to its maximum using a stochastic local search algorithm.

  1. Reproduction
  1. Heritability
  1. Variation
  1. Change in fitness

  1. Initialise all individuals of a population
  2. Until (satisfied or no further improvement)
  1. Evaluate all individuals

For i=1 to P; Quality(Pop[i]) → Fitness[i]; End

  1. Reproduce with variation

For i=1 to P;

        Pick individual j with probability proportional to fitness

        Pop2[i] = Pop[j];

        Pop2[i] = mutate(Pop2[i]);

End

Pop2 → Pop;

  1. Output best individual

  1. Representation of individuals
  2. Fitness function
  3. Selection
  4. Variation operators

Representation of Individuals

Problem

Individual encoding

A function that takes 20 binary arguments.

Maximise the function.

A 20-bit binary number

e.g. 00101110101000010111

A graph theory problem, like TSP

A string of node names, making a path

e.g. BHGADCEF

Where to place x number of items

A set of (x,y) coordinates

e.g. (12,34), (56,78), (90,12)

Fitness Function

🤔 Problem

🏁 Goal

💪 Fitness function

A function that takes 20 binary arguments.

Maximise the function.

We want to find a set of arguments that maximises our function.

The value outputted by the function.

Travelling Salesperson Problem (TSP)

Travel all nodes in the shortest length

Length of the tour

(we would have to minimise our fitness function in this case, e.g. make it a cost function)

Position of drilling sites on an oil field

We want to extract as much oil as we can.

Oil yield from a simulation of the oil field.

An individual with a high fitness.

Selection

,

Variation Operators

Polydactyly; a rare mutation in humans

 that gives us more than 5 fingers / toes.

  1. Initialise all individuals of a population
  2. Until (satisfied or no further improvement)
  1. Evaluate all individuals

For i=1 to P; Quality(Pop[i]) → Fitness[i]; End

  1. Reproduce with variation

For i=1 to P;

        Pick individual j with probability proportional to quality

        Pick individual k with probability proportional to quality

        Pop2[i] = crossover(Pop[j],Pop[k]);

        Pop2[i] = mutate(Pop2[i]);

End

Pop2 → Pop;

  1. Output best individual

Variations on a theme

Evolution History

Pre-Darwinian Evolution

1735

1758

1785

Around 1800

1830

Natural Selection

1831

“Natural variations in populations that provide small

selective advantages will take over the population.”

1832

Darwin’s Problem

Let’s say we have a population of tall and short people.

When a tall person and a short person have a kid, under reproductive crossover, that kid will be medium height.

After a while, the population of tall and short people will average out to medium people.

With that, how will there be enough variation in the population to achieve natural selection?

(Of course, this isn’t how genetics works, but they didn’t know that.)

1882

The three young Turks who turned things around.

The Modern Synthesis

A cool picture from Wikipedia illustrating modern synthesis

1930

1960

1972

Fitness Landscapes

Definitions

  1. A set of genotypes
  2. A neighbourhood
  1. Height of surface in this space = Fitness of each genotype

An IRL genotype sequence space, with people inside it.

Intuition

Properties

Epistasis

Example: Epistasis are the node_modules of a genome.

  • Here is a fitness landscape with no epistasis:

  • Fitness values:
  • This has no epistasis because the change of fitness we’ll get by switching from A to a (or vice versa) is the same, whether we have b or B in the second gene.
  • Here’s the maths behind it:
  •  (if b is our second gene)
  •  (if B is our second gene)
  • The changes in fitness are the same: . That means there’s no epistasis.
  • You can also think of this as the gradient of the lines, from  to  and  to , being the same.

  • Now, here is a fitness landscape with epistasis:

  • Fitness values:
  • Let’s try comparing the changes in fitness again:
  •  (if b is our second gene)
  •  (if B is our second gene)
  • Uh oh! The changes in fitness are not the same.
  • When our second gene is , our change in fitness is .
  • When our second gene is , our change in fitness is .
  • That means the change in fitness for the first gene depends on the allele of the second gene, meaning this fitness landscape has epistasis.

Examples: Synthetic Landscapes

Functions of unitation

NK landscapes

Example: NK landscapes are Kim Jong-un’s favourite fitness landscape

  • We have this genome, and it’s got epistasis, where:

1

2

3

4

5

6

7

8

0

1

1

1

0

0

1

1

  • So that means each gene also depends on three other genes for their fitness.
  • The dependencies between genes are represented by colour.
  • As a graph, that looks like this:

Value of

Illustration

Royal Roads and Staircases

Bit string

Fitness

1111 0000 0000 0000

8

0000 1111 0000 0000

8

0000 0000 1111 0000

8

0000 0000 0000 1111

8

1111 1111 0000 0000

16

0000 0000 1111 1111

16

1111 0000 1111 1111

24

1111 1111 1111 1111

32

Bit string

Fitness

1111 0000 0000 0000

8

1111 1111 0000 0000

16

1111 1111 1111 0000

24

1111 1111 1111 1111

32

0000 1111 0000 0000

0

0000 0000 1111 0000

0

1111 0000 1111 1111

8

1111 1111 0000 1111

16

Long paths

Bit string

Fitness

00000

1

10000

2

11000

3

11100

4

11110

5

11111

6

01111

7

00111

8

00011

9

10011

10

...

Examples: Biological Landscapes

  1. Nucleotide sequences (ACTGGGGACAC)
  2. → Amino acid sequence
  3. → Protein shape
  4. → Protein function
  5. → Trait value
  6. → Fitness contribution

Complications

Fisher and Wright, hard at work.

Example

0

0

0

1

1

1

1

0

0

0

1

1

1

1

1

0

0

1

0

0

0

1

1

0

0

0

1

1

2

1

0

3

2

3

3

  • The blue rows are the genes, and are bit strings.
  • At each column, the value in red is the sum of the 1 values in blue.
  • So the first column is ‘2’ because there are 2 1’s in the column above.
  • The red row is our allele frequency vector.
  • It is our representation of this  population in our allele frequency space.

Sex

 

Linkage Equilibrium

Example: Two-loci and two-alleles

  • Let’s say you have a chromosome with two loci (positions) and two possible alleles for each loci:

ab

aB

Ab

AB

  • Let’s say the frequencies of getting each of these are:

Haplotype

Frequency

ab

aB

Ab

AB

  • Those are the frequencies of the haplotypes (frequency of the combination of alleles together).
  • Here’s the frequencies of the alleles individually:

Allele

Frequency

a

A

b

B

  • If the loci and alleles are independent of each other, then you could say that:
  • In other words, the frequency of gene ‘ab’ is just the frequency where the first loci picks ‘a’ and the second loci picks ‘b’.
  • That’s linkage equilibrium.

  • However, linkage disequilibrium is where the loci and alleles are not independent of each other, and observed frequencies like  don’t follow this pattern.

Fisher / Muller Hypothesis

00100000000010000001 (3)

00000100000010001000 (3)

00100000000010000001 (3)

00100000000010000000 (2)

00100000000010001001 (4)

00100000000010001000 (3)

00100100000010000001 (4)

00100100000010000000 (3)

00100100000010001001 (5)

00100100000010001000 (4)

00000000000010000001 (2)

00000000000010000000 (1)

00000000000010001001 (3)

00000000000010001000 (2)

00000100000010000001 (3)

00000100000010000000 (2)

00000100000010001001 (3)

00000100000010001000 (3)

Muller’s Ratchet

💡 NOTE

Richard skipped over the deterministic mutation hypothesis, so I won’t go over it in the notes.

Let’s hope it doesn’t come up in the exams!

Crossover in EAs

Focussing Variation

0

0

1

1

0

1

0

1

0

1

1

1

0

0

1

1

0

0

1

1

0

1

0

1

0

1

1

1

0

0

1

1

-

?

-

-

-

?

?

-

I know it’s hard to, but you must focus!

11111011111101111111

Asexuals

Sexuals

Let’s say each bit has a  chance of being mutated.

We have two zeroes we need to mutate to get to the next peak.

However, we can’t just mutate one of the two zeroes, because we’d fall into the dip, get worse fitness, and this individual will die out.

We must mutate both zeroes at the same time.

The chance of that is , or .

To generalise that, the chance of mutation getting to the next peak is , where  is how big the hurdle is.

Let’s say there’s two individuals at the two zeroes peak:

11111111111101101111

11011011111111111111

Remember, uniform crossover is the same as mutation on the bits that are different:

11111111111101101111

11011011111111111111

--?--?------?--?----

If we were to do mutation on those differing bits, we’d need 4 successive ones to get to the next peak.

The chance of that is .

To generalise that, the chance of uniform crossover getting to the next peak is , where  is how big the hurdle is.

0

0

1

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

1

0

0

0

0

0

1

0

0

0

0

0

0

1

0

0

0

1

0

0

0

-

-

?

-

-

?

-

-

-

-

-

-

-

-

-

-

?

-

-

?

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

0

-

-

-

-

-

-

-

-

-

?

?

-

-

-

-

-

-

-

-

-

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

-

?

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

?

-

Schemata and Building Blocks

Schemata Theorem

1

1

0

1

0

1

0

0

0

0

1

0

0

1

0

0

0

0

0

1

0

1

0

1

0

0

0

0

1

0

1

0

1

0

0

1

1

1

0

1

0

1

0

0

1

0

1

0

0

1

0

0

1

1

1

1

0

1

0

1

0

0

1

1

0

1

0

1

1

0

1

1

*

1

0

1

0

1

0

0

*

*

*

*

*

*

*

0

*

*

Building Block Hypothesis

Bit string

Fitness

1111 0000 0000 0000

8

0000 1111 0000 0000

8

0000 0000 1111 0000

8

0000 0000 0000 1111

8

1111 1111 0000 0000

16

0000 0000 1111 1111

16

1111 0000 1111 1111

24

1111 1111 1111 1111

32

Two-Module Model

gene 1 (determines how strong you are)

gene 2 (determines how smart you are)

1

1

0

1

0

0

1

1

1

1

1

1

Fitness Function

Description

This fitness function only takes into account gene 1.

As you increase the number of beneficial mutations in gene 1, the fitness of the whole thing exponentially increases.

This fitness function takes into account gene 1 and gene 2.

As you increase the number of beneficial mutations in gene 1 and gene 2, the fitness of the whole thing exponentially increases.

Notice there’s a spike where gene 1 and gene 2 are perfected. That’s our global optima! We want our individuals to reach it.

The problem here is that a hill-climber can solve this really easily. It can just go up the slope of gene 1 or gene 2, and then slide along the edge of the landscape towards the global optimum.

What’s Richard gonna do about that?

He added noise!

This isn’t a fitness function, but whatever. This is the noise he added.

More specifically, it’s random epistasis among all loci.

It was generated with random fitnesses between 0.5 and 1.

This is what the fitness function looks after overlaying (by multiplying) the noise.

Now, on the ridge of the fitness landscape, there are many small peaks, or local sub-optima. Hill-climbers are going to get stuck in there.

Hill-Climbers

Genetic Algorithms

A hill-climber can easily find the peak of one gene.

The problem is finding the peak of the other gene without disrupting the first one.

Given the genes are  loci long, it’ll take a hill-climber  steps to get to one peak.

The hill-climber will have to mutate just the right genes to ‘jump’ to the highest peak.

It’ll take  steps to do that.

Therefore, hill-climbers can solve this in exponential time.

Like hill-climbers, GAs can find the peak of one of the genes easily.

It takes  steps to reach one of the peaks.

However, once two individuals reach the peaks of the other two genes, they can crossover and make a child at the global peak. This only takes one (lucky) step!

Therefore, GAs can solve this in polynomial time.

Richard’s 3000-page report PDF on the two-module model

Coevolution

“Evolution as a result of biological interactions”

“An evolutionary change in a trait of the individuals in one population in response to a trait of the individuals in a second population, followed by an evolutionary response by the second population to the change in the first”

Normal evolution

Coevolution

With normal evolution, the agent of selection does not change as a result of the evolutionary response it causes.

In other words, individuals are always selected based on the same criteria, no matter what has happened.

With coevolution, the agent of selection does change as a result of the evolutionary response it causes.

In other words, individuals are selected based on the situation and what’s happened so far in the algorithm.

^ Positive feedback mechanism

Missed opportunity for a covid joke? Maybe.

Pairwise vs Diffuse

Sasaki & Godfray Model

Heat maps when resistance and virulence have low fitness cost

Heat maps when resistance and virulence have high fitness cost

Coevolution in GAs

Have you heard of Watson’s Gambit? It’s where you

make a coevolutionary algorithm play for you.

Why use Coevolution

Problems with Coevolution

Cooperative Coevolution

Me busting my ass writing these notes

What is Cooperative Coevolution

Competitive vs Cooperative

Example: Opponents “setting the scene”

  • Let’s say we have two populations.
  • We want to find the fitness of an individual in population 1, named .
  • We sample one opponent to calculate this with (crap, I know, but whatever), and we select the opponent .
  • So we can calculate fitness like this:

  • Easy, right?
  • Well, let’s change the way we look at it.
  • What if we made a new function:

  • You could say that, in this very instant, the individuals in population 1 are evolving with respect to the fitness function .
  • Our opponent, , simply plays a part in defining the fitness function of population 1.
  • Do you see how opponents “change the criteria of success” for their competition?

Badminton yeeaaaaa 🏸🏸🏸

Divide and Conquer

If you’ve done Intelligent Agents and are doing Game Theory,

you’re probably sick of prisoner’s dilemma by now.

  1. Problems are decomposed into subproblems
  2. Subproblems are put together to solve the bigger problem

Modularity

Types of modularity

  1. Repetition

Remember this?

  1. Functional decoupling

Modular subnetworks in a complex network

Concepts of modularity

Your nervous system and digestive system are two different subsystems of your body.

What would happen if you used your nervous system to stop your breathing and die?

Your digestive system would shut down, too.

After all, you can’t eat anything if you’re dead.

And no: let’s assume zombies don’t exist.

UNLIMITED POWER

In a tower PC, the power supply ‘supplies’ power to the components through sleeved cables.

You could say the ‘power system’ is separate from other ‘modules’, like the motherboard or the RAM.

But what if your power supply fails? Nothing would be able to run anymore.

In that sense, the power system still critically affects other systems.

Examples

Simon’s “nearly-decomposable” systems

  1. “the short-run behaviour of each of the component subsystems is approximately independent of the short-run behaviour of the other components”
  2. “in the long run the behaviour of any one of the components depends in only an aggregate way on the behaviour of the other components”

  1. In the short run, components are pretty much independent of each other.
  2. In the long run, however, the behaviour of components depends on the aggregate of the other components.

The moon revolves around the Earth, and Saturn exists also, with their 82 moons.

In the short run, the moon revolves with little to no impact from Saturn and their moons, and vice versa with Saturn’s moons.

In the long run, they still do affect each other. Perhaps, after 100 years, our moon is shifted a couple metres from its orbit because of the gravity from Saturn and its moons (calculated by taking Saturn’s, and its moons’, mass as an aggregate).

In the short run, people from the UK do not affect what people from the US think and do (unless they’re explicitly talking to them).

In the long run, however, the collective opinions and actions of people from the UK do affect what people in the US think and do, and vice versa for them.

Maybe.

The Combination Lock

Let’s say you had a combination lock with 10 dials, and each having 100 positions (so a lot more advanced than the picture on the left).

To unlock it, you need to start with the first lock, guess the right number for that lock, and sequentially go through and guess each lock until you’ve got them all.

You always hear a ‘click’ whenever you get one lock right.

The problem here is that modules are completely independent of each other.

The Watchmaker’s Parable

We have a watchmaker, Mr. Casio, who creates watches by putting together 1000 components sequentially.

If Mr. Casio is interrupted, he has to start from scratch.

Richard, on the other hand, puts together 10 components, made out of 10 sub-components, made out of 10 modules.

If Richard is interrupted, he can just start again on the latest module / sub-component / whatever he was working on.

Richard has intermediate stable modules, but Mr. Casio does not, meaning he builds watches more efficiently.

We have modules and hierarchy, but the problem here is that making modules is just a deterministic sequence of steps.

You can’t create a fitness function for this, so there’s no way to show the functional representation of modules.

Heat Exchange

We have a building with many rooms and many cubicles.

Cubicles start at different temperatures, and heat travels between them.

Heat exchange rate is greater for cubicles in the same room than in different rooms.

In the short run, a cubicle’s temperature is only affected by other cubicles’ temperatures in the same room.

In the long run, cubicles can also be affected by the average temperatures of cubicles in the other rooms: the heat travels from those rooms to our room.

It’s a hierarchical modular dynamic system, which is nice, but the problem here is that there’s no real problem to solve. It has nothing to do with evolvability.

Heat exchange coefficients of cubicles in rooms

Modularity in EC

NK landscapes

Royal Roads

NKC (clustered)

Inter-dependencies between loci

No modularity or hierarchy

Inter-dependencies in building blocks

Building blocks are the modules

No hierarchy

Inter-dependencies between modules

There are lower level and higher level modules

Most benefit comes from optimising lowest level modules

Name

Intra-block

Inter-block

Resultant landscape

Royal Roads

Concatenated Traps

NKCs

Hierarchical IFF

Hierarchical IFF as a Dynamic Landscape

Pairwise inter-dependency

Uniform inter-dependency

Modular inter-dependency

(4 genes, 2-storey hierarchy)

If you have incomplete modules, you will be down in a dip.

If you have complete modules, but the modules’ aggregate (all 1’s or all 0’s) don’t match, you’ll get a local optimum.

If you’ve completed all modules and all module aggregates agree, you’ll get the global optimum.

Modular inter-dependency

(8 genes, 2-storey hierarchy)

Modular inter-dependency

(8 genes, 3-storey hierarchy)

💡 NOTE

Of course, if you’re on a quarter local optimum, you can flip two bits to get to the global maximum.

However, HIFFs are meant to have way more dimensions (or ‘storeys’) than just these three. Have a look at the HIFF landscape just above where I compared it to royal roads, concatenated trap, and NKC!

Name that I’ve given it

Image

Really Messy Graph

Similar to the diagrams above, it’s just all the genes represented as nodes, and the dependencies represented as edges.

Plum Pudding

(no relation to the J. J. Thompson model)

Genes are represented as nodes again, but sub-modules are circle-grouped genes and modules are circle-grouped sub-modules and so on.

Hierarchical Chocolate Chip Cookie (HCCC) Network

A more hierarchical representation. The bottom graphs are just Really Messy Graphs for each submodule, then the next levels up show the inter-dependencies.

Tree

It’s just a hierarchical tree showing the structure of the modules and their dependencies.

Normal Graph

Aggregate Graph

Squiggly Tree

Normal Tree

Modular system of four variables (like above).

Instead of uniformly connecting every node to each other, we abstract a whole module with an oval and the dependencies to-and-from it are based on aggregate states.

Instead of using ovals, aggregate states are represented as different shades of nodes.

Higher tree levels represent higher levels of abstraction, in other words, ‘phenotypic’.

The same as Squiggly Tree, but with edges instead of squiggly brackets.

Representations

  1. DNA is transcribed into amino acids
  2. Amino acids fold into proteins
  3. Proteins control cell division and differentiation, creating a variety of cells
  4. The cells form together to make a creature
  5. The creature exhibits phenotypes which determine fitness

Graphs (TSP)

  1. We take some edges from parent 1

  1. We take some edges from parent 2 that don’t clash with our existing choices

  1. We fill in the gaps to make it a legal tour again

  1. Split the path into three partitions

CD DE EF FA AB BC

  1. Reverse the middle partition

CD AF FE ED AB BC

  1. We’re almost done; time for the actual mutation! Tweak the ‘neighbours’ of the second partition in the first and third partitions so that they enter and leave the reversed partition.

CA AF FE ED DB BC

Structured Representations

Variable-size Parameter Sets

node 1

node 2

node 3

+2, 0.3

+3, -2.0

-1, 1.2

-2, 0.4

Trees

(4 * x) + (3 - y)

(3 * x) + (3 - y)

(4 * x) * (3 - y)

(29 * x + 33) - (5 + x)

(29 * x + 33)(5 + x)

  1. Reduces interpretability of the formulae (it gets confusing)
  2. Produces over-complicated formulae (leads to overfitting)

Grammar Based Representations

Cellular Encoding

So here, we have one cell in the neural net, and it’s pointing to the root of our tree.

The root node has the command SEQ, and that command will be applied to our cell here.

SEQ means divide the cell sequentially in two, and make those two cells point to the children.

Now, our ‘a’ cell was split into two, ‘a’ and ‘b’, and they point to the root node’s children, PAR and SEQ.

Let’s perform the PAR command on that ‘a’ cell.

PAR means divide the cell in parallel and make the children cells point to the children nodes.

‘a’ was split into ‘a’ and ‘c’ in parallel, meaning they both come from the input instead of before where b’ came after ‘a’.

This keeps on going until the neural net is fully generated.

Turtle Graphics

Advanced Representations

Artificial Life

Concept, Motivation, Definitions

“Artificial Life is a field of study devoted to understanding life by attempting to abstract the fundamental dynamical principles underlying biological phenomena, and recreating these dynamics in other physical media - such as computers - making them accessible to new kinds of experimental manipulation and testing.”

That’s not what I meant by ‘wet artificial life’...

Examples

Karl Sims Creatures

He even made, um... sperm?

Framsticks

Framstick snakes 🐍

Darwin Pond

They’re making a remake of this called Richard.io.

Cellular Automata Based

At the start of the algorithm vs towards the end

Computer Program Based

Arrow of Complexity

Life on Earth is more complex now than it was back in the primordial soup, and evolution is the only process capable of making that complexity, so evolution must increase the complexity of things.

Evolution simply favours individuals with a high fitness; that’s all. It doesn’t favour complexity at all. Tierra and Evoloop only created parasites. If evolution increased complexity, Tierra and Evoloop would create much more.

Information Entropy

Kolmogorov Complexity

How many lines of code would it take to

perfectly 3D model a Pacman frog?

Structural Complexity

McShea’s Passive Diffusion Model

Yes, we still have these things in our world.

Hierarchical Structure

Tierrans with the “magic ingredient”

1) Individuals start as just a cell.

2) They clump together to form homogenous organisms.

3) They mutate to form heterogenous organisms.

4) The types of cells move apart and form compartments.

5) The organisms stick together and form colonies.

Natural Induction (not examinable)

These graphs will be minimisation functions, not maximising.

What is ‘hidden state’?

Let’s go back to our minimisation function example.

Let’s say we have an individual that’s stuck on the landscape somewhere.

From all our previous examples of individuals travelling across the fitness landscape, our individual is stuck in that local optimum dip.

But what if we could change the individual’s perception of their utility function?

In other words, all the individuals have their own mutable, shared “copy” of the fitness function that they travel across?

We could change the individuals’ perception of their utilities to travel up peaks they normally wouldn’t want to travel across!

This blue ‘perception’ of the utility function is the hidden state; it’s an invisible force that drives the variables we can see (namely, the individuals), and it’s called hidden state because we can change it.

What is ‘imperfect elastic interactions’?

How much do we want to change our hidden state?

If the hidden state is too rigid, it won’t change at all, and there’d be no point having it.

If the hidden state is too plastic-y, it’ll be like clay and change too much.

It’s not changing, so we’re not moving anywhere.

I didn’t want to change it that much!

We want a sweet spot.

We want to be able to change our hidden state; not so rigid that we can’t budge it, but not so soft that there’s zero resistance and it goes everywhere.

That’s what we mean by ‘imperfect elastic interactions’.

If this is a little hard to visualise, think of it like this:

Steel pole: impossible to bend. Too rigid.

Wet spaghetti: always falls out of shape. Too soft.

Copper wire: it’s malleable enough to bend, and it’s tough enough to retain its shape. Nice! We want our hidden state to be like this.

What is ‘PULSE’?

So we have a hidden state that lets us control where the individuals go as a group, and we can bend it to our will.

But what do we change the hidden state to?

Onto that in a second! First, let’s define what we mean by ‘PULSE’.

Do you remember simulated annealing from Intelligent Systems? If not, it’s about using temperature to ‘scramble’ the individuals to escape local optima.

Big β, low temperature

Small β, high temperature

That’s pretty much what PULSE is.

It’s the ability to ‘heat up’ individuals and make them scatter about to find other optima.

#1

#2

#3

  1. Masochistic
  2. Richard Watson
  3. Want to do a PhD with Richard Watson (a.k.a the first point)

Compositional Evolution

“If it could be demonstrated that any complex organ existed which could not possibly have been formed by numerous, successive, slight modifications, my theory would absolutely break down.” - Darwin, 1859

Gradual vs Compositional

Doolittle

Margulis

Complex Systems

Dependency of variables

Arbitrary interdependencies

Modular interdependencies

Few / weak interdependencies

Landscape

Algorithmic paradigm

(what algorithm to use?)

Exhaustive search

Random search

Divide and Conquer problem decomposition

Hill-climbing - accumulation of small variations

Complexity

KN

Nk

KN

Evolutionary analogue

Impossible / ‘intelligent design’

(it’s virtually impossible to make an evolutionary algorithm find a global optimum in this)

Compositional evolution

Gradual evolution

(need to find small paths)

HIFF

Random Genetic Map and SEAM