3. OBJECTIF DU PROJET
• Coeur de mon projet :
Un modèle de génération d’agents permet d’augmenter la diversité de la population
présente dans la simulation
• Vers plus de réalisme, vers une meilleure validité des résultats
• Mon projet :
Concevoir et développer une applet Java de démonstration illustrant les possibilités de
ce nouveau modèle de génération de comportements.
3
Ajouter les atouts pour la
simulation
4. ILLUSTRER CE MODÈLE
• Utiliser une simulation où l’on pourra visualiser aisément
l’influence des différents paramètres du modèle.
• Scénario nominal de la simulation :
«Creature Creator»
«Des créatures issues de plusieurs espèces différentes sont
générées, se déplacent dans un environnement et ont la
possibilité d'interagir entre elles en fonction de leurs
caractéristiques et de leur appartenance à telle ou telle espèce.»
4
7. PRÉSENTATION DU MODÈLE
• Introduction de la notion de normes qui permettent de:
• Spécifier le comportement des agents.
• Contrôler le respect de ces spécifications.
• Générer des comportements dits «Violateurs»
7
8. INSTITUTION
• Entité qui contient :
• Tous les paramètres dont est composé le comportement d’un agent.
• Les ensembles de définition de ces paramètres dans lesquels ils doivent être
instanciés.
• Un paramètre σ qui donne la tendance d’une institution à générer des
comportements violateurs.
• Dans Creature Creator,
Institution = «Soupe originelle» contenant toutes les caractéristiques
possibles pour une créature
8
9. EXEMPLE : CREATURE
CREATOR
Paramètre Ensemble de
définition
Agressivité [0,1]
Taille [10,20]
Pas de déplacement
[20,25]
Nombre d’enfants par portée {0,1,2,3}
Institution
9
10. NORME
• Une norme est une sorte de «sous ensemble» de l’institution. Elle contient :
• Une liste d’un, plusieurs ou tous les paramètres contenus dans l’institution.
• Des ensembles de définitions pour chacun de ces paramètres qui doivent être
inclus dans ceux spécifiés dans l’institution.
• Un paramètre τn qui spécifie la tendance d’une norme à générer des
comportements «violateurs»
• Un paramètre δ qui spécifie la distance admissible à la norme.
• Norme = Une espèce de créatures qui mettra des contraintes sur une,
plusieurs ou toutes les caractéristiques institutionnelles.
10
11. EXEMPLE : CREATURE
CREATOR
Paramètre
Espèce 1 :
Gentils lapins
Espèce 2 :
Gros méchants
Rappel de
l’institution
Agressivité [0.5,1.0] [0.6,0.9] [0,1]
Taille [10,15] [15,20] [10,20]
Pas de
déplacement [23,25] [20,22] [20,25]
Nombre d’enfants
par portée
{3} {0,1} {0,1,2,3}
δ 20 % 20 %
Normes
11
12. COMPORTEMENT
• Un comportement contient :
• Une norme à laquelle il est rattaché.
• L’ensemble des paramètres de l’institution instanciés suivant
les contraintes de la norme.
• Comportement = Ensemble des caractéristiques
institutionnelles instanciées respectant la norme associée.
12
13. EXEMPLE : CREATURE
CREATOR
Paramètre Janot Lapin
Janot LapinTueur
(violateur)
Rappel de la
norme : Espèce 1
Rappel de
l’institution
Agressivité 79 % 90 % [0.5,1.0] [0,1]
Taille 12 px 20 px [10,15] [10,20]
Pas de
déplacement 23 px 24 px [23,25] [20,25]
Nombre d’enfants
par portée
3 3 {3} {0,1,2,3}
δ 20 %
Formule Distance : Calcul Distance :
Comportements
13
16. CHOIX DES INTERACTIONS
• Reproduction entre deux créatures de la même
espèce :
• Génération de nouvelles créatures
• Combat entre deux créatures d’espèces différentes :
• Mort de la plus petite des deux créatures
• Interactions en fonction de l’agressivité
16
21. MODÈLE DE SIMULATION:
ENVIRONNEMENT
• Une grille =Table de hachage
(clef : coordonnées de l’agent, valeur : agent)
• Le rayon maximum d’un agent (en pixels)
21
22. GESTION DUTEMPS
• La tâche «Environment» parcourt la table de hachage
contenant les agents et les active les uns à la suite des
autres.
• Une temporisation se fait à la fin du parcours à l’aide d’un
sleep d’une durée paramétrable par l’utilisateur.
22
24. DÉTECTION DES AGENTS
• A chaque pas de temps, chaque agent calcule un point de
destination.
• Il parcourt la grille dans l’ordre et vérifie qu’aucun autre
agent ne se situe à Rmax près de ce point.
• Si non, il se déplace sur ce point.
• Si oui, il y a interaction.
24
25. GESTION DE LA FATIGUE
• Le niveau de fatigue est décrémenté :
• A chaque déplacement de l’agent.
• A chaque interaction avortée.
• Le niveau de fatigue est mis à 30 :
• Après chaque combat
• Après chaque reproduction
25
Dire d’ou ca vient
26. INTERACTIONS
• On teste d’abord le niveau de fatigue des deux agents :
• Si l’un des deux est non nul, l’interaction n’a pas lieu
• On teste ensuite le niveau d’agressivité de l’agent initiateur de
l’interaction :
• On compare ce niveau à un random entre 0 et 1 :
• Si ce test est faux, l’interaction n’a pas lieu.
• Si ce test est vrai alors il y a interaction.
26
27. INTERACTIONS COMBAT
ET
REPRODUCTION
• Si les deux agents sont d’espèces différentes, ils se battent entre
eux :
• Le plus petit des deux est retiré de l’environnement. (si
même taille, c’est l’agent initiateur qui gagne le combat)
• Si les deux agents sont de la même espèce, ils se reproduisent :
• Un nombre de nouveaux agents ,défini dans le paramètre
(nbChildren) de l’agent initiateur, est ajouté dans
l’environnement.
27
29. MOTEUR DE GÉNÉRATION
• Tout d’abord, il crée un comportement.
• A l’aide d’une distribution uniforme, il instancie chaque
paramètre de la norme en respectant les contraintes
imposées par cette dernière.
• Ensuite il complète le comportement en ajoutant et en
instanciant les paramètres institutionnels non spécifiés dans la
norme.
29
30. MOTEUR DE
GÉNÉRATION DE COMPORTEMENTS
VIOLATEURS
• Tout d’abord, il crée un comportement.
• A l’aide d’une distribution uniforme, il instancie chaque
paramètre en respectant les contraintes imposées par
l’institution.
• Ensuite il calcule l'écart à la norme et vérifie si le
comportement généré est admissible sinon il régénère un
nouveau comportement.
30
31. GÉNÉRATION DE
COMPORTEMENTSVIOLATEURS
• On tire un nombre entre 0 et 1 suivant une distribution uniforme.
• On le compare avec le σ de l’institution :
• Si c’est supérieur, on utilise le moteur de génération «normal».
• Si c’est inférieur, on tire un autre nombre entre 0 et 1 et on le
compare à τn.
• Si c’est supérieur, on utilise le moteur de génération «normal»
• Si c’est inférieur, on utilise le moteur de génération «violateur»
31