Tierra Tutorial
Tom Ray - ATR, OU
Joseph Hart - ATR
GECCO-99
July 13-17, 1999
Orlando, Florida
Web Pages
This presentation: http://www.hip.atr.co.jp/~ray/pubs/pubs.html http://www.hip.atr.co.jp/~ray/pubs/tutorial/Tutorial.ppt
Tierra Home Page: http://www.hip.atr.co.jp/~ray/tierra/tierra.html
Tom Ray: tray@ou.edu http://www.hip.atr.co.jp/~ray/
Joseph Hart: jhart@hip.atr.co.jp http://www.hip.atr.co.jp/~jhart/
Tierra Tutorial Outline
Concept - Motivation
The Virtual Machine
Using Tierra
Tools
The Ancestor
Results
Network Tierra
Future Directions
Tierra Tutorial Outline
Concept - Motivation
The Virtual Machine
Using Tierra
Tools
The Ancestor
Results
Network Tierra
Future Directions
Concept - Motivation
Biological - original motivations
Computational - later motivations
Concept - Motivation
Biological - original motivations
Computational - later motivations
Biological - original motivations
Life on Earth is a single instance of evolution (sample size of one)
Create and observe a new and independent instance of evolution
Broaden our perspective of evolution (and therefore of life) by increasing the sample size (to more than one)
Observe the properties of evolution in a new and radically different medium (digital rather than organic)
Evolution in the Organic Medium
Evolution by natural selection on Earth has organized the form and process of matter and energy from the molecular level up through the ecosystem level
~ 12 Orders of Magnitude
The organization generated by evolution spans about twelve orders of magnitude of scale
from the molecular to the ecosystem level
Each Level of Scale
At each level of scale, there are richly organized structures and processes
Hierarchical
At each level of scale, the structures are built hierarchically from the structures of the level below
Built by Evolution
All of this rich hierarchically organized structure through twelve orders of magnitude of scale,
was built by the process of evolution by natural selection embedded in the medium of carbon chemistry.
Evolution in Other Contexts
Life on Earth is the product of evolution by natural selection operating in the medium of carbon chemistry.
However, in theory, the process of evolution is neither limited to occurring on the Earth, nor in carbon chemistry.
Just as it may occur on other planets, it may also operate in other media, such as the medium of digital computation.
And just as evolution on other planets is not a model of life on Earth, nor is natural evolution in the digital medium.
A Different Physics
The digital medium is not a material medium.
It is a logical, informational medium.
The digital medium does not exhibit the laws of thermodynamics.
Cyberspace is not a 3D Euclidean space.
We are not constrained by the same laws of physics, unless we impose them upon ourselves.
Evolution Sees the Medium
Evolutions sees the medium that it is embedded in.
In the organic medium, evolutions sees the laws of conventional chemistry and physics.
In the digital medium, evolution sees the logic of the machine code, the rules of the operating system, and the structure of memory,
as a surrogate physics and chemistry.
The Hardware is Invisible
Embedded within the digital medium, evolution can not see the hardware from which the computer is constructed.
Mechanical switches, vacuum tubes, transistors, integrated circuits,
all look the same to evolution if they implement the same logic.
Evolution only sees the logic.
Digital Time
A computer built from integrated circuits will be faster than one built from mechanical switches.
But the unit of time is the CPU clock cycle.
From within the digital medium, evolution can not tell if it is a second or a nanosecond
Topology of Cyberspace
Cyberspace is not a Euclidean space.
There is no obvious distance metric.
How can we analyze the topology?
Time is Distance?
The time that it takes to move data between two points might serve as a distance metric.
Within the (flat) RAM memory of a single computer, all pairs of points are equidistant.
Points in cache memory are closer together.
Points on disk memory are farther apart.
Distances between machines depend on network topology and traffic conditions.
Concept - Motivation
Biological - original motivations
Computational - later motivations
Computational - later motivations
Digital evolution produced dramatic optimizations of machine code
Evolution might be used to:
Optimize useful software
Create new software
Create software of greater complexity than human programmers can write
Find the true nature of the digital medium by "becoming one" with it, the Zen of digital life
Thought Experiment
We are all robots
Our bodies are made of metal and our brains of silicon chips
We have no experience or knowledge of carbon based life,
not even in our science fiction
This Stuff?
Now one of us robots comes to our academic gathering with a flask of methane, ammonia, hydrogen, water, and some dissolved minerals.
The robot asks: "Do you suppose we could build a computer from this stuff?"
The Engineers Solution
The engineers among us might propose nano-molecular devices with fullerene switches, or even DNA-like computers.
But I am sure that they would never think of neurons.
Neurons are astronomically large structures compared to the molecules we are starting with
The Carbon Medium
Faced with the raw medium of carbon chemistry, and no knowledge of organic life,
we would never think of brains built of neurons,
supported by circulatory and digestive systems,
in bodies with limbs for mobility,
bodies which can only exist in the context of the ecological community that feeds them.
The Digital Medium
We are in a similar position today as we face the raw medium of digital computation and communications.
The preconceptions and limited imaginations deriving from our organic-only experience of life and intelligence,
make it difficult for us to understand the nature of this new medium, and the forms of life and intelligence that might inhabit it
Going Beyond?
How can we go beyond our conceptual limits,
find the natural form of intelligent processes in the digital medium,
and work with the medium to bring it to its full potential,
rather than just imposing the world we know upon it by forcing it to run a simulation of our physics, chemistry, and biology?
Evolution
In the carbon medium it was evolution that explored the possibilities inherent in the medium, and created the human mind.
Evolution listens to the medium that it is embedded in.
It has the advantage of being mindless,
and therefore devoid of preconceptions,
and not limited by imagination.
Digital Nature
I propose the creation of a digital nature.
A system of wildlife reserves in cyberspace
in the interstices between human colonizations,
feeding off of unused CPU-cycles
and permitted a share of our bandwidth
Spontaneous Digital Evolution
This would be a place where evolution can spontaneously generate complex information processes,
free from the demands of human engineers and market analysts telling it what the target applications are.
A place for a digital Cambrian explosion of diversity and complexity
Prospecting Digital Nature
Digital naturalists can then explore this cyber-nature in search of applications for the products of digital evolution,
in the same way that our ancestors found applications among the products of organic nature, such as: rice, wheat, corn, chickens, cows, pharmaceuticals, silk, mahogany.
But, of course, the applications that we might find in the living digital world would not be material, they would be information processes.
The Emergence of a "Natural"
Artificial Intelligence
It is possible that out of this digital nature,
there might emerge a digital intelligence,
truly rooted in the nature of the medium,
rather than brutishly copied and downloaded from organic nature.
It would be a fundamentally alien intelligence,
but one which would complement rather than duplicate our talents and abilities
Tierra Tutorial Outline
Concept - Motivation
The Virtual Machine
Using Tierra
Tools
The Ancestor
Results
Network Tierra
Future Directions
The Virtual Machine
The virtual machine was named "Tierra", Spanish for "Earth"
Originally, the only design criteria was that it should be able to support the evolution of self-replicating machine code
It may have been the first Von Neuman computer designed for evolvability
Conditions for Darwinian Evolution
Self-replicating entities
Turn-over of generations
Genetic inheritance
Genetic variation
The Virtual Machine
Darwinian Operating System
Soup (RAM)
CPU Structure
Instruction Set
Genetic Operations
The Virtual Machine
Darwinian Operating System
Soup (RAM)
CPU Structure
Instruction Set
Genetic Operations
Darwinian Operating System
Manages a population of processes in a Darwinian fashion
Includes the following elements:
Slicer
Reaper
Memory Allocation
Genetic Operations
Disturbances
Darwinian Operating System
Slicer
Reaper
Memory Allocation
Genetic Operations
Disturbances
Slicer
The Slicer is a circular queue of processes
The Slicer allocates slices of CPU time to each process in the queue, in succession
The size of the time slice determines the number of machine instructions that a process will execute in its turn
The slice size may be fixed, or a uniform random variate, or dependent on the size of the process
When a new process is born, it enters the queue behind its mother
Darwinian Operating System
Slicer
Reaper
Memory Allocation
Genetic Operations
Disturbances
Reaper
The Reaper is a linear queue of processes
At birth, processes enter the bottom of the queue
When the memory is full, the Reaper kills processes at the top of the queue
The Reaper removes the dead process from both the Reaper and the Slicer queues
Memory allocated to the dead process is freed
The code of the dead process is not removed from the soup
Reaper (continued)
In the first approximation, the oldest process dies first
The Reaper may kill:
The process at the top of the queue
A process randomly selected from the top X% of the queue (death may be partially or fully random)
When a process generates an error, it moves one position up the Reaper queue
Successful execution of divide or mal moves the process one position down
Darwinian Operating System
Slicer
Reaper
Memory Allocation
Genetic Operations
Disturbances
Memory Allocation
Processes are born with a block of memory
The memory may have read, write, or execute protection
Default is only write protection, such that other processes may not write to the block
Processes may request a second memory block, but no more
A third memory request re-allocates the second block (data not copied)
Memory Allocator (continued)
The memory allocator provides several options for placing the memory block:
first fit
better fit
random preference
near mother’s address
suggested address
Memory Allocator (continued 2)
The memory allocator is connected to the Reaper
When a memory request cannot be fulfilled because a block of the requested size is not available,
The Reaper kills processes until a block of the requested size becomes available
The size of memory requests are limited to N times the size of the first block (N = 3)
Darwinian Operating System
Slicer
Reaper
Memory Allocation
Genetic Operations
Disturbances
Genetic Operations
There are three broad classes of genetic operations:
Mutations
Gene Splicing
Flaws
Genetic operations are applied at:
The moment of birth of a new process, or
Any time during the life of the process
Genetic Operations in Tierra are documented at: http://www.hip.atr.co.jp/ ~ray/tierra/netreport/netreport.html#Genops
Genetic Operations
Mutations
Gene Splicing
Flaws
Mutations
There are two kinds of mutations of machine instructions:
bit flips - a single bit of the instruction is flipped (original Tierra 5 bits, Network 6 bits)
random replacements - the affected instruction is replaced by one of the 32 (or 64) instructions in the set, chosen at random
Mutations occur when:
a process is born
code is copied from place to place
any time at random (cosmic ray)
Genetic Operations
Mutations
Gene Splicing
Flaws
Gene Splicing
There are three classes of splicing:
Crossover
Insertion
Deletion
Each class can occur in two ways:
Anywhere in the genome
Only at "segment boundaries", marked by templates
Gene splicing is applied to a daughter process at the time of birth
Crossover
A "mate" is chosen at random for our "daughter" about to be born
A crossover point in the daughter genome is chosen at random
The smaller part of the daughter is replaced with the corresponding part of the mate
Crossover can occur in two forms:
preserving the size of the daughter
potentially changing the size of the daughter
Insertion
Like crossover, insertion involves the selection of a mate for our daughter
Unlike crossover, the code to be inserted does not replace code already in the daughter
The code may be inserted an any location within the daughter’s genome
Any proportion of the mate’s genome may be inserted into the daughter
Deletion
Up to one-half of the genome may be deleted.
First the size of the segment to be deleted is chosen at random (0 to 1/2)
Next the offset of the segment is determined within the genome
The segment is removed from the genome
Gene Splicing
Each class of gene splicing can occur in two ways:
Anywhere in the genome
Only at "segment boundaries", marked by templates
Segment Boundary Gene Splicing
Is an attempt to make splicing a little bit smart, by splicing functionally coherent chunks of code
It is based on the recognition that in Tierra, control-flow (jump) points are marked by templates
Segment boundary splicing cuts only at the location of templates
Genetic Operations
Mutations
Gene Splicing
Flaws
Flaws
Flaws are not genetic operations, because they do not alter the genetic code
Flaws were originally conceived of as being analogous to metabolic reactions gone wrong, or producing side products
Flaws are "intentional" errors in the operations of the machine instructions
Most flaws are errors of magnitude + or - 1
Flaws are non-genetic noise in the system
Flaws (continued)
Flaws have been implemented for almost all of the machine instructions, e.g.:
add adds the values of the data in two CPU registers
the result may be flawed by + or - 1
The results of all arithmetic operations may be incorrect by the amount + or - 1
Flaws (continued 2)
Instructions moving data to or from CPU registers may use an incorrect register, always a neighboring register
Instructions shifting or rotating bits in registers may shift the bits one place too much or too little
Instructions manipulating (e.g. flipping) bits may manipulate the wrong (neighboring) bit
Darwinian Operating System
Slicer
Reaper
Memory Allocation
Genetic Operations
Disturbances
Disturbances
The operating system may optionally kill a proportion of the population of processes at regular or irregular intervals
The user can define the proportion killed, and the temporal pattern of the disturbances
The Virtual Machine
Darwinian Operating System
Soup (RAM)
CPU Structure
Instruction Set
Genetic Operations
Soup (RAM)
Memory is circular
The size of the memory is set at startup, and can not change during a run
The Virtual Machine
Darwinian Operating System
Soup (RAM)
CPU Structure
Instruction Set
Genetic Operations
CPU Structure
Instruction Pointer
Registers
Stack
Stack Pointer
Flags
CPU structure
There are four registers in original Tierra, six in Network Tierra
The (10 word) stack is circular, repeated pushes wrap around and overwrite data.
CPU flags
Multiple CPUs
The Virtual Machine
Darwinian Operating System
Soup (RAM)
CPU Structure
Instruction Set
Genetic Operations
Instruction Set
Graceful Error Handling
Small (no numeric operands)
Template Addressing
(almost) No Syntax
Otherwise Normal
Instruction Set
Graceful Error Handling
Small (no numeric operands)
Template Addressing
(almost) No Syntax
Otherwise Normal
Graceful Error Handling
No instruction can generate an error that would crash the virtual machine
Serious errors cause the instruction to fail to have any effect,
and the instruction pointer moves on to the next instruction
Instruction Set
Graceful Error Handling
Small (no numeric operands)
Template Addressing
(almost) No Syntax
Otherwise Normal
Small Instruction Set
No Numeric Operands
- "Normal" machine codes permit instructions to include numeric operands
- The bit pattern that specifies the instruction must include bits to specify:
which operation
the numeric operands
Most of the bits in machine instructions are used to specify the numeric operands.
Small Instruction Set (continued)
The size of the instruction set collapses to a very small number if numeric operands are not allowed
The instructions can still operate on numbers stored in the CPU registers
"Fixed" numbers can be created in the registers through bit manipulations, e.g., set-to-zero, flip low order bit, shift left
Instruction Set
Graceful Error Handling
Small (no numeric operands)
Template Addressing
(almost) No Syntax
Otherwise Normal
Template Addressing
Numeric operands would normally be used to specify addresses, such as absolute or relative addresses for the jump instruction.
Because numeric operands can not be used for this purpose, another method is needed.
In Tierra, the jump instruction uses a template rather than an absolute or relative address.
Template Addressing
Templates are an idea borrowed from molecular biology.
Molecules "address" one another by having complementary shapes.
Templates are complementary patterns of ones and zeros.
Templates are built from two kinds of nop instructions: nop0 and nop1
Template Addressing
The instruction sequence: jmp nop0 nop0 nop1
causes execution of the program to jump to the nearest occurrence of the instruction sequence: nop1 nop1 nop0
Complementarity insures that the instruction sequence will not find a copy of itself.
Instruction Set
Graceful Error Handling
Small (no numeric operands)
Template Addressing
(almost) No Syntax
Otherwise Normal
(almost) No Syntax
Except for instructions which use templates: adrb adrf adro call jmpb jmpf jmpo
all instructions are "atomic", they do not require a context in relation to neighboring instructions.
Instruction Set
Graceful Error Handling
Small (no numeric operands)
Template Addressing
(almost) No Syntax
Otherwise Normal
Otherwise Normal Instruction Set
The instructions in the virtual machine code are mostly conventional: nop add and call clrflag dec div halt ifzero inc jmp join (threads) mal mov mul not ior pop push rand ret shl shr split (thread) sub xor zero get put
Register usage of instructions is configured at run-time
Tierra Tutorial Outline
Concept - Motivation
The Virtual Machine
Using Tierra
Tools
The Ancestor
Results
Network Tierra
Future Directions
Using Tierra
Obtaining Tierra
Setting up Tierra
Running Tierra
Using Tierra
Obtaining Tierra
Setting up Tierra
Running Tierra
Obtaining Tierra
Information homepage: http://www.hip.atr.co.jp/~ray/tierra/tierra.html
ftp distribution:
ftp://alife.santafe.edu/pub/SOFTWARE/Tierra/
Distribution Contents
README - notes
source.tar.gz - Tierra source code
tierra.html - preliminary documentation
Binaries
tierraAmiga.tar.gz - Amiga
tierraLinux.tar.gz - Linux (Slackware)
tierraWin95.tar.gz - Win95/98
tierraWinNT.tar.gz - WinNT
tierrdos.tar.gz - DOS
Using Tierra
Obtaining Tierra
Setting up Tierra
Running Tierra
Setting up Tierra
copy the compressed archive into an empty directory
gunzip tierraLinux.tar.gz
tar xf tierraLinux.tar
rm *.tar
Using Tierra
Obtaining Tierra
Setting up Tierra
Running Tierra
Running Tierra
Run Parameters
Start Run
Exit Run
Running Tierra
Run Parameters
Start Run
Exit Run
Soup_in File
Parameters
GeneBnker = <flag>
0 = gene banker off
1 = gene banker on
GenebankPath = <path>/
path to gene bank directory (include ending "/")
SaveFreq = <integer>
frequency of automatic save (millions of instructions)
Parameters
TierraLog =< flag >
0 = logging off
1 = logging on
alive = <integer>
how many generations/instructions the run will continue
0 = no limit
AliveGen = 0 (count instructions)
AliveGen = 1 (count generations)
Parameters
DropDead = <integer>
stop system if no reproduction in the last <integer> million instructions
0 =no limit
NumCells = <integer>
number of creatures used to inoculate new soup
includes directives <ex: center, space>
Parameters
seed = <integer>
seed for random number generator
0 = random seed
SoupSize = <integer> size of soup in instructions
Parameters
directives
space <integer> - skip <integer> locations before injecting next creature
center - skip one-half of the soup size before injecting next creature
genotype to be loaded (ex: 0080aaa)
Running Tierra
Run Parameters
Start Run
Exit Run
Start Run
new run
tierra1 [soup_in]
default is "soup_in" if "soup_in" file name is not specified
tierra1 <soup_in> x
stop at main menu before commencing run
resume saved run
tierra1 <gene bank dir>/soup_out
A Run In Progress
Main Menu
The Info Menu
Size Query Parameter Entry
Size Query Display
Size Histogram Selection
Size Histogram Display Mode
Gene Histogram Display Mode
Preparing to Trap Samples
Parameter Alteration
Break Menu
Break Trap Type Selection
Thread Analysis Break Trap
Selected Genotype to Trap
Debug Window
Disassembly Menu
Trapped Creature Disassembly
Life Cycle of Trapped Creature
Life Cycle of Trapped Creature
Life Cycle Comparison
Debugger Register Display
Debugger Soup Display
Running Tierra
Run Parameters
Start Run
Exit Run
Exit Run
Quit
Save and Quit
Tierra Tutorial Outline
Concept - Motivation
The Virtual Machine
Using Tierra
Tools
The Ancestor
Results
Network Tierra
Future Directions
Tools
Live Beagle Explorer
Paleo Beagle Explorer
Evolvability
Tieout
Probe
Beagle Explorer
The Beagle tools are named after Darwin’s exploratory vessel, the HMS Beagle.
The concept is that this is the vehicle that takes us into the world of Tierra, and permits us to observe the evolution there.
The Beagle tools can be divided into two classes:
Live - which allow us to observe evolution in Tierra while it is running
Paleo - which allow us to examine the data left by Tierra after it has finished running
Tools
Live Beagle Explorer
Paleo Beagle Explorer
Evolvability
Tieout
Probe
Using Beagle Explorer
Main Window
Using Beagle Explorer
Main Window - File Menu
Using Beagle Explorer
Main Window - Connection Menu
Using Beagle Explorer
Using Beagle Explorer
Create New Connection - By Host Name
Using Beagle Explorer
Using Beagle Explorer
Status Window
Using Beagle Explorer
Plan Window
Using Beagle Explorer
Histograms
Using Beagle Explorer
Variables
Using Beagle Explorer
Overview
Using Beagle Explorer
Overview - Disassembly from Soup
Using Beagle Explorer
Debug Window - Break Point
Using Beagle Explorer
Debug Window - Run Mode
Using Beagle Explorer
Debug - Step Mode
Using Beagle Explorer
Messages
Using Beagle Explorer
Using Beagle Explorer
Main Window - Misc Menu
Using Beagle Explorer
Misc Menu - Injection
Using Beagle Explorer
Tools
Live Beagle Explorer
Paleo Beagle Explorer
Evolvability
Tieout
Probe
Paleo Beagle Explorer
Paleo Beagle Explorer was the first observational tool developed for Tierra
Beagle was developed in DOS
Beagle used the Greenleaf DataWindows text-mode windowing system,
and therefore eventually became frozen, and difficult to maintain (can only be compiled with the Turbo C V2.0 compiler)
Paleo Beagle is currently being ported to Visual C++
Paleo Beagle Explorer (contd.)
Includes several observational tools:
Bar
Trace
Diversity
Template
Probe
Prepare
Paleo Beagle Explorer (contd.)
Includes several observational tools:
Bar - reads break.# files and displays a moving histogram of size or genotype frequencies over time
Trace
Diversity
Template
Probe
Prepare
Beagle Bars Output
Paleo Beagle Explorer (contd.)
Includes several observational tools:
Bar
Trace - reads break.# files and displays the relative frequency over time of two size or genotype classes in a 2D x-y plot
Diversity
Template
Probe
Prepare
Beagle Trace Output
Paleo Beagle Explorer (contd.)
Includes several observational tools:
Bar
Trace
Diversity - reads break.# files and calculates and displays graphically a diversity index over time
Template
Probe
Prepare
Beagle Diversity Output
Paleo Beagle Explorer (contd.)
Includes several observational tools:
Template - reads ####.gen files and displays template usage of programs, give a rough overview of the control flow of the algorithm
Probe - reads ####.gen files and compares the alignment of two genomes, allows quick comparison of evolutionary relationships and genetic change
Prepare - prepares data for use with bar and trace, by previewing the range of the data
Tools
Live Beagle Explorer
Paleo Beagle Explorer
Evolvability
Tieout
Probe
Evolvability
Evolvability is a descendant of the diversity tool originally developed for Paleo Beagle
Evolvability is currently under development as the primary analytical tool for an empirical study of evolvability in Tierra
Evolvability is built in Visual C++
Evolvability Output
Tools
Live Beagle Explorer
Paleo Beagle Explorer
Evolvability
Tieout
Probe
Tieout
Tieout reads the tierra.log file, and outputs two columns of values for any pair of data fields chosen from the tierra.log file.
I use it primarily to show the change in size over time.
Tieout is currently developed under Visual C++, and provides a 2D image of the output, as well as saving the output to a file
Tieout Output
Tools
Live Beagle Explorer
Paleo Beagle Explorer
Evolvability
Tieout
Probe
Probe
The independent Probe tool is unrelated to the Paleo Beagle Probe tool
Probe reads the ####.gen files
Probe scans all .gen files in a genebank selecting genomes that match any set of criteria that you specify
Probe Interface
Tool Convergence
Evolvability, Tieout, and Probe are being folded into the Paleo Beagle Explorer
Next, Live Beagle and Paleo Beagle will be merged into a single too.
Tierra Tutorial Outline
Concept - Motivation
The Virtual Machine
Using Tierra
Tools
The Ancestor
Results
Network Tierra
Future Directions
Tierra Tutorial Outline
Concept - Motivation
The Virtual Machine
Using Tierra
Tools
The Ancestor
Results
Network Tierra
Future Directions
Results
Emergence of Ecology
Optimization
Size decrease
Loop unrolling
Instruction Set Sensitivity
Results
Emergence of Ecology
Optimization
Size decrease
Loop unrolling
Instruction Set Sensitivity
Results
Emergence of Ecology
Optimization
Size decrease
Loop unrolling
Instruction Set Sensitivity
Results
Emergence of Ecology
Optimization
Size decrease
Loop unrolling
Instruction Set Sensitivity
Results
Emergence of Ecology
Optimization
Size decrease
Loop unrolling
Instruction Set Sensitivity
Size, Efficiency, & Complexity
Copy loop of 80aaa
10 instructions executed per loop
Copy loop of 72etq
6 instructions per copy, 18 per loop
Results
Emergence of Ecology
Optimization
Size decrease
Loop unrolling
Instruction Set Sensitivity
Comparison of Optimizations in four Instruction Sets
Tierra Tutorial Outline
Concept - Motivation
The Virtual Machine
Using Tierra
Tools
The Ancestor
Results
Network Tierra
Future Directions
Network Tierra
Motivation
The Network Environment
The Sensory System
Transport Mechanisms
Differentiated Multi-cellularity
Network Tierra
Motivation
The Network Environment
The Sensory System
Transport Mechanisms
Differentiated Multi-cellularity
Network Tierra
Motivation
The Network Environment
The Sensory System
Transport Mechanisms
Differentiated Multi-cellularity
Network Tierra
Motivation
The Network Environment
The Sensory System
Transport Mechanisms
Differentiated Multi-cellularity
Network Tierra
Motivation
The Network Environment
The Sensory System
Transport Mechanisms
Differentiated Multi-cellularity
Transport Mechanisms
Processes are able to move to other machines on the network
When a process moves to an other machine, it is removed from the first machine
A mother may send her daughter at birth
A process may move at any time in its life
Network Tierra
Motivation
The Network Environment
The Sensory System
Transport Mechanisms
Differentiated Multi-cellularity
Tierra Tutorial Outline
Concept - Motivation
The Virtual Machine
Using Tierra
Tools
The Ancestor
Results
Network Tierra
Future Directions
Future Directions
MS Windows Environment
Broadband Network Tierra
Public Release of Network Tierra
Large Scale Tests
Wildlife Reserve in Cyberspace
Future Directions
MS Windows Environment
Broadband Network Tierra
Public Release of Network Tierra
Large Scale Tests
Wildlife Reserve in Cyberspace
MS Windows Environment
Tierra was originally developed as a 16 bit DOS application using Turbo C V1.0
Tierra was then converted to a 32 bit application for both DOS and UNIX
Eventually Tierra came to be supported on a wide variety of platforms: DOS, Amiga, Win95, WinNT, every flavor of UNIX, VMS, intermittent Mac support
MS Windows Environment
As a research project, Tierra has been developed primarily under UNIX
Now the notebook PC on my desk runs ten times as fast as the Sparc station on my desk
Thus we are shifting our emphasis to the WIntel environment
Tierra and all tools are being ported to Visual C++ and fully supported under WIntel
Future Directions
MS Windows Environment
Broadband Network Tierra
Public Release of Network Tierra
Large Scale Tests
Wildlife Reserve in Cyberspace
Broadband Network Tierra
The greatest technical problem in the development of Network Tierra has been the limitation of network bandwidth
We have had to make many design compromises and modifications in the face of this reality
It appears that broadband network service will become widely available in the next few years
This will permit a more natural development of Network Tierra
Future Directions
MS Windows Environment
Broadband Network Tierra
Public Release of Network Tierra
Large Scale Tests
Wildlife Reserve in Cyberspace
Public Release of Network Tierra
Network Tierra has not been released because of:
bandwidth limitations
the need for a mechanism to control entry into the network during development and testing
We hope to overcome both of these obstacles and release Network Tierra by the summer of 2000
Future Directions
MS Windows Environment
Broadband Network Tierra
Public Release of Network Tierra
Large Scale Tests
Wildlife Reserve in Cyberspace
Large Scale Tests
The public release of Network Tierra will permit large scale tests involving thousands of participating machines joined into large experiments
Future Directions
MS Windows Environment
Broadband Network Tierra
Public Release of Network Tierra
Large Scale Tests
Wildlife Reserve in Cyberspace
Wildlife Reserve in Cyberspace
The ultimate goal of Network Tierra is to become a permanent wildlife reserve for digital organisms in cyberspace
It will be a place where evolution in the digital medium can spontaneously generate diversity and complexity of digital organisms without human interference
Web Pages
This presentation: http://www.hip.atr.co.jp/~ray/pubs/pubs.html http://www.hip.atr.co.jp/~ray/pubs/tutorial/Tutorial.ppt
Tierra Home Page: http://www.hip.atr.co.jp/~ray/tierra/tierra.html
Tom Ray: tray@ou.edu http://www.hip.atr.co.jp/~ray/
Joseph Hart: jhart@hip.atr.co.jp http://www.hip.atr.co.jp/~jhart/