490 likes | 625 Views
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
E N D
Résolution de problèmespar é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
Partie 2 • Émergence et auto‑organisation
Exemple introductif Vidéo : Guy Theraulaz, Laboratoire d'Ethologie et Cognition Animale, Toulouse
Émergence : définitions • Émergence : • 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 Gradient de phéromone produit par la reine 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]
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 • 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) res := 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 MessageListener MessageSender Agent AcquaintancesManager MessageManager Specific Agents SynchronizationManager ReorganizationManager Architecture générale GUI
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 ?
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)
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 : • 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; x := x-1; } } 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