Cours de Théorie des Langages Partie 1 : 5. Equivalences d
Transcription
Cours de Théorie des Langages Partie 1 : 5. Equivalences d
6. Passages d’une représentation à une autre 6.1. 6.2. 6.3. 6.4. 6.5. Anne Berry, Passages d’une représentation à une autre Automate d’états finis ↔ Grammaire régulière Automate d’états finis↔ Expression régulière Applications Hiérarchie de Chomsky Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates 1/15 6.1. Passages d’une représentation à une autre Principes algorithmiques de passage : Automate d’états finis↔Grammaire régulière l Expression régulière Conséquence : les grammaires régulières, les automates d’états finis et les expressions régulières définissent la même classe de langages (les langages rationnels) Anne Berry, Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates 2/15 6.2. Automate d’états finis ↔ Grammaire régulière Automate d’états finis → Grammaire régulière : Le passage est évident. Exemple : S → bS|aA A → bS|aB B → aB|bB Anne Berry, Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates 3/15 6.2. Automate d’états finis→Grammaire régulière 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 → a ou X → , avec X , Y ∈ N et a ∈ T (au plus un caractère non-terminal) Anne Berry, Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates 4/15 6.2. Automate d’états finis↔Grammaire régulière Exemple : S → aaA A → bA| se réécrit : S → aA0 A0 → aA A → bA| Anne Berry, Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates 5/15 6.3. Automate d’états finis↔ Expression régulière Expression régulière→ Automate d’états finis Anne Berry, Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates 6/15 6.3. Automate d’états finis↔ Expression régulière On utilise la 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 7/15 6.3. Automate d’états finis↔ Expression régulière base : r= ∅ ’a’ Anne Berry, Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates 8/15 6.3. Automate d’états finis↔ Expression régulière 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 9/15 6.3. Automate d’états finis↔ Expression régulière Automate d’états finis → Expression régulière Principe : on décrit chaque état par une équation Si Qi est un état non final : xi = bxi + axj + cxk = b ∗ (axj + cxk ) Si Qi est un état final : xi = bxi +axj +cxk + = b ∗ +b ∗ (axj +cxk ) = b ∗ (axj +cxk +) On résoud ensuite le système d’équations en remplaçant les variables une par une, et en finissant par x0 , qui fournit l’expression Anne Berry, Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates 10/15 6.3. Automate d’états finis↔ Expression régulière Exemple 1 : x0 = bx0 + ax1 x1 = bx0 + ax2 x2 = ax2 + bx2 + On a : x2 = ax2 + bx2 + = (a + b)∗ On remplace x2 : x0 = bx0 + ax1 x1 = bx0 + ax2 = bx0 + a(a + b)∗ On remplace x1 : x0 = bx0 + ax1 = bx0 + abx0 + aa(a + b)∗ = (b + ab)x0 + aa(a + b)∗ = (b + ab)∗ aa(a + b)∗ Anne Berry, Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates 11/15 6.3. Automate d’états finis↔ Expression régulière Exemple 2 : x0 x1 x0 x0 Anne Berry, = ax1 + = b ∗ (bx0 ) = ab ∗ (bx0 ) + = (ab ∗ b)∗ x0 = ax1 x1 = bx0 + bx1 + x1 = b ∗ (bx0 + ) x0 = ab ∗ (bx0 + ) = (ab ∗ b)∗ ab ∗ Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates 12/15 6.4. 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 13/15 6.5. 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 14/15 6.5. 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 15/15