Polytech Paris Sud - ET4 Année 2018-2019
Informatique Théorique : Langages formels et automates
TD n
◦1
Semaine du 17 septembre
Les exercices avec un trèe (♣) doivent être faits dans la séance de TD.
Expressions rationnelles
Exercice 1. Donner tous les mots de longueurs0,1,2,3 et4 des langages décrits par les expressions rationnelles suivantes :
1. (a+ba)∗
2. a(aa+b(ab)∗a)∗a
Démonstration. 1. ε, a, aa, ba, aaa, aba, baa, aaaa, aaba, abaa, baaa, baba 2. aa, aaaa, abaa
Exercice 2. Donner des expressions rationnelles sur A = {a, b} dénotant les langages suivants :
1. Les mots de longueur impaire ;
2. Les mots avec préxe bbet suxeab; 3. Les mots avec exactement trois a; 4. Les mots avec au plus trois a;
5. Les mots avec un nombre deadivisible par trois ; Démonstration. 1. Les mots de longueur impaire :A(A2)∗
2. Les mots avec préxe bbet suxeab:bbA∗ab 3. Les mots avec exactement trois a:b∗ab∗ab∗ab∗
4. Les mots avec au plus trois a:b∗(ε+a)b∗(ε+a)b∗(ε+a)b∗
5. Les mots avec un nombre deadivisible par trois :b∗(ab∗ab∗ab∗)∗ = (b+ab∗ab∗a)∗
Exercice 3. On considère l'alphabet A ={a, b}. Les expressions rationnelles suivantes sont-elles équivalentes ?
e1 = (a+b)∗ (1)
e2 = (a∗+b∗)∗ (2)
e3 = ((ε+a)b∗)∗ (3)
Démonstration. Les trois expressions sont équivalentes. Pour prouver cela on utilise L(X∗) =L(X)∗ et qu'on a les propriétés suivantes :
L1⊆L2 ⇒ L∗1 ⊆L∗2
L1 ⊆L01 etL2⊆L02 ⇒ L1+L2 ⊆L01+L02 etL1L2⊆L01L02 On note déjà queL(e1) =A∗ donc L(e2)⊆ L(e1)etL(e3)⊆ L(e1).
L(e2)⊇ L(e1) :
On a L(a+b) =L(a)∪ L(b)⊆ L(a∗)∪ L(b∗). D'où L(e1) =L(a+b)∗⊆(L(a∗)∪ L(b∗))∗=L(e2). L(e3)⊇ L(e1) :
On a a, b∈ L((ε+a)b∗) d'oùL(a)∪ L(b)⊆ L((ε+a)b∗). D'oùL(e1)⊆ L(e3).
Automates
Exercice 4. On considère l'automate suivant :
start p 0,1 q r
1
0
0,1
1. Écrire :
Les états de l'automate (Q) L'alphabet (A)
Les états initiaux (I) Les états naux (F) Les transitions (E)
2. Quels sont les calculs de l'automate sur les mots suivants : 101,0100,ε,011111? Lesquels de ces mots sont acceptés ?
3. Caractériser tous les mots acceptés par cet automate (son langage).
Démonstration. 1. , , , ,
2. 101:r,0100:r,ε:p,011111:q. Uniquement le dernier est accepté.
3. Les mots non vide ayant au plus un0, situé au début du mot.
Exercice 5. Pour chacun des langages suivants donner un automate ni déterministe complet qui le reconnaît :
1. Les mots de longueur 2;
2. Les mots de longueur au plus 2; 3. Les mots de longueur au moins2; 4. Les mots avec le préxe ab; 5. Les mots avec le suxeab;
Démonstration. Voici les diérents automates :
1) 2)
1
start a, b 2 a, b 3 a, b 4 a, b
1
start a, b 2 a, b 3 a, b 4 a, b
3) 4)
1
start a, b 2 a, b 3 a, b
1
start 2
a, b a, b
5) 6)
start 1 2 3
P
b a
a b
a, b
start 1 a 2 b 3
a b
b a
Exercice 6. (♣) On considère l'alphabet A = {a, b}. Pour chacun des langages ci- dessous, donner un automate ni déterministe complet qui le reconnaît :
1. {w∈A∗|wne contient aucune occurrence de la chaînebb}
2. {w∈A∗|wcontient au moins une occurrence de la chaîne bb}
3. {w∈A∗|wcontient exactement une occurrence de la chaîne bb}
4. {w∈A∗| les nombres deaet de bont même parité dans w}
Démonstration. 1. {w∈A∗|w ne contient aucune occurrence de la chaînebb}
1
start 2 3
a
b
a
b
a, b
2. {w∈A∗|wcontient au moins une occurrence de la chaîne bb}
1
start 2 3
a b
a
b
a, b
3. {w∈A∗|wcontient exactement une occurrence de la chaîne bb}
1
start 2 3
4
5 a
b
a
b
b
a
b
a, b
a
4. {w∈A∗| les nombres deaet de bont même parité dans w} On peut d'abord sé- parer les deux tailles :
P,P
start I,P
P,I I,I
a
a b b
a a
b b
Si on minimise, on trouve le graphe suivant. On peut se rendre compte que ça ne dépend que de la parité du mot.
1
start 2
a, b
a, b
Déterminisation d'automates
Exercice 7. (♣) Construire un automate asynchrone intuitif qui reconnaît le langage décrit par l'expression rationnelle suivante :
(ba+ (a+bb)a∗b)∗ (4)
Déterminiser cet automate Démonstration.
1
start 2 3 4 11
5 6
7 8
9 10
ε ε
b a ε
a b
b ε
ε a
b ε ε
Déterminisation :
1,2,5 start
6,9
3,7
1,2,4,5,11 1,2,5,10,11
8,9 9
b a
a a
b b
a
b b
a
b a
b a