---
title: stage implémentation pyRobOnTL
tags: Software, RobonTL, pyRobTL
---
# Implémentation d'un moniteur de spécifications formelles pour les algorithmes d'apprentissage par renforcement
## Tâches Fin Stage
### A faire (ordre d'importance)
- [ ] Organisation repo pyRobTL, readme avec
- [ ] Installation Instruction
- [ ] Getting started interface examples
- [ ] Exemple simple mais complet d'utilisation avec openAI gym
- [ ] Packaging pyPiP + soumission d'une version 0.0.1
- [ ] Test performance: mesure et graphique du temps de calcul de la robustesse en fonction du temps et du nombre de samples
- [ ] Comparaison performance avec d'autres outils [rtamt(https://github.com/nickovic/rtamt), [signal-temporal-logic](https://github.com/anand-bala/signal-temporal-logic) packages
## Objectif
L'objectif du stage est d'intégrer le monitoring de spécifications formelles exprimées en logique temporelle des signaux (STL) à l'exécution d'environnements implémentés avec la plateforme d'apprentissage par renforcement OpenAI Gym. Le stagiaire se basera sur une bibliothèque existante en C++ et en un premier temps implémentera un interface dans le language Python. En un second temps, il créera une interface générique qui pourra s'adapter facilement à tout problème implémenté avec la plateforme Open AI Gym. Si cet objectif est atteint et si le temps le permet, il s'intéressera alors à l'utilisation de formules STL pour améliorer les performances d'apprentissage de tâches plus ou moins complexes parmis les nombreux cas d'études existant dans OpenAI gym.
## Tâches
- Bibliographie: [STL](https://slidetodoc.com/autonomous-cyberphysical-systems-signal-temporal-logic-spring-2018/?msclkid=2d6c0390d03e11ec9033e4ea49766d90), RL (Reinforcement Learning)
- Familiarisation avec [RobonTL](https://github.com/decyphir/robontl): librairie C++ existante de monitoring de STL.
- Implémentation de wrapper Python pour RobonTL (pyRobonTL), par exemple en utilisant [pybind11](https://pybind11.readthedocs.io/en/latest/)
- Familiarisation avec [OpenAI Gym](https://gym.openai.com/), framework Python open source pour l'apprentissage par renforcement
- Intégration de pyRobonTL avec des environnements Open AI gym
## Proposition Planning
```plantuml
@startgantt
printscale weekly
scale 2
Project starts 2022-05-16
[Stage] starts 2022-05-16 and lasts 12 weeks
[Biblio] starts 2022-05-16 and lasts 3 weeks
[RobonTL] starts 2022-05-23 and lasts 3 weeks
[pyRobonTL] starts at [RobonTL]'s end and lasts 3 weeks
[OpenAI] starts 2022-05-30 and lasts 3 weeks
[pyRobonTL + OpenAI] as [T] starts at [OpenAI]'s end and lasts 5 weeks
[Doc] starts at [pyRobonTL + OpenAI]'s end and lasts 2 weeks
hide footbox
@endgantt
```
## Détails Tâches
- [Biblio](/4ZjM9B1CQjiKqB_lJoeX4Q)
- [pyRobonTL](/eG0XmZSjSYSCDy1srykGlg)