Université Bordeaux I – Institut de la Francophonie ENSEIRB - CNRS pour lʹInformatique Laboratoire Bordelais de Recherche en Informatique Mémoire de fin d'études "Dépliage du modèle en langage AltaRica" Préparé par NGUYEN Duy Tung Sous la direction de M. COUVREUR Jean-Michel et M. WALUKIEWICZ Igor LaBRI, Octobre 2005 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Dépliage du modèle en langage AltaRica Page 1 Table des matières 1.3 Transformation de l'AltaRica au réseau de Petri. Dépliage de réseau de Petri.2 Etat de l'art .3 Dépliage de produits d'automates .1 Dépliage basé sur le préfixe local.2 Dépliage basé sur les techniques LCA et RMQ.3 Dépliage basé sur le RMQ dynamique.
La syntaxe de langage AltaRica au format BNF. Tests standards en langage AltaRica. Algorithme de dépliage de produits d'automates. Autres exemples de réseaux de Petri et leurs préfixes .58 Mémoire de fin d'études de NGUYEN Duy Tung, Promotion IX LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Dépliage du modèle en langage AltaRica Page 2 Liste des figures Figure 2.1 : Réseau de Petri Figure 2.2 : Réseau de Petri de SG(3) Figure 2.3 : Macro-transition et des transitions correspondantes Figure 2.4 : SG(3) en langage AltaRica Figure 3.1 : Réseau d'ocurrence Figure 3.2a : Algorithme de dépliage Figure 3.2b : Génération des transitions Figure 3.3 : Préfixe fini Figure 3.4 : Préfixe du dépliage de SG(3) Figure 3.5a : Composant s0 de SG(3) Figure 3.5b : Composant s1 de SG(3) Figure 3.5c : Composant s2 de SG(3) Figure 3.6a : Processus arborescent dans le composant s0 de SG(3) Figure 3.6b : Processus arborescent dans le composant s1 de SG(3) Figure 3.6c : Processus arborescent dans le composant s2 de SG(3) Figure 3.7 : Processus arborescent global Figure 5.1 : Graphe des sous-préfixes Figure 5.2 : Les sous-préfixes Q, R et P de SG(3) Figure 5.3 : Graphe des sous-préfixes de SG(3) Figure 5.4 : L'arbre Cartsian du composant s1 de SG(3) Figure 5.5 : RMQ rapide Figure 5.6 : La construction du graphe des sous-préfixes Figure 5.7 : Construction de matrice A Figure 5.8 : Arbre AVL dans le RMQ dynamique Mémoire de fin d'études de NGUYEN Duy Tung, Promotion IX LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Dépliage du modèle en langage AltaRica Page 3 Liste des tableaux Tableau 4.1 : Résultats de dépliage du SG (avec une blanche) Tableau 4.2 : Résultats de dépliage du SG (avec deux blanches) Tableau 4.3 : Résultats de dépliage du DP Tableau 4.4 : Résultats de dépliage du BUF Tableau 5.1 : Comparaison de la complexité des algorithmes de dépliage Mémoire de fin d'études de NGUYEN Duy Tung, Promotion IX LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Dépliage du modèle en langage AltaRica Page 4 Résumé De nos jours, pour éviter l'explosion combinatoire du nombre d'états d'un système compliqué, la vérification basée sur des préfixes finis est une bonne solution, mais le dépliage n'est développé que sur le réseau de Petri, un langage de modélisation en bas niveau.
Autrement dit, il ne supporte pas un langage de modélisation en haut niveau comme l'AltaRica. Il faut construire un outil de transformation pour résoudre ce problème. D'autre part, grâce aux caractéristiques du modèle en AltaRica, on peut utiliser un dépliage plus efficace, le dépliage de produits d'automates. De plus, dans leur dépliage local, nous pouvons intégrer la technique basée sur le préfixe local ou les techniques Dernière Ancêtre Commun (LCA) et Requête Minimale du Rang (RMQ) pour diminuer la complexité du problème.
Nous avons des implémentations expérimentales sur des tests standards pour tester la correctivité et la performance des algorithmes de dépliage ainsi que des améliorations. Mots clés: Dépliage, Altarica, réseau de Petri, modélisation, vérification, préfixe, Dernière Ancêtre Commun (LCA), Requête Minimale du Rang (RMQ), RMQ dynamique Mémoire de fin d'études de NGUYEN Duy Tung, Promotion IX LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Dépliage du modèle en langage AltaRica Page 5 Abstract Nowadays, for avoiding the combinational explosion of the states number of complex systems, the model-checking based on finite prefix is a good solution but the unfolding is only developed on the Petri net, a language of modelling in low-level. In other words, it does not support a modelling language in high-level like AltaRica. We must build a tool of transformation in order to resolve this problem.
On the other hand, because of features of model in AltaRica, we can use a more efficient unfolding, this is a unfolding of products of automats. Furthermore, in their local unfolding, we can integrate the technic based on the local prefixe or the technics Least Common Ancestor (LCA), Range Minimum Query (RMQ) for reduce the complexity of the problem. We have the experimental implementations on the standard tests in order to test the correctitude and the performance of unfolding algorithms and their improvements. Key-words: Unfolding, Altarica, Petri net, modelling, model-checking, prefix, Least Common Ancestor (LCA), Range Minimum Query (RMQ), dynamic RMQ Mémoire de fin d'études de NGUYEN Duy Tung, Promotion IX LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Dépliage du modèle en langage AltaRica Page 6 Remerciement Je tiens à remercier mes responsables, en particulier M.
Jean-Michel COUVREUR qui m'a aidé à maîtriser le sujet du stage, a corrigé mes fautes au début et m'a favorisé enfin de trouver de nouvelles solutions pour le dépliage. Gérald POINT et M. Alaine GRIFFAULT qui me donnent des documents intéressants concernant à l'AltaRica. André ARNOLD pour l'idée du LCA, et M.
Gérald POINT pour sa bibliothèque altatool pour que je puisse économiser le temps. Je suis heureux d'avoir rencontré et de m'être intégré dans le groupe MVTsi (Modélisation, Vérification et Test des systèmes informatisés), en particulier M. The Quang TRAN qui m'a aidé à surmonter des difficultés dans un nouvel environnement. Victor KHOMENKO qui m'a donné des tests standards pour tester mes implémentations expérimentales et les comparer avec les autres.
Je tiens à remercier les professeurs à l'IFI en particulier M. Thanh Thuy NGUYEN qui m'ont contribué des meilleures conditions pour mon stage au LaBRI, Université Bordeaux 1. Enfin, je veux envoyer un grand merci pour ma famille, mes amis qui ont partagé mes obstacles, m'ont favorisé durant mon stage. Mémoire de fin d'études de NGUYEN Duy Tung, Promotion IX LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Dépliage du modèle en langage AltaRica Page 7 1.
Introduction générale Né de la volonté d'industriels et de chercheurs, le langage de modélisation en haut niveau AltaRica [Arnold03] a beaucoup d'avantages tels qu'il est utilisé plus facilement que des langages de modélisation en bas niveau comme le réseau de Petri ou il est naturel de pouvoir décrire par de nombreuses façons différentes un système donné. La vérification basée sur des préfixes finis [Esparza01, Couvreur04] est une nouvelle approche pour éviter l'explosion combinatoire de nombre d'états du système compliqué, mais ces techniques ne sont développées que sur le réseau de Petri, un langage de modélisation en bas niveau. L'objectif de mon stage est de réaliser un dépliage sur le langage AltaRica: pas seulement de construire un outil de tranformation de l'AltaRica au réseau de Petri, mais aussi de chercher des algorithmes plus efficaces pour déplier un modèle en AltaRica. Grâce aux caractéristiques du modèle en AltaRica, on peut utiliser un dépliage supplémentaire, c'est le dépliage de produits d'automates [Esparza et al, 99, Couvreur04].
De plus, dans leur dépliage local, pour améliorer la complexité du test de conflit, du test de la configuration ou la complexité du problème en général, nous pouvons intégrer la technique basée sur le préfixe local, les techniques Dernière Ancêtre Commun (LCA) ou Requête Minimale du Rang (RMQ) [Demaine03, Bender00] et la technique basée sur le RMQ dynamique [Shibuya03]. L'introduction de langage AltaRica est donnée dans la section 2. Nous allons présenter l'état de l'art du dépliage et le dépliage de produits d'automates dans la section 3. En suite, on peut trouver aussi les implémentations expérimentales et les comparaisons entre le dépliage normal et le dépliage de produits d'automates dans la section 4.
En fin, on discute sur les inconvénients et les améliorations du dépliage de produits d'automates dans la section 5. Mémoire de fin d'études de NGUYEN Duy Tung, Promotion IX LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Dépliage du modèle en langage AltaRica Page 8 2. Langage AltaRica Langage AltaRica est un langage de modélisation en haut niveau ayant des avantages tels que la construction des systèmes complexes plus facile que des langages de modélisation en bas niveau comme le réseau de Petri. Plus en détail dans [Arnold03].1 Introduction Le projet AltaRica est né de la volonté d'industriels et de chercheurs pour établir divers ponts entre : • la sûreté de fonctionnement et les méthodes formelles, • les analyses quantitatives des dysfonctionnements et les analyses qualitatives des comportements fonctionnels, • les divers outils et méthodes d'aide à la modélisation, afin de fournir aux ingénieurs concepteurs de systèmes complexes où critiques un atelier outillé.
Dans ce contexte, un outil de la vérification d'AltaRica basé sur le préfixe est attentatif. Ce projet commence depuis 1996 et se compose de trois phases. AltaRica : phase I (de Novembre 1996 à Octobre 1997) Objectifs : Etude de la faisabilité de couplages de différents outils en précisant si nécessaire la sémantique de certains d'entre eux. Résultats : Définition d'un langage de description de systèmes complexes, validé par l'expérimentation sur des cas tests.
Les partenaires : Les sociétés IXI et ELF Aquitaine Production d'une part; les laboratoires LaBRI et LADS d'autre part. AltaRica : phase II (de Novembre 1997 à Octobre 1999) Objectifs : Stabilisation du langage AltaRica, réalisation d'un prototype et méthodologie d'utilisation. Résultats : La sémantique du langage a été fixée. Des prototypes d'outils nécessaires à la simulation d'un modèle AltaRica ont été développés.
Des prototypes de compilateurs Mémoire de fin d'études de NGUYEN Duy Tung, Promotion IX LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Dépliage du modèle en langage AltaRica Page 9 vers les outils Aralia et Mec ont été développés et un premier manuel méthodologique a été écrit. Les partenaires : La société d'ingénierie IXI, les industriels Dassault Aviation, ELF EP, Schneider Electric, Renault, IPSN et Thomson Detexis, et enfin les laboratoires LaBRI et LADS. AltaRica : phase III (de Juin 2001 à Mai 2003) Objectifs : Réalisation d'un atelier AltaRica Les partenaires : La société d'ingénierie IXI, les industriels Dassault Aviation, TotalFinaElf, Schneider Electric, France Telecom, Thales systèmes aéroportés, et enfin les laboratoires LaBRI, IRCCyN et ONERA. Jusqu'à maintenant, on continue à développer des outils dans ce langage.
Et un outil de vérification basée sur le préfixe dans ce mémoire est un exemple.2 Définition Tout d'abord, on concerne le réseau de Petri, étant un des langages de modélisation en bas niveau. Il est défini dans [Couvreur04] comme le suivant: Définition 2.1 (Réseau de Petri) Un réseau de Petri R est une structure <P, T, Pre, Post> où • P et T sont des ensembles (finis ou infinis) disjoints, • Pre et Post sont de fonctions de T dans IN|P| \ {0}. Les éléments de P et T sont appelés des places et des transitions, et Pre et Post sont les fonctions de pré- et post-conditions des transitions. Un marquage m de R est un multi-ensembles de P (m ∈ IN|P|).
Un réseau marqué <R, m0> est la donnée d'un réseau de Petri R et d'un marquage initial m0. Un réseau étiqueté <R, Σ, λ> est la donnée d'un réseau de Petri R, d'un alphabet fini Σ et d'une fonction d'étiquetage sur les transitions λ: T → Σ. L'ensemble des prédécesseurs (resp. des successeurs) d'une place p est défini par : •p = { t ∈ T| Post (t) (p) ≠ 0} (resp.
L'ensemble des prédécesseurs (resp. des successeurs) d'une transition t est défini par : •t = { p ∈ P| Pre (t) (p) ≠ 0} (resp. Si S est un ensemble de P ∪ T, alors *s (resp. s*) désigne l'ensemble de ses prédécesseurs (resp.
successeurs) directs et indirects.