Couzin Model

Colletive Motion with Avoidance

These are its behavioral rules, as summarized in (Couzin et al. 2002):

  1. Individuals attempt to maintain a minimum distance between themselves and others at all times. This rule has the highest priority and corresponds to a frequently observed behaviour of animals in nature.
  2. If individuals are not performing an avoidance manoeuvre (rule 1) they tend to be attracted towards other individuals (to avoid being isolated) and to align themselves with neighbours. These behavioural tendencies are simulated using local perception and simple response behaviours.

Behavioral Rules

\(N\) individuals (\(i=1,2,\dots,N\)) with position vectors \(\mathbf{c}_i\) and unit direction vectors \(\mathbf{vi}\) are simulated in continuous two-dimensional space (the original paper did it in 3D). Time is partitioned into discrete time steps \(t\) with a regular spacing \(\tau = 0.1\) seconds, corresponding to the response latency of fish. In each time step, individuals assess the position and/or orientation of \(n\) neigbours within three non-overlapping behavioral zones. This information is used to determine a desired direction for each individual for the successive time step \(\mathbf{d}_i(t+\tau)\) using the following rules.

Rule 1: Avoidance

Each individual attempts to maintain a minimum distance from others within a “zone of repulsion” (), modelled as a circle, centred on the individual, with radius \(r_r\). If \(n_r\) neighbours are present in the at time \(t\), individual \(i\) responds by moving away from neighbours within this zone:

\[ \mathbf{d}_r(t+\tau) = -\sum^{n_r}_{j \neq i} \frac{\mathbf{r}_{ij}(t)}{|\mathbf{r}_{ij}(t)|} \tag{1}\]

where \(\mathbf{r}_{ij}\) is the unit vector in the direction of neighbour \(j\).

\[ \mathbf{r}_{ij} = (\mathbf{c}_j - \mathbf{c}_i) / |(\mathbf{c}_j - \mathbf{c}_i)| \tag{2}\]

This behavioural rule has the highest priority in the model, so that if \(n_r > 0\), the desired direction \(\mathbf{d}_i(t+\tau) = \mathbf{d}_r(t+\tau)\). The zone of repulsion can be interpreted as individuals maintaining personal space, or avoiding collisions.

Rule 2: Orienation and Attraction

If no neighbours are within the zone of repulsion (\(n_r=0\)), the individual responds to others within the “zone of orientation” () and the “zone of attraction” (). These zones are circular, except for a surface behind the individual within which neighbours are undetectable. This “blind surfuce” is defined as a triangle with angle \((360 - \alpha)^\circ\), where \(\alpha\) is defined as the field of perception.

The zone of orientation contains \(n_o\) detectable neighbours with \(r_r \leq |(\mathbf{c}_j - \mathbf{c}_i)| < r_o\) and the zone of attraction \(n_a\) detectable neighbours with \(r_o \leq |(\mathbf{c}_j - \mathbf{c}_i)| \leq r_a\).

An individual will attempt to align itself with neighbours within the zone of orientation, giving

\[ \mathbf{d}_o(t+\tau) = \sum^{n_o}_{j=1} \frac{\mathbf{v}_j(t)}{|\mathbf{v}_j(t)|} \] {?@eq-orientation}

and towards the poisitions of individuals within the zone of attraction

\[ \mathbf{d}_a(t+\tau) = \sum^{n_a}_{j \neq i} \frac{\mathbf{v}_j(t)}{|\mathbf{v}_j(t)|} \] {?@eq-attraction}

If neighbours are found in both orientation and attraction zones, then

\[ \mathbf{d}_i(t+\tau) = \frac{1}{2} \left[ \mathbf{d}_o(t+\tau) + \mathbf{d}_a(t+\tau)\right] \tag{3}\]

In the eventuality that the social forces result in a zero vector, or if no individuals are detected, then

\[ \mathbf{d}_i(t+\tau) = \mathbf{v}_i(t) \]

Randomness

Decision making in animals is subject to stochastic effects (e.g. sensory error, movement error). This is simnulated by modifying \(\mathbf{d}_i(t+\tau)\) by rotating it by an angle taken at random from a circully wrapped Gaussian distribution with standard deviation \(\sigma\).

Motion

After the above process has been performed for every individual they turn towards the direction vector \(\mathbf{d}_i(t+\tau)\) by the turning rate \(\theta\). Provided the angle between $\(\mathbf{v}_i(t)\) and \(\mathbf{d}_i(t+\tau)\) is less than the maximum turning angle \(\theta \tau\), then \(\mathbf{v}_i(t+\tau) = \mathbf{d}_i(t+\tau)\); if not, the individual rotates by \(\theta \tau\) towards the desired direction.


Assignment

Check the assignment page for the next steps. You will be implementing this model in a script named couzin.py and then building an animation in couzin_animation.py.

Assignment: Implementing the Couzin Model

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.