CALENDAR
subject to change on
short notice

Artificial Culture
Simulation using Multiagent
& Evolutionary Computation

Human Complex Systems 110
Winter 2008

gessler@ucla.edu


 

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).

BOOKS

MOVIES

 

Please refer to previous course calendars. Topics will be similar.

The theme of this course is how to represent social realities in computer simulations.
How do we construct more reliable, robust and comprehensive representions of the world?
How do we describe, understand and explain cultural phenomena?
Think about the advantages and shortcomings of the following representational media:
Thoughts.
Language.
Writing.
Art, performance, graphics, diagrams, pictures, cinema.
Mechanical, hydraulic and analog computation.
Computation as we think of it today.
Think about different media of representation as cognitive/technological adaptations to our social and physical environments...

 
 
Tuesday
Thursday
Notes
 
I will be attending a National Science Foundation meeting in Arlington.
I'll be back the beginning of Week 2.
For those on the waiting list: Some students will drop early in the course. Usually we can accommodate everyone who is seriously interested in the course. We may have extra laptops available in Week 2 and we have other options...
 
Week 1

January 8

Jessica or Dafna from CLICC will introduce today's discursive challenge.

In-Class Film: The Thirteenth Floor (100 minutes).
Re-Play of Scene
(Douglas & Jane meet).

Discursive Challenge 0: The Thirteenth Floor.
(Cognitive Load and Computational Efficiency)
Everything we know about the world reaches us through some form of representation or simulation. Whether it is an optical image projected on our retina, spoken language, written words, performance, film or virtual reality, each medium of representation captures some aspects of reality and leaves out others. In a sense, we already live withing a simulation of our own construction. Think about how computer simulation differs from traditional discursive descriptions, understandings and explanations...
Part A: Answer the questions related to Douglas and Jane's first encounter. Please replay this scene at the end of the movie. I will leave two VHS videos: one cued to the beginning, the other cued to this scene.
Part B: Think about how real computational artificial worlds and simulations are constructed? Since one cannot simulate everything all at once, what are the shortcuts and "cheats" that are brought to light in these fictional accounts? Are they realistic? What are the costs and benefits of including and excluding different kinds of information in a simulation? What are the philosophical and computational issues that the authors are confronting? Give the authors some artistic license - there are profound questions lurking in fiction. (Two to four single-spaced well-though-out pages.)

January 10

Dave Neibuhr, Research Associate, will introduce today's materials:
Our Web Resources: Calendar, Simulations, Index
SimCity Societies - Consumer Electronics Show
Computer Programming - what is it?

Reading Handout: Simulation and C++ Programming Guide.
In-Class Film: Artificial Life
(90 minutes).
In-Class Internet Research: John Koza, David Fogel.

Discursive Challenge 1: Some Major Players.
In consideration of the interviews in the film, plus Internet Research you can do on John Koza and David Fogel, what are the major philosophical, theoretical and practical contributions of, and issues raised by, each of these researchers? How is their work interrelated? What do they each have to do with "the sciences of complexity" and "human complex systems?" Yes, one filmed interview is in Dutch, but listen to it and see what you can figure out - and/or do a Web search on this fellow's work. (Two to four single-spaced well-though-out pages.)

 

 
I'm back. We'll start having some fun with simulations...
 
Week 2

January 15

Please bring $20 for the course handouts.

Nick Gessler finally appears - we get our hands dirty writing code!

Discursive Challenges 0 and 1 due today.
Discussion...

Handout: Programming Details.

We start by writing our first simulation using Borland Development Suite 2006 C++. Bring your USB memory and writable CDs.

Programming Challenge 0: Halfway There

Visual Component Library (VCL) objects, properties and events.
Overview of Borland and C++ language elements.

January 17

Programming Challenge 0: Halfway There

We continue writing our first simulation using Borland Development Suite 2006 C++. Bring your USB memory and writable CDs.

Bits, Bytes and ASCII Code.
ASCII in Binary, HexaDecimal & Decimal symbols.
SynEdit - a look at .txt and .doc files.
IconEdit32 and PhotoShop.
Functions: Parameters and Return Values.
Revealing more information through visualization.
Color Theory: The Color Cube & ColorRamp().

Two enhancements on our WebSite:
"Bent" and "Sonified."

 
Week 3

January 22

COMMON PROBLEMS:

SaveProjectAs is used ONLY ONCE at the beginning of an application that you start from scratch.

Double-Click on Project1.bdsproj to open Borland and continue working on your application. Click SaveAll repeatedly.

DO NOT type in or delete event-handlers by yourself. Let Borland do it.

ALWAYS use Borland with your application on the WorkSpace. NEVER use it directly with your USB memory. Transfer folders between the WorkSpace and your USB memory ONLY when Borland is CLOSED.

New components and commands:
TrackBar, Edit, RadioGroup, Sleep().
We will add a user-selectable speed and iteration counter.

Explore - get to know it!
Experiment - explain it's behavior!
Enhance - add aesthetics & functionality!
Enjoy - play with it!

ALL QUIZES CANCELLED.
INSTEAD, I WILL GIVE YOU ENHANCEMENTS TO IMPLEMENT ON YOUR OWN:

Three enhancements for you to work out on your own:
1. Option to render using gray-scale.
2. Option to compute changing "+" to "-".

3. Create one more of your own invention.

January 24

Programming Challenge 0: Halfway There
DUE TODAY.
Participant demonstrations...

Programming Challenge 1: Cellular Automata; Conway's "Game of Life"

Handout: Source Code for Conway's "Game of Life" and demonstration of several other "CA" applications on our website:

1d 2state CAs.
1d 3state CAs.
2d 2state CAs.

A generalized 2d 2state application.

Conway's "Game of Life:"
C oloring cells by their age at death.
Coloring cells by their age at birth.
Tracking population changes.
Using CAs as "trap-door" functions.

 
Week 4

January 29

Supercomputers and High Performance Computing.
Languages of choice: Fortran, C, C++.
Decomposition of complex problems into emergent hierarchies of agents.

Space: Raster (cellular, bitmapped) vs. Vector.
Time: Different "Polling" regimes: Cinematic, Random and Sequential.

Demonstration of Mirek's "Cellebration," a compendium of several hundred cellular automata.

We work with PhotoShop to create some transparent bitmap images which we will use as buttons by implementing their OnMouseClick event handlers.

In class development time...

January 31

Programming Challenge 1: Cellular Automata; Conway's "Game of Life" DUE TODAY.
Incorporate the changes that we made in class, e.g. #define, etc.
Enhance the application with several buttons which introduce new (seed) patterns on the screen.
Experiment and Explore the GOL and document your your characterization of that world in detail.
FORMAT: As usual: Cover Sheet with screen shot and executive summary. Narrative description of your characterization. Printout of the source code. Project folder on CD-ROM.

Programming Challenge 2: Segregation and/or Assimilation.
Study and document several given rule sets and the effect of changing rule sets over time with respect to the final demographic patterns they produce.
Create several new rule sets on your own and study and document their behaviors over time.
Remember that final demongraphic patterns are the result not only of specific rules, but historical changes in the rules over time.

Using a bitmap (.bmp) drawn in PhotoShop to specify the initial distrubution of agent types.

 
Week 5

February 5

An introduction to:
Beep(frequency, milliseconds)
PlaySound("filename", "", SND_ASYNC)
#include <mmsystem.h>

Modifications that could be made:
S = Sense: larger neighborhoods, memory
T = Think: more complex rule sets
A = Act: move, don't move, freeze

Sonifications: sounds that fit significant events
Visualizations: maximizing our own capacity to detect patterns.
Pattern Recognizers: facilitating our often limited capacity to detect regularities.

Example: Coding a somewhat complex rule...

February 7

BORLAND HELP, which provides information on C and C++ language elements as well as some MicroSoft API elements is located by opening:
My Computer, Social Sciences Drives, Classes, Gessler, Help and then double clicking on "bcb6.hlp".

Using a bitmap (.bmp) drawn in PhotoShop to specify geographic information which the agents can sense and respond to.

PlaySound() explained by MicroSoft
to stop a sound, call PlaySound with a null ("") as the first parameter.

 
Week 6

February 12

Participant Demonstrations (everyone) of tweaks to the segregation challenge.

Programming Challenge 2: Segregation and/or Assimilation. DUE TODAY.

Programming Challenge 3: Flocking simulations.
(schooling, herding, crowding & traffic-flow).

A User's perspective.
A Programmer's perspective - Part 1
REPRESENTATIONS:
Space: Vector
Temporal Parallelization: Serial (Random, Cinematic)
Agents: A new data structure: Classes

February 14

Flocking (schooling, herding, crowding, traffic-flow) simulations.

Discursive Challenge 2.0: (Teams)
Sign up for one of the following team investigative projects. Bring us up to date on the technology and issues surrounding. Use these links to get started, but do additional research on your own:
a) Color Printer Yellow Dot Codes
b) Ultra Violet Fluorescent Markings
c) The EURion Constellation
d) Currency Detection
e) Radio Frequency ID - current Scientific American

The categories you signed up for are shown on our Participants' Page.

A User's perspective.
A Programmer's perspective - Part 2

RULES:

 

Week 7

February 19

I will be in Arlington for my last stint at the National Science Foundation.

Complex Networks of Trust, Secrecy & Deception
Films:

The Enemy is Listening - Chapter 7 (43 minutes).
National Security Agency, Johnny Depp (50 minutes).

Discursive Challenge 2.1: (Everyone)
What were the technologies, actions, secrets, disclosures and social issues that led to the current congressional debates regarding retroactive amnesty to the major telephone companies for illegal wiretaps?

Time for you to do research and/or work on the flocking simulation.

February 21

Programming Challenge 3: Flocking simulations.
DUE TODAY.
Participant demonstrations.

Discursive Challenge 2 DUE TODAY.
Teams present their part 2.0 findings.
Discussion of cryptology and espionage.

Show and Tell:
Vietnam RFID Rock and Stick

Programming Challenge 3: Evolutionary Computation - The Evolutionary Concert Tour (a.k.a. Traveling Salesman's Problem).
Create 2-3 configurations of cities, with and without borders, which are difficult to solve. Document the course that natural selection takes to solve them and characterize & explain (with screen shots) the differences in fitness landscapes that evolved.

Discursive Challenge 3: Evolutionary Design by Computers.
Compare and contrast the four major schools of EC (genetic algorithms, evolutionary programming, evolution strategies and genetic programming). Provide a detailed example (pseudocode) of a specific social science problem and how it could be encoded in each of the four.

Alife Fusebox
Dawkin's Biomorphs
Rob Saunder's
GenArt Evol

John Mount's
Genetic Art IV

Week 8

February 26

"Numbers Stations" - Networks of trust, secrecy and deception: Espionage, Cryptology and Propaganda. The ultimate human complex systems?

Presentation on the Human Complex Systems Program.

Evolutionary Computation.
Natural (or Artificial) Selection
Reproduction with Variation
Evolution vs. Optimization

Evolution vs. Coevolution

Asexual vs. Sexual reproduction
Bisexual vs. "Orgiastic" reproduction
Mutation, recombination & crossover
random_shuffle(first, last)
rotate(first, middle, last)
reverse(first, last)

Programming Challenge 4: Evolutionary Computation. BE SURE TO:
Document your experiments (see examples on our simulations page).
Provide a algorithms (pseudocode) for sexual and orgiastic reproduction.

How to write and read a file...

FOR THURSDAY
Everyone come prepared to talk about your course project plans. Remember, you need to do a significant amount of both coding and experimentation. Start early!

February 28

Programming Challenge 4: Evolutionary Computation.
DUE TODAY.

Discursive Challenge 3: Evolutionary Design by Computers. DUE TODAY.
Compare and contrast the four major schools of EC (genetic algorithms, evolutionary programming, evolution strategies and genetic programming). Provide a detailed example (pseudocode) of a specific social science problem and how it could be encoded in each of the four.

Team presentations on:
Evolutionary Programming - David Fogel.
Genetic Programming - John Koza.
Evolvable Hardware - FPGAs (Field Programmable Gate Arrays)

Everyone:
Course project proposals! (Remember, this takes time, so pick a reasonable challenge and start early.)

Selected topics and work on course projects.

 
Week 9

March 4

SIGGRAPH 2007. Animation Theater DVD of the best in computer graphics.

Selected topics and work on course projects.

March 6

Cultural Evolution Tournament

Selected topics and work on course projects.

 
Week 10

March 11

Selected topics and work on course projects.

March 13

Project Presentations - Coffee & Cookies

 
No Final

No Final

No Final