CS423/523: Complex Adaptive Systems

Course Information

Professor: Melanie Moses
Email: melaniem@cs.unm.edu 
Website: https://moseslab.cs.unm.edu
Office: Farris Engineering Center Room 3340
Office Hours: Tu 10:45-11:45am after class in CTLB

Wed 1:00-2:00pm, Farris 3340 

Teaching Assistant: Akil Andrews
Email: akilandrews@unm.edu 
Office: Farris Engineering Center Room 3320
Office Hours: Tue & Thu 12:30 - 2:00pm


Piazza site for the class: CS523 Piazza Forum

A link to the Spring 2019 UNM calender UNM Calender

Course Description

A graduate-level introduction to selected topics in complex adaptive systems focusing on computational tools to simulate and measure complexity, and analysis of biological and social complex adaptive systems. Topics include definitions of complexity, cellular automata, evolution and genetic algorithms, dynamical systems, scaling and fractals, ant colony algorithms and swarm intelligence.

Syllabus

Matlab

While not required, Matlab is available for programming work in this class. Instructions for downloading and installing your own free copy of MATLAB, provided by the university, are at the IT support page for MATLAB. You will need to login with your UNM user name and password (not your CS one). Problems installing MATLAB should be referred to the helpful UNM IT Support group.

Python

For python users there is a library that produces high-quality plots similar to matlab called matplotlib. Further information and installation instructions may be found here Matplotlib.

Textbook

We don't have a textbook for this course, but we'll use as a guide Complexity, A Guided Tour. Each week we'll read journal articles to explore concepts from the book in more technical and intellectual depth.

Complexity:Title: Complexity: A Guided Tour
Author: Melanie Mitchel
Publisher: Oxford University Press

Paperback (2011):
ISBN-10: 0199798109
ISBN-13: 978-0199798100
or,
Hardcover (2009):
ISBN-10: 0195124413
ISBN-13: 978-0195124415

 

Course Topics and Reading list

Introduction

Tuesday, January 15th: General overview of the class

Read the following by Thursday, January 17th

  1. Mitchell, M. Complexity: A Guided Tour, Chapter 1, 2009
  2. Mitchell, M. Complexity: A Guided Tour, Chapter 2, 2009
  3. Flake, G. The Computational Beauty of Nature: Computer Explorations of Fractals, Chaos, Complex Systems, and Adaptation, Chapter 10, 2000

Read the following by Tuesday, January 22nd

  1. Mitchell, M. Complexity: A Guided Tour, Chapter 3, 2009
  2. Mitchell, M. Complexity: A Guided Tour, Chapter 4, 2009
  3. Lizier, J. IDT: an information-theoretic toolkit for studying the dynamics of complex systems, 2014
    -Read through section 2.1 and follow the instructions to download the toolkit in section 3.1 
    -Link to toolkit download: Version 1.4 zip file.
    --To install the kit, after download in the top folder there is a readme.txt file that explains it. 
    --For the autoanalyzer (which is what you will be using), there is a readme.pdf file that explains it in the demos/AutoAnalyzer folder. 
    --Note: You will need Java installed to run the JIDT program.

Read the following by Thursday, January 24th

  1. Walker, S. Evolutionary Transitions and Top-Down Causation, 2012 **Discussion Paper** 
    ----Student presentation review form. You will need to sign in to your google account.
    ----Presentation slides

Read the following by Tuesday, January 29th

  1. Mitchell, M. Complexity: A Guided Tour, Chapter 5, 2009
  2. Mitchell, M. Complexity: A Guided Tour, Chapter 6, 2009
  3. Does evolutionary theory need a rethink?, 2014
  4. Hughes, A. The Central Dogma and Basic Transcription, 2003

Evolution and Genetic Algorithms

Read the following by Thursday, January 31st

  1. Mitchell, M. Complexity: A Guided Tour, Chapter 7, 2009
  2. Gell-Mann, M. What is Complexity?, Complexity, Vol 1, no. 1, 1995 
  3. Kolmogorov Complexity – A Primer, 2012 (optional)

Next Friday, Feb 1: Last day to drop without a 'W' and tuition costs!

Read the following by Tuesday, February 5th

  1. Mitchell, M. Complexity: A Guided Tour, Chapter 8, 2009
  2. Mitchell, M. Complexity: A Guided Tour, Chapter 9, 2009
  3. GA Matlab example
  4. Forrest, S. Genetic Algorithms: Principles of Natural Selection Applied to Computation, 1993 **Discussion Paper*
    ----Student presentation review formYou will need to sign in to your google account.
    ----Presentation slides

Read the following by Thursday, February 7th

  1. Software Mutual Robustness **Discussion Paper**
    ----Student presentation review formYou will need to sign in to your google account.
    ----Presentation slides
  2. The role of robustness in phenotypic adaptation and innovation, 2012 **Discussion Paper**
    ----Student presentation review formYou will need to sign in to your google account.
    ----Presentation slides

Cellular Automata

Read the following by Tuesday, February 12th

  1. Mitchell, M. Complexity: A Guided Tour, Chapter 10, 2009
  2. Mitchell, M. Complexity: A Guided Tour, Chapter 11, 2009

Read the following by Thursday, February 14th

  1. Mitchell, M. Evolving Cellular Automata to Perform Computations: Mechanisms and Impediments, 1994

Read the following by Tuesday, February 19th

  1. Mitchell, M. Complexity: A Guided Tour, Chapter 12, 2009

Read the following by Thursday, February 21st

  1. Mitchell, M. Complexity: A Guided Tour, Chapter 13, 2009

Swarm Robotics

Read the following by Tuesday, February 26th

  1. Marshall, J. On Optimal Decision-Making in Brains and Social Insect Colonies, 2009 **Discussion Paper** 
    ----Student presentation review form. You will need to sign in to your google account.
    ----Presentation slides

Read the following by Thursday, February 28th

  1. Hecker, J. Beyond pheromones: evolving error-tolerant, flexible, and scalable ant-inspired robot swarms, 2015 **Discussion Paper** 
    ----Student presentation review form. You will need to sign in to your google account.
    ----Presentation slides

Natural and Computational Immunology

Read the following by Tuesday, March 5th

  1. Read 1st pages before handout
  2. Readings from handout
  3. Smith, D. Mapping the Antigenic and Genetic Evolution of Influenza Virus, 2004 **Discussion Paper** 
    ----Student presentation review form. You will need to sign in to your google account.
    ----Presentation slides
  4. Review Mitchell chapter 12, particularly the section "Information Processing in these systems

Read the following by Thursday, March 7th

  1. TBD

Spring Break March 10th - March 17th!

Midterm Exam

  1. Midterm Review, March 19th 
    --Midterm Example
  2. Midterm, March 21st

Modeling and the Prisoner's Dilemma

Read the following by Tuesday, March 26th

  1. Mitchell, M. Complexity: A Guided Tour, Chapter 14, 2009
  2. Press, W. Iterated Prisoner’s Dilemma Contains Strategies that Dominate any Evolutionary Opponent, 2012 **Discussion Paper**
    ----Student presentation review form. You will need to sign in to your google account.
  3. Stewart, A. Extortion and cooperation in the Prisoner’s Dilemma, 2012 **Discussion Paper**
    ----Student presentation review form. You will need to sign in to your google account.
  4. Edge, On "Iterated Prisoner's Dilemma Contains Strategies that Dominate any Evolutionary Opponent", 2015 (optional)

Thursday, March 28th: No Class

  1. Project 2 due, turn in code and paper electronically

Networks, Scaling and Fractals

Read the following by Tuesday, April 2nd

  1. Mitchell, M. Complexity: A Guided Tour, Chapter 15, 2009
  2. Mitchell, M. Complexity: A Guided Tour, Chapter 16, 2009
  3. Barabasi, A. Emergence of Scaling in Random Networks, 1999

Read the following by Thursday, April 4th

  1. Mitchell, M. Complexity: A Guided Tour, Chapter 17, 2009
  2. West, G. Life's Universal Scaling Laws, 2004

Read the following by Tuesday, April 9th

  1. **Final Project proposals due**
  2. Moses, M. Energy and time determine scaling in biological and computer designs, 2016 **Discussion Paper**
    ----Student presentation review form. You will need to sign in to your google account.

Read the following by Thursday, April 11th

  1. NEAT Presentation by John Erickson, Slides
    NeatFA Github Repo

Friday, Apr 12: Last Day to drop without Dean's permission and use LoboWeb!

Brains, Neural Nets, and Analogies

Read the following by Tuesday, April 16th

  1. Risi, S. A Unified Approach to Evolving Plasticity and Neural Geometry, 2012 **Discussion Paper**
    ----Student presentation review form. You will need to sign in to your google account.
    ----Presentation slides
  2. Hausknecht, M. HyperNEAT-GGP: A HyperNEAT-based Atari General Game Player, 2012 (optional)

Read the following by Thursday, April 18th

  1. Dumas, G. Inter-Brain Synchronization during Social Interaction, 2010 **Discussion Paper**
    ----
    Student presentation review form. You will need to sign in to your google account.
    ----Presentation slides
  2. Quanta, Scientists Discover Exotic New Patterns of Synchronization, 2019 (optional)

Complexity Revisited

Read the following by Tuesday, April 23rd

  1. Mitchell, M. Complexity: A Guided Tour, Chapter 18, 2009
  2. Mitchell, M. Complexity: A Guided Tour, Chapter 19, 2009
  3. Dehaene, S. Toward a computational theory of conscious processing, 2013

Read the following by Thursday, April 25th

  1. No class work on final projects

Final Projects

Presentations and submissions:

  1. April 30th, Student Presentations (~7 mins long and 2 min question/answer afterward)
  2. May 2nd, Student Presentations (~7 mins long and 2 min question/answer afterward)
  3. May 3rd 5:00pm, Hard copy of paper due in BCLab FEC 3300, code and paper .pdf using project submission link below
  4. Student project presenations sign up form
  5. Place a copy of your presentation slides in this Google Drive folder

 

Assignment Information

Graduate students must present a paper from the papers listed as **Discussion Paper**. The presentation should be ~15mins long.
Sign up for a paper by following the link below, max of 3 students per paper.

For each project in this class you will submit an electronic version and a printed version. The electronic copy will consist of the following files: a pdf document containing your report, any data files you used, source code for your project, and a README.txt file (example). The readme file will contain a description of the files you are submitting, instructions on how to compile and run your project code, and a list of group members (Full Name) submitting the project.

We must be able to compile and run your programs on the CS Linux computers. If we cannot run your code using the instructions in your readme file on the CS machines you will receive zero points for the project.

  • The code should have a clear comment block at the top of each file with team members names
  • Note: While it is acceptable to use code from resources beyond your group credit MUST be given to the original author. Modifications to the original author's code should also be clearly delineated by a comment block explaining if it was a modification or addition to original code.
  • A core dump or seg fault will get a zero

The printed copy will be a printout of your report (no source code, no data files, etc). Make sure the names of all group members are printed at the top of the report. You may divide up work on the assignments between group members but all group members will receive the same grade. Therefore it is in your interest to make sure you have reviewed and agree with the solutions your groupmates produce.

  • To help with grammar, you may want to install Grammarly on your computer: Grammarly.

How to Submit your Projects

Turn in one copy of the printed report per group during class on the day the assignment is due.
Only one person per group should turn in a digital copy

  • Create a folder named Project # (where # is the number of the project 1, 2 or 3)
  • Place the pdf (not word or laTex change to PDF) report in the folder
  • Create a subfolder of your Project folder called Data
  • Place all your data files in this folder
  • Create another subfolder of your Project folder called Code
  • Place all your code files in this folder as well as the Readme.txt file.
    -Note 1: If your code is importing data from the Data folder, make sure your code references the correct path.
    -Note 2: Do not include the compiled code, the grader will compile the code using the CS machines.
  • Compress your project folder (zip, tar, gzip)
  • Follow this link and fill out the form to submit the file, only the submitter's name is required on the submission form (but everyone's name is required in the files):  CS523 File Submission Form
    NOTE: Changes to Google's Script Apps may require you to approve the use of this form, all it does is upload the file you selected, it is safe to use.

Other considerations

Before creating figures for your documents, take a look at these suggestions for making nice informative figures.
Ten Simple Rules for Better Figures