PROJET IMPACTMatthieu Macret
1
CONTEXTE
• Intelligence Artificielle : Systèmes Multi-agents
• Equipe SMAC (Système Multi-Agents et Comportement)
2
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
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
PLAN
• Modèle normatif
• Modèle de simulation
• Implémentation
• Démonstration
5
MODÈLE NORMATIF
6
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
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
EXEMPLE : CREATURE CREATOR
Paramètre Ensemble dedé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
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
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 %
Normes11
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
EXEMPLE : CREATURE CREATOR
Paramètre Janot Lapin Janot Lapin Tueur(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
MODÈLE DE SIMULATION
14
CHOIX DES CARACTÉRISTIQUES DES
AGENTS
• Agressivité
• Nombre d’enfants
• Pas de déplacement
• Taille
15
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
IMPLÉMENTATION
17
IMPLÉMENTATION EN JAVA
• JDK 1.5
• IDE : NetBeans
• UML
• Utilisation d’un SVN
• Plate forme de gestion de bugs
18
IMPLÉMENTATION:MODÈLE DE SIMULATION
19
MODÈLE DE SIMULATION: AGENT
• Un comportement
• Un indice de fatigue
• Une position
20
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
GESTION DU TEMPS• 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
MODÈLE DE DÉPLACEMENT
23
Agent
Vecteur aléatoireVecteur direction Nouveau vecteur direction
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
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 reproduction25
Dire d’ou ca vient
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
INTERACTIONS COMBATET
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
MODÈLE DE GÉNÉRATION
28
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
MOTEUR DEGÉ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
GÉNÉRATION DE COMPORTEMENTS VIOLATEURS• 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
DÉMONSTRATION : IHM
32
LIMITES
33
• Gestion du temps
• Détection des agents et Pas de déplacement
• Parcours des listes
CONCLUSIONS
34