Adam Getchell Nonlinear Physics: Modeling Chaos and Complexity

Similar documents
Agent-based Modeling

VISUAL AGENT-BASED MODEL DEVELOPMENT WITH REPAST SIMPHONY

Automatic Programming of Agents by Genetic Programming

Lee Spector Cognitive Science Hampshire College Amherst, MA 01002, USA

The calculator problem and the evolutionary synthesis of arbitrary software

1/16. Emergence in Artificial Life. Sebastian Marius Kirsch Back Close

The Repast Simulation/Modelling System for Geospatial Simulation. Andrew Crooks. CASA University College London 1-19 Torrington Place London

Control Structures. A program can proceed: Sequentially Selectively (branch) - making a choice Repetitively (iteratively) - looping

CS 354 R Game Technology

GPU-based Distributed Behavior Models with CUDA

Evolution Evolves with Autoconstruction

A SourceForge.net Project: tmans, an Agentbased Neural Network Simulator, Repast, and SourceForge CVS

Graphs, Search, Pathfinding (behavior involving where to go) Steering, Flocking, Formations (behavior involving how to go)

Python review. 1 Python basics. References. CS 234 Naomi Nishimura

Traffic Signal Control Based On Fuzzy Artificial Neural Networks With Particle Swarm Optimization

Traffic/Flocking/Crowd AI. Gregory Miranda

The calculator problem and the evolutionary synthesis of arbitrary software

Technical Game Development II IMGD 4000 (D 11) 1. having agents follow pre-set actions rather than choosing them dynamically

Robinson, A., and L. Spector Using Genetic Programming with Multiple Data Types and Automatic Modularization to Evolve Decentralized and

A *69>H>N6 #DJGC6A DG C<>C::G>C<,8>:C8:H /DA 'D 2:6G, ()-"&"3 -"(' ( +-" " " % '.+ % ' -0(+$,

then the mouse must be on location 6 (because for it to be 5 squares away in the other direction, it would have to be off the end of the world.

An Introduction to Agent Based Modeling with Repast Michael North

Argha Roy* Dept. of CSE Netaji Subhash Engg. College West Bengal, India.

COMP 202 Recursion. CONTENTS: Recursion. COMP Recursion 1

CHAPTER 2 CONVENTIONAL AND NON-CONVENTIONAL TECHNIQUES TO SOLVE ORPD PROBLEM

ENHANCING THE CONTROL AND PERFORMANCE OF PARTICLE SYSTEMS THROUGH THE USE OF LOCAL ENVIRONMENTS. Abstract

Classification Using Genetic Programming. Patrick Kellogg General Assembly Data Science Course (8/23/15-11/12/15)

Visualize ComplexCities

First Programming Language in CS Education The Arguments for Scala

INTRO TO ALGORITHMIC DESIGN

Towards practical autoconstructive evolution: self-evolution of problem-solving genetic programming systems

Lecture 8: Simple Calculator Application

CSE 307: Principles of Programming Languages

CS 1301 Exam 1 Answers Fall 2009

CS 378: Computer Game Technology

GENETIC ALGORITHM VERSUS PARTICLE SWARM OPTIMIZATION IN N-QUEEN PROBLEM

Java Programming. Atul Prakash

Ruby: Introduction, Basics

IMGD 4000 Technical Game Development II Scripting

Scala : an LLVM-targeted Scala compiler

PROGRAMMING FUNDAMENTALS

CS 1301 Exam 1 Fall 2009

Exam 1 Prep. Dr. Demetrios Glinos University of Central Florida. COP3330 Object Oriented Programming

CS 190C: Introduction to Computational Thinking

Expressive Languages for Evolved Programs and Autoconstructive Evolution

CS-141 Final Exam Review December 8, 2017 Presented by the RIT Computer Science Community

egrapher Language Reference Manual

Introduction to Bioinformatics

GENETIC ALGORITHM with Hands-On exercise

Programming Language Concepts, cs2104 Lecture 04 ( )

Under the Guidance of

CS 3360 Design and Implementation of Programming Languages. Exam 1

Mobile Robot Path Planning in Static Environments using Particle Swarm Optimization

In addition to the correct answer, you MUST show all your work in order to receive full credit.

LECTURE 17 GRAPH TRAVERSALS

Object-oriented programming. and data-structures CS/ENGRD 2110 SUMMER 2018

PLT: Inception (cuz there are so many layers)

Babu Madhav Institute of Information Technology, UTU 2015

Compositional Autoconstructive Dynamics

C and C++ I. Spring 2014 Carola Wenk

Genetic Programming of Autonomous Agents. Functional Requirements List and Performance Specifi cations. Scott O'Dell

Ruby: Introduction, Basics

Swarm Intelligence Particle Swarm Optimization. Erick Luerken 13.Feb.2006 CS 790R, University of Nevada, Reno

learning objectives learn about variables, their types and their values learn about different number representations

Computer Components. Software{ User Programs. Operating System. Hardware

1 Epic Test Review 2 Epic Test Review 3 Epic Test Review 4. Epic Test Review 5 Epic Test Review 6 Epic Test Review 7 Epic Test Review 8

Genetic Programming of Autonomous Agents. Functional Description and Complete System Block Diagram. Scott O'Dell

F# for Scientists. Jon Harrop Flying Frog Consultancy Ltd. Foreword by Don Syme A JOHN WILEY & SONS, INC., PUBLICATION WILEY

The current topic: Python. Announcements. Python. Python

CS-141 Final Exam Review December 16, 2015 Presented by the RIT Computer Science Community

Python 1: Intro! Max Dougherty Andrew Schmitt

4. Java language basics: Function. Minhaeng Lee

The Evolution of Agent-based Simulation Platforms: A Review of NetLogo 5.0 and ReLogo

Handout 9: Imperative Programs and State

PARALLEL AND DISTRIBUTED PLATFORM FOR PLUG-AND-PLAY AGENT-BASED SIMULATIONS. Wentong CAI

[CHAPTER] 1 INTRODUCTION 1

CS Lecture 18: Card Tricks. Announcements. Slides by D. Gries, L. Lee, S. Marschner, W. White

Modeling and Simulating Social Systems with MATLAB

On Academic Dishonesty. Declarative Computation Model. Single assignment store. Single assignment store (2) Single assignment store (3)

CrowdMixer: Multiple Agent Types in Situation-Based Crowd Simulations

Playing Music by Conducting BOID Agents a Style of Interaction in the Life with A-Life

MIDTERM EXAM (Solutions)

COMP 102: Test August, 2017

Parsing Scheme (+ (* 2 3) 1) * 1

15.1 Origins and Uses of Ruby

Introduction to Computational Modeling of Social Systems

What is an algorithm?

CS210 Project 5 (Kd-Trees) Swami Iyer

Program Representations

1 Lab + Hwk 5: Particle Swarm Optimization

Introduction to Python (All the Basic Stuff)

Lecture 7. SchemeList, finish up; Universal Hashing introduction

Language Proposal: tail

CSE450. Translation of Programming Languages. Lecture 11: Semantic Analysis: Types & Type Checking

CHAPTER 1 INTRODUCTION

Eight Ceylon Idioms. Gavin King - Red Hat profiles.google.com/gavin.king ceylon-lang.org

CSC 1351: Quiz 6: Sort and Search

Introduction to Python

Notes from a Short Introductory Lecture on Scala (Based on Programming in Scala, 2nd Ed.)

Kyrre Glette INF3490 Evolvable Hardware Cartesian Genetic Programming

Transcription:

Adam Getchell Nonlinear Physics: Modeling Chaos and Complexity

What is an Agent? Historically related to the Von Neumann machine, as later improved by Stanislaw Ulam into the first agentbased device the cellular automata Agents have: Activity Autonomy Heterogeneity

Agent Activity Goal-direction Reactivity/Perceptivity to its surroundings (model) Mobility: Able to roam the model space independantly Bounded Rationality (imperfect information) Interacts/exchanges information with other agents, which may in turn cause: Adaptation: Change in behavior based on interactions with the model or other agents

What is a Model? import breve class mycontrol( breve.control ): def init ( self ): breve.control. init ( self ) self.walkershape = None mycontrol.init( self ) def getwalkershape( self ): return self.walkershape def init( self ): print '''Setting up the simulation.''' self.pointcamera( breve.vector( 0, 0, 0 ), breve.vector( 0, 60, 0 ) ) self.walkershape = breve.createinstances( breve.sphere, 1 ).initwith( 1 ) breve.createinstances( breve.randomwalker, 200 ) breve.mycontrol = mycontrol class RandomWalker( breve.mobile ): def init ( self ): breve.mobile. init ( self ) RandomWalker.init( self ) def init( self ): self.setshape( self.controller.getwalkershape() ) self.setcolor( breve.randomexpression( breve.vector( 1.000000, 1.000000, 1.000000 ) ) ) self.move( breve.randomexpression( breve.vector( 0.100000, 0.100000, 0.100000 ) ) ) def iterate( self ): self.setvelocity( ( breve.randomexpression( breve.vector( 60, 60, 60 ) ) - breve.vector( 30, 30, 30 ) ) ) breve.randomwalker = RandomWalker # Create an instance of our controller object to initialize the simulation mycontrol()

Tools and Languages in 2008 Program Language(s) Description Swarm Objective-C, Java Agent modeling library, dated, last release version 2.2 February 2005 RepastJ Java Based on Swarm, written specifically in Java RepastPy Python Friendly GUI, uses Python for scripting, limited Repast.NET C#, VB.NET Leverages.NET framework, doesn t work with Visual Studio 2008 Repast Simphony Java Full-featured, uses Eclipse IDE, can be difficult to setup MetaABM Java Full-featured, uses Eclipse IDE plus own GUI, designed to use standard model file that can work with other tools (Repast, Weka, VisAD, MatLAB), can be difficult to setup Breve Steve, Python, Push Fast, easy to use 3d simulation environment targeted towards physics and artificial life

RepastPy -- Model Simple GUI which generates Java classes

RepastPy Agent Simple Python scripting for behaviors

Repast Simphony Uses Java + Groovy to compile an application

Boids A kind of 3D Life simulation producing chaotic behavior. The rules are: 1. Boids try to fly towards the center of mass of neighboring boids (usually, the perceived CoM with respect to that particular boid) 2. Boids try to keep a small distance away from other objects (including other boids) 3. Boids try to match velocity with near boids (perceived velocity of neighbors)

A Simphony of Boids

breve basic Controller/Agent structure (Python) import breve class HelloWorld( breve.control ): def init ( self ): breve.control. init ( self ) def iterate( self ): print '''Hello, world!''' breve.control.iterate( self ) breve.helloworld = HelloWorld # Create an instance of our controller object to initialize the simulation HelloWorld()

breve basic Controller/Agent structure (steve) @include "Control.tz" Controller HelloWorld. Control : HelloWorld { + to iterate: print "Hello, world!". super iterate. }

breve Gravity & 3D collisions

breve Gray Scott model of reaction diffusion

breve Capture the Flag

breve boids to evolving swarms

Evolving swarms In addition to the behaviors of boids, swarm agents: Seek out food, which randomly teleports around Feed their friends with excess food Reproduce when energy (food) hits certain threshold Die when they run out of energy, or reach maximum age Land on the ground, rest, fly around again Mutate in such a way as to improve/reduce reproduction So how to you mutate code that must be pre-defined?

Push Genetic programming random crossover and mutation of computer programs Doesn t work for most computer languages, since they typically have rigid syntax: This makes sense: L = [math.exp(val) for val in eigenvalues] This does not: eigenvalues ] in math.exp(val) = L ] for

Push Programs made up of: instructions, literals, and sublists Push program is an expression, entirely placed on the stack and evaluated recursively according to these rules: 1. If P is an instruction then execute it 2. Else if P is a literal then push it on to the stack 3. Else (P must be a list) sequentially execute each of the Push programs in P

Sample Push program and execution ( 2 3 INTEGER. * 4.1 5.2 FLOAT.+ TRUE FALSE BOOLEAN.OR ) Pushing onto the stack from left to right, we then pop the stack right to left : First run is: BOOLEAN.OR FALSE TRUE = (TRUE) (BOOLEAN stack) Next we have: FLOAT.+ 5.2 4.1 = (9.3) (FLOAT stack) Finally we have INTEGER.* 2 3 = (6) (INTEGER stack) Note that each stack has its own type, the stack-based typing system puts each instruction on its own type of stack, so that any combination remains semantically valid. We could re-order all of these stacks without issue. The main trick is to devise programs that actually produce changeable behaviors in the agents, so they can be selected for or against

References Agent-based model, Wikipedia, the free encyclopedia, http://en.wikipedia.org/wiki/agent_based_modeling. Christian Castle and Andrew Crooks, Principles and Concepts of Agent-Based Modelling for Developing Geospatial Simulations, UCL Working Papers Series (UCL Centre for Advanced Spatial Analysis, September 2006), http://www.casa.ucl.ac.uk/working_papers/paper110.pdf. Main Page - SwarmWiki, http://www.swarm.org/index.php?title=main_page. Repast Agent Simulation Toolkit, http://repast.sourceforge.net/. Miles Parker, metaabm, http://metaabm.org/docs/index.html. Jon Klein, breve: a 3d Simulation Environment for Multi-Agent Simulations and Artificial Life (Hampshire College), http://www.spiderland.org/. Craig Reynolds, Boids (Flocks, Herds, and Schools: a Distributed Behavioral Model), Boids, Backround and Update, http://www.red3d.com/cwr/boids/. Abelson et al., Gray Scott Home Page, Gray Scott Model of Reaction Diffusion, http://www.swiss.ai.mit.edu/projects/amorphous/grayscott/. Jon Klein, "Push": a Language for Evolutionary Computation Integrated With breve breve, http://www.spiderland.org/node/2759. Lee Spector, Push, PushGP, and Pushpop (School of Cognitive Science: Hampshire College), http://hampshire.edu/lspector/push.html.