5. Origin

  • Evolutionary computation is inspired by the natural process of evolution

  • However, although it uses jargon from biological evolution, it is important to not focus too much on living organisms

5.1. Inspiration from Biology

../../_images/phylogenetic_tree.png

Phylogenetic tree of three life domains: Bacteria, Archaea, and Eukaryota. The root of the tree is the “Last Universal Common Ancestor” (LUCA).

  • The power of biological evolution is evident by the diversity of the living things on Earth

  • Environments are filled with populations of individuals that strive for persistence

    • Survival

    • Reproduction

  • The fitness of an individual is a measure of its ability to persist

  • The fitness is determined by the individual’s interactions with the environment and other individuals

    • Other individuals are often thought of as part of the environment

  • With evolutionary computation, populations of candidate solutions are evolved

  • The fitness of the candidate solution is a measure of how good it is at addressing the problem at hand

  • The candidate solutions’ fitness dictates its probability of survival and reproduction

5.1.1. Diversity

  • Reproduction creates imperfect copies of individuals

  • Sexual reproduction incorporates genetic information from both parents

  • Mutations occur in both sexual and asexual reproductions

  • Sometimes these changes are harmful

  • Sometimes these changes are neutral

  • Sometimes these changes are beneficial

5.1.2. Competition

  • Given that

    • Environments have limited resources

    • Individuals often have an intrinsic interest in persisting

  • Competition and selection becomes inevitable

  • Natural selection favours individuals that compete more effectively

5.1.3. Individual vs. Population

  • The ideas of diversity and competition exist within the population

  • It is often helpful to think of the population evolving instead of the individuals themselves

  • Having a balance of competition and diversity is important for populations

    • Having too much competition often lowers diversity

    • Having too little diversity can limit a population’s ability to adapt to changes

    • Having too little competition can increase diversity

    • Having too much diversity may stagnate specialization

5.2. Systems

  • Populations of living things evolve

  • But a population of living things is just system

  • And a system exists within some environment, which is a system

  • And the population is made up individuals, which are themselves systems

  • Each individual is made up of many more systems

  • Each of those smaller systems are made up of more systems

../../_images/turtles_turtles.png

It’s turtles all the way down.

  • Systems can evolve — not just biological systems

    • Don’t put life on a pedestal

    • It’s just another system within the universe

  • It really only needs mechanisms for persisting and changing

  • Systems evolve as a consequence of it’s relationship with it’s environment

    • Sometimes the environment has some intention behind it

    • Sometimes it’s aimless

5.2.1. Cellular Automata

  • An elementary cellular automata is a very simple system of rules

    • Given a one-dimensional (linear) sequence of binary values (cells)

    • Create the sequence’s next generation based on each cell’s current state and state of its neighbours

../../_images/rule_30.gif

Example of rule 30 being applied to some arbitrary sequence.

  • Since each cell’s value is determined by three cells’ previous state, there are a total of eight (8) patterns

    • Three since it’s based on the current cell and its tow neighbours

  • Each of the eight patterns can produce either a 0 or a 1, meaning there are a total of 256 possible rules

  • The above rule is named “Rule 30” since \(00011110\) is the pattern, which has a decimal value of 30

  • By repeatedly applying these very simple rules to each new sequence, interesting and complex patterns may emerge

../../_images/rule_22.png

Example of Rule 22 being applied 200 times. This was created with the initial condition of a single cell being active.

  1. Visit Wolfram Alpha and create the patterns for some rules

    • The above link is the result of running Rule 0

  2. Take the time to generate the patterns for a few dozen rules and keep track of the most interesting ones found

  3. What makes the patterns interesting?

../../_images/rule_30_shell.png

A conus textile, a small venomous sea snail. The shell of the snail has a naturally occurring interesting pattern.

5.2.2. Conway’s Game of Life

  • Conway’s Game of Life is another interesting simple system, but works in a two-dimensions grid of cells

  • The rules are

    1. Any live cell with fewer than two live neighbours dies off

    2. Any live cell with two or three live neighbours survives

    3. Any live cell with more than three live neighbours dies off

    4. Any dead cell with exactly three live neighbours becomes live

  • Visit this website and play with Conway’s Game of Life

../../_images/game_of_life_puffer.gif

Execution of Conway’s Game of Life. The initial conditions for this execution created a “puffer”.

5.2.3. Turing Completeness in Simple Systems

  • Both Conway’s Game of Life and Rule 110 are Turing complete

  • Both are remarkably simple systems that can produce remarkably complex and seemingly chaotic random behaviour

  • Both do not have any intelligence; they just follow their rules starting from initial conditions

  • But they’re Turing complete — they can perform any computation any other Turing complete system can

    • Like a typical desktop computer

5.3. The Invisible Hand

  • Beware of teleology

    • Explaining phenomena in terms of the purpose they serve rather than of the cause by which they arise

  • Virtually nothing within the universe exists for a purpose

    • The exceptions being things like human created things

  • Things only exist because they don’t not exist

  • Evolution has no intelligence guiding it

  • Yet, things seem to work

  • However, the things work because if they did not, they would not exist

5.3.1. Learning to Walk

  • Consider the problem of training a robot to walk

  • Deep learning is an absolutely terrible idea for finding the best way for a robot to walk

  • As artificial neural networks grow in size, the number of parameters within the network grows rapidly

  • As the number of parameters grows, the odds of finding the best configuration of parameters becomes astronomically low

  • However, with deep learning, something interesting happens

  • As the number of parameters grows, it seems that the number of good configurations increases

  • Finding the best way to walk is not the goal; finding a way to walk is the goal

    • What does the best way to walk even mean?

    • Does there even exist a best way to walk?

  • Thus, deep learning is an absolutely brilliant idea for finding a good way for a robot to walk

5.4. For Next Class

  • Spend some time thinking about how systems exist and try to explain their existence in terms of how instead of why