programmation pour la robotique, TP 5
Table of Contents
Dans ce TP nous gardons notre problème notre méthodes, mais on change l'implémentation !
L'énoncé est le même que la dernière fois, seul le fichier colab est différent.
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
l'ensemble des états l'ensemble des actions l'horizon la fonction de transition (aussi appelée dynamique) la fonction de récompense la dévaluation
Dans notre cas, il y aura :
on se place dans le cadre d'un nombre d'états finis. On décide de représenter les états via la méthode du tile coding (Une implémentation vous est donnée, à vous de l'utiliser).- 3 actions (gauche/rien/droite) numérotées de 0 à 2
(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
4. Les étapes du TP:
- Téléchargez le carnet ici
- Ouvrez une fenêtre de votre navigateur sur colab
- Chargez le carnet (File → Open Notebook …)
- Lisez/évaluez/complétez le notebook
- Sauvegardez le carnet, et téléchargez-le (File → Download .ipynb)
- Connectez-vous à l'ENT, et à la page du cours de robotique
- 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.