6. Langages rationnels : passages d’une représentation à une autre 6.1. 6.2. 6.3. 6.4. 6.5. 6.6. 6.7. Anne Berry, Passages d’une représentation à une autre Automate d’états finis → Grammaire régulière Grammaire régulière → Automate d’états finis Automate d’états finis → Expression régulière Expression régulière → Automate d’états finis Applications Hiérarchie de Chomsky Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates 1/28 6.1. Passages d’une représentation à une autre Rappel : Théorème Un langage L est rationnel (classe 3) ssi il existe une grammaire régulière G telle que L(G ) = L ssi il existe un automate d’états finis reconnaissant L ssi il existe une expression régulière engendrant L Anne Berry, Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates 2/28 6.1. Passages d’une représentation à une autre La preuve est constructive, sous forme d’algorithmes de passage : Automate d’états finis↔Grammaire régulière l Expression régulière Anne Berry, Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates 3/28 6.2. Automate d’états finis → Grammaire régulière Automate d’états finis → Grammaire régulière : Exemple : Anne Berry, Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates 4/28 6.2. Automate d’états finis ↔ Grammaire régulière On représente l’état initial q0 par l’axiome S On représente chaque autre état Qi par un non-terminal Ai Si Qi est un état final, on ajoute une -transition Ai → Anne Berry, Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates 5/28 6.2. Automate d’états finis → Grammaire régulière Automate d’états finis → Grammaire régulière : Exemple : S → bS|aA1 A1 → bS|aA2 A2 → aA2 |bA2 | Anne Berry, Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates 6/28 6.2. Automate d’états finis → Grammaire régulière Cas particuliers : S → bS|aA A → bB B → aB| peut se réécrire : S → bS|abB B → aB| Anne Berry, Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates 7/28 6.2. Automate d’états finis → Grammaire régulière S → bS|aA A → aA|bB B→ peut se réécrire : S → bS|aA A → aA|b Anne Berry, Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates 8/28 6.3. Grammaire régulière → Automate d’états finis Grammaire régulière → Automate d’états finis : On réécrit la grammaire régulière pour obtenir des règles de production de la forme : X → aY ou X → , avec X , Y ∈ N et a ∈ T Anne Berry, Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates 9/28 6.3. Grammaire régulière → Automate d’états finis Exemple 1 : S → aaA A → bA| se réécrit : S → aA1 A1 → aA2 A2 → bA2 | Anne Berry, Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates 10/28 6.3. Grammaire régulière → Automate d’états finis Exemple 2 : S → aS|a se réécrit : S → aS|aA1 A1 → Anne Berry, Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates 11/28 6.3. Grammaire régulière → Automate d’états finis On représente ensuite l’axiome S par l’état q0 et le non-terminal Ai par l’état qi Les états finaux correspondent aux règles de la forme ; Ai → . Anne Berry, Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates 12/28 6.3. Grammaire régulière → Automate d’états finis Exemple : S → aaA A → bA| se réécrit : S → aA1 A1 → aA2 A2 → bA2 | Anne Berry, Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates 13/28 6.4. Expression régulière → Automate d’états finis Rappels : Définition inductive des expressions régulières : Définition Définition inductive des expressions régulières : - Base : ∅, et les caractères de Σ sont des expressions régulières, représentant respectivement les langages ∅,{}, {x} si x ∈ Σ. - Règles : si r et s sont des expressions régulières représentant les langages R et S, alors (r + s), r .s, r ∗ et r + sont des expressions régulières représentant respectivement les langages R ∪ S, R.S, R ∗ et R + . Anne Berry, Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates 14/28 6.4. Expression régulière → Automate d’états finis Pour construire un AEF, on applique cette définition inductive : base : r= ∅ ’a’ Anne Berry, Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates 15/28 6.4. Expression régulière → Automate d’états finis règles de construction de l’automate : r1 + r2 r1 r2 r∗ Anne Berry, Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates 16/28 6.4. Expression régulière → Automate d’états finis Pour construire r + , on fera rr ∗ Anne Berry, Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates 17/28 6.4. Expression régulière → Automate d’états finis Exemple : (a + b)∗ aba Anne Berry, Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates 18/28 6.5. Automate d’états finis→ Expression régulière Algorithme de Mac Naughton et Yamada : 1. Transformation de l’automate en automate généralisé 2. Transformation de l’automate généralisé en expression régulière Bibliographie et figures : Cours d’Alexis Nasr Anne Berry, Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates 19/28 6.5. Automate d’états finis→ Expression régulière Définition Automate généralisé : les transitions sont étiquetées par des expressions régulières (ou par ∅). Anne Berry, Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates 20/28 6.5. Automate d’états finis→ Expression régulière Transformation d’un automate en automate généralisé : 1. ajouter un nouvel état initial avec une - transition vers q0 2. ajouter un nouvel état final vers lequel les anciens états finaux sont envoyés par une - transition 3. des transitions étiquetées par ∅ sont ajoutées entre les états qui ne sont reliés par aucune transition, mais entre lesquels il existe un chemin dans l’automate de départ (ces transitions ne peuvent pas être franchies) Anne Berry, Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates 21/28 6.5. Automate d’états finis→ Expression régulière Exemple d’initialisation à un automate généralisé : Anne Berry, Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates 22/28 6.5. Automate d’états finis→ Expression régulière A chaque itération, on supprime un état. A la fin, il reste une seule transition de l’état initial à l’état final, étiquetée par l’expression régulière recherchée. Anne Berry, Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates 23/28 6.5. Automate d’états finis→ Expression régulière Exemple : on supprime l’état 1 : Anne Berry, Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates 24/28 6.5. Automate d’états finis→ Expression régulière Exemple (suite) : on supprime l’état 2 : On obtient l’expression régulière b ∗ a(a|bb ∗ a)∗ Anne Berry, Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates 25/28 6.6. Applications Montrer qu’un langage est rationnel Montrer que deux expressions régulières sont équivalentes Trouver une grammaire régulière Améliorer une grammaire régulière ... Anne Berry, Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates 26/28 6.7. Hiérarchie de Chomsky Nom 0 Lges récursivement énumérables 1 Lges contextuels 2 3 Anne Berry, Type de production X→Y X ∈ N+ , Y∈(N∪T)* X→Y X ∈ N+ , Y∈(N∪T)* , |Y|≥|X| Lges context-free ou algébriques Lges rationnels (réguliers) X→Y X ∈ N , Y∈(N∪T)* X→Y X ∈ N , Y=tA ou Y=t Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates Machines acceptant ce lge Machines de Turing Automates à plusieurs piles Machines de Turing bornées Automates à pile Automates d’états finis 27/28 6.7. Hiérarchie de Chomsky Dans la 2e partie de ce cours, vous étudierez : existence de langages non rationnels les langages algébriques et les automates à pile existence de langages non algébriques ... Anne Berry, Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates 28/28