Simulation modeling of diseases Can anyone recommend a good book(s) or journal article(s) on object-oriented program design patterns/principles and simulation modeling of diseases?


I received the above question this morning by email.  It was sent to a SIAM list service I belong to.  I don't know the asker, and I don't know a good answer either.  I figured, though, if some people here had good suggestions, either theoretical or practical, I could send him the link to this question.

Thanks.

Edit: I sent the asker a copy of this question, with Artem K's answer visible.  He responded, saying thanks.
My answer addresses the general theory of disease (and similar) modelling and only briefly touches on the implementations. For simulations (as opposed to analytic work, which usually uses evolutionary game theory or SIR models) the popular paradigm is agent-based modeling (ABM). A good recent book on agent-based modelling from a CS perspective is:


  Yoav Shoham and Kevin Leyton-Brown
  [2009], "Multiagent systems:
  algorithmic, game-theoretic, and
  logical foundations", Cambridge
  University press.


A big general conference of agent-based modeling is AAMAS (links to 2011 and 2012). They don't specialize in disease modeling in particular, but a lot of the techniques they use can be applied there.

In terms of software for doing rapid prototyping of ABMs, a popular one is NetLogo. This seems to be particularly popular in the social sciences, where they do slight variations of standard epidemic models to describe certain social processes.

Currently, it seems like the focus of theoretical work in this field (and this is obviously biased by my own interests) is to consider environments where agents are limited in their interactions. If you just have agents meet randomly, then ABMs are usually overkill and things can be done analytically. However, if there is some interesting network structure (fixed or dynamic) to the interactions (as there often is in real life) then ABMs become an essential tool. A fun recent book that discusses some of these ideas (once again from a CS perspective) is:


  David Easley and Jon Kleinberg [2010],
  "Networks, crowds, and markets:
  Reasoning about a highly connected
  world," Cambridge University press. (a
  draft is available
  online)