Uploaded by David Pereira (AliBen)

5 Cours TDL Equivalences

advertisement
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
Download