Changements de direction aléatoires


Pour permettre à l'animal de changer aléatoirement de direction, on utilisera deux ensembles :

  • un ensemble, Θ, d'angles de déplacement. Par exemple :{ -180, -135, -90, -45, 0, 45, 90, 135, 180 }
  • l'ensemble \ensuremath{P_\mathrm{m}} des probabilités associées à ces angles. Par exemple : { 0.00, 0.01, 0.09, 0.15, 0.50, 0.15, 0.09, 0.01, 0.00 }
L'animal a une probabilité $\ensuremath{P_\mathrm{m}}(n)$ de faire subir à sa direction une rotation donné par l'angle à la position $n$ dans l'ensemble des angles.

Ainsi, dans la figure ci-dessous, et en reprenant les valeurs précédentes, l'animal à une probabibilité de 0.5 de changer sa direction de déplacement d'un angle 0, une probabilité de 0.09 de la changer d'un angle de -90 degré, une probabilité nulle de faire une rotation de 180 degrés etc.

Une rotation de 0 degré est ce que ferait l'animal s'il poursuivait son déplacement à l'identique (mouvement rectiligne uniforme).

\includegraphics[]{pictures/mice/ant-direction.png}

Cette probabilité \ensuremath{P_\mathrm{m}} de changement de direction est normalisée sur l'ensemble des angles considérés :

\begin{displaymath}\sum_{n\in\{X,-3,-2,-1,0,1,2,3\}} \ensuremath{P_\mathrm{m}}(n) = 1\end{displaymath}

A chaque cycle de simulation (ou presque), un angle de rotation est tiré aléatoirement qui va conditionner le changement de direction de l'animal. Afin que la simulation ne donne pas lieu à des changements de direction trop saccadés, l'angle de rotation est tiré de sorte à ce qu'il respecte une distribution linéaire par morceau, selon les valeurs donnée par les ensembles Θ et \ensuremath{P_\mathrm{m}}.

Typiquement, l'outil C++ permettant de générer des nombres selon une telle distribution, si utilisé avec les ensembles pris en exemple plus haut, sur quelques 10000 tirages, produira des nombres aléatoires entre -180 et 180 distribués selon le graphique suivant :

On voit que les nombres proches de 0 sont les plus souvent tirés. A l'opposé, les nombres proches de 180 ou -180 sont très rarement tirés.

Cette façon de générer aléatoirement les directions permet d'avoir un continnuum de valeurs possibles pour les angles au lieu de n'avoir que le nombre d'angles fixés par l'ensemble Θ.