D. Olivier
Damien.Olivier@gmail.com
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).
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
.
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
.
to bouge
ask turtles [
ifelse (label = "*") ; La fourmi transporte de la nourriture
[retourNid] ; Elle rentre
[chercherNourriture] ; Elle continue de chercher
]
end
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
to chercherNourriture
ifelse (plabel = "*")
[
set label plabel
set color red
set plabel ""
]
[ deplaceToi ]
end
attractionNid
qui sera inversement proportionnelle à sa distance au centre ;set pcolor scale-color blue attractionNid 0 diag
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
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
deposerPheromone
);diffuserPheromone evaporerPheromone
).