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