AF4 - Corrigé du Contrôle TD

Download Report

Transcript AF4 - Corrigé du Contrôle TD

Université Paris 7
Année 2011-2012
AF4
AF4 - Corrigé du Contrôle TD
Exercice 1 :
On considère l’automate représenté ci dessous.
a, b
1
a
0
b
b
2
a
3
a, b
1. Les mots aba, baab, abaabaaa sont ils acceptés ?
2. L’automate est-il déterministe ?
3. Décrire le langage reconnu par cet automate.
Correction
a
b
a
1. 0 −
→1→
− 2−
→ 3, 3 est final donc aba est accepté. baab n’est pas accepté, il se termine par
un b et tout les chemin allant à l’état final se termine par une transition étiqueté par a.
a
b
a
a
b
a
a
a
0−
→1→
− 2−
→2−
→2→
− 2−
→2−
→2−
→ 3, 3 est final donc abaabaaa est accepté.
2. L’automate n’est pas déterministe, il y a deux transitions à partir de 1 qui sont étiquetés
par b.
3. Le language reconnu par l’automate peut être décrit par l’expression rationnel (a(a + b)∗ b +
b)(a + b)∗ a, ou plus simplement (a + b)∗ b(a + b)∗ a. Il correspond aux mots de A∗ qui
contiennent au moins un b et se termine par a.
Exercice 2 :
On considère les langages :
L1 = {u ∈ A∗ | u commence par a ou finit par b}
L2 = {u ∈ A∗ | tout a est immédiatement suivi d’au moins deux b}
1. Donner un automate non déterministe reconnaissant L1 .
2. Déterminiser cet automate pour obtenir un automate déterministe reconnaissant L1
3. Donner un automate déterministe reconnaissant L2 .
4. Donner un automate déterministe reconnaissant le langage suivant :
L = {u ∈ X ∗ | (u commence par a ou finit par b) et tout a est immédiatement suivi d’au moins deux b}
Université Paris 7
Année 2011-2012
AF4
Correction
1. L’automate suivant reconnait L1 :
a, b
a
1
2
b
3
4
a, b
2. On calcul la table de transition (à gauche) et en rennomant 1, 3 en 1 ; 2, 3 en 2 ; 3, 4 en 3 ;
2, 3, 4 en 4 et 3 en 5, on obtient l’automate de droite :
a
a
a
a
b
1
2
4
b
1,3 2,3
3,4
2,3 2,3 2,3,4
b
b
3,4
3
3,4
b
2,3,4 2,3 2,3,4
3
5
3
3,4
3
a
a
b
3. L’automate déterministe suivant reconnait L2 :
b
6
a
7
b
4. On fait le produit des deux automates déterministes :
b
8
Université Paris 7
Année 2011-2012
AF4
b
b
1,6
1,6
2,7
3,6
2,∅
4,8
5,7
4,∅
4,6
5,∅
3,8
3,∅
a
2,7
2,∅
5,7
2,∅
2,∅
5,∅
2,∅
2,7
5,∅
5,∅
5,∅
b
3,6
4,8
3,6
4,∅
4,6
3,8
4,∅
4,6
3,∅
3,6
3,∅
b
a
a
2,7
2,∅
a
4,8
b
5,7
a
5,∅
a
b
3,8
a
a
b
a
b
a
4,6
b
a
a
3,6
b
4,∅
3,∅
b
b
Exercice 3 :
On appelle L le langage représenté par l’expression rationnelle suivante :
ab(a(ba)∗ + b(ab)∗ )∗
1. En appliquant l’algorithme de Thompson construire un automate fini avec ε-transitions
reconnaissant L.
2. Supprimer les ε-transitions pour obtenir un automate fini non déterministe reconnaissant L.
Vous pouvez au choix dessiner l’automate ou donner sa table de transitions.
3. Donner un automate fini déterministe reconnaissant L.
4. Construire un automate reconnaissant L en utilisant cette fois l’algorithme de Glushkov.
Correction
1. En appliquant l’algorithme de Thompson :
ε
ε
5
a
6 ε 7
b
ε
1
a
2
b
3
ε
8
a
9 ε 10
ε
ε
ε
4
ε
17
ε
ε
11
b
12 ε 13
a
14
ε
b
15 ε 16
ε
18
Université Paris 7
Année 2011-2012
AF4
2. On calcul la table de transition (à gauche) et on obtient l’automate de droite :
a
a
b
b
a
6
8
9
1
2
2
3
b
a
6
12
3
b
a
b
6
8
1
2
3
14
12
a
b
8
9
a
14
15
12 a 14
15
9
6
8,12
b
15 6,14
12
b
3. On calcul la table de transition (à gauche) et on obtient l’automate de droite :
a
b
1
2
2
3
a
3
6
12
b
a
b
8,12
6
8
9
6
8
a b 8,12,15
14
12
a
a
8
9
9,14
a
b
14
15
a
a
1
2
3
b
9
6
8,12
b 8,15
9,14
8,12
b
a 6,9,14
15
6,14
12
b
b
6,14
12 a 14
15
6,14
8,15
a
b
9,14
6
8,12,15
b
8,15 6,9,14
12
8,12,15 6,9,14
12
6,9,14
6
8,15
4. On utilse Glushkov sur l’expression linéarisé a1 a2 (a3 (a4 a5 )∗ + a6 (a7 a8 )∗ )∗ :
Premier Dernier
Suivant
ε
a1 a2 1
2
(1,2)
non
(a4 a5 )∗ 4
5
(4,5) (5,4)
oui
a3 (a4 a5 )∗ 3
3; 5
(3,4)
non
a6 (a7 a8 )∗ 6
6; 8
(6,7) (7,8) (8,7)
non
3; 5; 6; 8
non
a3 (a4 a5 )∗ + a6 (a7 a8 )∗ 3 ;6
(a3 (a4 a5 )∗ + a6 (a7 a8 )∗ )∗ 3 ;6
3; 5; 6; 8
(3,3) (3,6) (5,3) (5,6) oui
(6,3) (6,6) (8,3) (8,6)
a1 a2 (a3 (a4 a5 )∗ + a6 (a7 a8 )∗ )∗ 1
2 ; 3 ; 5 ; 6 ; 8 (2,3) (2,6)
non
a
a
b
3
4
a
1
b
a
2
5
b
b
a
0
a
b
a
b
6
a
7
b
b
b
a
8