programmation pour la robotique, TP 3
Table of Contents
Cette semaine, on reprend le problème du lac gelé, mais pour le résoudre on va
utiliser la méthode Monte-Carlo, en faisant l'hypothèse que l'on ne connait pas
la dynamique env.P
!
La première partie du TP reprend l'énoncé précédent. Seul le notebook change.
1. Le lac gelé!
Original English Version here
C'est l'hiver. Vous jouez avec vos amis au frisbee dans le parc quand un lancer incontrôlé a pour effet de faire tomber le frisbee au milieu du lac. L'eau est gelée sur presque toute la surface mais il y a quelques trous dans lesquels la glace a fondu. Si vous vous retrouvez au-dessus de l'un de ces trous, vous tomberez dans l'eau glacée. En ce moment, il y a une pénurie mondiale de frisbees, il est donc impératif que vous alliez chercher le frisbee sur le lac et que vous le rameniez. Attention, la glace est glissante, et vous ne vous déplacerez pas forcément dans la direction que vous avez choisie.
Le lac sera modélisé par un graphe, représenté informellement par une illustration comme ci-dessous:
SFFFFFFF FFFFFFFF FFFHFFFF FFFFFHFF FFFHFFFF FHHFFFHF FHFFHFHF FFFHFFFG
Chaque lettre correspond à un sommet, et il existe un arc entre un sommet et chacun de ses voisins (haut/bas/gauche/droite).
Les lettres indiquent ce que contient chaque état:
S
- votre position initiale sur la le lac gelé
G
- la position du frisbee
F
- le sol est gelé sur ce sommet
H
- il y a un trou
Le but est donner une suite d'actions pour rejoindre le sommet G
, à partir
de votre position initiale S
en évitant les trous H
. Ces actions sont au
nombre de 4 (gauche/bas/droite/haut) et indiquent vers quel sommet voisin vous
voulez vous rendre. Attention, ce n'est pas parce que vous décidez d'aller
dans une direction que vous y arriverez : vous pouvez glisser et vous retrouver
aléatoirement sur un autre sommet voisin !
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 :
- 64 états numérotés de 0 à 63 de gauche à droite et de haut en bas,
- 4 actions (gauche/bas/droite/haut) numérotées de 0 à 3
est infini. Les séquences d'actionsS
àG
les plus courtes sont de longueurs 14 mais il existe des séquences plus longues (et infinies).- Pour les transitions, on suppose cette fois-ci que la dynamique est inconnue (vous povez vous reporter au TP précédent sinon)
- la récompense est 1 si on se trouve dans l'état étiqueté par
G
, et 0 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 Frozen Lake.
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 (gym et numpy).