Académique Documents
Professionnel Documents
Culture Documents
Exercice 1
Quelle est la classe la plus stricte de la grammaire suivante? S → inst; S S → inst;
Exercice 1 : correction
Grammaire régulière (Type3)
Exercice 2
Soit :
Exercice 2 : correction
2020/2021 1
École Supérieure d’Informatique- Sidi Bel Abbés
1ère année Second Cycle
Théorie des Langages
TD 3-4: Grammaires Régulières, Automates finis, et Expressions Régulières
Exercice 3
Soit A et B deux automates d’états finis non déterministes
• A=(Q, Σ, ∆, S, F) où
Σ = {0, 1},
Q = {q0 , q1 , q2 },
F = {q1 , q2 }, S = {q0 },
∆ = {(q0 , 0, q0 ), (q0 , 0, q1 ), (q1 , 0, q1 ), (q1 , 1, q2 ), (q0 , 1, q2 ), (q2 , 1, q2 ), (q2 , 1, q0 )}
• B=(Q, Σ, ∆, S, F) où
Σ = {a, b},
Q = {q0 , q1 , q2 , q3 },
F = {q1 }, S = {q0 },
∆ = {(q0 , a, q0 ), (q0 , a, q1 ), (q0 , b, q2 ), (q1 , b, q2 ), (q1 , a, q3 ), (q2 , a, q2 ), (q2 , b, q1 )}
{(q2 , b, q3 ), (q3 , a, q1 ), (q3 , b, q2 )}
2020/2021 2
École Supérieure d’Informatique- Sidi Bel Abbés
1ère année Second Cycle
Théorie des Langages
TD 3-4: Grammaires Régulières, Automates finis, et Expressions Régulières
Exercice 3 : correction
1. la représentation graphique
2020/2021 3
École Supérieure d’Informatique- Sidi Bel Abbés
1ère année Second Cycle
Théorie des Langages
TD 3-4: Grammaires Régulières, Automates finis, et Expressions Régulières
L’automate déterministe
L’automate déterministe
Exercice 4
Considérons l’automate d’états finis suivant :
A=(Q, Σ, ∆, S, F) où
Σ = {a, b},
Q = {S0 , S1 , S2 , S3 , S4 , S5 },
F = {S5 }, S = {S0 },
∆ = {(S0 , ε, S1 ), (S0 , ε, S3 ), (S1 , a, S2 ), (S2 , ab, S2 ), (S2 , a, S5 ), (S3 , b, S3 ), (S3 , a, S4 ), (S4 , a, S5 ), }
2020/2021 4
École Supérieure d’Informatique- Sidi Bel Abbés
1ère année Second Cycle
Théorie des Langages
TD 3-4: Grammaires Régulières, Automates finis, et Expressions Régulières
Exercice 4 : correction
D’abord on transforme l’automate généralisé A en automate partiellement généralisé Ap en
décomposant les transitions qui se font sur des mots. C’est le cas, pour A, de la transition
(S2 , ab, S2 ) ;
pour la décomposer on ajoute un nouvel état S6 et on la remplace par les transitions (S2, a, S6)
et (S6, b, S2).
Ensuite, à partir de l’automate partiellement généralisé Ap, on construit l’automate simple As
en éliminant les transitions par le mot vid suivant les règles :
• si (Si , ε, S j ) ∈ ∆ et S j est un état final alors Si deviendra lui aussi état final ;
Remarque : On n’a pas représenté l’état S1 car il est devenu inaccessible (c’est-à-dire qu’on ne
peut pas l’atteindre à partir de l’état initial S0) ; on l’a donc supprimé de l’automate.
Exercice 4-1
Soit l’automate suivant :
2020/2021 5
École Supérieure d’Informatique- Sidi Bel Abbés
1ère année Second Cycle
Théorie des Langages
TD 3-4: Grammaires Régulières, Automates finis, et Expressions Régulières
2020/2021 6
École Supérieure d’Informatique- Sidi Bel Abbés
1ère année Second Cycle
Théorie des Langages
TD 3-4: Grammaires Régulières, Automates finis, et Expressions Régulières
Exercice 5
Soit G1 , G2 deux grammaires :
- G1 = (T, N, S, R)
- T = {a, b, c}
- N = {S, A, B}
- S est l’axiome
- R = {S → abS | bA | ε ; A → bB | B ; B → aB | b | cA}
G2 = (T, N, S, R)
- T = {a, b, c} - N = {S, A}
- S est l’axiome
- R = {S → aS | bS | cS | abcA ; A → aA | bA | cA | ε}
Exercice 5: correction
- l’automate A1 équivalent à G1 :
A=(Q, Σ, ∆, S, F) où
Σ = {a, b, c},
Q = {S0 , S1 , S2 , S3 },
F = {S0 , S3 }, S = {S0 },
∆ = {(S0 , ab, S0 ), (S0 , b, S1 ), (S1 , b, S2 ), (S1 , ε, S2 ), (S2 , a, S2 ), (S2 , b, S3 ), (S2 , c, S1 )}
2020/2021 7
École Supérieure d’Informatique- Sidi Bel Abbés
1ère année Second Cycle
Théorie des Langages
TD 3-4: Grammaires Régulières, Automates finis, et Expressions Régulières
Exercice 6
Soit L1 le langage des mots de {a, b}∗ contenant un nombre impaire de lettres a; et L2 =
{aa, ab}.
2020/2021 8
École Supérieure d’Informatique- Sidi Bel Abbés
1ère année Second Cycle
Théorie des Langages
TD 3-4: Grammaires Régulières, Automates finis, et Expressions Régulières
Exercice 6 : correction
1. Automate pour L1
2. Automate pour L2
3. Automate pour L1 ∪ L2
Pour construire l’automate simple de l’union, il suffit d’ajouter un nouvel état initial S6 ,
qui sera relié aux états initiaux des automates de L1 et L2 par des transitions par le mot ε
et de le déterminisé ensuite.
Mais remarquons d’abord que ab ∈ L1 , ce qui fait que L1 ∪ L2 = L1 ∪ {aa}.
4. déterminisation
- élimination des trasition par le mot ε
2020/2021 9
École Supérieure d’Informatique- Sidi Bel Abbés
1ère année Second Cycle
Théorie des Langages
TD 3-4: Grammaires Régulières, Automates finis, et Expressions Régulières
Exercice 7
Soit L1 et L2 deux langages définis sur Σ = {a, b} par :
L1 = {w ∈ Σ∗ / lemotw, ne contient pas de sous mot 00 ab00 }; L2 = {a(ba)n b, n ≥ 0}
2. A partir des grammaires trouvées en 1), construire un automate d’états finis pour chacun
des langages L1 et L2 .
2020/2021 10
École Supérieure d’Informatique- Sidi Bel Abbés
1ère année Second Cycle
Théorie des Langages
TD 3-4: Grammaires Régulières, Automates finis, et Expressions Régulières
Exercice 7 : correction
1. Grammaire régulière à droite
• G1 pour L1 : R1 = {S → bS | aA | ε ; A → aA | ε}
• G2 pour L2 : R2 = {S → aA ; A → baA | b}
4. Pour construire l’automate de L1 .L2∗ , on va d’abord construire l’automate A02 de L2∗ . Celui-
ci s’obtient à partir de A2 :
- en faisant de l’état initial S2 un état final (car il n’ y a pas de transitions entrantes sur S2 )
;
- en ajoutant des transitions vide des états finaux de A2 vers l’état initial de A2 .
Exercice 8
Ecrire les expressions régulières décrivant les langages suivants :
• {ab}
• {an bam , n ≥ 0, m ≥ 0}
• {an , n ≥ 2}
Exercice 8 : correction
• ab
• a∗ ba∗
• aa+ = aaa∗
2020/2021 11
École Supérieure d’Informatique- Sidi Bel Abbés
1ère année Second Cycle
Théorie des Langages
TD 3-4: Grammaires Régulières, Automates finis, et Expressions Régulières
Exercice 9
Décrire les langages définis par les expressions régulières suivantes
• E1 = regarder(ai|as|a|ons|ez|ont)
• E2 = ((a + b + c)(a + b + c)(a + b + c))∗
• E3 = (a + b + c)∗ a(a + b + c)∗ a(a + b + c)
• E4 = (b + c)∗ a(b + c)∗ a(b + c)∗
Exercice 9 : correction
• E1 = regarder(ai|as|a|ons|ez|ont) : L(E1 ) c’est la conjugaison du verbe regarder au futur.
• E2 = ((a + b + c)(a + b + c)(a + b + c))∗ : L(E2 ) c’est tous les mots m dont la longueur
est un multiple de 3, i.e. |m| mod 3 = 0.
• E3 = (a + b + c)∗ a(a + b + c)∗ a(a + b + c) : L(E3 ) c’est tous les mots m contenant au
moins deux a pas forcément consécutifs.
• E4 = (b + c)∗ a(b + c)∗ a(b + c)∗ : L(E4 ) c’est tous les mots m contenant exactement deux
a pas forcément consécutifs.
Exercice 10
Déterminer le langage reconnu par l’automate A = (Q, Σ, δ , S, F) Q = {S0 , S1 , S2 }
Σ = {a, b}
S = {S0 }
F = {S0 }
δ = {(S0 , a, S0 ), (S0 , b, S1 ), (S1 , a, S2 ), (S1 , b, S0 ), (S2 , b, S2 ), (S2 , a, S1 )}
par la méthode de résolution de systèmes d’équations.
Exercice 10 : correction
L1 = aL1 + bL2 + ε
L2 = aL3 + bL1
L3 = aL2 + bL3
L3 = b∗ aL2
L2 = ab∗ aL2 + bL1 = (ab∗ a)∗ bL1
L1 = aL1 + b(ab∗ a)∗ bL1 + ε= (a + b(ab∗ a)∗ b)L1 + ε
2020/2021 12
École Supérieure d’Informatique- Sidi Bel Abbés
1ère année Second Cycle
Théorie des Langages
TD 3-4: Grammaires Régulières, Automates finis, et Expressions Régulières
Exercice 11
Montrer que le langage suivant n’est pas régilier
L = {a p / p premier}
Exercice 11 : correction
• p premier donc p = nq si et seulement si n = 1 et q = p.
• w = ar as at : w = |{z} at
as |{z}
ar |{z}
x u y
• xui y = ar ais at ,
• pour i tel que |ais | = k|w| + 1, (k ≥ 1), alors |xui y| = (k + 1)|w|, qui n’est pas premier.
Donc ce xui y n’est pas dans L.
• Donc il ne vérifie pas le lemme de l’étoile. le langage {a p /p premier} n’est par régulier
2020/2021 13