programmation pour la robotique, TP 4

Table of Contents

Dans ce TP nous changeons de problème et de méthode pour notre agent !

1. Le chariot dans la montagne

https://en.wikipedia.org/wiki/Mountain_car_problem

Un chariot se trouve sur des rails qui vont en ligne droite entre deux montagnes. Le but est d'amener le chariot au sommet de la montagne de droite (au drapeau); cependant, le moteur du chariot n'est pas assez puissant pour escalader la montagne en une fois. La seule solution pour y arriver est donc d'avancer puis reculer alternativement pour gagner en vitesse.

À travers l'environnement, on peut connaître la position du chariot sur l'axe des abscisses ainsi que sa vitesse (position et vitesse sont bornées). Trois actions sont possibles, accélérer vers la gauche, ne rien faire, accélérer vers la droite.

Le chariot commence chaque tentative pour atteindre le drapeau au sommet de la montagne de droite à partir d'une position aléatoire et d'une vitesse nulle. Chaque tentative dure au maximum 200 pas de temps. Si à l'instant 200, le chariot n'a pas atteint le sommet, c'est un échec.

La récompense est zéro si la position du chariot est supérieure ou égale a 0,5 (la position du drapeau) et -1 sinon.

2. Modélisation par un processus de décision markovien

Rappel: Un MDP est un tuple (S,A,H,T,R,γ) avec

  • S l'ensemble des états
  • A l'ensemble des actions
  • H l'horizon
  • T la fonction de transition (aussi appelée dynamique)
  • R la fonction de récompense
  • γ la dévaluation

Dans notre cas, il y aura :

  • S on se place dans le cadre d'un nombre d'états finis. On décide de stocker les états dans une table indexée par deux intervalles (un pour la position, et un pour la vitesse). On divise l'ensemble des positions en intervalles de taille 0,1 et l'ensemble des vitesse en intervalles de 0,01.
  • 3 actions (gauche/rien/droite) numérotées de 0 à 2
  • H=200 (ou infini si c'est plus simple à modéliser)
    • On suppose que la dynamique n'est pas connue (notre agent ne connaît pas la physique)
  • la récompense pour chaque état est 0 si on est à droite du drapeau, -1 sinon.
  • la dévaluation est arbitrairement mise à 0,9.

3. Utilisation de OpenAI Gym

Le site OpenAI Gym propose des modèles d'environnement pour de nombreuses tâches de robotique et plus généralement d'apprentissage par renforcement. Il sert principalement à tester et comparer de nouveaux algorithmes. La tâche qui nous intéresse aujourd'hui est Mountain Car.

Par le module python gym on peut charger ces environnements et créer un agent qui interagit avec eux.

Le but du TP est de créer un agent pour cet environnement, et de lui faire apprendre un une politique π par les algorithmes SARSA, Q-Learning et SARSA espéré vus la dernière fois.

4. Les étapes du TP:

  1. Téléchargez le carnet ici
  2. Ouvrez une fenêtre de votre navigateur sur colab
  3. Chargez le carnet (FileOpen Notebook …)
  4. Lisez/évaluez/complétez le notebook
  5. Sauvegardez le carnet, et téléchargez-le (FileDownload .ipynb)
  6. Connectez-vous à l'ENT, et à la page du cours de robotique
  7. Soumettez votre carnet sur l'interface de rendu pour la semaine concernée

4.0.1. Remarques

Vous pouvez installer jupyter notebook sur votre ordinateur personnel et travailler en local. Il vous faudra dans ce cas veiller à installer jupyter et les bibliothèques nécessaires.

Author: Joseph Le Roux

Created: 2025-01-07 Mar 11:52