IFT 702 – Planification en intelligence artificielle Introduction Froduald Kabanza Département d’informatique Université de Sherbrooke planiart.usherbrooke.ca/kabanza/cours/ift702
Contenu de cette introduction Énoncé général du problème de planification Perspective historique de la planification en IA Modèles et solveurs Cadres d’approches pour les solveurs Exemples d’applications IFT702© Froduald Kabanza2
IFT702© Froduald Kabanza3 l Le problème principal étudié dans ce cours est celui de concevoir un algorithme permettant à un agent de choisir ses actions en vue d’accomplir ses buts. l La planification n’est pas la seule approche algorithmique pour résoudre ce problème. Mais c’est l’approche qui nous concerne dans ce cours. Problème du choix d’actions Je voudrais poster une lettre. Quelle prochaine action?
IFT702© Froduald Kabanza4 Problème de reconnaissance de plans Quel est son but? Comment va-t-il l’accomplir? l Un autre problème secondaire que nous allons effleurer est celui de reconnaître les intentions, les buts, ou les comportement d’un autre agent. l Ce problème peut être formulé et résolu comme l’inverse de la planification. l Ce n’est pas la seule approche, mais c’est celle là qui nous concerne dans ce cours.
Perspective historique de l’IA “The proposal [for the meeting] is to proceed on the basis of the conjecture that every aspect of... intelligence can in principle be so precisely described that a machine can be made to simulate it” IFT702© Froduald Kabanza5
Perspective historique de l’IA De 1956 jusqu’au milieu des années 1980, les recherches en IA sont dominées par des approches à base de connaissances (knowledge based). – Critique : L’IA conventionnelle [knowledge based] n’est qu’une « application de règles », mais l’intelligence [humaine] ne l’est pas (Haugeland) Dès les années 1980, les approches comportementales (behaviour based ou situated AI) deviennent populaire. – Leitmotiv : La représentation des connaissances n’est pas nécessaire, elle est même nuisible (Brooks) Dès les années 1990, les approches connectionistes et probabilistes reprennent de la vigueur (Neural Networks / Parallel Distributed Computing) – Leitmotiv : L’inférence nécessaire [pour l’IA] est probabiliste, mais pas logique. Ces critiques paraissaient fondées à l’époque; elles le sont moins maintenant. IFT702© Froduald Kabanza6
L’IA aujourd’hui Les récentes publications dans AIJ, JAIR, AAAI et IJCAI contiennent des articles sur: 1.Recherche heuristique et planification 2.Satisfaction de contraintes 3.Planification probabiliste 4.Systèmes multiagents 5.Robotique 6.Raisonnement probabiliste 7.Inférence logique 8.Apprentissage automatique 9.Game AI 10.Vision 11.Traitement du langage naturel Différentes approches de planification sont reliées à ces différents sujets. Le cours abordera seulement les cinq premiers. IFT702© Froduald Kabanza7
IFT702© Froduald Kabanza8 Problème du choix d’actions revisité Il y a trois approches algorithmiques principales en IA pour équiper un agent avec un contrôleur permettant à l’agent de choisir ses actions pour accomplir un but: 1.Programmation explicite – Donne la capacité d’avoir des comportements automatiques, mais pas forcément autonome. 2.Apprentissage à partir de l’expérience – Confère l’autonomie à l’agent, mais pas efficace pour bien des problèmes. 3.Planification dériver les actions à partir d’un modèle des actions primitives, des capteurs et du but de l’agent – Efficace pour des problèmes complexes, mais difficulté d’acquisition/représentation des modèles et de définition/extraction/apprentissage d’heuristiques. Certains travaux de recherches sont orientés vers une intégration de ces trois approches.
Comment concevoir le contrôleur? IFT702© Froduald Kabanza9 Controller World Actions Obs. Contrôleur : programme qui contrôle le robot pour effectuer des tâches domestiques. C’est le cerveau! Entrées continues du contrôleur: l Données des capteurs (observations du monde) l Les buts Sortie continue du contrôleur: l La prochaine action (les prochaines actions en générale).
Comment concevoir le contrôleur? IFT702© Froduald Kabanza10 Programmer explicitement le contrôleur observations buts if (saleté plancher > 50%) then nettoie plancher; else if (batterie < 25%) then trouver endroit branchement; brancher; … if (saleté plancher > 50%) then nettoie plancher; else if (batterie < 25%) then trouver endroit branchement; brancher; … action World Exécution de l’action
Comment concevoir le contrôleur? IFT702© Froduald Kabanza11 Apprendre le contrôleur observations buts action World Exécution de l’action Processus d’apprentissage Contrôleur observations buts
Comment concevoir le contrôleur? IFT702© Froduald Kabanza12 Planifier le contrôleur observations buts action World Exécution de l’action Contrôleur = Plan Planificateur Modèle d’actions, capteurs et buts observations buts
Comment concevoir le contrôleur? IFT702© Froduald Kabanza13 Planifier le contrôleur observations buts Avancer World Exécution de l’action Avancer; Aspirer; Reculer; Avancer; Aspirer; Reculer; Planificateur Actions -Avancer-Se recharger -Reculer-Parler -Balayer Buts -Plancher propre -Batterie > 0% modèle observations buts
Comment concevoir le contrôleur? IFT702© Froduald Kabanza14 Intégrer la planification et l’apprentissage observations buts action World Exécution de l’action Contrôleur = Plan Planificateur Modèle d’actions, capteurs et buts Processus d’apprentissage observations buts
IFT702© Froduald Kabanza15 Planificateur = Solveur de modèle Un planificateur est donc d’un solveur de modèle. Cela répond à une des quêtes originelles de l’IA, d’avoir un solveur général (générique) codifiant l’intelligence. Il existe d’autres solveurs dans d’autres domaines. Par exemple, pour la programmation linéaire en recherche opérationnelle Plan Solveur Modèle d’actions, capteurs et buts Solution Solveur Modèle (système d’équations; fonction objective)
IFT702© Froduald Kabanza16 Solveur de programmation linéaire Solution: (x,y)=(3,12) Simplex MaximiserZ = f(x,y) = 3x + 2y Avec les contraintes: 2x + y ≤ 18 2x + 3y ≤ 42 3x + y ≤ 24 x ≥ 0, y ≥ 0 GLPK IBM CPLEX
Planification en IA vs Recherche opérationnelle Il y a un chevauchement entre les deux – Par exemple : solveurs pour la programmation linéaire, les processus de décision Markovienne, la satisfaction de contraintes, la recherche heuristique. La plupart des problèmes d’intérêt en IA sont cependant d’une trop grande complexité théorique pour les solveurs en recherche opérationnelle. – L’IA met d’avantage d’accent sur la définition, l’extraction et l’apprentissage des heuristiques. La plupart des approches IA sont implicitement motivée par des applications de nature « cognitive » plutôt que l’optimisation « pure » en recherche opération. – Certains solveurs IA sont donc souvent basées sur des théories différentes de celles normalement étudiées en recherche opérationnelle. IFT702© Froduald Kabanza17
Théories mathématiques sous-jacents aux solveurs que nous allons étudier Un planificateur est donc un solveur de modèle Les solveurs que nous verrons sont basés sur: – Théorie des graphes – Logique mathématique – Théorie des probabilités (Bayes) – Optimization – Théorie des jeux IFT702© Froduald Kabanza18 Plan Planificateur Modèle d’actions, capteurs et buts
19 Where will the opponent attack? Où envoyer les renforts? Application aux jeux de Stratégie temps réel
Froduald Kabanza IFT70220 Planification de trajectoire – Bras-robot articulés Bras-robot articulés – Voiture auto-conduite (Google self-driving car)Google self-driving car Robots mobiles IA pour les jeux vidéos – Tournoi StarCraft : Tournoi StarCraft eis.ucsc.edu/StarCraftAICompetition – Action Planning (GOAP) dans le jeu F.E.A.R web.media.mit.edu/~jorkin/goap.html Autres exemples
Froduald Kabanza IFT70221 StarCraft: – Ancien projet: H Tousignant et al o Cartes d’influence de visibilité/menace/importance o Intégration d’un algorithme de reconnaissance des build orders de l’adversaire Intégration d’un algorithme de reconnaissance des build orders de l’adversaire – Ancien projet: H2011 – Stoutenburg et al o Planification optimale de production de ressources. Il a reproduit les résultats de l’article « Chan et al (2007), Online Planning for Resource Production in Real-Time Strategy Games, ICAPS » – Ancien projet H2011 – Bessette et al o Microgestion d’unités individuelles et de groupes Échantillons de projets antérieurs
Froduald Kabanza IFT70222 Divers – Planification des quarts de travail pour le supermarché Métro. – Modèle hybride de reconnaissance de plans pour patients Alzheimer – Planification exacte de trajectoires avec OOPSMP – GOAP simplifié – Scheduling d'un projet Microsoft – IA pour un jeu de billard – Reconnaissance de plan dans PAC-MAN – UCT pour Star Craft Échantillons de projets antérieurs
Deterministic vs. stochastic actions Différentes hypothèses qui seront considérées 23 (1) (2) successful attack (2) failed attack (2) failed attack (3)... Fully vs. partially observable environments Single-agent vs. multiagent problems
Défis qui seront étudiés IFT702© Froduald Kabanza24 Explosion combinatoire des états: – Extraire des heuristiques du domaine – Approches Monte-carlo (échantillonage) – Apprentissage d’heuristiques (non couvert, mais pourrait faire l’objet d’un choix d’article) Coordination: – Planification multi-agent – Perception, planification, exécution (non couvert, mais pourrait faire l’objet du projet – intégration d’un algorithme de reconnaissance de plan).
Planification et architectures décisionnelles IFT702© Froduald Kabanza25 La planification ne suffit pas à elle seule pour contrôler un agent intelligent. D’autres processus interviennent o Observation de l’environnement o Interprétation des observations o Décider du but à accomplir? o Invoquer le planificateur o Exécution du plan généré o Suivi de l’exécution o Activation et désactivation de comportements réflexes o Apprentissage o Interaction avec d’autres agents o …. Architecture décisionnelle coordonne tous ces processus, y compris la planification. Jeff Orkin. GOAP - F.E.A.R (AIDE 2005)
Résumé Un algorithme de planification est fondamental un solveur d’un modèle spécifiant les actions, les capteurs et les buts d’un agents. Ce que nous voyons dans ce cours est: – Langages de modélisation – Algorithmes pour quelques solveurs – Expérimentations simples (devoirs et projet) – Approfondissement d’une approche (étudiants gradués seulement) L’accent est mis sur l’exposé des avancées obtenues avec certaines des approches courantes les plus utilisées et la compréhension des défis en suspens. Plan de cours détaillé IFT702© Froduald Kabanza26