Collective Motion

Vicsek and Collective Motion

In this session we study collective motion: how local alignment rules create global order. The main example is the Vicsek model, with optional predator interaction.

Case Studies

Vicsek Model Vicsek Animation

Couzin Model Assignment

What do we need?

matplotlib.pyplot

Initialize the figure and axes and draw static elements.

matplotlib.animation

Update plot elements in real time for animations.

matplotlib.Slider

Add sliders so users can interact with parameters.

Why not use scipy.solve_ivp here?

In previous sessions, we used ODE solvers like scipy.solve_ivp to study continuous-time dynamical systems. The Vicsek model, however, is fundamentally a discrete-time, agent-based model: at each step, all particles update their direction and position based on their neighbors and some noise. This update is not described by a differential equation, but by a set of rules applied at each time step. Therefore, we implement the Vicsek model using a simple loop, not an ODE solver.

References

  • (Vicsek et al. 1995)
  • Check this cool simulation. This explorable illustrates of an intuitive dynamic model for collective motion (swarming) in animal groups. The model can be used to describe collective behavior observed in schooling fish or flocking birds, for example. The details of the model are described in (Couzin et al. 2002).

References

Couzin, Iain D, Jens Krause, Richard James, Graeme D Ruxton, and Nigel R Franks. 2002. “Collective Memory and Spatial Sorting in Animal Groups.” Journal of Theoretical Biology 218 (1): 1–11.
Vicsek, Tamás, András Czirók, Eshel Ben-Jacob, Inon Cohen, and Ofer Shochet. 1995. “Novel Type of Phase Transition in a System of Self-Driven Particles.” Physical Review Letters 75 (6): 1226.