Découvrez l'environnement Cart-Pole d'OpenAI Gym
Table of Contents
- Introduction
- The Cart-Pole Environment
- Description of the System
- Control Objective
- Action and Observation Space
- Termination Conditions
- Rewards
- Creating the Cart-Pole Environment in Python
- Importing Libraries
- Creating and Resetting the Environment
- Rendering the Environment
- Taking Actions
- Simulating the Environment
- Conclusion
- Additional Resources
🎯 Introduction
Dans ce tutoriel, je vais vous présenter l'environnement du cart-pole de la bibliothèque OpenAI Gym. Cet environnement est couramment utilisé pour tester les algorithmes de contrôle et d'apprentissage par renforcement. Nous allons expliquer comment créer cet environnement en utilisant Python et comment simuler des actions de contrôle aléatoires.
🏎️ Le cart-pole
📝 Description du système
Le système du cart-pole se Compose d'un chariot avec un poteau rotatif attaché à celui-ci. Le chariot peut se déplacer horizontalement dans la direction X, tandis que le poteau peut pivoter librement autour de sa base.
🎯 Objectif de contrôle
L'objectif de contrôle est de maintenir le poteau en position verticale en appliquant des forces horizontales au chariot. Nous devons trouver une séquence d'actions ou de forces qui permettra de maintenir le poteau dans la position verticale.
⚙️ Espace des actions et des observations
L'espace des actions du cart-pole est discret, avec deux actions possibles : pousser le chariot vers la gauche (action 0) ou pousser le chariot vers la droite (action 1).
L'espace des observations est continu, composé de quatre variables :
- La position du chariot (X)
- La vitesse du chariot (Ẋ)
- L'angle de rotation du poteau (Θ)
- La vitesse angulaire du poteau (Θ̇)
⛔ Conditions de terminaison
Un épisode se termine dans les conditions suivantes :
- L'angle du poteau dépasse ±12 degrés
- La position absolue du chariot est supérieure à 2.4
- Le nombre d'étapes dépasse un certain seuil (500 étapes pour la version 1 de Gym)
⭐ Récompenses
Une récompense de +1 est obtenue à chaque étape dans un épisode. L'objectif est de maximiser la somme des récompenses obtenues pendant l'épisode, ce qui indique une meilleure performance de contrôle.
🖥️ Création de l'environnement cart-pole en Python
Pour créer cet environnement en Python, nous aurons besoin des étapes suivantes :
1. Importer les bibliothèques nécessaires
Nous importons les bibliothèques gym
, numpy
, et time
.
2. Création et réinitialisation de l'environnement
Nous créons l'environnement en utilisant la fonction gym.make()
et spécifions le mode de rendu. Ensuite, nous réinitialisons l'environnement en utilisant la fonction env.reset()
.
3. Rendu de l'environnement
Nous pouvons utiliser la fonction env.render()
pour afficher l'environnement.
4. Actions du cart-pole
Nous pouvons prendre des actions dans l'environnement en utilisant la fonction env.step(action)
, où action
est l'action choisie.
5. Simulation de l'environnement
Nous pouvons simuler le comportement de l'environnement en effectuant des actions aléatoires et en observant les états résultants. Nous pouvons définir le nombre d'épisodes et le nombre d'étapes par épisode pour la simulation.
✅ Conclusion
Dans ce tutoriel, nous avons introduit l'environnement Cart-Pole de la bibliothèque OpenAI Gym. Nous avons expliqué la description du système, l'objectif de contrôle, les espaces d'actions et d'observations, ainsi que les conditions de terminaison et les récompenses. De plus, nous avons appris comment créer et simuler cet environnement en Python. Il est maintenant temps d'explorer davantage ce système passionnant et d'appliquer des algorithmes d'apprentissage par renforcement pour maintenir le poteau en position verticale!
🔍 Ressources supplémentaires
FAQ:
Q: Quel est l'objectif du cart-pole dans cet environnement ?
A: L'objectif du cart-pole est de maintenir le poteau en position verticale en appliquant des forces horizontales au chariot.
Q: Quelles sont les conditions de terminaison d'un épisode ?
A: Un épisode se termine si l'angle du poteau dépasse ±12 degrés, si la position absolue du chariot dépasse 2.4, ou si le nombre d'étapes dépasse un seuil prédéfini.
Q: Comment sont définies les récompenses dans cet environnement ?
A: Une récompense de +1 est obtenue à chaque étape. L'objectif est de maximiser la somme des récompenses obtenues pendant l'épisode.