O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Think Complexity, 2nd Edition

Book Description

Complexity science uses computation to explore the physical and social sciences. In Think Complexity, you’ll use graphs, cellular automata, and agent-based models to study topics in physics, biology, and economics.

Whether you’re an intermediate-level Python programmer or a student of computational modeling, you’ll delve into examples of complex systems through a series of worked examples, exercises, case studies, and easy-to-understand explanations.

In this updated second edition, you will:

  • Work with NumPy arrays and SciPy methods, including basic signal processing and Fast Fourier Transform
  • Study abstract models of complex physical systems, including power laws, fractals and pink noise, and Turing machines
  • Get Jupyter notebooks filled with starter code and solutions to help you re-implement and extend original experiments in complexity; and models of computation like Turmites, Turing machines, and cellular automata
  • Explore the philosophy of science, including the nature of scientific laws, theory choice, and realism and instrumentalism

Ideal as a text for a course on computational modeling in Python, Think Complexity also helps self-learners gain valuable experience with topics and ideas they might not encounter otherwise.

Table of Contents

  1. Preface
    1. Who Is This Book For?
    2. Changes from the First Edition
    3. Using the Code
    4. Conventions Used in This Book
    5. O’Reilly Safari
    6. How to Contact Us
    7. Contributor List
  2. 1. Complexity Science
    1. The Changing Criteria of Science
    2. The Axes of Scientific Models
    3. Different Models for Different Purposes
    4. Complexity Engineering
    5. Complexity Thinking
  3. 2. Graphs
    1. What Is a Graph?
    2. NetworkX
    3. Random Graphs
    4. Generating Graphs
    5. Connected Graphs
    6. Generating ER Graphs
    7. Probability of Connectivity
    8. Analysis of Graph Algorithms
    9. Exercises
  4. 3. Small World Graphs
    1. Stanley Milgram
    2. Watts and Strogatz
    3. Ring Lattice
    4. WS Graphs
    5. Clustering
    6. Shortest Path Lengths
    7. The WS Experiment
    8. What Kind of Explanation Is That?
    9. Breadth-First Search
    10. Dijkstra’s Algorithm
    11. Exercises
  5. 4. Scale-Free Networks
    1. Social Network Data
    2. WS Model
    3. Degree
    4. Heavy-Tailed Distributions
    5. Barabási-Albert Model
    6. Generating BA Graphs
    7. Cumulative Distributions
    8. Explanatory Models
    9. Exercises
  6. 5. Cellular Automatons
    1. A Simple CA
    2. Wolfram’s Experiment
    3. Classifying CAs
    4. Randomness
    5. Determinism
    6. Spaceships
    7. Universality
    8. Falsifiability
    9. What Is This a Model Of?
    10. Implementing CAs
    11. Cross-Correlation
    12. CA Tables
    13. Exercises
  7. 6. Game of Life
    1. Conway’s GoL
    2. Life Patterns
    3. Conway’s Conjecture
    4. Realism
    5. Instrumentalism
    6. Implementing Life
    7. Exercises
  8. 7. Physical Modeling
    1. Diffusion
    2. Reaction-Diffusion
    3. Percolation
    4. Phase Change
    5. Fractals
    6. Fractals and Percolation Models
    7. Exercises
  9. 8. Self-Organized Criticality
    1. Critical Systems
    2. Sand Piles
    3. Implementing the Sand Pile
    4. Heavy-Tailed Distributions
    5. Fractals
    6. Pink Noise
    7. The Sound of Sand
    8. Reductionism and Holism
    9. SOC, Causation, and Prediction
    10. Exercises
  10. 9. Agent-Based Models
    1. Schelling’s Model
    2. Implementation of Schelling’s Model
    3. Segregation
    4. Sugarscape
    5. Wealth Inequality
    6. Implementing Sugarscape
    7. Migration and Wave Behavior
    8. Emergence
    9. Exercises
  11. 10. Herds, Flocks, and Traffic Jams
    1. Traffic Jams
    2. Random Perturbation
    3. Boids
    4. The Boid Algorithm
    5. Arbitration
    6. Emergence and Free Will
    7. Exercises
  12. 11. Evolution
    1. Simulating Evolution
    2. Fitness Landscape
    3. Agents
    4. Simulation
    5. No Differentiation
    6. Evidence of Evolution
    7. Differential Survival
    8. Mutation
    9. Speciation
    10. Summary
    11. Exercises
  13. 12. Evolution of Cooperation
    1. Prisoner’s Dilemma
    2. The Problem of Nice
    3. Prisoner’s Dilemma Tournaments
    4. Simulating Evolution of Cooperation
    5. The Tournament
    6. The Simulation
    7. Results
    8. Conclusions
    9. Exercises
  14. A. Reading List
  15. Index