Langages et automates
Exercices
Ex 1
1. Soient K, L deux langages sur un alphabet A. On suppose que Kne contient pas le mot vide.
Montrer qu’il existe un unique langage Xsur Atel que X=KX +Let d´ecrire explicitement
X.
2. Sur l’alphabet {a, b}, on consid`ere le langage L0(resp. L1) des mots ayant un nombre pair
(resp. impair) de b. Trouver des relations entre L0et L1puis utiliser le r´esultat pr´ec´edent pour
expliciter L0et L1`a l’aide des op´erations d´ecrites plus haut.
Ex 2 Soit Lun langage quelconque sur A={a, b, c}. On d´efinit L={xA/ x.x L}.
a. D´ecrire Ldans le cas o`u Lest l’ensemble des mots commen¸cant par ab.
b. Mˆeme question si Lest l’ensemble des mots qui contiennent le facteur ab.
c. A-t-on L2=L? A-t-on (L)2=L?
Ex 3 Construire un automate fini d´eterministe reconnaissant le langage L={anbp/ n =p[3]}.
Ex 4 Les entiers non nuls admettent une unique repr´esentation binaire de bit de poids fort ´egal `a 1.
1. Donner un automate d´eterministe reconnaissant les mots sur l’alphabet {0,1}qui sont l’´ecriture
binaire des entiers non nuls multiples de 5.
2. Mˆeme question quand le bit de poids fort est `a droite.
Ex 5 Sur l’alphabet {0,1}, on consid`ere le langage L= 1 ·(0 + 1)des mots qui commencent par
1. Chaque mot uLpeut ˆetre consid´er´e comme l’´ecriture d’un entier binaire n; on note alors s(u)
le mot correspondant `a l’´ecriture binaire de n+ 1. Trouver un automate qui reconnaˆıt le langage
{uL/ |u|=|s(u)|}.
Ex 6 D´eterminiser l’automate suivant
0


-

2

 3


?
4


-
xj
x
Yx
-
x?
x, y
?
y
?
y
1


@
@
@
@
@R
y
y
6
x
6
y
Ex 7 D´eterminiser l’automate suivant.
3


?
2

1


6
4

5

6


?
a, c
b
s
b
kb
-
b, c s
a, c
k
a, c
Ex 8 Un barman aveugle joue au jeu suivant avec un client : il a devant lui un plateau sur lequel sont
dispos´es quatre verres formant un carr´e. Chacun de ces verres peut ˆetre retourn´e ou non, sans que le
barman ne le sache. Le but de ce dernier est de s’arranger pour que tous les verres soient tourn´es dans
le mˆeme sens. Pour ce faire, il peut `a chaque tour choisir l’une des trois actions suivantes :
1
- tourner l’un des verres ;
- tourner deux verres voisins ;
- tourner deux verres oppos´es.
Mais pour corser la difficult´e, le client peut tourner le plateau d’un nombre quelconque de quart de
tours entre chacune des actions du barman. Le jeu s’arrˆete d`es qu’une des deux positions gagnantes
est atteinte.
1. Montrer qu’on peut restreindre `a quatre le nombre de configurations diff´erentes, puis repr´esenter
les actions possibles du jeu par un automate non d´eterministe.
2. D´eterminiser cet automate et en d´eduire une strat´egie gagnante pour le barman.
Ex 9 Construire un automate fini (pas forc´ement d´eterministe) qui reconnaˆıt le langage (a+b)a2b.
Le d´eterminiser.
Ex 10 Donner une description en fran¸cais des langages repr´esent´es par les expressions rationnelles
suivantes :
(b+ab)(a+ε),(aba+b)
Ex 11 Donner des expressions rationnelles repr´esentant les langages suivants.
1. Les mots sur l’alphabet {a, b}qui contiennent au moins un a.
2. Les mots sur l’alphabet {a, b}qui contiennent au plus un a.
3. Les mots sur l’alphabet {a, b}dont la longueur n’est pas divisible par 3.
4. Les mots sur l’alphabet {a, b}tels que deux lettres cons´ecutives sont distinctes.
5. Les mots sur l’alphabet {a, b, c}tels que deux lettres cons´ecutives sont distinctes.
Ex 12 Montrer que si Lest un langage local, le langage L0des facteurs des mots de Lest aussi local.
Ex 13 Montrer qu’un langage Lsur l’alphabet Aest local si et seulement si
u, v, u0, v0A,aA, (uav Let u0av0L)uav0L
Ex 14 On repr´esente un langage local par un ´el´ement de type suivant :
type local = {
V : bool ;
P : char list ;
S : char list ;
F : (char*char) list };;
La champ Vpermet de savoir si le langage contient le mot vide ; les champs P,Set Fcorrespondant
aux ensembles des premi`eres lettres, derni`eres lettres et facteurs de taille 2.
Ecrire une fonction est dans l m : local string bool permettant de tester si un mot est
dans un langage local.
Ex 15 En utilisant l’algorithme de Glushkov, construire un automate d´eterministe qui reconnaˆıt le
langage aabab. Pouvez-vous donner un automate d´eterministe plus simple ?
Ex 16 En utilisant l’algorithme de Glushkov, construire un automate fini reconnaissant le langage
xy{x, y}+.
Ex 17 Montrer que {ap/ p est premier}n’est pas reconnaissable. On raisonnera par l’absurde.
Ex 18 Montrer que sur un alphabet de cardinal au moins 2, l’ensemble des palindromes n’est pas
rationnel.
2
Ex 19 Si uA, on note ˜ul’image miroir de u(mot obtenu en inversant l’ordre des lettres). Montrer
que si L∈ R(A) alors ˜
L={˜u/ u L}∈R(A).
Ex 20 Si uAet si Lest un langage sur A, on d´efinit
u1L={vA/ uv L}
Lu1={vA/ vu L}
Soient aAet LAun langage.
a. Montrer que si LRat(A) alors a1LRat(A).
b. Montrer que si LRat(A) et uAalors u1LRat(A).
c. Montrer que si LRat(A) et uAalors Lu1Rat(A).
Ex 21 Soit Xun alphabet et uun mot sur cet alphabet. On dit que le mot vest un pr´efixe de us’il
existe un mot wtel que u=vw. Ceci signifie que vest un “d´ebut” du mot u. Si Lest un langage sur
X, on notera Pref(L) l’ensemble des pr´efixes des mots de L:
Pref(L) = {vX/wX:vw L}
1. A l’aide d’une induction structurelle, montrer que pour tout langage rationnel, pref(L) est
encore un langage rationnel.
2. Mˆeme question en utilisant la reconnaissabilit´e.
3
1 / 3 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !