--- 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)