Вы находитесь на странице: 1из 4

SCI TP2 : S.M.A.

Travail sur les comportements


Axel ANTOINE, Xavier STREEL
19 septembre 2016

1 Introduction
Cette semaine, nous avons travaillé plus en détails sur les comportements
des agents, en réalisant un système multi-agents comportant cette fois-ci deux
types d’agents, les proies et les prédateurs.
Voici les régles de la simulation :
Les deux agents peuvent se reproduire après un certain nombre de tours,
seulement s’ils ont pu bouger lors de ce tour. Les proies ont un temps de gestation
plus court que celui des prédateurs, de manière à proliférer plus rapidement.
Les prédateurs mangent les proies pour survivre. Après un certain temps sans
manger, ces derniers meurent.
L’objectif principal de cette simulation est de trouver les paramètres initiaux
permettant à la simulation de perdurer dans le temps : c’est à dire, les deux
agents survivent indéfiniment.

2 Architecture
Nous avons repris le code de notre projet précédent, celui-ci ayant déjà été
abstrait le plus possible tant au niveau du modèle (classe abstraite Agent), qu’au
niveau de l’interface et des paramètres de simulation.
Deux classes étendent maintenant la classe Agent, la classe Fish et la classe
Shark, modélisant le comportement de nos deux entités.
Nous avons gardé l’interface du premier TP en rajoutant 2 fenêtre pour
afficher 2 graphes temps-réel, la courbe d’évolution des deux espèces dans le
temps ainsi que la la courbe du rapport entre le nombre de poissons et de
requins. Les paramètres spécifiques aux deux entités (nombre d’entités initiales,
temps de gestation et d’extinction sans manger) ont également été ajoutés à
notre fenêtre de paramètres.

1
3 Simulation
3.1 Tour de parole
A chaque tour de paroles, la grille du jeu est balayée pour récupérer l’en-
semble des agents actuellement en vie. Quel que soit l’ordonnancement choisi
(les mêmes qu’au premier TP, à savoir fair, sequential ou random), les agents
e↵ectuent leur comportement l’un à la suite de l’autre. De ce fait, il est forte-
ment possible qu’un requin R e↵ectue son mouvement avant un poisson P alors
que ce même poisson P n’ait pas encore eu l’occasion de parler durant ce tour.
Ainsi, quand vient le tour au poisson P de prendre la parole, il lui est impossible
puisqu’il est mort. La condition d’être en vie est nécessaire pour qu’un agent
puisse décider.

3.2 Comportements
3.2.1 Poisson
Les poissons e↵ectuent leur tour de parole dans l’ordre suivant :
1. Si le poisson vient de naı̂tre alors, on lui attribue une autre couleur (pour
le di↵érencier des adultes).
2. Si il peut bouger, alors il e↵ectue un mouvement aléatoire parmi les
directions libres. (Voisinnage de Moore, 8 voisins.)
(a) Si le poisson est adulte alors il peut se déplacer. De plus, s’il se déplace
et que sa période de gestation est atteinte, il se donne naissance à un
nouveau poisson à son ancienne position
(b) Après s’être reproduit, son temps de gestation est réinitialisé

3.2.2 Requin
Le comportement du requin est plus complexe que celui du poisson, même
s’il possède quelques caractéristiques communes à ce dernier :
1. Si le requin vient de naı̂tre alors, on lui attribue une autre couleur (pour
le di↵érencier des adultes).
2. Si le requin a atteint sa période maximale sans manger, il meurt.
3. Le requin cherche des poissons dans son voisinnage de Moore. Si il en
trouve au moins un :
(a) Le requin choisit aléatoirement une victime parmi le(s) poissons voi-
sins trouvés, et le mange. Le poisson meurt et est retiré du simulateur.
Le requin se déplace et prend la palce du poisson mort.
(b) Après avoir mangé une proie, son compteur de faim est réinitialisé.
(c) Si sa période de gestation est atteinte ou dépassée, il se reproduit.
(Un nouveau requin apparaı̂t à l’ancienne position du requin parent
avant son déplacement.)

2
(d) Après s’être reproduit, son temps de gestation est réinitialisé
4. Si il ne trouve pas de poissons mais qu’il peut bouger, alors il e↵ectue un
mouvement aléatoire parmi les directions libres. (Voisinnage de Moore,
8 voisins.)
(a) Si le requin a pu bouger et que sa période de gestation est atteinte ou
dépassée, alors il se reprodit (Un nouveau requin apparaı̂t à l’ancienne
position du requin parent avant son déplacement.)
(b) Après s’être reproduit, son temps de gestation est réinitialisé

4 Résultats
Nous avons décidé d’afficher les courbes d’évolutions des poissons et requins
en temps réel.

4.1 Performance de calculs


Nous avons mené nos tests sur un environnement carré de 150*150 cases,
soit 22500 cases, en spécifiant l’environnement comme étant torique. Peu im-
portent les paramètres choisis, nous obtenons des performances relativement
satisfaisantes. Pour un délai entre les ticks nul, nous parvenons à exécuter et
afficher environ 17 itérations par seconde. En désactivant l’interface graphique,
nous arrivons a exécuter environ 20 ticks par seconde. (Mesures réalisées sur un
ultrabook core i5-5200u et 8Go RAM).

4.2 Performances des simulations


4.2.1 Simulation 1
Nous avons d’abord testé les paramètres suivants :
— Poisson : breedTime à 2 et nombre initial à 300
— Requin : breedTime à 5, starveTime à 5 et nombre initial à 10
Certaines simulations perdurent dans le temps (nous considérons une simulation
comme perdurant dans le temps lorsque les deux espèces survivent après 10.000
ticks), mais pas toutes. Souvent, les requins finissent par disparaı̂tre, entrainant
la surabondance de poissons.

4.2.2 Simulation 2
Nous avons tenté ensuite les paramètres suivants :
— Poisson : breedTime à 2 et nombre initial à 500
— Requin : breedTime à 8, starveTime à 3 et nombre initial à 100
Ici, nos paramètres semblent faire perdurer la simulation dans le temps. (10
seeds di↵érents testés.) Nous considérons ce modèle comme stable. Nous avons
également testés avec succès ces paramètres dans un environnement non torique.
L’ordonnancement ”random” nous donne logiquement une simulation moins

3
prévisible à l’oeil, mais perdure également. Enfin, l’ordonnancement ”sequen-
tial” tourne également, et nous semble indi↵érenciable du ”fair”.

Figure 1 – Variation du nombre d’agents poissons et requins dans le temps


(paramètres cités ci-dessus, environnement torique et ordonnanceur ”fair”

5 Conclusion
Notre système multi-agents comporte deux types d’agents qui interagissent
directement l’un sur l’autre. De ce fait, à partir de règles simples et paramétrables,
il est possible d’obtenir des convergences vers plusieurs états possibles du système,
de l’environnement. Le premier où l’océan est rempli de poissons, puisqu’ils
peuvent survivre seuls. Le deuxième, la mort des deux espèces, puisque les re-
quins ne peuvent vivre sans poissons. Enfin, un état, qualifié de stable, quand
l’océan oscille entre une plus grande quantité de poissons ou de requins sous
forme de sinusoı̈de, le cycle de la vie de notre environnement. Celui-ci est très
bien représentée sous forme d’ellipse quand on affiche le nombre de poissons en
fonction du nombre de requins au cours de la simulation.

Вам также может понравиться