Académique Documents
Professionnel Documents
Culture Documents
FEI - USTHB
L2-ACAD (Section A & C) Théorie des Langages
Série 3
LES LANGAGES ALGEBRIQUES
Exercice 1 :
Construire les automates à pile qui acceptent par état final les langages suivants :
1. L1 ={anb mcn / n,m0}
Dans le cas général (n et m différents de 0), l’automate à pile procèdera comme suit :
- S’il ne reste aucun a dans la pile (il y a Z0 au sommet de pile) alors le mot lu est de la forme anbmcn
et l’automate passe vers un état final (un état d’acceptation).
On commencera toujours par donner les transitions de l’automate dans le cas général, ensuite on traite
les différents cas particuliers.
L’automate à pile P=(, , Z0 , Q, q0, F, ) où ={a, b, c}, ={Z0}, Q={q0, q1, q2, q3, q4}, F={q3,
q4} et l’ensemble des transitions est :
Z0q2 Z0q3 /* Vérifier qu’il n’y a aucun a dans la pile et passer à q3 qui est final */
Département Informatique Année 2019-2020
FEI - USTHB
L2-ACAD (Section A & C) Théorie des Langages
Série 3
LES LANGAGES ALGEBRIQUES
Cas particuliers
Z0q4b Z0q4 /*Lire les b suivants sans les empiler et nous sommes toujours dans l’état
q4 qui est final */
Remarques
2) A l’état q2, si le sommet de pile est Z0 alors le nombre de a empilé à l’état q0 est égal au nombre de
c et le mot lu est de la forme anbmcn. L’automate passe à l’état q3 qui est final pour que ces mots
soient reconnus.
Exemples de reconnaissance :
Rappel : Une configuration d’un automate à pile est un triplet (α, p, w) où α est le contenu de la pile, p
est l’état courant et w est le mot qui reste à lire.
1/ Reconnaissance de w1=aabbbcc
(Z0aa, q1, cc) (Z0a, q2, c) /* lire le 1er c, dépiler un a et changer d’état */
Département Informatique Année 2019-2020
FEI - USTHB
L2-ACAD (Section A & C) Théorie des Langages
Série 3
LES LANGAGES ALGEBRIQUES
(Z0a, q2, c) (Z0, q2, ) /* lire le 2er c et dépiler un a */
L’automate se trouve à l’état q3 qui est final et le mot w1 a été entièrement lu. Donc le mot w1 est
reconnu par cet automate.
2/ Reconnaissance de w2=abbcc
L’automate se trouve à l’état q3 qui est final mais le mot w2 n’a pas été entièrement lu (il reste un c). Il
faut noter qu’il n’y a aucune autre possibilité pour lire ce mot. Donc, w2 n’est pas reconnu par cet
automate.
2. L2 ={anb m / n>m0}
Les mots de L2 sont formés d’une séquence de a suivie d’une séquence de b avec le nombre de a est
strictement supérieur au nombre de b. Ainsi le nombre de a est strictement supérieur ou égal à 1. Le
principe est de faire correspondre à chaque b un a et il doit rester au moins un a dans la pile.
- Vérifier qu’il reste au moins un a dans la pile et transiter vers un état final.
L’automate à pile P=(, , Z0 , Q, q0, F, ) où ={a, b}, ={Z0}, Q={q0, q1, q2}, F={q2} et
l’ensemble des transitions est :
Département Informatique Année 2019-2020
FEI - USTHB
L2-ACAD (Section A & C) Théorie des Langages
Série 3
LES LANGAGES ALGEBRIQUES
Z0q0a Z0aq0 /*Lire le 1er a et l’empiler */
aq1 q2 /* Vérifier qu’il reste au moins un a dans la pile et aller vers l’état final q2 */
3. L3 ={a2nbn / n0}
Les mots de L3 sont formés d’une séquence de a suivie d’une séquence de b avec la contrainte que le
nombre de a est le double du nombre de b. L’idée est de faire correspondre à chaque b deux a.
- Lire les b et à chaque lecture d’un b, dépiler un 1er a puis dépiler un second a.
- Vérifier qu’il ne reste aucun a dans la pile et transiter vers un état final.
L’automate à pile P=(, , Z0 , Q, q0, F, ) où ={a, b}, ={Z0}, Q={q0, q1, q2, q3}, F={q3} et
l’ensemble des transitions est :
aq0b q1 /* Lire le 1er b, dépiler un 1er a et passer à q1 afin de dépiler le second a*/
Z0q2 Z0q3 /* Vérifier qu’il ne reste aucun a dans la pile et aller vers l’état final q3*/
1) Notons qu’après la lecture du 1er b et le dépilement du second a à l’état q1, l’automate passe à l’état
q2 pour traiter la suite du mot. Il n’est pas possible de revenir vers l’état q 0 où il sera alors possible
la lecture des a après celle des b.
2) Une autre solution consiste à empiler la moitié des a lus puis à chaque lecture d’un b dépiler un a.
4. L4 ={anb2m / nm}
Exemples L4={, a, aa, aaa, abb, aabb, aaabb, aaaab, aabb, aaabb, aaaaabb, ….}
Les mots de L4 sont formés d’une séquence de a suivie d’une séquence paire de b avec la contrainte
que le nombre de a est au moins égal à la moitié des b. Remarquez que le mot abbbb n’appartient pas
au langage.
Notons que la contrainte nm n=m+k avec k0. Donc, en remplaçant dans les mots de L4, on
obtient : am+kb2m = akamb2m avec m, k0.
Ainsi, il suffit de faire correspondre à deux b un seul a et il peut rester des a dans la pile.
- Lire les b : Lire un 1er b sans dépiler puis lire un second b et dépiler un a.
L’automate à pile P=(, , Z0 , Q, q0, F, ) où ={a, b}, ={Z0}, Q={q0, q1, q2}, F={q0, q2} et
l’ensemble des transitions est :
aq0b aq1 /* Lire le 1er b sans dépiler, et passer à q1 pour lire le second b */
aq2 b aq1 /* Lire un autre b sans dépiler, et passer à q1 pour lire le second b */
Remarque : L’état final q0 permet de reconnaître les mots formés seulement d’une séquence de a.
Aussi, le mot est reconnu au niveau de l’état q0 qui est un état final.