Le tri du couvain
chez les fourmis

Unité libre

D. Olivier



Damien.Olivier@gmail.com

Intelligence collective


Capacités cognitives d'une communauté résultant des interactions multiples entre ses entités. La perception des entités est locale, la réalisation est collective.

  • Information locale et limitée ;
  • Règles comportementales génèralement simples ;
  • Interactions multiples ;
  • Une structure/organisation/forme émerge
    • Chaque entité trouve un bénéfice à collaborer ;
    • La performance d'une entité au sein du groupe est meilleure que seule.
Formation d'un pont vivant chez la fourmi d'Argentine « Linepithema humile ». © CNRS Photothèque - Guy Théraulaz

Intelligence collective

Ants create a lifeboat in the Amazon jungle - © BBC wildlife

Tri du couvain





  • Exemple d’intelligence collective ;
  • Observé chez certaines colonies de fourmis (lasius niger, leptothorax, Pheidole pallidula ou Messor sancta) ;
  • Organisent le couvain en un unique amas de larves, les plus petites au centre et les plus grosses en périphérie ;
  • Les larves matures sont nourries en priorité.
Pheidole pallidula

Rangement des cadavres

Rangement des cadavres

Modélisation

  • Les fourmis se déplacent sur une grille ;
  • Sur la grille sont disposés des œufs/larves de couleur ;
  • À chaque pas de temps les fourmis se déplacent sur une case adjacente ;
  • Si une fourmi arrive sur une case contenant un œuf, elle peut l'emporter ou de le laisser
    • Si la concentration locale de ce type d'œuf est faible, elle a tendance à l'emporter ;
    • Si elle est forte, elle a tendance à le laisser.
  • Si une fourmi porte un œuf, elle peut le déposer ou le garder
    • Si la concentration locale de ce type d'oeuf est forte, elle a tendance à le déposer ;
    • Si elle est faible, elle a tendance à le garder.

Modélisation

Un peu de code


  • Répartition des larves :
    
    to initPatches
      ask patches [
        if ( random-float (( world-width * world-height) / (nbObjets * couleurs)) < 1)
        [
        	set pcolor ( random couleurs ) * 20 + red 
        ]
      ]
    end
    
  • Créer les tortues/fourmis et les répartir au hasard sur la grille.

Modélisation

Un peu de code


  • Écrire une fonction qui compte le nombre de patch voisin d'une couleur donnée
    to-report compteLarvesIdem [coul]
      let nb 0
      
      ask neighbors [
        if (pcolor = coul)
        [set nb nb + 1]
      ]
      report nb
    end
    
  • Modifier le code de façon à pouvoir définir un voisinage plus grand (facultatif).

Modélisation

Un peu de code


  • Appliquer l'algorithme décrit précedemment
    to couvain
      ask turtles [ 
        ifelse ( color = white )                                 
          [ if ( pcolor > 0 )                                   
            [if ((compteLarvesIdem pcolor) < (random 6))    
              [ set color pcolor                           
                set pcolor 0                               
              ] 
            ] 
          ] 
          [ if ( pcolor = 0 )                               
            [ 
             if ((compteLarvesIdem color) > (1 + random 2)) 
               [ set pcolor color                          
                 set color white                           
               ] 
            ] 
          ] 
        set heading heading + random 45 - random 45   
        fd 1 
      ]
    end
    
  • Tester les paramètres (nombre de fourmis, voisinage, densité ....). Que pouvez vous dire ?