---
# System prepended metadata

title: stage implémentation pyRobOnTL
tags: [Software, ' RobonTL', ' pyRobTL']

---

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

