Résolution de problèmes par émergence Étude d’un Environnement de Programmation Émergente Jean-Pierre Georgé
Plan général Problématique Émergence et auto-organisation Théorie & technologie AMAS (Adaptive Multi-Agent Systems) EPE : un Environnement de Programmation Émergente Implémentation Expérimentations 2ème stratégie : exemple élémentaire Enseignements et perspectives
Partie 1 Problématique
Les besoins futurs en informatique “[…] Without new approaches, things will only get worse. ” [Horn 01, IBM] Exemples : Autonomic Computing, Pervasive Computing / Ambient Intelligence Caractéristiques : Grand nombre d’entités en interaction Nombre variable d’entités en cours de fonctionnement (système ouvert) Contrôle centralisé impossible à mettre en œuvre Environnement évolutif et dynamique Tâche globale à réaliser Systèmes non entièrement spécifiables Néo-computation
L’idée de programmation émergente Programmer = assembler des instructions But : réaliser un programme adéquat Comment ? programmeur ou émergence Définition : assemblage d'instructions d'un langage de programmation via des mécanismes non explicitement informés du programme à créer Parcours de l'espace des programmes possibles
Résolution de problèmes par émergence Problème quelconque Entités quelconques Plus haut niveau Plus informé ? Mêmes principes que pour la programmation émergente Enseignements de la programmation émergente réapplicables
Objectifs Programmation émergente : étude de faisabilité : Prototype simplifié Système multi-agent Auto-organisation Théorie AMAS Résolution de problèmes par émergence Améliorer notre compréhension de l'émergence et de l'utilisation de l'auto-organisation dans les systèmes artificiels, développer la théorie AMAS
Émergence et auto‑organisation Partie 2 Émergence et auto‑organisation
Exemple introductif Vidéo : Guy Theraulaz, Laboratoire d'Ethologie et Cognition Animale, Toulouse
Émergence : définitions Niveau local / niveau global Apparition de nouveauté Irréductibilité Cohérence et corrélation [Heylighen] [Lewes] [Langton] [Kim] [Goldstein] Systèmes artificiels : Objet : la fonction globale du système émerge Condition : l'implémentation n'est pas explicitement dictée par la connaissance de la fonction globale
Émergence et auto-organisation Émergence = concept philosophique Auto-organisation = explicitation des mécanismes [Prigogine] [Turing] [Camazine] [Bonabeau] [Theraulaz] Auto-organisation émergence ? Définition : ensemble des processus au sein d'un système, issus de mécanismes basés sur des règles locales, qui conduisent ce système à produire des structures ou des comportements spécifiques non explicitement dictés par l'extérieur du système
Mécanismes d’auto-organisation : exemple REINE Gradient de phéromone produit par la reine Dépôts de phéromone par les termites Construction de termitières
Auto-organisation et systèmes artificiels Cf. exemple des termites Définir des mécanismes locaux Mécanismes non informés du "comment" réaliser la fonction globale Feedback et adaptation
Quelques techniques Calcul évolutionnaire Réseaux neuronaux "dynamiques" Algorithmes de colonies de fourmis Optimisation par essaims particulaires … Notions communes : résolution de problèmes et recherche dans des espaces d'états
SMA et auto-organisation Agent : Propriétés individuelles (caractéristiques, état, compétences) Propriétés sociales (accointances) Connaissances (sur soi, sur autrui, sur l'environnement) Moyens de perception, de communication, d'action, voire d'apprentissage et de raisonnement Notion d'autonomie SMA : Composé d'agents en interaction Confronté à un environnement Réalisation d'une fonction Activité collective cohérente Outil idéal pour l’auto-organisation [Chevrier] [Drogoul] [Hassas] [Mataric] [Mathieu] [Müller] [Odell] [Parunak]
Théorie et technologie AMAS Partie 3 Théorie et technologie AMAS
Principe SMA Auto-organisation Mécanismes basés sur la notion de coopération
Théorie AMAS (1) Systèmes Fonctionnellement Adéquats Systèmes Coopératifs Systèmes à Milieu Intérieur Coopératif
Théorie AMAS (2) Adaptation par réorganisation des parties
Technologie AMAS Systèmes Multi-Agents capables d'auto-organisation basée sur la coopération Coopération : Tout signal perçu peut être interprété sans ambiguïté L'information reçue est utile au raisonnement de l'agent Le raisonnement conduit à des actions utiles pour autrui ou l'environnement Situations Non Coopératives (SNC) Moteur de l'auto-organisation = traitement des SNC Traitement préventif possible : attitude coopérative
L’approche expérimentale Limites de l'approche théorique (démonstrations) Approche expérimentale (cf. sciences naturelles) Problèmes diversifiés traités par l'équipe Un pas plus loin : la programmation émergente
Éléments de catégorisation de problèmes Nature de la réorganisation au sein du système Nature de la fonction globale du système Origine des SNC et nature de leur résorption Existence ou non d'un feedback et distinction "but local / but global" "Distance" entre fonction des parties et fonction globale Utilisation d'une mémoire La question des systèmes ouverts Nature de l'environnement de l'agent
Partie 4 EPE1 Note 1 : EPE : Emergent Programming Environment ou Environnement de Programmation Émergente
Concept Instruction = agent Programme = une organisation des agents Exécution = interaction entre agents Auto-organisation des agents Application de la théorie AMAS aux agents (coopération) Néo-programmeur : juge et influence au travers de l'environnement Les difficultés : Le feedback Les mécanismes d'auto-organisation La composition du système
Utilité et exemple historique Réponse aux problèmes de néo-computation : Problèmes incomplètement spécifiés Système continuellement adaptatif Exemple historique : le problème du "deadlock" : /* Entry section for P1 */ /* Entry section for P2 */ Q1 := True; Q2 := True; TURN := 1; TURN := 2; wait while Q2 and TURN := 1; wait while Q1 and TURN := 2; /* Exit section for P1 */ /* Exit section for P2 */ Q1 := False; Q2 := False;
Simplification du problème Restriction à un sous-ensemble du calcul numérique Exemple de la factorielle Intérêt : Composition simple Simplification du feedback Fonctionnement riche
Description des agents In : entrée , Out : sortie +, x : calcul 1 : valeur numérique 1 = : test d'égalité F : "FirstTime" (expression du choix)
Fonctionnement int factorielle (n) { int res; if (n = 0) res := 1; else if (n = 1) else { int i = 2; res := i; while (i ≠ n) { i := i+1; res : = res*i; } return res;
Auto-organisation : 1ère stratégie Notion de "valeur de confiance" Description des SNC : NCSNeedIn NCSNeedOut NCSUselessness NCSBlockingSituation NCSInadequateData Résorption des SNC et attitude coopérative
Partie 5 Implémentation
Considérations générales Des threads pour rester proche des phénomènes réels Des agents simples mais des comportements complexes 200 classes, 16.000 lignes de codes
Architecture ProgrammingEnvironment AcquaintancesManager MessageListener MessageSender ProgrammingEnvironment AcquaintancesManager MessageManager SynchronizationManager ReorganizationManager Agent GUI Specific Agents Architecture générale
Le logiciel EPE
Partie 6 Expérimentation
Résultats expérimentaux Capacité de calcul Capacité de réorganisation Vers un milieu intérieur coopératif (capacité à produire une organisation complète fonctionnelle) Prise en compte du feedback Un problème fortement discontinu Un parcours "aveugle" Échec de la 1ère stratégie (valeurs de confiance)
Vers une 2ème stratégie Feedback plus informé ? ("plus grand" / "plus petit") Stratégie par "accaparement de but" Question : corrélation entre proximité fonctionnelle et proximité organisationnelle ?
Topologie de l'espace de recherche
Résultats et conséquences Moyenne pour chaque catégorie de proximité organisationnelle Valeurs produites par les 2800 organisations sélectionnées
Partie 7 Exemple élémentaire
Description et utilité Difficultés précédentes : observation, compréhension, traçage "pas à pas" Exemple élémentaire : 5 agents : +, *, 3 constantes
Auto-organisation : 2ème stratégie Feedback plus informé Accaparement de but Nouvelles NCS : NCSInformedInadequateData NCSInformedNeedIn Objectif : satisfaire au mieux les buts individuels Auto-organisation : la question du "comment" Traitements : Valeur potentielle de sortie Notion de préjudice Multiplicité des liens Algorithme du traitement coopératif du préjudice imposé
Résultats expérimentaux Adéquation fonctionnelle atteinte efficacement (parcours de moins d'une centaine d'organisations sur les 7.776 possibles) Capacité du système à produire "plus grand" / "plus petit" Un premier pas de "scaling up" (un agent addition supplémentaire, 800.000 organisations possibles, parcours de moins de 200 organisations)
Enseignements et perspectives Partie 8 Enseignements et perspectives
Les difficultés Le piège de la simplicité des agents Une classe particulière de problèmes La difficulté d'implémentation
EPE et la théorie AMAS AMAS : EPE : Détection Résorption de SNC Attitude coopérative EPE : Manque d'information pour la résorption Problème fortement discontinu Distance but local / but global Traitement du préjudice
Perspectives Enrichissement de la théorie Un langage de programmation complet Traiter des problèmes de néo-computation réels Développement d'outils et de méthodes
Vers un langage complet AgentProg (noté "Prog") AgentSequence (noté ";") AgentIfThenElse (noté "IfThenElse") AgentWhile (noté "While") AgentVariable (noté "x", où x est le nom de la variable) AgentAssignment (noté ":=") AgentReturn (noté "return") AgentMinus (noté "-") factorielle (x) { if (x = 0) r := 1; else { r := x; x := x-1; while (x > 0) { r := r*x; } return r;
Résolution de problèmes par émergence Programmation émergente difficile EPE : enseignements pour aborder d'autres problèmes à plus haut niveau, de façon plus informée Exploration de mécanismes d'auto‑organisation La question du "comment" Parcours d'un espace de recherche par auto-organisation
Conclusion Étude de faisabilité du concept positive Très loin d'un langage complet Exploration du concept : Connaissances sur la programmation émergente Connaissances sur l'émergence et l'auto-organisation Développement de la théorie AMAS La voie de l'émergence