ISIS
Information Science & Information Studies Program.

Computer Science
Visual Studies
72

CALENDAR
subject to change...

ALiCE:
Artificial Life,

Culture & Evolution

Simulations using Multiagent and Evolutionary Computation
Spring 2010

nick.gessler(at)duke.edu

Lab: Tu/Th 10:05 - 12:55
Perkins LINK Classroom "6"


 
fusebox
Alife Fusebox
Dawkin's Biomorphs
evol
Rob Saunder's
GenArt Evol
genetic art
John Mount's
Genetic Art IV
And the signifieds butt heads with the signifiers,
and we all fall down slack-jawed to marvel at words!
While across the sky sheet the impossible birds,
In a steady, illiterate movement homewards.
Joanna Newsome,
"This Side of the Blue"
(2004 Drag City Records).
 
Tuesday
Thursday
 
Color Code:
Notes on previous days.
Color Code:
Reasonably certain agenda.
 
Week 0

January 14

INTRODUCTION
to the course and to Borland and C++ for Windows...

Please look at a previous Course Calendar for an idea of what we will cover.

WHAT ARE ARTIFICIAL LIFE, ARTIFICIAL CULTURE AND EVOLUTIONARY COMPUTATION?
They are programs dedicated to capturing the the parallel (not serial), multiagent and multicausal (not single causal) and evolutionary (co-adaptational) processes that inhabit the world in which we live. in order to describe, understand and explain the complexities of our world.

WHAT IS A SINGLE AGENT AMONG A POPULATION OF AGENTS?
It is anything that can SENSE, THINK and ACT ("STA"). It can be a single thought amont many competing for attention. It can be a single individual among a group of individuals. It can be a single nation among the world of nations. It can be organic and biological (brains, animals, people) based on carbon. It can be robotic and technological (circuits, modules, swarms) based on silicon. It can be software blocks of code (variables, functions, event handlers) running on any computer. Our culture is a complex network of all these types of agents, each and all exhibiting some version of an "STA" architecture.

OUR COURSE:
Our course is designed to give you a critical assessment of this program informed by hands-on explorations and experiments with simulations which you will create and modify and readings which will challenge conventional wisdom. We will introduce a number of "programming challenges," small worlds representing a variety of architectures relevant to larger scientific problems. Each of these "small" worlds is an abstraction of a larger class of problems, and each may be enhanced to more closely fit real world situations. Typically, we will work with:
PROGRAMMING CHALLENGES: The Chaos Game, Cellular Automata, Spatial Growth, Segregation & Assimilation, Flocking and Crowd Behavior, Cryptology & Cryptanalysis, Evolutionary Computing
and two senses of Physical Computing (how to compute in different media and how to connect computers to the real world).

ARTS:
Video:
Karl Sims "Evolved Virtual Creatures," "Panspermia," "Liquid Selves."

CD: Leo Nunez, "Propagaciones."

CLASSROOM ROBOTICS (pending)
Parrot AR Drone
UAVP-NG - The OS Multicopter: Maidenflight of Taar…
UAVP-NG - The OS Multicopter: Onboard Video
Quadro UFO
Multikopter Developer Meeting in Zurich

"WIRED FOR WAR" ON THE GROUND:
Boston Dynamics

"WIRED FOR WAR" IN THE AIR:
12,000 semi-autonomous robotic vehicles deployed to Iraq.
Raven Drone (population 10,000)

Fire Scout Drone (population ???)
Boeing X-45 (population ???)
December 23, 2002 Predator shot down by MIG (population 20)
Predator Drone strikes insurgents (population 300)

Some 6,000 drones are operating in the military at present.

BREAK

PROGRAMMING WARMUP:
Writing a Windows application from scratch, programming on the fly...
Handout on C++ and Borland.
Borland Objects.
Variables, Functions and Event Handlers.


 
 
Explore - get to know it!
Experiment -
describe & explain it's behavior!
Enhance - add new functionality!
Enjoy -
play with it!
Week 1

January 19


PROGRAMMING CHALLENGE 0: The CHAOS Game: Halfway There
Writing a Windows application from scratch, programming on the fly...
Blocking out the code in terms of what jobs (functions) are needed to get the job done.
A traveller set out to seek his fortune in one of several towns. When he was half-way there he set up camp for the night. Not being able to convert his short-term memories to long-term ones, he awoke next morning and set out for another town. When he was half-way to this town he set up camp once again. Next morning, as before, a new town came to mind as his destination and he set out once again. And once again he stopped for the night when he was half-way there. This continued for a year (365 iterations). The question is, "is there any pattern to the distribution of the campsites that he left? What if he had continued for 10 years (3,650 iterations) or 100 (36,500 iterations)? Or more?

VCL Objects:
TForm
TPaintBox->Canvas->Pixels[x][y], OnMouseDown
TButton, OnClick

STANDING ASSIGNMENT:
Look at the examples on our SIMULATIONS pages. Run the executable to see how it behaves. Then look at the source code to see how the code dictates the application's behavior.

January 21

Video Segment: ENIGMA, on the British origins of Alan Turing's "Thinking Machine."

Cognitive Sampling - What we see and what we don't see - Spelling

Visulizing Data:
The 3 dimensions of color: Red, Green and Blue.
The Color Cube: Meaningful ways to travel around and through it.
Pathways from dark to light, from cool to hot: the gray ramp & color ramp functions.

Rendering graphics on the ->Canvas.

PROGRAMMING CHALLENGE 0: The CHAOS Game: Halfway There
Your constant friends: Programming Errors.
Pause/Pause and cursoring over variables to reveal their current values.

TEdit->Text
TTrackBar, onChange
TLabel->Caption
Some enhandements: Shading, Sonification and 3D Anaglyphs.

PROGRAMMING ENHANCEMENTS must be done on Classroom #6 machines.
EXPERIMENTS AND EXPLORATIONS may be done, in part, on any PC.
In the "Debug" folder, you will find the executable (name ending in ".exe").
This can be copied and run on any Windows PC machine.

TANDING ASSIGNMENT:
Look at the examples on our SIMULATIONS pages. Run the executable to see how it behaves. Then look at the source code to see how the code dictates the application's behavior.

Week 2

January 26

Sonifying Data:
The MIDI instruments and keyboard.
Talking to the internal MIDI device.
Scales from low to high: the MIDI ramp function.
The retro call to Beep().
Scales from low to high: the Beep ramp function.

Enhancements and Troubleshooting:
IconEdit32 - Creating your custom personal icon.
File Save and Open.
Dealing with Errors.
Course time to work on project.

PROGRAMMING CHALLENGE 0: The CHAOS Game: Halfway There
Your constant friends: Programming Errors.
Pause/Pause and cursoring over variables to reveal their current values.

January 28

Video: Scott Draves "Bombe."

PROGRAMMING CHALLENGE 0: CHAOS Game: Halfway There DUE TODAY
Participant demonstrations...

DISCURSIVE CHALLENGE 0: Ongoing Philosophy of Computation
On BLACKBOARD: due by Monday, February 8th, midnight.
"The Thinking Machine," TIME MAGAZINE, 23 January 1950.  (handed out in class)
"Public Lecture," by Marvin Minsky, ALIFE V, 16 May 1996.  (handed out in class)

A MULTIAGENT PARALLEL CELLULAR AUTOMATON
Introduction to CAs.
Catch phrase: "From simple local rules to complex global patterns of behavior."
Some examples: colored "trails," building a "computer" from the GOL.

PROGRAMMING CHALLENGE 1: Cellular Automata / Conway's Game of Life
The standing challenge is to explore, experiment, enhance and enjoy what you are doing. You can begin the exploration and experimentation phase immediately by answering such questions as:

  1. What is the relative frequency (scarcity) of various "species" of "creatures" in the GOL?
  2. For a given "creature," how does its pattern evolve when a cell in it is "killed" or a cell next to it is given "life?"
  3. Characterize the "ecology" of the GOL. How does the world "evolve" at a global level?
Week 3

February 2

In the News: Talking Sex Robot makes its appearance in Las Vegas...
(c.f."Intersex," Journal of Irreproducible Results, 19??.)

DISCURSIVE CHALLENGE 1: Ed Fredkin's "Digital Mechanics."
On BLACKBOARD: due by Monday, February 15th, midnight.The reading is "on the Web."

Cellular Automata:
Mirek's Cellebration, 1D and 2D versions, CAs in nature, when does the GOL become "stable," and the GOL as a "trap door function."

PROGRAMMING CHALLENGE 1: Cellular Automata / Conway's Game of Life
Parallel processing on a serial machine.
Representation of Space: Cellular / Raster
Representation of Time: Cinematic / Frame-by-Frame
We will begin to program the GOL from scratch, but we will cut-and-paste-in some of the more complicated functions from our Simulations pages after a light explanation of their operation....

February 4

NEWS: We are among 30 academic institutions who will receive the PARROT AR.Drone development kit mid-March.
Parrot AR Drone Movies
Parrot Corporate Website.

Letter of confirmation.

AN UPCOMING DISCURSIVE CHALLENGE:
"Evolution of Adaptive Behavior in Robots by Means of Darwinian Selection," by Dario Floreano & Laurent Keller. Public Library of Science, Biology (Januray 2010).

PROGRAMMING CHALLENGE 1: Cellular Automata / Conway's Game of Life
We'll see if we can enlarge the projection of the code we're writing...
Also, the PaintBox is too large, so let's scale the size of the array down to 100x100, change the loop boundaries to 100, and the blow up ratio from the array to the PaintBox to 5.

More jobs (functions) to be written:
computeNextWorld()
countNeighbors()
copyNextWorldToThisWorld()

it should work now...
but let's make it faster... renderChanges() and slower... TrackBarMilliseconds
and maybe we should save the world's state... saveStuff() and openStuff()
and add some buttons to introduce special creatures...
and what else...

Week 4

February 9

AUTOMATED CITY DESIGN via Conway's Game of Life
Found and Contributed by Matt Newcomb...
3D Voxels Programmed in PROCE55ING.
Very cool, it is a volumetric CA but it's got nothing specifically to do with Conway's Game of Life.

PROGRAMMING CHALLENGE 1: Cellular Automata / Conway's Game of Life
Continuing to add new functionality:
Let's make the wrap-around code a separate function.
TComboBox - To let the user specify a creature to drop onto the world.
A Boolean array for each complex creature.
TRadioGroup - Let's allow for the "High Life" rule (6 neighbors will also cause a birth).
TTrackBar - To slow things down.
What if a cell that had survived 10 iterations were immune to death?

February 11

PROGRAMMING CHALLENGE 1: Conway's Game of Life - DUE TODAY
Participant demonstrations...

PROGRAMMING CHALLENGE 2: Schelling's Segregation Model & Assimilation
We will be working with simulation version 21.
Introducing the model: Segregation-Assimilation 21:
The simulation's behavior and the underlaying code...

FOR TUESDAY:
Familiarize yourself with the simulation's behavior.
Familiarize yourself with several of the rules (how they are written and what behaviors they produce)
Write three rules of your own in pseudocode or in valid code on paper, and prepare to present them and turn them in on Tuesday.

Week 5

February 16

PROGRAMMING CHALLENGE 2: Adding Assimilation to Segregation
We go 'round to room in search of new ideas for interesting rules...

February 18

PROGRAMMING CHALLENGE 2: Adding Assimilation to Segregation
Continued...

Week 6

February 23

PROGRAMMING CHALLENGE 2: DUE TODAY
Participant Presentations...

PROGRAMMING CHALLENGE 3: Evolution - The Travelling Ferenghi Problem
Introduction to Evolutionary Computation (EP, GA and GP)...

Reproduction (asexual, sexual, multisexual and ???)
Inheritance with variation (mutation and recombination)
Selection (the fitness function; artificial and natural selection)

February 25

PROGRAMMING CHALLENGE 3: Evolution - The Travelling Ferenghi Problem
An instance of Evolutionary Programming (use whatever representation best fits the problem).
Representing REPRODUCTION (asexual with some choices in parent/child ratios).
Representing INHERITANCE (reverse, shuffle, rotate, sort).
Representing FITNESS (shortest path with qualifiers and penalties).
Adding a 3rd dimension...

DISCURSIVE CHALLENGE 2: Persons in Artificial Life and Evolutionary Computation
Due, in writing on paper, on Tuesday...
Films: "Artificial Life," VPRO Amsterdam. Karl Sims' "Galapagos."
PART ONE: Pick someone from the films, or Melanie Mitchell or Patti Maes. What are their most significant contributions to Artificial Life? Read at least one of their professional papers and write an informed critique of it.
PART TWO: What problems and questions in your chosen major or other interesting field would be amenable to solution by Evolutionary Computation? Pick one. Outline in detail how you might represent the problem, its agents, their reproduction and inheritance and how you might compute the agents' fitness. I won't ask you to write code for this, but outline the functions that you think are necessary.
PART THREE: Knowing what you do about the structure of our "Travelling Ferenghi Problem," outline how you could modify it to solve more complex selection criteria. This is a precursor to the modifications I will ask you to make to this application.
TUESDAY: Two to Three pages typed, maximum. Please keep a copy. Prepare to discuss these questions and turn it in on Tuesday.

Week 7

March 2

DISCURSIVE CHALLENGE 2: Persons in Artificial Life and Evolutionary Computation
Due, Tuesday... Class discussion of results...

PROGRAMMING CHALLENGE 3: Evolution - The Travelling Ferenghi Problem
Continued...

March 4

DISCURSIVE CHALLENGE 3: Schools of Evolutionary Computation
Reading handed out in class: EVOLUTIONARY DESIGN BY COMPUTERS, by Peter Bentley, Morgan kaufmann, San Francisco (1999). Read chapter 1 (pages 1-35). Compare and contrast these three different schools of EC:
GAs, originated by John Holland.
GPs, originated by John Koza. www.sigevo.org
EPs, originated by Lawrence & Gary Fogel www.natural-selection.com
World Congress on Evolutionary Computing (CEC). http://www.wcci2010.org/topics/ieee-cec-2010
Use as some of your examples, problems from original resources and/or conference proceedings, problems that are particularly amenable and best suited to each of the three approaches.
Due, Tuesday after break. You might also find some interesting artuments here:
Steven Bankes, www.evolvinglogic.com

PROGRAMMING CHALLENGE 3: The Travelling Concert or Ferenghi Problem
Version 10A creates 2 city types by default. The user may place cities with of up to 4 types by combining the Right and Left mouse clicks (how to do it) with the pressed and not pressed Shift key. Any distribution of cities may be reassigned 4 types randomly, or geographically by quadrant or by vertical bar. Type colors will NOT show if "ANY" is chosen, since with that option, city type is irrelevant. Fitness preference can be assigned for visiting different or same types of cities in sequence, or visiting cities in rank descending order (e.g. 3, 2, 1, 0). Users can add new rule-based fitness functions easily in the calcPathFitness() function beginning at about line 459.Try to enhance the functionality, but if you find that too daunting, shift your attention towards documenting various experiments.
Due, Tuesday after break.

 

March 9

SPRING RECESS - have fun...

March 11

SPRING RECESS - have fun...

Week 8

March 16

DISCURSIVE CHALLENGE 3: Schools of Evolutionary Computation
Due, Tuesday... Class discussion of results...

PROGRAMMING CHALLENGE 3: The Travelling Concert or Ferenghi Problem
Due, Tuesday... Class discussion of results...

PROGRAMMING CHALLENGE 4: Flocking
Introduction...

March 18

PROGRAMMING CHALLENGE 4: Flocking
Introduction & Enhancement...

Week 9

March 23

PROGRAMMING CHALLENGE 4: Flocking
Enhancement...

March 25

PROGRAMMING CHALLENGE 4: DUE TODAY
Participant demonstrations...

A simpler approach to Shift contributed by Matt.
How to create a new Window...

Introduction to Real-World computing:
The world of sensors and actuators...

Week 10

March 30

PROGRAMMING CHALLENGE 5: Physical Computing
Introduction...


Introduction...

April 1

PROGRAMMING CHALLENGE 5: Physical Computing
Enhancement...

Week 11

April 6

PROGRAMMING CHALLENGE 5: Physical Computing
Enhancement...

April 8

PROGRAMMING CHALLENGE 5: Physical Computing
Enhancement...

Week 12

April 13

PROGRAMMING CHALLENGE 5: Physical Computing
Project Presentations...

Introduction to Cryptology:
Substitution ciphers and keys...

Discursive Challenge 4, Part 1:
Decipher the 1907 Encripted Coshocton Post Card...
Turn in your working notes as well as your solution!

April 15

We meet in my laboratory in the Smith (Tobacco) Warehouse, near East Campus. Enter through Bay 11. Take the elevator or stairs to the 2nd floor. Go through the door to Bay 12. The lab doors will be open.

Some challenges in cryptology and cognitive artifacts.

Discursive Challenge 4, Part 2:
TBA...

Week 13

April 20

Come early if you missed Part 2 and you can complete it before class.

Discursive Challenge 4,
DUE TODAY.
Solution...

Controversy surrounding the USS Liberty, codename "Rockstar:"
Declassified documents
from the NSA on the Attack on the USS Liberty.
Wikipedia on the USS Liberty Incident.

DVD Excerpts on the Significance of the Enigma Machine in the history of computing.

Discussion of and Work on Course Projects...

April 22

Work on Course Projects...

Week 14

April 27 - Last Class

Coffee, cookies & refreshments:

Course evaluations:
Supplementary questions:

Course Project Presentations...

!!! Have a Great Summer !!!

No Final

No Final

No Final