cellular automata and amorphous computing melanie mitchell portland state university and santa fe...

183
Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20, 2008 Copyright © 2008 by Melanie Mitchell

Post on 20-Dec-2015

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Cellular Automata and Amorphous Computing

Melanie Mitchell

Portland State University and Santa Fe Institute

Complex Systems Summer School

Friday June 20, 2008

Copyright © 2008 by Melanie Mitchell

Page 2: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

What are cellular automata?

Game of Life

Page 3: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Review (?) of Computation Theory

• Hilbert’s problems

• Turing machines

• Universal Turing Machines

• Uncomputability of the halting problem

Page 4: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Turing machine

Page 5: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Example of Turing machine rule set

Page 6: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Two fundamental theorems of computation theory:

1. There exists a universal Turing machine

2. There is no Turing machine that can solve the halting problem.

Page 7: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Interesting problem: Given an initial configuration, can you calculate analytically how many steps Life will run for before it reaches a fixed configuration?

Page 8: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Universal Computation in the Game of Life

Page 9: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,
Page 10: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,
Page 11: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

What is the feasibility of using this kind of universal computation in practice?

Page 12: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Von Neumann’s self-reproducing automaton

Page 13: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Von Neumann’s self-reproducing automaton

John von Neumann1903–1957

Page 14: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Von Neumann’s self-reproducing automaton

• After his key role in designing the first electronic computers, von Neumann became interested in links between computers and biology

John von Neumann1903–1957

Page 15: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Von Neumann’s self-reproducing automaton

In the last years of his life, von Neumann worked on the “logic” of self-reproduction and devised the first instance of a self-reproducing “machine” (in software, finally implemented in 1990s).

John von Neumann1903–1957

Page 16: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Von Neumann’s self-reproducing automaton

Von Neumann’s design is complicated, but some of its key ideas can be captured by a simpler problem:

Page 17: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Von Neumann’s self-reproducing automaton

Von Neumann’s design is complicated, but some of its key ideas can be captured by a simpler problem:

Design a computer program that will print out a copy of itself.

Page 18: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A candidate self-copying program

Page 19: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A candidate self-copying program

program copy

Page 20: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A candidate self-copying program

program copy

print( “program copy”);

Page 21: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A candidate self-copying program

program copy

print( “program copy”);

print( “ print(“program copy”);”);

Page 22: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A candidate self-copying program

program copy

print( “program copy”);

print( “ print(“program copy”);”);

print(“ print( “ print(“program copy”);”);”);

Page 23: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A candidate self-copying program

program copy

print( “program copy”);

print( “ print(“program copy”);”);

print(“ print( “ print(“program copy”);”);”);

Page 24: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A candidate self-copying program

program copy

print( “program copy”);

print( “ print(“program copy”);”);

print(“ print( “ print(“program copy”);”);”);

“A machine can’t reproduce itself; to do so it would

have to contain a description of itself, and that

description would have to contain a description of itself,

and so on ad infinitum”.

Page 25: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Some commands we will need in our programming language

Page 26: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Some commands we will need in our programming language

• mem

– the memory location of the instruction currently being executed

Page 27: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Some commands we will need in our programming language

• mem

– the memory location of the instruction currently being executed

1 2 3 4 5

computermemory

program test print(“Hello, world”); print(“Goodbye”);end

Page 28: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Some commands we will need in our programming language

• mem

– the memory location of the instruction currently being executed

1 2 3 4 5

computermemory

program test print(“Hello, world”); print(“Goodbye”);end

mem = 2

Page 29: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Some commands we will need in our programming language

Page 30: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Some commands we will need in our programming language

• line(n)

– the string of characters in memory location n

Page 31: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Some commands we will need in our programming language

• line(n)

– the string of characters in memory location n

1 2 3 4 5

program test print(“Hello, world”); print(“Goodbye”);end

Page 32: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Some commands we will need in our programming language

• line(n)

– the string of characters in memory location n

print(line(2));

will print

print(“Hello, world”);

1 2 3 4 5

program test print(“Hello, world”); print(“Goodbye”);end

Page 33: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Some commands we will need in our programming language

Page 34: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Some commands we will need in our programming language

• loop until condition

– loops until the condition is true

Page 35: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Some commands we will need in our programming language

• loop until condition

– loops until the condition is true

x = 0;

loop until x = 4

{

print(“Hello, world);

x = x+1;

}

Page 36: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Some commands we will need in our programming language

• loop until condition

– loops until the condition is true

x = 0;

loop until x = 4

{

print(“Hello, world);

x = x+1;

}

Hello, worldHello, worldHello, worldHello, world

Output:

Page 37: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

Page 38: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

Output

Page 39: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

Output

Page 40: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

Output L=3

Page 41: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

program copy

Output L=3

Page 42: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

program copy L = mem + 1;

Output L=3

Page 43: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

program copy L = mem + 1;

Output L=3

Page 44: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

program copy L = mem + 1;

Output L=3

Page 45: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

program copy L = mem + 1; print(“program copy”);

Output L=3

Page 46: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

program copy L = mem + 1; print(“program copy”);

Output L=4

Page 47: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

program copy L = mem + 1; print(“program copy”);

Output L=4

Page 48: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

program copy L = mem + 1; print(“program copy”);

Output L=4

Page 49: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

program copy L = mem + 1; print(“program copy”);

Output L=4

Page 50: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

program copy L = mem + 1; print(“program copy”); print(“ L = mem + 1;”);

Output L=4

Page 51: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

program copy L = mem + 1; print(“program copy”); print(“ L = mem + 1;”);

Output L=5

Page 52: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

program copy L = mem + 1; print(“program copy”); print(“ L = mem + 1;”);

Output L=5

Page 53: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

program copy L = mem + 1; print(“program copy”); print(“ L = mem + 1;”);

Output L=5

Page 54: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

program copy L = mem + 1; print(“program copy”); print(“ L = mem + 1;”);

Output L=5

Page 55: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

program copy L = mem + 1; print(“program copy”); print(“ L = mem + 1;”); loop until line[L] =“end”

Output L=5

Page 56: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

program copy L = mem + 1; print(“program copy”); print(“ L = mem + 1;”); loop until line[L] =“end”

Output L=6

Page 57: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

program copy L = mem + 1; print(“program copy”); print(“ L = mem + 1;”); loop until line[L] =“end”

Output L=6

Page 58: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

program copy L = mem + 1; print(“program copy”); print(“ L = mem + 1;”); loop until line[L] =“end”

Output L=6

Page 59: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

program copy L = mem + 1; print(“program copy”); print(“ L = mem + 1;”); loop until line[L] =“end”

Output L=6

Page 60: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

program copy L = mem + 1; print(“program copy”); print(“ L = mem + 1;”); loop until line[L] =“end” {

Output L=6

Page 61: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

program copy L = mem + 1; print(“program copy”); print(“ L = mem + 1;”); loop until line[L] =“end” {

Output L=7

Page 62: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

program copy L = mem + 1; print(“program copy”); print(“ L = mem + 1;”); loop until line[L] =“end” {

Output L=7

Page 63: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

program copy L = mem + 1; print(“program copy”); print(“ L = mem + 1;”); loop until line[L] =“end” {

Output L=7

Page 64: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

program copy L = mem + 1; print(“program copy”); print(“ L = mem + 1;”); loop until line[L] =“end” {

Output L=7

Page 65: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

program copy L = mem + 1; print(“program copy”); print(“ L = mem + 1;”); loop until line[L] =“end” { print(line[L]);

Output L=7

Page 66: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

program copy L = mem + 1; print(“program copy”); print(“ L = mem + 1;”); loop until line[L] =“end” { print(line[L]);

Output L=8

Page 67: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

program copy L = mem + 1; print(“program copy”); print(“ L = mem + 1;”); loop until line[L] =“end” { print(line[L]);

Output L=8

Page 68: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

program copy L = mem + 1; print(“program copy”); print(“ L = mem + 1;”); loop until line[L] =“end” { print(line[L]);

Output L=8

Page 69: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

program copy L = mem + 1; print(“program copy”); print(“ L = mem + 1;”); loop until line[L] =“end” { print(line[L]);

Output L=8

Page 70: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

program copy L = mem + 1; print(“program copy”); print(“ L = mem + 1;”); loop until line[L] =“end” { print(line[L]); L = L+1;

Output L=8

Page 71: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

program copy L = mem + 1; print(“program copy”); print(“ L = mem + 1;”); loop until line[L] =“end” { print(line[L]); L = L+1;

Output L=9

Page 72: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

program copy L = mem + 1; print(“program copy”); print(“ L = mem + 1;”); loop until line[L] =“end” { print(line[L]); L = L+1;

Output L=9

Page 73: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

program copy L = mem + 1; print(“program copy”); print(“ L = mem + 1;”); loop until line[L] =“end” { print(line[L]); L = L+1;

Output L=9

Page 74: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

program copy L = mem + 1; print(“program copy”); print(“ L = mem + 1;”); loop until line[L] =“end” { print(line[L]); L = L+1;

Output L=9

Page 75: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

program copy L = mem + 1; print(“program copy”); print(“ L = mem + 1;”); loop until line[L] =“end” { print(line[L]); L = L+1; }

Output L=9

Page 76: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

program copy L = mem + 1; print(“program copy”); print(“ L = mem + 1;”); loop until line[L] =“end” { print(line[L]); L = L+1; }

Output L=10

Page 77: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

program copy L = mem + 1; print(“program copy”); print(“ L = mem + 1;”); loop until line[L] =“end” { print(line[L]); L = L+1; }

Output L=10

Page 78: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

program copy L = mem + 1; print(“program copy”); print(“ L = mem + 1;”); loop until line[L] =“end” { print(line[L]); L = L+1; }

Output L=10

Page 79: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

program copy L = mem + 1; print(“program copy”); print(“ L = mem + 1;”); loop until line[L] =“end” { print(line[L]); L = L+1; } print(“end”);

Output L=10

Page 80: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

program copy L = mem + 1; print(“program copy”); print(“ L = mem + 1;”); loop until line[L] =“end” { print(line[L]); L = L+1; } print(“end”);

Output L=11

Page 81: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

program copy L = mem + 1; print(“program copy”); print(“ L = mem + 1;”); loop until line[L] =“end” { print(line[L]); L = L+1; } print(“end”);

Output L=11

Page 82: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

program copy L = mem + 1; print(“program copy”); print(“ L = mem + 1;”); loop until line[L] =“end” { print(line[L]); L = L+1; } print(“end”);

Output L=11

Page 83: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

program copy L = mem + 1; print(“program copy”); print(“ L = mem + 1;”); loop until line[L] =“end” { print(line[L]); L = L+1; } print(“end”); end

Output L=11

Page 84: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

program copy L = mem + 1; print(“program copy”); print(“ L = mem + 1;”); loop until line[L] =“end” { print(line[L]); L = L+1; } print(“end”); end

Output L=11

Page 85: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

A self-copying program

1 program copy2 L = mem + 1;3 print(“program copy”);4 print(“ L = mem + 1;”);5 loop until line[L] =“end”6 {7 print(line[L]);8 L = L+1;9 }10 print(“end”);11 end

program copy L = mem + 1; print(“program copy”); print(“ L = mem + 1;”); loop until line[L] =“end” { print(line[L]); L = L+1; } print(“end”); end

Output L=11

Page 86: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Significance of the self-copying program

• The essence of self-copying in this program is to use the same information stored in memory in two ways:

– interpret it as instructions in a computer program

Page 87: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Significance of the self-copying program

• The essence of self-copying in this program is to use the same information stored in memory in two ways:

– interpret it as instructions in a computer program

– interpret it as “data” to be used by the instructions in the computer program

Page 88: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Significance of the self-copying program

• The essence of self-copying in this program is to use the same information stored in memory in two ways:

– interpret it as instructions in a computer program

– interpret it as “data” to be used by the instructions in the computer program

• This is also a key mechanism in biological self-reproduction

Page 89: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Significance of the self-copying program

• The essence of self-copying in this program is to use the same information stored in memory in two ways:

– interpret it as instructions in a computer program

– interpret it as “data” to be used by the instructions in the computer program

• This is also a key mechanism in biological self-reproduction

– DNA = program and data

Page 90: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Significance of the self-copying program

• The essence of self-copying in this program is to use the same information stored in memory in two ways:

– interpret it as instructions in a computer program

– interpret it as “data” to be used by the instructions in the computer program

• This is also a key mechanism in biological self-reproduction

– DNA = program and data

• This principle was formulated by von Neumann in the 1940s, before the details of biological self-reproduction were well-understood.

Page 91: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Programs and interpreters

Page 92: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Programs and interpreters

• Notice that the self-copying program needs an external interpreter—the part of the computer that carries out the instructions

Page 93: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Programs and interpreters

• Notice that the self-copying program needs an external interpreter—the part of the computer that carries out the instructions

• Rough analogy to biology:

Page 94: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Programs and interpreters

• Notice that the self-copying program needs an external interpreter—the part of the computer that carries out the instructions

• Rough analogy to biology:

– DNA = program and data

Page 95: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Programs and interpreters

• Notice that the self-copying program needs an external interpreter—the part of the computer that carries out the instructions

• Rough analogy to biology:

– DNA = program and data

– RNA, ribosomes, and enzymes = interpreter

Page 96: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Programs and interpreters

• Notice that the self-copying program needs an external interpreter—the part of the computer that carries out the instructions

• Rough analogy to biology:

– DNA = program and data

– RNA, ribosomes, and enzymes = interpreter

• DNA contains instructions for copying itself, and also for building its own interpreter

Page 97: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Programs and interpreters

• Notice that the self-copying program needs an external interpreter—the part of the computer that carries out the instructions

• Rough analogy to biology:

– DNA = program and data

– RNA, ribosomes, and enzymes = interpreter

• DNA contains instructions for copying itself, and also for building its own interpreter

• Von Neumann’s self-reproducing automaton also did this.

Page 98: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

What are cellular automaton actually used for? • Different perspectives:

– CAs are models of physical (or biological or social) systems

– CAs are alternative methods for approximating differential equations

– CAs are devices that can simulate standard computers

– CAs are parallel computers that can perform image processing, random number generation, cryptography, etc.

– CAs are a framework for implementing molecular scale computation

– CAs are a framework for exploring how “collective computation” might take place in natural systems (and that might be imitated in novel human-made computational systems)

Page 99: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Dynamics and Computation in Cellular Automata

http://math.hws.edu/xJava/CA/EdgeOfChaosCA1.html

Page 100: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

1. Fixed point

2. Periodic

3. Chaotic

4. “Complex”

– long transients

– universal computation?

Wolfram’s classes for elementary CAs

Page 101: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Rule:

ECA 110 is a universal computer(Matthew Cook, 2002)

Wolfram’s numbering of ECA:

0 1 1 0 1 1 1 0 = 110 in binary

Page 102: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,
Page 103: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Outline of A New Kind of Science (Wolfram,2001)(from MM review, Science, 2002)

• Simple programs can produce complex, and random-looking behavior

– Complex and random-looking behavior in nature comes from simple programs.

• Natural systems can be modeled using cellular-automata-like architectures

• Cellular automata are a framework for understanding nature

• Principle of computational equivalence

Page 104: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Principle of Computational Equivalence

1. The ability to support universal computation is very common in nature.

2. Universal computation is an upper limit on the sophistication of computations in nature.

3. Computing processes in nature are almost always equivalent in sophistication.

Page 105: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

How can we describe information processing in complex systems?

Page 106: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

majority on

A cellular automaton evolved by the genetic algorithm

majority off

Page 107: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Stephen Wolfram's last problem from ``Twenty problems in the theory of cellular automata'' (Wolfram, 1985):

20. What higher-level descriptions of information processing in cellular automata can be given?

"It seems likely that a radically new approach is needed"

Page 108: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

What is needed?

1. How can we characterize patterns as computations?

2. How can we design computations in the language of patterns?

Page 109: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

1. How can we characterize patterns as computations?

Page 110: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

1. How can we characterize patterns as computations?

Components of computation in spatially extended systems:

– Storage of information

– Transfer of information

– Integration of information from different spatial locations

Page 111: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

1. How can we characterize patterns as computations?

Components of computation in spatially extended systems: – Storage of information – Transfer of information– Integration of information from different spatial locations

First step: What structures in the observed patterns implement these components?

Second step: How do these structures implement the computation?

Page 112: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

– Transfer of information: moving particles

From http://www.stephenwolfram.com/publications/articles/ca/86-caappendix/16/text.html

Page 113: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

– Transfer of information: moving particles

From http://www.stephenwolfram.com/publications/articles/ca/86-caappendix/16/text.html

Page 114: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

– Transfer of information: moving particles

– Integration of information from different spatial locations: particle collisions

From http://www.stephenwolfram.com/publications/articles/ca/86-caappendix/16/text.html

Page 115: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

– Transfer of information: moving particles

– Integration of information from different spatial locations: particle collisions

From http://www.stephenwolfram.com/publications/articles/ca/86-caappendix/16/text.html

Page 116: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

How to automatically identify information-carrying structures in spatio-temporal patterns?

Page 117: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Three proposals:

• Filter by regular languages (Crutchfield and Hanson, 1993; Crutchfield et al., 2002)

• Filter by local statistical complexity (Shalizi et al., 2006)

• Filter by local information measures (Lizier et al., 2007)

How to automatically identify information-carrying structures in spatio-temporal patterns?

Page 118: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Filter by regular languages (Crutchfield and Hanson, 1993; Crutchfield et al., 2002)

Regular language: Simple-to-describe periodic pattern

Page 119: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Examples:

Regular domains:

(0)*, (1)* , (01)*

Particles(spatially localized, temporally periodicboundaries or“defects” betweenregular domains)

Regular domainsfiltered out

CA for performing density classification

Page 120: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Regular domains:

(0001)* , (1110)*

Rule 54Regular domains

filtered out

Page 121: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Filter by local statistical complexity (Shalizi et al., 2006)

• Local statistical complexity of site i:

– amount of information from past needed for optimal prediction of future in the vicinity of site i

Page 122: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Filter by local statistical complexity (Shalizi et al., 2006)

• Local statistical complexity of site i:

– amount of information from past needed for optimal prediction of future in the vicinity of site i

site i at time t

Page 123: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Filter by local statistical complexity (Shalizi et al., 2006)

• Local statistical complexity of site i:

– amount of information from past needed for optimal prediction of future in the vicinity of site i

site i at time t

Page 124: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Filter by local statistical complexity (Shalizi et al., 2006)

• Local statistical complexity of site i:

– amount of information from past needed for optimal prediction of future in the vicinity of site i

site i at time t

Page 125: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Filter by local statistical complexity (Shalizi et al., 2006)

light cone of pastinfluence on site i

site i at time t

• Local statistical complexity of site i:

– amount of information from past needed for optimal prediction of future in the vicinity of site i

Page 126: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Filter by local statistical complexity (Shalizi et al., 2006)

light cone of pastinfluence on site i

site i at time t

• Local statistical complexity of site i:

– amount of information from past needed for optimal prediction of future in the vicinity of site i

Page 127: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Filter by local statistical complexity (Shalizi et al., 2006)

light cone of pastinfluence on site i

site i at time t

• Local statistical complexity of site i:

– amount of information from past needed for optimal prediction of future in the vicinity of site i

Page 128: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Filter by local statistical complexity (Shalizi et al., 2006)

light cone of pastinfluence on site i

site i at time t

• Local statistical complexity of site i:

– amount of information from past needed for optimal prediction of future in the vicinity of site i

light cone of futureinfluence of site i

Page 129: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Filter by local statistical complexity (Shalizi et al., 2006)

light cone of pastinfluence on site i

site i at time t

• Local statistical complexity of site i:

– amount of information from past needed for optimal prediction of future in the vicinity of site i

light cone of futureinfluence of site i

How well does pastlight cone predict futurelight cone?

Page 130: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Example: Rule 110

Filtering by localstatistical complexity

Original Filtered

Page 131: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Example: Rule 110

Filtering by localstatistical complexity

Note: This filter requires no prior determination of “regular domains”.But more computationally expensive than filtering by regular domains.

Original Filtered

Page 132: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Filter by local information measures(Lizier et al., 2006)

Page 133: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Filter by local information measures(Lizier et al., 2006)

Degree of information storage at site i:

Mutual information between state at site i at t and states of site i at k previous time steps.

Degree of information transfer from site i-j to site i:

Average information in the state of the source (site i-j) about next state of destination (site i)

Degree of information modification at site i:

Degree to which sum of information storage and information transfer do not predict state at site i.

Page 134: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Filter by local information measures(Lizier et al., 2006)

Degree of information storage at site i:

Mutual information between state at site i at t and states of site i at k previous time steps.

Degree of information transfer from site i-j to site i:

Average information in the state of the source (site i-j) about next state of destination (site i)

Degree of information modification at site i:

Degree to which sum of information storage and information transfer do not predict state at site i.

Page 135: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Filter by local information measures(Lizier et al., 2006)

Degree of information storage at site i:

Mutual information between state at site i at t and states of site i at k previous time steps.

site i at time t

Degree of information transfer from site i-j to site i:

Average information in the state of the source (site i-j) about next state of destination (site i)

Degree of information modification at site i:

Degree to which sum of information storage and information transfer do not predict state at site i.

Page 136: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Filter by local information measures(Lizier et al., 2006)

Degree of information storage at site i:

Mutual information between state at site i at t and states of site i at k previous time steps.

site i at time t

site i k time steps in past

Degree of information transfer from site i-j to site i:

Average information in the state of the source (site i-j) about next state of destination (site i)

Degree of information modification at site i:

Degree to which sum of information storage and information transfer do not predict state at site i.

Page 137: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Filter by local information measures(Lizier et al., 2006)

Degree of information storage at site i:

Mutual information between state at site i at t and states of site i at k previous time steps.

site i at time t

Degree of information storage: how predictable is current state from past states?

site i k time steps in past

Degree of information transfer from site i-j to site i:

Average information in the state of the source (site i-j) about next state of destination (site i)

Degree of information modification at site i:

Degree to which sum of information storage and information transfer do not predict state at site i.

Page 138: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Filter by local information measures(Lizier et al., 2006)

Degree of information storage at site i:

Mutual information between state at site i at t and states of site i at k previous time steps.

site i at time t

Degree of information storage: how predictable is current state from past states?

site i k time steps in past

Degree of information transfer from site i-j to site i:

Average information in the state of the source (site i-j) about next state of destination (site i)

Degree of information modification at site i:

Degree to which sum of information storage and information transfer do not predict state at site i.

Page 139: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Rule 54 Positive informationstorage

From Lizier et al., 2007

Degree of information storage at each site

Positive: information has been stored at this site

Page 140: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Filter by local information measures(Lizier et al., 2006)

Degree of information storage at site i:

Mutual information between state at site i at t and states of site i at k previous time steps.

Degree of information transfer from site i-j to site i:

Amount of information in the state of the source (site i-j) about next state of destination (site i)

Degree of information modification at site i:

Degree to which sum of information storage and information transfer do not predict state at site i.

Page 141: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Filter by local information measures(Lizier et al., 2006)

Degree of information storage at site i:

Mutual information between state at site i at t and states of site i at k previous time steps.

Degree of information transfer from site i-j to site i:

Amount of information in the state of the source (site i-j) about next state of destination (site i)

Degree of information modification at site i:

Degree to which sum of information storage and information transfer do not predict state at site i.

site i at time t

site i j at time t1

(j radius of neighborhood)

Page 142: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Filter by local information measures(Lizier et al., 2006)

Degree of information storage at site i:

Mutual information between state at site i at t and states of site i at k previous time steps.

Degree of information transfer from site i-j to site i:

Amount of information in the state of the source (site i-j) about next state of destination (site i)

Degree of information modification at site i:

Degree to which sum of information storage and information transfer do not predict state at site i.

site i at time t

site i j at time t1

Degree of information transfer: how predictable is state at site i from previous state at site i j ?

Page 143: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Rule 54 Positive t (i, j, n+1)

Degree of information transferat each site (for j = 1)

Positive: information has been transferred from site i j to site i

Page 144: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Filter by local information measures(Lizier et al., 2006)

Degree of information storage at site i:

Mutual information between state at site i at t and states of site i at k previous time steps.

Degree of information transfer from site i-j to site i:

Average information in the state of the source (site i-j) about next state of destination (site i)

Degree of information modification at site i:

Degree to which sum of information storage and information transfer do not predict state at site i.

Page 145: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Filter by local information measures(Lizier et al., 2006)

Degree of information storage at site i:

Mutual information between state at site i at t and states of site i at k previous time steps.

Degree of information transfer from site i-j to site i:

Average information in the state of the source (site i-j) about next state of destination (site i)

Degree of information modification at site i:

Degree to which sum of information storage and information transfer do not predict state at site i.

site i at time t

site i k time steps in past

Page 146: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Filter by local information measures(Lizier et al., 2006)

Degree of information storage at site i:

Mutual information between state at site i at t and states of site i at k previous time steps.

Degree of information transfer from site i-j to site i:

Average information in the state of the source (site i-j) about next state of destination (site i)

Degree of information modification at site i:

Degree to which sum of information storage and information transfer do not predict state at site i.

site i at time tsite i j at time t1

site i k time steps in past

Page 147: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Filter by local information measures(Lizier et al., 2006)

Degree of information storage at site i:

Mutual information between state at site i at t and states of site i at k previous time steps.

Degree of information transfer from site i-j to site i:

Average information in the state of the source (site i-j) about next state of destination (site i)

Degree of information modification at site i:

Degree to which sum of information storage and information transfer do not predict state at site i.

site i at time tsite i j at time t1

site i k time steps in past

Degree of information modification: how unpredictable is state at site i from storage and transfer?

Page 148: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Filter by local information measures(Lizier et al., 2006)

Degree of information storage at site i:

Mutual information between state at site i at t and states of site i at k previous time steps.

Degree of information transfer from site i-j to site i:

Average information in the state of the source (site i-j) about next state of destination (site i)

Degree of information modification at site i:

Degree to which sum of information storage and information transfer do not predict state at site i.

site i at time tsite i j at time t1

site i k time steps in past

Degree of information modification: how unpredictable is state at site i from storage and transfer?

“local separable information”:positive: no info modificationnegative: info modification

Page 149: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Local information modification

Rule 54 Negative s(i, n) Negative s (i, n) plotted on top of information transferNegative: State at site i is not well

predicted by information storage or transfer.

Page 150: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

First step: What structures in the observed patterns implement these components?

Page 151: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

First step: What structures in the observed patterns implement these components?

Page 152: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

First step: What structures in the observed patterns implement these components?

Second step: How do these structures implement the computation?

Page 153: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

majority on

A cellular automaton evolved by the genetic algorithm (Performance 80%)

majority off

Page 154: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

ParticlesRegular domains:

(0)*, (1)* , (01)*

From Crutchfield et al., 2001

Page 155: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

laws of “particle physics”

Page 156: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Hordijk, Crutchfield, and Mitchell, 1996: Models of CA computation in terms of particle kinematics

(Note “condensation phase”)

Page 157: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Particle model of CA computation

Page 158: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

CAs evolvedfor density classification

CAs evolvedfor synchronization

Page 159: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

generation 17 generation 18

Page 160: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

First step: What structures in the observed patterns implement these components?

Second step: How do these structures implement the computation?

Page 161: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

How can we design computations in the language of patterns?

“Programming” the CA in the language of the high-level structures, and compiling the program to the level of the CA rule

Open problem!

Page 162: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Amorphous Computing

Abelson, Sussman et al., MIT

Page 163: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Amorphous Computing(Abelson et al., 2000; 2007)

• Main ideas:– Produce vast quantities of tiny, unreliable computing elements

(“particles”) at very low cost

– Give them limited wireless communication abilities so each particle can communicate with nearby particles

– Spray paint them onto a surface. Spatial arrangement, and thus communication, will be irregular. Processing and communication will be asynchronous.

– Have them self-organize into a reliable network that does something useful

Page 164: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Some possible applications

• Smart buildings that sense usage and adjust to save energy

• Smart bridges that monitor traffic load and structural integrity

• Smart arrays of microphones for opimizing acoustics

• Self-assembly of nano-machines

Page 165: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

One example:Origami-based self-assembly

(R. Nagpal et al.)

• Set-up: – “Spray paint” thousands of MEMS “agents” on a 2D square

foldable material.

– Agents have no knowledge of global position or interconnect topology.

– All agents have identical program.

– Agents communicate locally (out to distance r)

– Agents run asynchronously

– Agents will collectively “fold” material to desired shape.

Page 166: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

• High-level language: Origami Shape Language

– Six paper-folding axioms that can be used to construct a large class of flat folded shapes.

• Low-level language primitives:

– gradients

– neighborhood query

– cell-to-cell contact

– polarity inversion

– flexible folding

Page 167: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Folding a cup

Page 168: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Origami Shape Language

Primitives: points pi, lines Li, regions Ri

Axioms (Huzita):

1. Given two points p1 and p2, fold a line through them.

2. Given two points p1 and p2, fold p1 onto p2 (creates crease

that bisects the line p1p2 at right angles

3. Given two lines L1 and L2, fold L1 onto L2 (constructs the crease that bisects the angle between L1 and L2)

Page 169: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

4. Given p1 and L1, fold L1 onto itself through p1 (constructs a crease through p1 perpendicular to L1).

5. Given p1 and p2 and L1, make a fold that places p1 on L1 and passes through p2 (constructs the tanget to the parabola (p1 L1) through p2)

6. Given p1 and p2 and lines L1 and L2, make a fold that places p1 on L1 and p2 on L2 (constructs the tanget to two parabolas)

Page 170: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Primitive operations we’ll need:

(create-region p1 L1)

(within-region r1 op1...): restricts operations to give region

(execute-fold L1 type landmark-point)

Fold types: Valley (apical), Mountain (basal) apical: puts apical surface on inside basal: puts basal surface on inside

Landmark-point: defines new “apical” and “basal” surfaces after fold by defining side of fold that will reverse polarity

(intersect L1 L1): returns a point that is the intersection of the two lines

Page 171: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Corner points: c1-c4Edge lines: e12-e41

Page 172: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

Low-level agent operations(Nagpal, 2001)

Page 173: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,
Page 174: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,
Page 175: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,
Page 176: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,
Page 177: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,
Page 178: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,
Page 179: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,
Page 180: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,
Page 181: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

How to implement OSL in low-level cell programsExample

Page 182: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,
Page 183: Cellular Automata and Amorphous Computing Melanie Mitchell Portland State University and Santa Fe Institute Complex Systems Summer School Friday June 20,

I will put a link to all my slides on the CSSS wiki (under “Readings” “Melanie Mitchell”).

Thanks for listening!