9
votes

PULTIVÉE NET PETRI ET GÉNÉRATION DE CODE

Y a-t-il un logiciel pour dessiner un réseau de Petri et générer un code source de là-bas? Le code source pourrait être dans une langue de programmation déjà connue ...

Une option légèrement moins souhaitable serait la sortie d'un fichier avec seulement la description des graphiques de Petri Net dans un fichier texte sur certains formats ouverts, tels que XML ou toute autre langue de données. Je pourrais alors écrire le générateur de code moi-même, mais au moins, j'aimerais éviter une partie de développement GUI / graphique;))

merci


2 commentaires

J'ai trouvé une longue liste de logiciels associés à Informatik.uni -hambourg.de/tgi/petrinets/tools/Quick.html Je vais commenter si je le trouve utile là-bas


C'est génial aussi stamachines.umple.org


3 Réponses :


3
votes

check Petrinetsim Il est développé en Java, vous pouvez dessiner et simuler des simples / colorés / petrinets chronométrés. Il vient avec quelques exemples. Vous pouvez étendre les contraintes d'arc et de nœuds en Java. Et enfin, vous pouvez voir des classes Java du produit de Pétri généré

Vous pouvez saisir le code source de github https://github.com/guillem-catala/petrinetsim


0 commentaires

3
votes

Je regarderais le Outils CPN . Ils fournissent toutes sortes de travaux de construction, d'analyse, de simulation de minets de Pétri colorés et de capacités de génération de code de revendication.


0 commentaires

4
votes

Je développe y_petri dans Ruby. Pour le moment, Ypetri peut gérer la visualisation ( ypetri :: net classes a #visualiser méthode en utilisant graphviz pour dessiner le net), mais pas L'édition de l'interface graphique que vous semblez avoir à l'esprit. FYI, premièrement, l'édition de l'interface graphique dans les filets de Petri est moins important qu'il n'y parait.

La langue de données utilisée est Ruby elle-même (plus précisément et DSL interne écrit dans Ruby).

Un problème majeur avec les filets de Pétri est qu'il existe une totalité trop de types d'entre eux existants. Ypetri tente d'être un cadre de réseau de Pétri universel, avec 1 type de lieux (de type de marquage arbitraire) et 4 types de base de transitions (chronométrés / intemporel x stoechiométriques / non stoechiométriques). De plus, il existe un cinquième type de transition, une transition d'affectation, qui remplace le marquage des places cibles avec la valeur de retour de sa fonction. Je crois que cela peut être utilisé pour décrire tout système dynamique que ce soit, tout en étant aussi paimonieux que possible de le faire.

Les arcs nets de Pétri sont compris comme des relations entre les transitions et les lieux (elles appartiennent à des transitions dans y_petri . J'ai constaté qu'il est utile d'exprimer également les relations entre Petri Net Nœuds (Lieux / transitions) que juste des arcs. À cette fin, J'utilise essentiellement la structure ZZ de Ted Nelson (ZZAG) essentiellement comme un remplacement pour un Base de données relationnelle .

Tant que la simulation (exécution nette de Pétri), les filets de Pétri hybrides généraux n'ont pas de méthode de simulation plus rapide disponible que la méthode d'Euler implicite (que j'appelle pseudo Euler). En effet, un réseau PETRI peut être utilisé pour implémenter une machine à Turing, pour laquelle aucune vitesse générale n'est possible.

Si vous êtes prêt à fonctionner dans Ruby, vous pouvez donc décrire un réseau Petri dans y_petri ou y_nelson code DSL. Je ne fournis pas de conversion en XML, car je ne le considère pas, il est supérieur à la source DSL. Il serait possible d'écrire une telle routine d'exportation, mais je vous encourage à utiliser la DSL à la place.


0 commentaires