Modeling Complexity with Python

Authors: Dr. Maksim Tsvetovat, independent; Alex Kouznesov, independent

Track: General


Complexity surrounds us -- it is borne from interactions of simple processes and simple rules. Each one of the drivers stuck in a traffic jam is a perfectly rational person that does not want to be late -- yet, their (local, misinformed) rationality is the very cause of the traffic jam. Similar outsize effects of individual decision-making are everywhere -- from stock markets, to evolution of political parties, to shifting population patterns in cities, to information diffusion on the Internet.

Computational social science is a new scientific field that models these complex behaviors using a technique called Agent-Based Modeling (ABM). A variety of toolkits for writing ABMs exist, from general-purpose Java-based systems, to several purpose-built programming languages (NetLogo, Swarm). However, all of them present enclosed ecosystems that is difficult to integrate with real-world data, and present APIs that range in learning curve from "unusual" to "impenetrable". As a result, the field is populated almost entirely by people with doctoral degrees or pursuing the same -- while the results of application of ABM techniques can and should be disseminated more widely.

In our talk, we would like to present Agentum -- a simple, Pythonic toolkit for building agent-based simulations in a variety of domains. In our talk, we'll demonstrate a number of models, from a simple model that shows how racial segregation may emerge in society, to a dissertation-quality model that can be done in less then 500 lines of code (over 55,000 lines of code in C++).

Agentum will be released as open source at the same time as it's companion book "Modeling Complexity with Python" (O'Reilly, summer 2013)