SlideShare une entreprise Scribd logo
Modélisation du troupeau et du chien
Deux algorithmes de référence
Proposition d’un programme Python
Modélisation algorithmique d’un troupeau de
moutons
Jules Collin
2014 - 2015
Jules Collin Modélisation algorithmique d’un troupeau de moutons
Modélisation du troupeau et du chien
Deux algorithmes de référence
Proposition d’un programme Python
1 Modélisation du troupeau et du chien
Les différentes modélisations du troupeau
Le comportement du chien de berger
2 Deux algorithmes de référence
Algorithme de Vaughan (2000)
Algorithme de Bennett (2010)
Comparaison des algorithmes
3 Proposition d’un programme Python
Principe général
Rencontre avec un berger
Le programme
Optimisation
Calcul de la complexité
Jules Collin Modélisation algorithmique d’un troupeau de moutons
Modélisation du troupeau et du chien
Deux algorithmes de référence
Proposition d’un programme Python
Les différentes modélisations du troupeau
Le comportement du chien de berger
On considère les 4 mouvements suivants pour les moutons :
Mouvement aléatoire
Répulsion des autres moutons trop proches
Fuir le chien
Attraction vers les membres du troupeau
- Attraction vers le (ou les) mouton(s) le(s) plus proche(s)
- Attraction vers le centre de masse du troupeau (ou celui des
moutons les plus proches)
- Attraction vers un mouton quelconque
- Attraction vers tous les moutons
⇒ On les implémente toutes, en pondérant leur action.
Jules Collin Modélisation algorithmique d’un troupeau de moutons
Modélisation du troupeau et du chien
Deux algorithmes de référence
Proposition d’un programme Python
Les différentes modélisations du troupeau
Le comportement du chien de berger
Rôle principal du chien : rassembler les moutons.
Rôle secondaire : guider le troupeau vers une zone précise.
Règle primaire : ne jamais rentrer dans le troupeau. Si le chien
se trouve dans le troupeau, il doit en sortir le plus rapidement
possible.
Jules Collin Modélisation algorithmique d’un troupeau de moutons
Modélisation du troupeau et du chien
Deux algorithmes de référence
Proposition d’un programme Python
Algorithme de Vaughan (2000)
Algorithme de Bennett (2010)
Comparaison des algorithmes
Un robot se déplace à l’intérieur d’une clôture circulaire afin
d’emmener les oies vers un point G situé sur le bord du cercle.
Forces d’attraction et de répulsion proportionnelles à 1
r2 .
Chaque oie i subit la force suivante :
−→
Ri =
N
n=1



K1
−−−→
Di Dn + L
2
·
−−−→
Di Dn
−−−→
Di Dn
− K2 ·
−−−→
Di Dn
−−−→
Di Dn
3



− K3 ·
−−−→
Di W
−−−→
Di W
3
− K4 ·
−−→
Di R
−−→
Di R
3
Dn la position de l’oie n (1 ≤ n ≤ N), R est la position du
robot, W la position du point le plus proche du mur et
L, K1, K2, K3, K4 des constantes positives.
Jules Collin Modélisation algorithmique d’un troupeau de moutons
Modélisation du troupeau et du chien
Deux algorithmes de référence
Proposition d’un programme Python
Algorithme de Vaughan (2000)
Algorithme de Bennett (2010)
Comparaison des algorithmes
Le robot se déplace dans le cercle selon la formule suivante :
−→r = Kr1
−→
GF ·
−→
RF
−→
RF
− Kr2 ·
−→
RG
−→
RG
G est la position finale voulue, F est le centre de masse des N
moutons et Kr1 , Kr2 sont des constantes positives.
Figure: Expérience originale de Vaughan (2000)
Jules Collin Modélisation algorithmique d’un troupeau de moutons
Modélisation du troupeau et du chien
Deux algorithmes de référence
Proposition d’un programme Python
Algorithme de Vaughan (2000)
Algorithme de Bennett (2010)
Comparaison des algorithmes
Le chien calcule l’angle du mouton le plus éloigné et se déplace
alors selon un arc de cercle dans sa direction, en contournant
le troupeau.
Le changement du sens de rotation a lieu lorsque l’écart avec
la direction des moutons est supérieur à un angle déterminé.
Le chien parcourt l’angle θ = 180◦ − |(CD, CG)| pendant qu’il
récupère un mouton.
D est la position du chien, C celle du centre de masse du
troupeau et G celle de l’objectif final.
Jules Collin Modélisation algorithmique d’un troupeau de moutons
Modélisation du troupeau et du chien
Deux algorithmes de référence
Proposition d’un programme Python
Algorithme de Vaughan (2000)
Algorithme de Bennett (2010)
Comparaison des algorithmes
Problème de Vaughan : aspect circulaire du modèle.
Avantage de Bennett : angles parcourus plus petits ⇒ permet
l’étude de troupeaux initialement dispersés.
Vaughan ne termine que lorsque le rayon du cercle est inférieur
à 10 m ⇒ pas transposable à un environnement ouvert.
Pas de paramètres optimaux pour tous les algorithmes, ni
même pour un seul algorithme
Jules Collin Modélisation algorithmique d’un troupeau de moutons
Modélisation du troupeau et du chien
Deux algorithmes de référence
Proposition d’un programme Python
Principe général
Rencontre avec un berger
Le programme
Optimisation
Calcul de la complexité
Réalisation d’un programme Python avec animation graphique.
Prise en compte des 4 formes d’attractions combinées avec des
coefficients adaptés.
Le programme complet dépend de 23 paramètres indépendants.
Jules Collin Modélisation algorithmique d’un troupeau de moutons
Modélisation du troupeau et du chien
Deux algorithmes de référence
Proposition d’un programme Python
Principe général
Rencontre avec un berger
Le programme
Optimisation
Calcul de la complexité
Etude sur un troupeau de 440 moutons.
Le Beauceron guide le troupeau à courte distance (2-3 mètres)
Caméra embarquée sur le dos du chien.
Jules Collin Modélisation algorithmique d’un troupeau de moutons
Modélisation du troupeau et du chien
Deux algorithmes de référence
Proposition d’un programme Python
Principe général
Rencontre avec un berger
Le programme
Optimisation
Calcul de la complexité
Architecture du programme (511 lignes) :
Initialisation
Fonctions utilitaires
Implémentation des 4 attractions et de la répulsion
Algorithmes de Jarvis et de Graham, au choix, et test pour
déterminer si un point est à l’intérieur de l’enveloppe convexe
Déplacement du chien et des moutons (2 versions)
Test d’arrivée
Fonction de dessin permettant l’actualisation des positions
Jules Collin Modélisation algorithmique d’un troupeau de moutons
Modélisation du troupeau et du chien
Deux algorithmes de référence
Proposition d’un programme Python
Principe général
Rencontre avec un berger
Le programme
Optimisation
Calcul de la complexité
⇒ On établit un ordre de priorité des actions sur les moutons en
plus des coefficients affectés aux interactions, en se penchant
sur des observations réelles.
Problème de l’incursion du chien au sein du troupeau.
⇒ Calcul de l’enveloppe convexe du troupeau avec l’algorithme
de Jarvis (O N2 ) ou Graham (O(N log N)).
Sortie du chien u =
|det(
−→
OC,
−−−→
M1M2)|
−−−→
M1M2
·
−→
GB
−→
GB
Jules Collin Modélisation algorithmique d’un troupeau de moutons
Modélisation du troupeau et du chien
Deux algorithmes de référence
Proposition d’un programme Python
Principe général
Rencontre avec un berger
Le programme
Optimisation
Calcul de la complexité
⇒ Conditions d’exécution dans le déplacement du chien avec la
fonction test_env.
((x1 − x2)yc + (y2 − y1)xc + x2y1 − x1y2)
× ((x1 − x2)yg + (y2 − y1)xg + x2y1 − x1y2) < 0
Problème de la durée d’exécution de chaque étape.
⇒ Intégration native de fonctions coûteuses à travers la fonction
@jit du module numba.
Jules Collin Modélisation algorithmique d’un troupeau de moutons
Modélisation du troupeau et du chien
Deux algorithmes de référence
Proposition d’un programme Python
Principe général
Rencontre avec un berger
Le programme
Optimisation
Calcul de la complexité
Complexité O N3 pour chaque appel récursif.
Etudes statistiques pour observer le temps d’exécution et le
nombre d’étapes nécessaires, en faisant varier des paramètres,
afin de déterminer une configuration la plus efficace possible.
Figure: Conditions du test
Jules Collin Modélisation algorithmique d’un troupeau de moutons
Modélisation du troupeau et du chien
Deux algorithmes de référence
Proposition d’un programme Python
Principe général
Rencontre avec un berger
Le programme
Optimisation
Calcul de la complexité
Exécution en un temps raisonnable tant que l’on ne dépasse
pas 200 moutons.
Le nombre d’étapes également est une fonction croissante du
nombre de moutons.
Figure: Nombre d’étapes et temps nécessaires à la complétion de
l’algorithme en fonction du nombre de moutons avec incertitudes
Jules Collin Modélisation algorithmique d’un troupeau de moutons
Modélisation du troupeau et du chien
Deux algorithmes de référence
Proposition d’un programme Python
Conclusion
⇒ Beaucoup de paramètres indépendants, une configuration
optimale est difficile à trouver.
⇒ On trouve cependant des paramètres efficaces qui permettent
une réalisation en un temps correct et qui traduisent les
observations recueillies sur le terrain.
⇒ On aurait pu prendre en compte l’inertie des moutons, qui les
empêcherait de changer de direction de façon trop abrupte.
Jules Collin Modélisation algorithmique d’un troupeau de moutons

Contenu connexe

Tendances

Analyse factorielle des_correspondances-afc
Analyse factorielle des_correspondances-afcAnalyse factorielle des_correspondances-afc
Analyse factorielle des_correspondances-afcRémi Bachelet
 
5.5 Clustering
5.5 Clustering5.5 Clustering
5.5 Clustering
Boris Guarisma
 
exercices Corrigées du merise
exercices Corrigées du  meriseexercices Corrigées du  merise
exercices Corrigées du merise
Yassine Badri
 
chapitre 1 régression simple.pdf
chapitre 1 régression simple.pdfchapitre 1 régression simple.pdf
chapitre 1 régression simple.pdf
AnassFarkadi
 
Cours Big Data Chap1
Cours Big Data Chap1Cours Big Data Chap1
Cours Big Data Chap1
Amal Abid
 
Merise exercicesmcdcorriges-121007174045-phpapp01
Merise exercicesmcdcorriges-121007174045-phpapp01Merise exercicesmcdcorriges-121007174045-phpapp01
Merise exercicesmcdcorriges-121007174045-phpapp01
SaberCraft Zeriguine
 
Algorithme de colonies de fourmis pres.pptx
Algorithme de colonies de fourmis pres.pptxAlgorithme de colonies de fourmis pres.pptx
Algorithme de colonies de fourmis pres.pptx
IBRAHIM ESSAKINE
 
5.3 Régression logistique
5.3 Régression logistique5.3 Régression logistique
5.3 Régression logistique
Boris Guarisma
 
exercices business intelligence
exercices business intelligence exercices business intelligence
exercices business intelligence
Yassine Badri
 
Progiciel de gestion intégré SAP
Progiciel de gestion intégré SAPProgiciel de gestion intégré SAP
Progiciel de gestion intégré SAP
FICEL Hemza
 
Compte rendu de tp de commande numerique
Compte rendu de tp de commande numeriqueCompte rendu de tp de commande numerique
Compte rendu de tp de commande numerique
ELMEHDYELWARDY
 
20210319 iaul hh_vorie_dimensionnement_principes de base
20210319 iaul hh_vorie_dimensionnement_principes de base20210319 iaul hh_vorie_dimensionnement_principes de base
20210319 iaul hh_vorie_dimensionnement_principes de base
Salah BOUSSADA
 
E logistics-Vehicle Routing Problem
E logistics-Vehicle Routing ProblemE logistics-Vehicle Routing Problem
E logistics-Vehicle Routing Problem
ENSAM Casablanca
 
5.2 Régression linéaire
5.2 Régression linéaire5.2 Régression linéaire
5.2 Régression linéaire
Boris Guarisma
 
Comment réussir sa soutenance pfe
Comment réussir sa soutenance pfeComment réussir sa soutenance pfe
Comment réussir sa soutenance pfe
Mohamed Sahbi
 
7 exercices corriges sur la loi normale
7 exercices corriges sur la loi normale7 exercices corriges sur la loi normale
7 exercices corriges sur la loi normale
cours fsjes
 
Cours data warehouse
Cours data warehouseCours data warehouse
Cours data warehouse
khlifi z
 
Identifier les risques
Identifier les risquesIdentifier les risques
Identifier les risques
Carine Pascal
 
Data mining - Introduction générale
Data mining - Introduction généraleData mining - Introduction générale
Data mining - Introduction générale
Mohamed Heny SELMI
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-Correction
Lilia Sfaxi
 

Tendances (20)

Analyse factorielle des_correspondances-afc
Analyse factorielle des_correspondances-afcAnalyse factorielle des_correspondances-afc
Analyse factorielle des_correspondances-afc
 
5.5 Clustering
5.5 Clustering5.5 Clustering
5.5 Clustering
 
exercices Corrigées du merise
exercices Corrigées du  meriseexercices Corrigées du  merise
exercices Corrigées du merise
 
chapitre 1 régression simple.pdf
chapitre 1 régression simple.pdfchapitre 1 régression simple.pdf
chapitre 1 régression simple.pdf
 
Cours Big Data Chap1
Cours Big Data Chap1Cours Big Data Chap1
Cours Big Data Chap1
 
Merise exercicesmcdcorriges-121007174045-phpapp01
Merise exercicesmcdcorriges-121007174045-phpapp01Merise exercicesmcdcorriges-121007174045-phpapp01
Merise exercicesmcdcorriges-121007174045-phpapp01
 
Algorithme de colonies de fourmis pres.pptx
Algorithme de colonies de fourmis pres.pptxAlgorithme de colonies de fourmis pres.pptx
Algorithme de colonies de fourmis pres.pptx
 
5.3 Régression logistique
5.3 Régression logistique5.3 Régression logistique
5.3 Régression logistique
 
exercices business intelligence
exercices business intelligence exercices business intelligence
exercices business intelligence
 
Progiciel de gestion intégré SAP
Progiciel de gestion intégré SAPProgiciel de gestion intégré SAP
Progiciel de gestion intégré SAP
 
Compte rendu de tp de commande numerique
Compte rendu de tp de commande numeriqueCompte rendu de tp de commande numerique
Compte rendu de tp de commande numerique
 
20210319 iaul hh_vorie_dimensionnement_principes de base
20210319 iaul hh_vorie_dimensionnement_principes de base20210319 iaul hh_vorie_dimensionnement_principes de base
20210319 iaul hh_vorie_dimensionnement_principes de base
 
E logistics-Vehicle Routing Problem
E logistics-Vehicle Routing ProblemE logistics-Vehicle Routing Problem
E logistics-Vehicle Routing Problem
 
5.2 Régression linéaire
5.2 Régression linéaire5.2 Régression linéaire
5.2 Régression linéaire
 
Comment réussir sa soutenance pfe
Comment réussir sa soutenance pfeComment réussir sa soutenance pfe
Comment réussir sa soutenance pfe
 
7 exercices corriges sur la loi normale
7 exercices corriges sur la loi normale7 exercices corriges sur la loi normale
7 exercices corriges sur la loi normale
 
Cours data warehouse
Cours data warehouseCours data warehouse
Cours data warehouse
 
Identifier les risques
Identifier les risquesIdentifier les risques
Identifier les risques
 
Data mining - Introduction générale
Data mining - Introduction généraleData mining - Introduction générale
Data mining - Introduction générale
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-Correction
 

Modélisation algorithmique d'un troupeau de moutons

  • 1. Modélisation du troupeau et du chien Deux algorithmes de référence Proposition d’un programme Python Modélisation algorithmique d’un troupeau de moutons Jules Collin 2014 - 2015 Jules Collin Modélisation algorithmique d’un troupeau de moutons
  • 2. Modélisation du troupeau et du chien Deux algorithmes de référence Proposition d’un programme Python 1 Modélisation du troupeau et du chien Les différentes modélisations du troupeau Le comportement du chien de berger 2 Deux algorithmes de référence Algorithme de Vaughan (2000) Algorithme de Bennett (2010) Comparaison des algorithmes 3 Proposition d’un programme Python Principe général Rencontre avec un berger Le programme Optimisation Calcul de la complexité Jules Collin Modélisation algorithmique d’un troupeau de moutons
  • 3. Modélisation du troupeau et du chien Deux algorithmes de référence Proposition d’un programme Python Les différentes modélisations du troupeau Le comportement du chien de berger On considère les 4 mouvements suivants pour les moutons : Mouvement aléatoire Répulsion des autres moutons trop proches Fuir le chien Attraction vers les membres du troupeau - Attraction vers le (ou les) mouton(s) le(s) plus proche(s) - Attraction vers le centre de masse du troupeau (ou celui des moutons les plus proches) - Attraction vers un mouton quelconque - Attraction vers tous les moutons ⇒ On les implémente toutes, en pondérant leur action. Jules Collin Modélisation algorithmique d’un troupeau de moutons
  • 4. Modélisation du troupeau et du chien Deux algorithmes de référence Proposition d’un programme Python Les différentes modélisations du troupeau Le comportement du chien de berger Rôle principal du chien : rassembler les moutons. Rôle secondaire : guider le troupeau vers une zone précise. Règle primaire : ne jamais rentrer dans le troupeau. Si le chien se trouve dans le troupeau, il doit en sortir le plus rapidement possible. Jules Collin Modélisation algorithmique d’un troupeau de moutons
  • 5. Modélisation du troupeau et du chien Deux algorithmes de référence Proposition d’un programme Python Algorithme de Vaughan (2000) Algorithme de Bennett (2010) Comparaison des algorithmes Un robot se déplace à l’intérieur d’une clôture circulaire afin d’emmener les oies vers un point G situé sur le bord du cercle. Forces d’attraction et de répulsion proportionnelles à 1 r2 . Chaque oie i subit la force suivante : −→ Ri = N n=1    K1 −−−→ Di Dn + L 2 · −−−→ Di Dn −−−→ Di Dn − K2 · −−−→ Di Dn −−−→ Di Dn 3    − K3 · −−−→ Di W −−−→ Di W 3 − K4 · −−→ Di R −−→ Di R 3 Dn la position de l’oie n (1 ≤ n ≤ N), R est la position du robot, W la position du point le plus proche du mur et L, K1, K2, K3, K4 des constantes positives. Jules Collin Modélisation algorithmique d’un troupeau de moutons
  • 6. Modélisation du troupeau et du chien Deux algorithmes de référence Proposition d’un programme Python Algorithme de Vaughan (2000) Algorithme de Bennett (2010) Comparaison des algorithmes Le robot se déplace dans le cercle selon la formule suivante : −→r = Kr1 −→ GF · −→ RF −→ RF − Kr2 · −→ RG −→ RG G est la position finale voulue, F est le centre de masse des N moutons et Kr1 , Kr2 sont des constantes positives. Figure: Expérience originale de Vaughan (2000) Jules Collin Modélisation algorithmique d’un troupeau de moutons
  • 7. Modélisation du troupeau et du chien Deux algorithmes de référence Proposition d’un programme Python Algorithme de Vaughan (2000) Algorithme de Bennett (2010) Comparaison des algorithmes Le chien calcule l’angle du mouton le plus éloigné et se déplace alors selon un arc de cercle dans sa direction, en contournant le troupeau. Le changement du sens de rotation a lieu lorsque l’écart avec la direction des moutons est supérieur à un angle déterminé. Le chien parcourt l’angle θ = 180◦ − |(CD, CG)| pendant qu’il récupère un mouton. D est la position du chien, C celle du centre de masse du troupeau et G celle de l’objectif final. Jules Collin Modélisation algorithmique d’un troupeau de moutons
  • 8. Modélisation du troupeau et du chien Deux algorithmes de référence Proposition d’un programme Python Algorithme de Vaughan (2000) Algorithme de Bennett (2010) Comparaison des algorithmes Problème de Vaughan : aspect circulaire du modèle. Avantage de Bennett : angles parcourus plus petits ⇒ permet l’étude de troupeaux initialement dispersés. Vaughan ne termine que lorsque le rayon du cercle est inférieur à 10 m ⇒ pas transposable à un environnement ouvert. Pas de paramètres optimaux pour tous les algorithmes, ni même pour un seul algorithme Jules Collin Modélisation algorithmique d’un troupeau de moutons
  • 9. Modélisation du troupeau et du chien Deux algorithmes de référence Proposition d’un programme Python Principe général Rencontre avec un berger Le programme Optimisation Calcul de la complexité Réalisation d’un programme Python avec animation graphique. Prise en compte des 4 formes d’attractions combinées avec des coefficients adaptés. Le programme complet dépend de 23 paramètres indépendants. Jules Collin Modélisation algorithmique d’un troupeau de moutons
  • 10. Modélisation du troupeau et du chien Deux algorithmes de référence Proposition d’un programme Python Principe général Rencontre avec un berger Le programme Optimisation Calcul de la complexité Etude sur un troupeau de 440 moutons. Le Beauceron guide le troupeau à courte distance (2-3 mètres) Caméra embarquée sur le dos du chien. Jules Collin Modélisation algorithmique d’un troupeau de moutons
  • 11. Modélisation du troupeau et du chien Deux algorithmes de référence Proposition d’un programme Python Principe général Rencontre avec un berger Le programme Optimisation Calcul de la complexité Architecture du programme (511 lignes) : Initialisation Fonctions utilitaires Implémentation des 4 attractions et de la répulsion Algorithmes de Jarvis et de Graham, au choix, et test pour déterminer si un point est à l’intérieur de l’enveloppe convexe Déplacement du chien et des moutons (2 versions) Test d’arrivée Fonction de dessin permettant l’actualisation des positions Jules Collin Modélisation algorithmique d’un troupeau de moutons
  • 12. Modélisation du troupeau et du chien Deux algorithmes de référence Proposition d’un programme Python Principe général Rencontre avec un berger Le programme Optimisation Calcul de la complexité ⇒ On établit un ordre de priorité des actions sur les moutons en plus des coefficients affectés aux interactions, en se penchant sur des observations réelles. Problème de l’incursion du chien au sein du troupeau. ⇒ Calcul de l’enveloppe convexe du troupeau avec l’algorithme de Jarvis (O N2 ) ou Graham (O(N log N)). Sortie du chien u = |det( −→ OC, −−−→ M1M2)| −−−→ M1M2 · −→ GB −→ GB Jules Collin Modélisation algorithmique d’un troupeau de moutons
  • 13. Modélisation du troupeau et du chien Deux algorithmes de référence Proposition d’un programme Python Principe général Rencontre avec un berger Le programme Optimisation Calcul de la complexité ⇒ Conditions d’exécution dans le déplacement du chien avec la fonction test_env. ((x1 − x2)yc + (y2 − y1)xc + x2y1 − x1y2) × ((x1 − x2)yg + (y2 − y1)xg + x2y1 − x1y2) < 0 Problème de la durée d’exécution de chaque étape. ⇒ Intégration native de fonctions coûteuses à travers la fonction @jit du module numba. Jules Collin Modélisation algorithmique d’un troupeau de moutons
  • 14. Modélisation du troupeau et du chien Deux algorithmes de référence Proposition d’un programme Python Principe général Rencontre avec un berger Le programme Optimisation Calcul de la complexité Complexité O N3 pour chaque appel récursif. Etudes statistiques pour observer le temps d’exécution et le nombre d’étapes nécessaires, en faisant varier des paramètres, afin de déterminer une configuration la plus efficace possible. Figure: Conditions du test Jules Collin Modélisation algorithmique d’un troupeau de moutons
  • 15. Modélisation du troupeau et du chien Deux algorithmes de référence Proposition d’un programme Python Principe général Rencontre avec un berger Le programme Optimisation Calcul de la complexité Exécution en un temps raisonnable tant que l’on ne dépasse pas 200 moutons. Le nombre d’étapes également est une fonction croissante du nombre de moutons. Figure: Nombre d’étapes et temps nécessaires à la complétion de l’algorithme en fonction du nombre de moutons avec incertitudes Jules Collin Modélisation algorithmique d’un troupeau de moutons
  • 16. Modélisation du troupeau et du chien Deux algorithmes de référence Proposition d’un programme Python Conclusion ⇒ Beaucoup de paramètres indépendants, une configuration optimale est difficile à trouver. ⇒ On trouve cependant des paramètres efficaces qui permettent une réalisation en un temps correct et qui traduisent les observations recueillies sur le terrain. ⇒ On aurait pu prendre en compte l’inertie des moutons, qui les empêcherait de changer de direction de façon trop abrupte. Jules Collin Modélisation algorithmique d’un troupeau de moutons