Theorie Des Langages - Theoreme de Arden Exercice
Theorie Des Langages - Theoreme de Arden Exercice
Theorie Des Langages - Theoreme de Arden Exercice
Exercice 1 - Soit Σ = {a, b}. En utilisant le théorème d’Arden, donnez sous forme d’expressions régulières les
langages L (M ) et L (M ′ ) reconnus respectivement par les automates suivants :
a
a a
0 1 0 1
a b
b a b a
b
b
2 3 2 3
M b M’
a
a
b
0 1
1. Automate M1
a b
a a b
0 1 2 3
2. Automate M2
a a,b a,b
b a b a
0 1 2 3 4
a a
5 6
b
b a
a b
0 1 0 1
b
a,b a b b
a a
2 3 2 3
Exercice 4 - Construire sur l’alphabet Σ = {a, b} les automates qui reconnaissent les langages :
1. L = (aa + bb∗ a + abb∗ a)∗
2. L′ = (b(aa)∗ b)∗
3. L′′ = ((a + b)b∗ a)∗
4. L′′′ = (a∗ b)∗ a
3. L3 = {0n 1n |n ≥ 1}
4. L4 = {x ∈ {0, 1}∗ |x n’a pas 3 zéros consécutifs}
Théorie des Langages – TD 5
AUTOMATES ET EXPRESSIONS RÉGULIÈRES
Exercice 1 - Soit Σ = {a, b}. En utilisant le théorème d’Arden, donnez sous forme
d’expressions régulières les langages L(M) et L(M’) reconnus respectivement par les
automates suivants :
a
a a
0 1 0 1
a b
b a b a
b
b
2 3 2 3
M b M’
L0 = aL1+bL2 (e0)
L1 = aL0 +ε (e1)
L2 = bL3+aL0 (e2)
L3 = bL2 (e3)
L0=aL0+aL1+bL2+ε (e0)
L1=bL0 (e1)
L2=bL3 (e2)
L3=aL0 (e3)
a
a
b
0 1
Corrigé :
L0=aL1+aL2+ε (e0)
L1=bL0 (e1)
L2=aL2+aL1 (e2)
L2= a*aL1
L0=aL1+aL2+ε
L0=abL0+aa*abL0 +ε
L0=(ab+aa*ab)L0+ε
L0=(a*ab)*
L0=a(L1+L2)+ε
L0=a(L1+L2)+ε
b
0 12
a
Une grammaire qui engendre le langage L(M) peut être déduite à partir du système
d’équation ci-dessus : ( en appliquant la partie cours sur la transformation d'un
automate fini en une grammaire linéaire à droite –voir page 47 du chapitre 3
« Automates finis »).
S→aA/ε
A→aA/bS
Exercice 3 - Par la méthode d’élimination des états, donnez les expressions régulières
équivalentes aux automates suivants :
1. Automate M1
a b
a a b
0 1 2 3
2. Automate M2
a a, b a, b
b a b a
0 1 2 3 4
a a
5 6
b
a b
0 1 0 1
b
a,b a b b
a a
2 3 2 3
Corrigé :
L’automate M1
a b
a a b
0 1 2 3
- On ajoute à M1 deux nouveaux états que l’on note ω et α et des ε-transitions comme
ceci :
a b
b
ε a a ε
α 0 1 2 3 ω
b
εa*a ab ε
α 1 3 ω
a*a b*abε
α 1 ω
b*abε=b*ab (P5)
- On élimine la transition 1 comme ceci:
a*ab*ab
α ω
a*ab*ab=a+ b* ab (P15)
- L’expression régulière de l’automate M1 est : a+ b* ab
L’automate M2
a a,b a,b
b a b a
0 1 2 3 4
a a
5 6
b
- On Ajoute à M2 deux nouveaux états que l’on note ω et α et des ε-transitions
comme ceci :
a a,b a,b
ε b a b a ε
α 0 1 2 3 4 ω
a a
5 6
b
a a,b a,b
ε b a b a ε
α 0 1 2 3 4 ω
aba
Corrigé :
1. L = (aa + bb*a + abb*a)*
L3=bL3+baL
L3=bL3+bL4 (En posant L4=aL)
L=aL1+bL2+aL3+ε
L1=aL
L2=bL2+aL
L3=bL3+bL4
L4=aL
b
1
a
a a
3
0
a b b
2 a 4
b
2. L= (b(aa)*b)*
L= (b(aa)*b)*ε (p5) (e)
En appliquant le théorème d’Arden sur l’équation e, on obtient :
L= b(aa)*bL+ε ) (e’ )
L1=(aa)*bL (e1)
En appliquant le théorème d’Arden sur l’équation (e1), on obtient :
L1=(aa)L1+bL (e’1)
L1=aL2+bL (En posant L2=aL1 dans l’équation (e’1)
L=bL1+ε
L1=aL2+bL
L2=aL1
b
0 1
b
a
b
2
Exercice 5 - Les langages suivants sont-ils réguliers?
1.
2.
3.
4.
Corrigé :
Rappel sur les expressions régulières et les langages représentés par des expressions
régulières – page 7, 8 et 9
2. Supposons que L2 soit régulier. Soit n ≥ 1. Alors, le théorème de pompage nous dit
que, comme , on peut écrire z = uvw avec |v| ≤ n tel que z’ = uv2w
ϵ L2. Or |z0| = |uv2w| ≤ 2n + n. Mais 2n + n < 2n+1 donc on ne peut pas avoir z’ϵ L 2.
C’est une contradiction, donc L2 n’est pas régulier.
0 0
0 1 2
1