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 T. Donc bonne nouvelle, plus besoin de triturer 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 (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 :

  • 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
  • H est infini. Les séquences d'actions S à 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 π via la méthode Monte-Carlo vueen cours qui permette à l'agent de récupérer le frisbee de manière fiable.

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 (gym et numpy).

Author: Joseph Le Roux

Created: 2025-01-07 Mar 11:52