<<

An Introduction to Agent-Based Modeling Unit 8: History of ABM and Classic Models

Bill Rand Assistant of Business Management Poole College of Management North Carolina State University Unit 8 Overview

• Cellular Automata • Genetic Algorithms and CAS • Logo • Object-Oriented Programming • Parallelism • Graphics John von Neumann

• Helped develop one of the first computers, ENIAC • Wanted to develop self- replicating machines • Collaborating with Stanislaw Ulam create Cellular Automata • developed the Universal Constructor with 29 states John Conway and the Game of Life

• Used a Go board to investigate CA • Game of Life: 1. If a cell has three neighbors it becomes alive (birth) 2. If it has two or three neighbors it stays alive (persistence) 3. Any other combination means the cell dies (overcrowding or loneliness) • Self-reproducing and Universal Computer Arthur W. Burks and Stephen Wolfram

• Arthur W. Burks carried on von Neumann’s work • Theory of Self-Reproducing Automata (1966) • Stephen Wolfram • Conducted a census of the 1-D CA rules with radius = 1 • uniform, random, cyclical, and complex • made the claim that the whole world could be modeled using CA • Also created Mathematica Relationship between CA and ABM

• Developers of early ABM were aware of CA • No evidence that early ABMers though of their models as CA • The setups are similar • each cell can be viewed as an agent • von Neumann’s models were first computational models of biological systems • CA scheduler is similar • Wolfram’s classification is similar to current attempts to classify complex systems John Holland

• Inspired by Hebb’s ideas about neurons and Rosenblatt’s work on the perceptron, Holland decided to build a computational model of evolutionary adaptation • In 1975 published Adaptation in Natural and Artificial Systems, describing the Genetic Algorithm • Holland was also influenced by Samuel’s work on checkers, and started to think about how to create adaptive agents Early SFI and Economic Modeling

• Holland became involved in the Santa Fe Institute around 1985 • In 9/1987, he presented some of his ideas about adaptive agents at a meeting of the economy as a complex adaptive system • worked with Brian Arthur, Blake LeBaron, Richard Palmer, and Paul Tayler to create the Santa Fe Artificial Stock Market • in 8/1986, John Reed, CEO of Citicorp met at SFI with Ken Arrow, Brian Arthur, and John Holland together to think about new ways to model economics, led to Swarm • John Miller and John Holland publish the 1991 paper on “Artificial Adaptive Agents in Economic Theory” • Many of these models were inspired by Herbert Simon’s work on Bounded Herbert Simon Rationality The BACH Group

• Holland was also a member of a group of researchers at Michigan known as the BACH group: • Arthur Burks, Robert Axelrod, Michael Cohen and John Holland • This group also inspired two prominent graduate students who continued to work in this space: • Melanie Mitchell and Stephanie Forrest Holland and Hidden Order

• Working with this group, Holland started to develop the classifier system • This led to the idea of a world where never- ending novelty could evolve, Echo • This was described in a Stanislaw Ulam lecture, which became the book, Hidden Order (1993) and Logo

• Studied with Piaget in Switzerland • In the late 1960s, Seymour Papert was appointed co- director of MIT’s Artificial Intelligence Lab with • Papert, Feurzeig, Borrow and Solomon created Logo in 1969 • Logo is based on Lisp, but was designed to give children access to programming The Turtle

• The turtle was developed post-Logo to aid students in learning the language • The turtle is a “body-syntonic” object • The early turtles were mechanical and tethered to the computer, but soon became virtual and visual • Logo was introduced to schools and millions of children participated in using it • The Logo turtle may have been the first computational agent in wide use NetLogo and Logo

• NetLogo took much of its syntax from Logo • Also borrowed the slogan, “low threshold, high ceiling” • The influence of Logo is not only in NetLogo, but many ABM languages • The idea of visualizing agents moving around a 2-D space is drawn from Logo The Expansion of the Function

• A function in a was originally something that took a number as an input and gave a number as an output • John McCarthy’s work on Lisp (1958) expanded the notion of function, building upon Alonzo Church’s lambda calculus (1932) by allowing functions to take other functions as inputs • However, Lisp still kept functions and data separate, e.g., you needed different addition operators for different data types The Creation of Object-Oriented Programming

• Dahl and Nygaard developed simulations for maritime ships, and created the notion of a “class”, which was an object that combined data and functions in the language • But the term “object-oriented programming” was not used until the development of by and colleagues (1972) Alan Kay OO and ABM

• Agents are often instantiated as classes (or what NetLogo calls breeds) • The notion of object-oriented programming is that these classes can contain different data fields, and different functions can be applied to them Actor Model

• Carl Hewitt at IBM (1973) developed the Actor model of programming (formalized by Bishop and Steiger) • This model simplified Smalltalk and Simula and was influenced by Papert’s work on body- syntonic reasoning and Kay’s work on OO • Actors can only do a few things: send / receive messages, create other actors, manipulate messages • Each actor has an address the only way to message an actor is to know their address • Each actor has a limited number of addresses it can know • Actors are inherently concurrent OO Programming

• Eventually all of this resulted in the modern OO languages • C++, Objective-C, Cocoa and the ABM platforms • Actors influenced ABM in many ways: • an emphasis on concurrent computation • local interactions • bounded interaction spaces • dynamic • the notion of behaviors and properties of independent entities Parallelism

• In the 1980s developed an architecture for a parallel computer he called a “connection machine” • Unlike traditional von Neumann machines there wasn’t a single CPU, but instead thousands of low-cost, low-capacity processors connected together • Used a framework known as Single Instruction, Multiple Data (SIMD) • Hillis founded Thinking Machines to commercialize this product Parallel Programming Languages

• By the end of the 80s special programming languages, such as StarLisp and C-Star were developed to program this machine • CM-2 had 65,536 processors • Data was spread across the processors • Document retrieval and object recognition were early successes • Very useful for cellular automata • StarLogo (an early form of ABM) was written in StarLisp Particle Systems

• Early on in , visualizations were accomplished by using large flat surfaces and textures • But surfaces don’t work well for smoke, stars, light, or even birds • Needed a point representation (Reeves, 1983), which came to be known as particle systems Relationship to ABM

• Particles systems also exhibit emergent phenomenon • They exhibit agent interaction in the sense that when many particles come together it looks like an object Boids

• Particle Systems partially inspired Craig Reynolds to develop the Boids model • Three simple rules create the flocking patterns • Shortly after Reynolds presented Boids at SIGGRAPH ’87, Chris Langton held the first organized workshop on Artificial Life • Artificial Life has the goal of creating life-like objects in a computer and draws on Boids, CA, and GAs Unit 8 Overview

• Cellular Automata • Particle Systems • Adaptive Agents and • Unit 8 Slides Genetic Algorithms • Unit 8 Test • Logo and the Turtle • Object-Oriented Programming • Parallelism