IFT 608 / IFT 702 Planification en intelligence artificielle Introduction Froduald Kabanza Département d’informatique Université de Sherbrooke planiart.usherbrooke.ca/kabanza/cours/ift608
Sujets couverts Introduction au problème de planification Introduction au problème de reconnaissance de plan IFT608/IFT702 © Froduald Kabanza
Problème de planification La planification est le problème de choisir des actions en vue d’accomplir un but. Cela suppose qu’il y a plusieurs alternatifs possibles. Cela suppose aussi généralement une optimisation – choisir la meilleure séquence d’actions. Cela suppose aussi une prédiction du future. Je voudrais poster une lettre. Quelle prochaine action? IFT608/IFT702 © Froduald Kabanza
Méthodes pour choisir les actions Il y a trois approches algorithmiques principales en IA pour permettre à un agent de choisir ses actions : Programmer un plan (contrôleur) – Donne la capacité d’avoir des comportements automatiques, mais pas forcément autonome. Apprendre un plan (contrôleur) à partir de l’expérience – Confère l’autonomie à l’agent, mais pas encore suffisamment efficace pour bien des problèmes. Générer un plan (contrôleur) à partir d’un modèle d’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. Dans la pratique courante, ces approches sont complémentaires. Geffner, AAAI-10: In the programming-based approach, the controller that prescribes the action to do next is given by the programmer, usually in a suitable high-level language. In this approach, Le problème is solved by the programmer in his head, and the solution is expressed as a high-level program. In the learning-based approach, the controller is not given by a programmer, but is induced from experience: the agent’s own experience, in reinforcement learning, or the experience of a ‘teacher’, in supervised learning schemes. Finally, in the model-based approach, the controller is not learned from experience, but is derived automatically from a model of the actions, sensors and Son buts. The controller is the solution to the model. The three approaches to the action selection problem are not orthogonal and exhibit different virtues and limitations. Programming agents by hand puts all the burden on the programmer that can’t anticipate all possible contingencies, and often results in systems that are brittle. Learning methods have the greatest promise and potential, but tend to be limited in scope. In particular, reinforcement learning methods do not provide a principled solution when the state of the system is not observable. Last, model-based methods require a model of the actions, sensors and Son buts, and face the computational problem of solving the model. La meilleure solution actuelle résiderait probablement en une intégration de ces approches. Certains travaux sont orientés dans ce sens. IFT608/IFT702 © Froduald Kabanza
Contrôleur Controller Contrôleur : programme qui contrôle le robot pour effectuer des tâches domestiques. C’est le « cerveau » de l’agent! Entrées continues du contrôleur: Données des capteurs (observations du monde) Les buts Sortie continue du contrôleur: La prochaine action à exécuter. Actions Obs. Controller World IFT608/IFT702 © Froduald Kabanza
Comment concevoir le contrôleur? Programmer explicitement le contrôleur observations buts if (saleté plancher > 50%) then nettoie plancher; else if (batterie < 25%) then trouver endroit branchement; brancher; … action Le comportement du robot est dicté par le programme. C’est automatique, mais ce n’est pas autonome. Si une situation non programmé survient, le robot n’effectuera pas les tâches correctement. Exécution de l’action World IFT608/IFT702 © Froduald Kabanza
Comment concevoir le contrôleur? Apprendre le contrôleur automatiquement observations buts observations buts Processus d’apprentissage Contrôleur action Le comportement du robot résulte d’un mécanisme de choix d’action appris automatiquement. Il est autonome en ce sens qu’il peut ajuster son mécanisme de choix d’actions à des situations non progrannées explicitement en utilisant son apprentissage. Exécution de l’action World IFT608/IFT702 © Froduald Kabanza
Comment concevoir le contrôleur? Générer le contrôleur à partir de modèles observations buts observations buts Contrôleur= Plan action Planificateur Le comportement du robot résulte de l’ Il est autonome en ce sens qu’il peut ajuster son mécanisme de choix d’actions à des situations non progrannées explicitement en générant un nouveau plan– toute fois, cela est limité par son modèle. Modèle d’actions, capteurs et buts Exécution de l’action World IFT608/IFT702 © Froduald Kabanza
Comment concevoir le contrôleur? Générer le contrôleur observations buts observations buts Avancer; Aspirer; Reculer; Avancer Générateur Actions -Avancer -Se recharger -Reculer -Parler -Balayer Buts -Plancher propre -Batterie > 0% modèle Exécution de l’action World IFT608/IFT702 © Froduald Kabanza
Comment concevoir le contrôleur? Intégrer la planification et l’apprentissage observations buts observations buts Contrôleur= Plan action Générateur Processus d’apprentissage En fait, des approches plus générales visent justement à intégrer l’apprentissage du modèle. Je ne vais pas couvrir la planification et l’apprentissage dans les exposées magistraux, mais je donnerai des pistes. Ce pourrait faire l’objet du projet aux choix. Modèle d’actions, capteurs et buts Exécution de l’action World IFT608/IFT702 © Froduald Kabanza
Planificateur vs Solveur de modèle Un planificateur qui génère des plans peut être vu comme 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) IFT608/IFT702 © Froduald Kabanza
Solveur de programmation linéaire Maximiser Z = f(x,y) = 3x + 2y Avec les contraintes: 2x + y ≤ 18 2x + 3y ≤ 42 3x + y ≤ 24 x ≥ 0 , y ≥ 0 Des solveurs de programmation linéaires existent dans le domaine publique (par exemple, Gnu Linear Programming Kit ou GLPK) ou privé (par exemple, CPLEX de IBM, anciennement ILOG). Simplex GLPK IBM ILOG CPLEX Solution: (x,y)=(3,12) IFT608/IFT702 © Froduald Kabanza
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 Markoviens, 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ées par des applications de nature « cognitive » plutôt que l’optimisation en elle-même – l’optimisation n’est qu’un outil mathématique. Certains solveurs IA sont donc parfois basées sur des théories différentes de celles normalement étudiées en recherche opérationnelle, mais il y a des recoupements importants. Certains solveurs IA sont donc souvent basées sur des théories différentes de celles normalement étudiées en recherche opérationnelle. Par exemple, on verra des transformations pour la planification de trajectoires, la logique temporelle, etc. IFT608/IFT702 © Froduald Kabanza
Théories mathématiques sous-jacents aux solveurs que nous allons étudier Les solveurs que nous verrons sont basés sur: Théorie des graphes Logique mathématique Théorie des probabilités Optimization Théorie des jeux L’apprentissage automatique Plan Planificateur Modèle d’actions, capteurs et buts In AI, planning hinges on various mathematical models of action and decision making. IFT608/IFT702 © Froduald Kabanza
Applications robotiques Les concepts de missions spatiales du futur introduisent de plus en plus d’autonomie dans les manipulations robotiques. IFT608/IFT702 © Froduald Kabanza
Applications robotiques asimo.honda.com Plusieurs prototypes de robots, de plus en plus agiles, visant plusieurs domaines d’application. IFT608/IFT702 © Froduald Kabanza
Applications dans les jeux vidéos StarCraft StarCraft is a science fiction game centered around a galactic struggle for dominance between three species: Terrans, Protoss, Zerg. The terrans are battlefield is in a distant galaxy of the Milky Way at the beginning of the 26th century. [The terrans are adaptable and mobile and look like humans. The Zerg are evolving insectoid species. The protoss are the most technological advances species. Thus a protoss strategy in game play is built around the quality of units a player controls, not the quantity. There is another spece, Xel’Nega, but their only appearance is in the form of relics.] IFT608/IFT702 © Froduald Kabanza
Principes basiques du jeu Collecter des ressources, pour... Construire des bâtiments... Recruter des unités, pour... At the strategic level (Macro-management), each player build an army: build structures and units. At the tactical level (Micro-management, i.e., combats), he deploy units to control strategic points, engage the enemy to destroy his units or structures or to do reconnaissance (scouting). Players can play against each others in teams, and each player controlling a given number of army units. The victory condition can be different from one scenario to another, but usually involves destroying some or all the opponents' buildings or controlling strategic points for a certain period of time. Units are typically recruited from structures that the players build using different resources, as the game advances. As armies build up on each side, initial skirmishes can quickly escalate into all-out wars. Attaquer et vaincre l’ennemi! IFT608/IFT702 © Froduald Kabanza
Différentes hypothèses qui seront considérées Single-agent vs. multiagent problems Fully vs. partially observable environments Deterministic vs. stochastic actions (1) (2) successful attack (2) failed attack (2) failed attack (3) ... Note that these are simplifying assumptions often adopted at the planning algorithm, not necessarily at the whole agent controller level. For example, mobile robotics is by nature a nondeterministic, partially observable domain. Yet it is customary to use a deterministic planning to solve mobile robot planning problems. Deterministic planning ignores uncertainty at planning time. It produces a sequence of actions, i.e., an open-loop controller. However, such a plan can be used in an uncertain environment by using a closed-loop controller that interprets it as a recommendation for the next action and invokes replanning whenever things go wrong. Similarly, with partial observation, we can use a planner assuming complete observability and try to exploit the resulting solution to cope with a truly partially observable environment. ------------------------------ With stochastic actions, the plan contains contingencies indicating what the agent should do next depending on the outcome of the previous action. For example, if the attack failed on the first bunker, the agent should retreat instead of attempting to attack the second bunker. In a partially observable environment, the agent may not be aware of the opponent’s offensive and defensive capabilities. In a multiagent setting, an ally could help the agent to attack the opponent, but both agents need to coordinate their actions in order to maximize the effectiveness of their simultaneous attacks. IFT608/IFT702 © Froduald Kabanza
Défis qui seront abordés Explosion combinatoire des états: Extraire des heuristiques du domaine Approches Monte-carlo (échantillonnage) Apprentissage d’heuristiques In AI, planning hinges on various mathematical models of action and decision making. IFT608/IFT702 © Froduald Kabanza
Problème de reconnaissance de plan L’autre problème que nous allons étudier est celui de reconnaître les intentions, les buts, ou les plans d’un autre agent. Ce problème peut être formulé et résolu comme l’inverse de la planification. C’est un problème fondamental dans l’interaction humain-machine. C’est un problème pertinent aussi dans l’analyse de la menace dans les jeux vidéo, la sécurité publique et la défense nationale. Quel est son but? Comment va-t-il l’accomplir? IFT608/IFT702 © Froduald Kabanza
Inférer l’intention de l’autre à partir des observations Let’s say we have two agents, A and B. In the top left corner of the map, there is a base belonging to Agent A. Below the base, there is a defensive building also belonging to Agent A. On the bottom right, there is a base belonging to Agent B. Upper that base, there is a mine from which the agents can collect resources for building bases. [CLICK] Once A sees B moving, he would like to predict whether B is trying to collect resources, is returning to his base, or is attacking A’s base? Agent B could also be aiming for a combination of some of these goals. Or, he could simply be exploring the map. He also be trying to distract Agent A, while getting ready for a much stronger strike elsewhere. Agent B: Joueur observé Agent A: Game AI (observateur) IFT608/IFT702 © Froduald Kabanza
Inférer l’intention de l’autre à partir des observations As new observations come in, [CLICK] Agent A will update his predictions. Agent B: Joueur observé Agent A: Game AI (observateur) IFT608/IFT702 © Froduald Kabanza
Évidences que les êtres humains recourent souvent à la reconnaissance de plans (Schmidt et al., AIJ 1978) Ont fait des expérimentations montrant que dans plusieurs situations les sujets recourraient à la reconnaissance de plan pour prédire les comportements des personnes observes. Experiment: human subjects were presented with sequences of actions by another agent and were asked to summarize their observations and predict subsequent actions. Observations: The summarizations by the subjects included goals and plans attributed to the observed agent, and the agent's actions were explained in terms of how they contributed to achieving those goals. The summaries indicated that the subjects had used the inferred plans to predict the agent's subsequent actions. IFT608/IFT702 © Froduald Kabanza
Évidences que les êtres humains recourent souvent à la reconnaissance de plans (Baker et al., Cognition 2009) Ont fait des expérimentations dans lesquels ils montraient à des animations de personnages se déplaçant dans un labyrinthe à des sujets humains. À différents moments, on demandait au sujets de prédire la destinations des personnages. Ils ont montré qu’un algorithme de reconnaissance de plans pouvait donner des prédictions comparables à celles des sujets humains. Participants were told they would be viewing videos of members of an intelligent alien species collected by scientists, and that each video displayed a different alien moving toward a different goal in the environment. They were instructed that aliens could not pass through walls, but that they could pass through gaps in walls. IFT608/IFT702 © Froduald Kabanza
Application dans l’interaction humain-machine Pour que les robots interagissent naturellement avec les humains, ils devront pouvoir comprendre leurs intentions. Many situations are too complex to be accomplish by one agent, so multiple agents need to cooperate to achieve them. NASA Robonaut IFT608/IFT702 © Froduald Kabanza
Application aux jeux de stratégie temps réel Où envoyer les renforts? Where will the opponent attack? IFT608/IFT702 © Froduald Kabanza
Application aux jeux de stratégie temps réel READY Recognizing the opponent's behaviour is harder when he is acting in coordinated units in time and space. Units can perform synchronized actions at specific periods while moving in formation or not within carefully assigned zones. Some units may have specific roles such as observing potential targets and relaying the information to attacking units. Attacks may be timely planned and executed to overwhelm the opponent's defenses. Coordinated behaviours can come in different forms: single goal; multiple goals; diversion; deception; etc. “Surround” Scenario In this scenario, the following events occur: The opponent (RED) splits his force into two groups; The first group crosses the northeast bridge and informs the other group that it is ready to surround the controlled agent (BLUE); The second group crosses the southwest bridge and informs the other group that it is ready to surround the controlled agent; and Once both groups are ready, the opponent attacks the controlled agent by surrounding his units. To be efficient, the agents must surround the blue team at the same time. If they are not well coordinated, the blue team will have an opportunity to flee, or attack one group at a time and succeed fending off the attack. For this reason, the opponent’s units communicate with each other when they are ready to start the attack. READY IFT608/IFT702 © Froduald Kabanza
Reconnaissance de plan dans StarCraft (Filion, 2013) Here is a short video, illustrating a randomly generated scenario and a corresponding plan recognition process using an algorithm implemented by a former Master’s student, Julien Filion. For each new observation, the lower and upper bound of each root goal of the plan library, given the observations so far, is displayed. IFT608/IFT702 © Froduald Kabanza
Unanticipated changes Planification et architectures décisionnelle SPAR pour StarCraft (Chamberland, 2011) Game State Perception (BWAPI) Sensor data Tactical assessment Threat evaluation Threat evaluations Influence map Planning Execution monitoring La planification est un processus cognitif parmi tant d’autres qui sont aussi essentiel à l’intelligence. En fait, un agent a besoin d’une architecture décisionnelle qui coordonne la planification et les autres processus cognitifs selon le contexte et les besoins. L’interprétation des données sensorielles, par exemple, est un domaine très vaste, impliquant entre autre le problème de reconnaissance de plans. Il s’agit reconnaître les plans, les buts ou les intentions d’un autre agent (par exemple, un adversaire dans un jeu) en observant les effets de ses actions. Nous aborderons ce problème ainsi que ses multiples applications potentielles. La planification et la reconnaissance de plans visent à automatiser des processus cognitifs. Il peut s’agir d’une automatisation complète ou d’une automatisation partielle pour aider un usager à accomplir des tâches, en surveillant si ses actions sont conformes à un plan optimal et en recommandant des étapes. On parle alors de planification avec initiative mixte et nous en verrons quelques exemples. D’anciens étudiants du laboratoire PLANIART ont dévelopée une architecture décisionnelle qui s’appelle SPAR (Mémoire de maîtrise de Simon Chamberland, 2013). Je verai dans quelle mesure elle peut être facilement utilisable pour un projet dans ce cours. Sinon, je vais définir un projet plus simple ne nécessitant pas cette architecture. Unanticipated changes Plans & reflexes Execution (BWAPI) Effectors IFT608/IFT702 © Froduald Kabanza
Résumé Le cours couvre deux sujets connexes: La planification – choix d’actions La reconnaissance plan – inférence de l’intention des autres Ils existent des solutions pratiques pour certains de ces problèmes. Une bonne partie des problèmes intéressants sont encore non résolus. La littérature des approches algorithmiques est très vaste. Le cours donne un aperçu tout en approfondissant quelques approches choisies. IFT608/IFT702 © Froduald Kabanza