Fourragement
chez les fourmis

Unité libre

D. Olivier



Damien.Olivier@gmail.com

Auto-organisation


  • L'auto-organisation
    • Phénomène de mise en ordre croissant ;
    • Allant en sens inverse de l'augmentation de l'entropie ;
    • Apparition d'une structure, d'une forme ....
    • Dissipation de l'énergie qui sert à maintenir l'organisation.
  • Propriété que l'on rencontre au niveau de certains
    • processus physiques,
    • organismes vivants,
    • systèmes sociaux.
Chaussée des géants (Irelande)).
Source

Stigmergie

Pierre Paul GRASSE en 1959 donne cette définition :

La coordination des taches, la régulation des constructions ne dépendent pas directement des ouvriers, mais des constructions elles-mêmes. L'ouvrier ne dirige pas son travail, il est guidé par lui. C'est cette stimulation d'un type particulier auquel nous donnons le nom du STIGMERGIE ( stigma , piqûre; ergon , travail, œuvre = œuvre stimulante).

Communication indirecte

Phéromone

Communication indirecte

Dépot des phéromones


Source

Communication indirecte

Apparition de structures


Source

Fourragement

Modèle

  • Les fourmis parcourent plus ou moins au hasard l’environnement autour de la colonie ;
  • Lorsqu'une d'entre elle découvre une source de nourriture, elle rentre plus ou moins directement au nid, en laissant sur son chemin une piste de phéromones ;
  • Les phéromones étant attractives, les fourmis passant à proximité vont avoir tendance à suivre, de façon plus ou moins directe, cette piste ;
  • Les phéromones s'évaporent au fil du temps.

Fourragement

Première mise en œuvre

  • Les fourmis sont localisées au niveau du nid au départ ;
  • La zone de nourriture est située à une distance donnée du nid ;
  • Une fourmi lorsqu'elle a trouvé de la nourriture elle la prend ;
  • Une fourmi quand elle porte de la nourriture et arrive au nid elle la dépose ;
  • Les fourmis se déplace au hasard dans un premier temps.

Fourragement

Disposition de l'anneau de nourriture


to initAnneau
  ask patches [
    let d distance (patch 0 0)
    if ((d >= distanceNidNourriture) and (d <= distanceNidNourriture + epaisseur))
    [
      set plabel "*"								; La nourriture !
      set plabel-color red 
    ]
  ]
end
Variables globales ou élément d'interface epaisseur et distanceNidNourriture.

Fourragement

Le nid


to initturtles
  crt nombreFourmis [
  setxy 0 0
  rt random 360
  fd random rayonNid + 1
  set shape "ant"
  set color brown
  set size 6.5
  ]
end	
	
Variables globales ou élément d'interface nombreFourmis et rayonNid.

Fourragement

Le déplacement et le tranport


to bouge
  ask turtles [
    ifelse (label = "*")                        ; La fourmi transporte de la nourriture
    [retourNid]                                 ; Elle rentre
    [chercherNourriture]                        ; Elle continue de chercher
  ]
end

Fourragement

Le retour au nid

 
to retourNid
  ifelse (distancexy 0 0 <= rayonNid)           ; La fourmi est dans le voisinage du nid
  [
    facexy 0 0
    fd random-float distancexy  0 0  
    set label ""                                ; Elle dépose son fardeau 
    set pcolor red
    set plabel ""
    set color brown
  ]
  [ deplaceToi ]
end

to deplaceToi 
    let angle 20
    set heading heading + random angle - random angle
    forward 1 + random-float 2 
end

Fourragement

La recherche de nourriture

 
to chercherNourriture
  ifelse (plabel = "*")
  [
    set label plabel
    set color red
    set plabel ""
  ]
  [ deplaceToi ]
end
  • Tracer la courbe d'évolution du nombre de fourmis transportant la nourriture.
  • Qu'observez vous ?

Fourragement

Construction d'un gradient

  • On considère maintenant que les fourmis sont attirées par un gradient fixe vers le nid ;
  • Ce gradient indique la bonne direction à suivre pour rentrer au nid ;
  • Chaque patches va donc contenir une valeur attractionNidqui sera inversement proportionnelle à sa distance au centre ;
  • On va également jouer sur la couleur afin d'avoir un dégradé au niveau de la visualisation.
    set pcolor scale-color blue attractionNid 0 diag
    

Fourragement

Le nid et son gradient

to initNid
  let diag sqrt ((max-pxcor * max-pxcor) + (max-pycor * max-pycor))
  ask patches [
    set attractionNid (diag - distancexy 0 0)
    set pcolor scale-color blue attractionNid 0 diag
  ]
end

Fourragement

Retour vers le nid avec le gradient


to suisGradient
  let voisins (patch-set  
                 patch-right-and-ahead 20 2
                 patch-right-and-ahead 0 2
                 patch-left-and-ahead 20 2 )
  face max-one-of voisins [attractionNid]
  forward 1 + random-float 2                
end
  • Au niveau de la courbe d'évolution qu'observez vous ?

Fourragement

Structure : les chemins

Communication stigmergique :
  • Les fourmis vont maintenant déposer des phéromones numériques sur le chemin de retour (deposerPheromone);
  • Les fourmis vont se déplacer préférentiellement en suivant ces chemins de phéromones ;
  • À chaque pas de temps, les phéromones diffusent, mais également s'évaporent (diffuserPheromone evaporerPheromone).