Généralisation des Automates Généralisés, Automates d'expression

  • View
    290

  • Download
    2

Embed Size (px)

Text of Généralisation des Automates Généralisés, Automates d'expression

Universit des Sciences et des Techniques de Rouen e Master 2 ITA Applications des automates 2004-2005

Generalisation des Automates Generalises Automates dExpression

Samuel Grau

Table des mati`res e

Introduction 1 Rappels et Dnitions e 1.1 Rappel Historique . . . . . . 1.2 Prliminaires . . . . . . . . . e 1.2.1 Automates . . . . . . 1.2.2 Lide dEilenberg . . e 1.2.3 Automates Gnraliss e e e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Dterministes . e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3 4 4 5 6 7 8 10 10 13 17 18 19 21 21 23 24 26

2 Applications 2.1 Automates dexpression . . . . . . . . . . . 2.1.1 Elimination des tats . . . . . . . . . e 2.2 Automates dexpression Dterministes . . . e 2.2.1 Dnition . . . . . . . . . . . . . . . e 2.2.2 Proprits . . . . . . . . . . . . . . . ee 2.3 Minimisation des Automates dexpression . 2.3.1 Dnition . . . . . . . . . . . . . . . e 2.3.2 Algorithme . . . . . . . . . . . . . . 2.4 Langages Rationnels sans prxes, premiers e Conclusion

2

Introduction

Ce document aura comme consequence, letude de larticle de Y. Hann et D. Wood [3] pour lequel nous suivrons le plan propose par larticle origi` celles introuvables dans nal. Nous tenterons dapporter quelques preuves a larticle, sachant que celles-ci sont nombreuses et leur absence, intentionnelle. Nous explorerons dans ce papier, les Automates dexpression en ce qui concerne leur determinisme, leur minimisation et leur primalite. Nous verrons comment denir le determinisme de ces automates dexpression en utilisant la notion de liberte de prexe. Cette approche est dune certaine ` ` maniere, similaire a la denition proposee par Giammarresi et Montalbano pour les automates dexpression deterministes et nous y verrons comment la nouvelle denition est plus ne. Nous prouverons aussi que les langages reconnus par les automates dexpression deterministes forment une sous-famille propre des langages rationnels ainsi que certaines methodes permettant de denir la minimisa tion et le determinisme des automates dexpression. Il sera enn discute des langages rationnels sans prexes. Partant de ces idees, nous nous evertuerons dexpliciter les passages sombres de larticle, en apportant la traduction en pseudo-code des algo rithmes proposes et nous apprecierons linteret de ces nouveaux automa tes dans la mesure de nos capacites.

3

Chapitre 1

Rappels et Dnitions e

Recemment, nous avons pu constater un regain dinteret pour les auto` mates a nombre ni detats permettant la presence detiquettes plus complexes au niveau des transitions. Giammarresi et Montalbano [2] ont ef fectue une etude sur les automates generalises en ce qui concerne le ` ce sujet, il est necessaire determinisme. Mais, avant de nen dire plus a deffectuer un petit rappel aussi bien historique, an de mieux comprendre de quoi nous allons traiter, que rafrachissant du point de vue theorique.

1.1. Rappel HistoriqueLes automates gnraliss furent introduit pour la premi`re fois par S. e e e e Eilenberg [1]. Dans ce papier, nous utiliserons les notations anglaises conventionnelles pour indiquer de quel type dautomate nous parlons. Et nous commencerons d`s maintenant avec les automates gnraliss (GA pour Gee e e e neralized Automaton). Donc, S. Eilenberg chercha un mod`le permettant la e reprsentation des langages rationnels, et ce furent les GA qui servirent de e mod`le de reprsentation, dont nous verrons la dnition. e e e La complexit dun langage, pour un mod`le donn est habituellement e e e considre comme la taille de la reprsentation minimale du langage dans ee e ce mod`le. En gnral, la complexit dun automate ` nombre ni dtats e e e e a e est proportionnelle ` son nombre dtats. Calculer la complexit du langage a e e reprsent revient donc ` calculer le nombre dtats de lautomate minimal e e a e le reconnaissant. Ce dernier probl`me a t dmontr comme dcidable il y e ee e e e a une quinzaine danne. e Un probl`me relativement proche consiste eectivement ` calculer la e a reprsentation minimale dun langage donn, dans un certain mod`le. Dans e e e le cas des automates nis dterministes, il peut-tre dmontr que lautomate e e e e minimal est unique et un algorithme le calculant ` partir dun quelconque a 4

autre automate dterministe quivalent peut-tre obtenu grce au thor`me e e e a e e de Myhill-Nerode. Cependant, pour les automates non dterministes, nous e ne connaissons que des rsultats partiels tels que la non unicit de lautomate e e minimal. Le but du jeu est donc le suivant. Il sagit de trouver un automate minimal en nombre dtats parmis tous les automates reconnaissant le langage. e Et nous sommes bel et bien face ` un probl`me puisque la minimisation en a e elle mme, est probl`me dicile. e e Les automates gnraliss permettent, en gnral, de construire plus fae e e e e cilement un automate. Un exemple intressant est le suivant. Considrant e e les mots rservs du langage C++, lutilisation des automates gnraliss an e e e e e de construire un automate ni, reconnaissant tous les mots rservs du C++ e e dans un programme ou un morceau de programme, rend les choses beaucoup plus simples. Nous tenterons dexpliciter cet exemple an de mieux cerner le gain de faciliter. Mais avant toutes choses, rappelons quelques dnitions concernant, les e mots, les automates nis, gnraliss, et leurs quivalents dterministes. e e e e e

1.2. Prliminaires eNous allons tout dabord dnir un alphabet ni de caract`res que nous e e lensemble de tous les appelerons . Nommons par la mme occasion e mots forms sur cet alphabet. Les lments de sont appels cha e ee e nes, mots ou blocs. Nous utiliserons beaucoup plus souvent le terme mot dans ce document. Un langage sur est un sous-ensemble de que lon peut aussi noter L . An de mieux apprcier les notions avec lesquelles nous e allons travailler, nous protons de cette section an de faire quelques rappels concernant les proprits des mots. ee Dnition 1.2.1 (Prxe). Soient x, y . On dit que x est un prxe e e e de y si et seulement si il existe un mot w tel que xw = y. Nous noterons dans toute la suite du document que x est prxe (resp. e sufxe) de y de la mani`re suivante : x y (resp. x y). Si nous souhaitons e ne pas tenir compte des factorisations possibles ` laide du mot vide pour le a cas dune factorisation prxe, nous devons alors donner la dnition dun e e prxe propre pour un mot. e Dnition 1.2.2 (Prxe propre). Soient x, y . On dit que x est un e e prxe propre de y si et seulement si il existe un mot w tel que e xw = y et tel que x = et x = y. 5

Comme nous aurons besoin, lorsque nous parlerons des automates dexpression dterministes, des ensembles sans prxes, nous pouvons alors done e ner la dnition suivante : e Dnition 1.2.3. Un langage (rationnel) L sur un alphabet est dit sans e prxe si, pour toutes cha e nes distinctes x et y appartenant a L, x nest pas ` prxe de y et y nest pas prxe de x. e e Nous avons une bonne quantit dlments ` prsent. Ces lments nous e ee a e ee permettent maintenant de travailler sur les automates de mani`re plus adroie te. Il va nous falloir nous occuper des automates, les dnir, leur trouver des e proprits et nalement les gnraliser, car l`, se trouve le but de ce papier. ee e e a

1.2.1

Automates

Les automates, nous allons les tudier, et pour cela, nous avons besoin e deectuer quelques rappels concernant leurs proprits et dnitions. Nous ee e pourrons, de cette mani`re, mieux apprcier les nouvelles notions qui seront e e introduites dans ce papier. Nous verrons ainsi, durant la progression de notre investigation, subtilits, qui direncient les automates nis, des automates e e gnraliss et des automates dexpression. e e e Mais comme chaque chose dbute quelque part, commenons par laue c tomate que nous connaissons le mieux et pour lequel nous connaissons un grand nombre de proprits, a savoir, lautomate ` nombre ni dtats, dont ee ` a e voici la dnition. e Dnition 1.2.4 (Automate ` nombre ni dtats). Un automate A a e a e ` nombre ni dtats, traditionnel, est dni par un quintuplet : e e Q Q, ensemble (ni) de transitions, Q un ensemble ni dtats, e

A =

Q, , , I, T

est lalphabet dentre, e I Q lensemble des tats initiaux, e T Q lensemble des tats terminaux. e Maintenant, que nous savons ce quest un automate, voyons quelques proprits de ceux-ci et plus particuli`rement, ceux des automates dits utiles. ee e Les automates dits utiles sont en fait des automates qui ne poss`dent pas e dtats inutiles. Donnons alors une dnition formelle dun automate utiles e e (rduit, propre). Pour cela, nous allons maintenant introduire la notion dace cessibilit pour un automate donn. e e 6

Dnition 1.2.5 (Automate accessible). Soit A = (Q, , , I, T ) un autoe mate. Alors, on dit que A est accessible si, pour tout tat q Q il existe e un chemin c allant de ltat i a ltat q avec i I. e ` e Laccessibilit tant, passons alors ` la co-accessibilit. Dapr`s Eilene e a e e berg [1], la co-accessibilit peut-tre dnie comme laccessibilit de laue e e e tomate renvers. Mais nous nentrerons pas si loin dans les dtails car la e e co-accessibilit peut aussi tre dnie de la mani`re suivante, qui dcoule e e e e e bien sr de celle du renvers. u e Dnition 1.2.6 (Automate co-accessible). Soit A = (Q, , , I, T ) un aue tomate. Alors, on dit que A est co-accessible si, pour tout tat q Q il e existe un chemin c partant de ltat q vers un tat t avec t T . e e Lautomate A est dit utile si celui-ci est ` la fois accessible et coaccessible. a Proposition 1.2.1. Pour tout automate A, les proprits suivantes sont ee quivalen