Aller au contenu

Utilisateur:A.t.luciani/Brouillon

Une page de Wikipédia, l'encyclopédie libre.

Le logiciel DEVSimPy est une interface graphique développée en langage Python et plus particulièrement avec la librairie wxPython. Il permet la modélisation et la simulation à événements discrets de modèles décrits dans le formalisme DEVS (Discrete EVent system Specification). DEVSimPy permet la sauvegarde et la réutilisation des modèles stockés dans des librairies (.amd pour les modèles atomiques et .cmd pour les modèles couplés). Vous pouvez également importer des fichiers Python représentant des modèles développés avec PyhtonDEVS par un simple glisser/déposer. DEVSimPy permet également la simulation de ces modèles et fournit une interface de visualisation des résultats.

Formalisme DEVS[modifier | modifier le code]

Ce formalisme a été introduit à la fin des années 70 par le professeur Zeigler qui avait pour objectif de donner un socle mathématique solide à la modélisation des systèmes à événements discrets. Un système à événements discrets est un système pouvant être décrit à partir d'un ensemble d'états et de règles de transition entre ces états. Le formalisme DEVS permet la représentation d'un système comme un modèle ou un ensemble de modèles possédant des états et des transitions. Plus d'informations sur le formalisme DEVS ici.

DEVSimPy et SPE : Idée de départ[modifier | modifier le code]

Le projet libre DEVSimPy est née au sein de l'équipe du laboratoire SPE (Siences Pour l'Environnement) de l'Université de Corse. Ce laboratoire est une UMR CNRS 6134 et travail depuis plus de 20 ans dans le domaine de la modélisation et de la simulation de systèmes complexes. Il est notamment spécialisé dans le domaine des systèmes environnementaux modélisés avec le formalisme DEVS. C'est au travers de ces études que le laboratoire a publié plusieurs travaux sur des extensions du formalisme DEVS répondant à des problématiques issues des différents domaines d'applications étudiés comme :

  • la simulation de feux de forêt,
  • le test comportemental de circuits digitaux,
  • la simulation comportementale de bassins versants,
  • la simulation de réseaux de capteurs,
  • la simulation des mythes et légendes,
  • etc..

Ces travaux se sont toujours effectués dans un objectif de généricité et de réutisabilité des modèles DEVS. Le langage de programmation utilisé pour implémenter ces travaux dépendait principalement de la nature du domaine d'application et des préférences pour une technologie particulière de la part des personnes en charge de l'étude. Cependant, depuis quelques années, la bibliothèque PyDEVS est de plus en plus utilisé au sein du laboratoire. Cette librairie est développé en langage Python et offre à l'utilisateur une API permettant de modéliser et de simuler des modèles DEVS. Bien que cette API soit embarquée dans l'excellent logiciel de multi-modélisation ATOM 3 , il n'existe pas d'interface graphique exploitant PyDEVS pour faciliter le développement de modèles uniquement DEVS. En effet, lorsque l'utilisateur doit implémenter le couplage entre les modèles DEVS, il doit manipuler plusieurs fois une méthode dans un ordre bien particulier. Cette manipulation est souvent la source d'erreurs qu'il faut ensuite debugger en vérifiant tous les couplages. De plus, il faut réitérer cette opération pour chaque système et sous-système modélisé. Il n'existe aucun moyen de réutiliser de manière simple des modèles couplés dans une autre partie du système si besoin est.

L'idée de départ du projet libre DEVSimPy était d'apporter aux utilisateurs de PyDEVS une interface graphique facilitant la connexion des modèles DEVS ainsi que leur réutilisabilité. La première version de DEVSimPy permettait donc (et permet toujours) d'importer des classes PyDEVS et de les manipuler comme des objets visuelles afin de construire des modèles plus complexes. Le logiciel propose ensuite de simuler de manière automatique ces modèles par un simple clic qui a pour effet d'invoquer le simulateur PyDEVS.

DEVSimPy : une interface pour PyDEVS[modifier | modifier le code]

A l'heure actuelle, DEVSimPy est une interface graphique permettant:

  • L'exploitation de fichiers PyDEVS,
  • La création de modèles.
  • La réutilisation de modèles à partir de librairies.
  • La simulation intéractive des modèles.
  • L'implémentation des concepts attachés aux différentes branches du formalisme DEVS (DEVS parallel, DEVS concurrent, DEVS floue, DEVS-SIG, DEVS-SMA, ...)
  • L'expérimentation de nouveaux domaines d'applications et de concepts DEVS.
  • etc..

DEVSimPy a été pensé pour simplifier la phase finale du modélisateur qui consiste à coupler les modèles entre eux afin de les simuler pour enfin analyser leurs comportements. Pour ce faire, L'utilisateur peut utiliser DEVSimPy de différente manière: Soit il implémente sa librairie de fichiers PyDEVS en utilisant son logiciel de programmation python préféré puis il importe ces derniers dans DEVSimPy afin de les connecter et de les simuler. Soit il crée, connecte et simule directement sa librairie de modèles au travers de DEVSimPy sans passer par un logiciel externe. Dans tous les cas les connexions entre modèles se font par un simple glissé de souris ou par l'intermédiaire d'un gestionnaire de connexions étendant la fonctionnalité à plusieurs ports.

La création et l'importation de librairies de modèles est simplifiée par DEVSimPy. Une interface de dialogue concise est proposée à l'utilisateur afin de gérer ces librairies de modèles. Ormi le fait que les modèles puissent être simulés, ils peuvent également être sauvegardés dans un format compressé embarquant les dépendances directes des modèles (import). Ce mode de stockage sépare le comportement (.py, ....) et l'aspect graphique (.dat, .jpg, .png) des modèles . De plus il permet de sauvegarder la représentation des modèles et donc d'associer aux fichiers comportementaux PyDEVS une couche graphique.

L'exploitation des résultats de simulation est améliorée avec l'utilisation de DEVSimPy. En effet, le mode verbeux de PyDEVS est embarqué dans une fenêtre de log donnant la possibilité de naviguer dans la simulation par recherche de mot clés. De plus, DEVSimPy propose une gestion de plugin permettant d'étendre ces fonctionnalités de base à l'intérieur de morceaux de code activables en fonction des besoins et des applications. DEVSimPy possède entre autre un plugin qui permet de suivre pas à pas le comportement des modèles pendant la simulation à événement discret. Enfin, des modèles de base permettent de tracer en temps réel des données temporelles dans des graphiques dynamiques.

Liens[modifier | modifier le code]

Références[modifier | modifier le code]