Vous êtes sur la page 1sur 10

option informatique

Chapitre 4

Corrig des exercices

Automates finis dterministes



Exercice 1 
1. Le langage des mots contenant au moins une fois la lettre a :
a, b

b
a

q0

q1

2. Le langage des mots contenant au plus une fois la lettre a :


b

b
a

q0

q1

3. Le langage des mots contenant un nombre pair de fois la lettre a :


b

b
a

q0

q1
a

4. Le langage des mots admettant aba pour facteur :


b
q0

a, b

a
a

q1

q2

q3

b
5. Le langage des mots admettant aba pour sous-mot :
b
q0

a
a

q1

a, b

b
b

q2

q3


Exercice 2  Posons n = 2p + r avec r {0, 1} ; alors :
p 0 mod 5 = n r mod 5

p 3 mod 5 = n 1 + r mod 5

p 1 mod 5 = n 2 + r mod 5

p 4 mod 5 = n 3 + r mod 5

p 2 mod 5 = n 4 + r mod 5
Do lautomate :
http://info-llg.fr

4.2

option informatique

1
q1

q0

q3

1
q2

q4

Pour lire les entiers partir du bit de poids le plus faible, il suffit de considrer lautomate transpos, cest--dire
celui obtenu en inversant lordre des transitions et en changeant tats initiaux et tats finaux. En gnral, la
transpose dun automate dterministe est non dterministe, mais lautomate ci-dessus fait exception.
0
q1

q0

q3

1
q2

q4


Exercice 3  Il y a trois types de mots dans ce langage : ceux qui contiennent au moins un a et un b avant le
dernier caractre (tat q6 ), ceux qui ne contiennent que des a et qui sont de longueur au moins 2 (tat q3 ), ceux
qui ne contiennent que des b et qui sont de longueur au moins 2 (tat q5 ).
a
q3
a
q1

a, b

a
b
q0

q4

a, b

q6

a
b
q2

a
b
q5

b

Exercice 4 
1. Les mots de L0 sont les mots qui commencent par 1 et qui comportent au moins un 0 dans leur criture.
Do lautomate :

Corrig des exercices

4.3

0, 1

1
q0

q1

q2

2. Les mots de E sont reconnus par lautomate :


q1
1
1

q0

0
0

q2

3. Notons L1 le langage dnot par 01 et L2 le langage dnot par (10) . Alors S = EL1 L2 donc S est reconnu
par lautomate :
q1

1
0
q0

1
q2

q3

q4
0


Exercice 5  On dfinit deux suites (Ri ) et (Si ) de parties de Q en posant R0 = {q0 }, S0 = F et pour tout i N :
n
o

Ri+1 = Ri q Q il existe une transition dun lment de Ri q
n
o

S = S q Q il existe une transition de q un lment de S
i+1

Ces deux suites sont croissantes dans Q fini donc sont stationnaires. Leurs limites R et S sont atteintes ds lors
que deux termes conscutifs sont gaux et dans ce cas R est lensemble des tats accessibles et S lensemble
des tats co-accessibles. Il suffit ds lors de supprimer les tats qui nappartiennent pas R S ainsi que les
transitions dans lesquelles ces tats interviennent pour obtenir lautomate mond demand.
Commenons par une fonction qui dtermine les tats accessibles en suivant lalgorithme expos ci-dessus :
let accessible
let rec aux1
| []
| ((i, _),
| _::q
and aux2 b =

a =
b = function

> b
j)::q when mem i b && not mem j b > aux1 (j::b) q
> aux1 b q
let bb = aux1 b a.Delta in
if b = bb then b else aux2 bb
in aux2 [a.Start] ;;

On dtermine de mme les tats co-accessibles :

http://info-llg.fr

4.4

option informatique

let coaccessible a =
let rec aux1 c = function
| []
> c
| ((i, _), j)::q when mem j c && not mem i c > aux1 (i::c) q
| _::q
> aux1 c q
and aux2 c = let cc = aux1 c a.Delta in
if c = cc then c else aux2 cc
in aux2 a.Accept ;;

Il reste monder lautomate :


let emonde a =
let e = intersect (accessible a) (coaccessible a) in
let rec aux = function
| []
> []
| ((i, _), j)::q when not mem i e || not mem j e > aux q
| t::q
> t::(aux q)
in {Start = a.Start; Accept = intersect a.Accept e; Delta = aux a.Delta} ;;

Automates non dterministes



Exercice 6  La dterminisation du premier automate conduit au rsultat :
a
q20
0
a
{q0 }
{q0 }
{q0 , q1 }
{q0 , q2 }
{q0 , q2 }
{q0 , q2 }
{q0 , q1 , q2 } {q0 , q2 }

b
{q0 , q1 }
{q0 , q1 , q2 }
{q0 , q1 , q2 }
{q0 , q1 , q2 }

a
b

q00

q10

b
q30
b
La dterminisation du second automate conduit au rsultat :
a
q10
0
a
b
{q0 }
{q1 }
{q2 }
{q1 }
{q1 }
{q0 , q2 }
{q2 }
{q2 }
{q0 }
{q0 , q2 } {q1 , q2 } {q0 , q2 }
{q1 , q2 } {q1 , q2 } {q0 , q2 }

b
b

q30

a
q00

b
b
b

q20

q40

Corrig des exercices

4.5


Exercice 7  Seules quatre configurations sont possibles :
les quatre verres sont tous dans le mme sens (configuration q0 ) ;
trois verres sont dans un sens et le quatrime dans lautre sens (configuration q1 ) ;
deux verres voisins sont dans un sens et les deux autres dans lautre sens (configuration q2 ) ;
deux verres opposs sont dans un sens et les deux autres dans lautre sens (configuration q3 ).
On dsigne par la lettre :
a le fait de changer lorientation dun des quatre verres ;
b le fait de changer lorientation de deux verres voisins ;
c le fait de changer lorientation de deux verres opposs.
Le jeu peut alors tre reprsent par lautomate non dterministe suivant :
b, c
q1

q0
c

q3

q2

b
Sa dterminisation conduit lautomate suivant :
a, b
a
c

b, c

0123

12

b, c

013

01

2
c

023

a
012

03

c
b

02

b
On constate que la succession de mouvement cbcacbc conduit ncessairement une position gagnante pour le
barman.

0
00
Exercice 8  T (A) et donc A = D(T (A)) reconnait limage miroir du langage reconnu par A, donc A reconnait
le mme langage que A ; il est quivalent A.
On obtient pour A0 lautomate :
http://info-llg.fr

4.6

option informatique

a
b

q40

q10

q30

q50
a

b
b

b
q00

q20

q60

et pour A00 lautomate :


q100
b

a
q000

a, b

b
a
q200


Exercice 9  Lautomate non dterministe :
a, b
q0

a, b
a

q1

q2

q3

q4

se dterminise en :
0
a
b
{q0 }
{q0 , q1 }
{q0 }
{q0 , q1 }
{q0 , q1 }
{q0 , q2 }
{q0 , q2 }
{q0 , q1 }
{q0 , q3 }
{q0 , q3 }
{q0 , q1 , q4 }
{q0 }
{q0 , q1 , q4 } {q0 , q1 , q4 } {q0 , q4 }
{q0 , q4 }
{q0 , q1 , q4 } {q0 , q4 }

a
b

q00

q10

q20

q30

q40

a
b

b
q50
b

On notera que ltat q50 peut tre supprim sans changer le langage reconnu par cet automate.
Lalgorithme KMP consiste considrer les tats et transitions suivants :

a
b

a
a
ab
ab
a
abb
abb abba

abba
a
ab

Corrig des exercices

4.7

puis transformer ltat acceptant (abba) en puit :


b

a, b

a
b
a

ab

abb

abba

a
b

Thorme de Kleene

Exercice 10  On commence par se dbarrasser du symbole : lexpression rationnelle est quivalente
(a+c) abb+(a+c) . On la linarise pour obtenir un langage local : (c1 +c2 ) c3 c4 c5 +(c6 +c7 ) , avec P = {c1 , c2 , c3 , c6 , c7 },
S = {c5 , c6 , c7 } et F = {c12 , c22 , c1 c2 , c2 c1 , c1 c3 , c2 c3 , c3 c4 , c4 c5 , c62 , c72 , c6 c7 , c7 c6 }.
On dduit de lautomate local qui en rsulte lautomate de Glushkov de lexpression rationnelle en supprimant
le marquage des transitions :
c0
a

c
c1

c2

c3

c6

c7

a
a

a
c

a
b

c4

c5

On notera que puisque appartient au langage c0 est un tat acceptant. Sa dterminisation fournit lautomate
suivant :
a
b
q1

q3

a
q0

a
c

q2

q4


n
o


Exercice
11
Lautomate
suivant
reconnait
le
langage
L
=
m

|m|

0
mod
3
:
a


http://info-llg.fr

4.8

option informatique

q1
b

q0

a
a
q2

On lui applique lalgorithme dlimination des tats en liminant successivement q2 , q1 et q0 :


b

q1

q1

q0

ab a

a
a

q0

a
q2

b + ab ab a

q0

(b + ab ab a)

L est donc dnot par (b + ab ab a) .



Exercice 12  Lautomate suivant reconnait le langage L :
a
q0

b
q1

b
q2

q3

a
a

On le rend complet en ajoutant un tat puit :


a
q0

b
q1

b
q2

q3

a
a, b

b
q4

En inversant les tats acceptants on obtient un automate qui reconnait L :

Corrig des exercices

4.9

a
q0

b
q1

q2

q3

a
a, b

b
q4
b


Exercice 13  Si L1 et L2 sont deux langages reconnus par des automates A1 et A2 nous savons calculer les
automates reconnaissant lintersection et le complmentaire donc des automates reconnaissant L1 \ L2 et L2 \ L1 .
Il reste utiliser lquivalence : L1 = L2 (L1 \ L2 = et L2 \ L1 = ) pour conclure.

Exercice 14  Considrons un automate fini dterministe A = (, Q, q0 , F, ) qui reconnait L, notons Ac (respectivement Co) lensemble des tats accessibles (respectivement co-accessibles) et considrons les trois automates :
Ap = (, Q, q0 , Co, ),

As = (, Q, Ac, F, ),

Af = (, Q, Ac, Co, )

(les deux derniers sont non dterministes).


Alors Ap reconnait pref(L), Af reconnait suff(L), Af reconnait fact(L) (on peut aussi observer que fact(L) =
pref(suff(L)).

Exercice 15  Soit A = (, Q, q0 , F, ) un automate qui reconnait L. Pour tout q Q on note Iq lensemble des
mots qui tiqutent un chemin de q0 q et Fq lensemble des mots qui tiqutent un chemin de q lun des tats
finaux de F. Ces
deux langages sont respectivement reconnus par (, Q, q0 , {q}, ) et (, Q, q, F, ) donc rationnels.
[

Lgalit L =
Iq Fq prouve alors que L est aussi rationnel.
qQ


Exercice 16  Soit A = (, Q, q0 , F, ) un automate qui reconnait le langage L. On note I lensemble des tats
accessibles partir de q0 en suivant un chemin tiquet par un mot de K. On considre alors lautomate (non
dterministe) A0 = (, Q, I, F, ) ; nous allons montrer que A0 reconnait K1 L.
Considrons un mot v K1 L et u K tel que uv L. Puisque uv L le chemin q0
u

uv

qf mne un tat

acceptant qf F. Ce dernier se dcompose en deux chemins q0


q
qf avec q I ce qui montre que v tiqute
un chemin menant dun tat q I un tat qf F. v est donc reconnu par A0 .
Rciproquement, si v est reconnu par A0 il existe q I, qf F et un chemin q
de I il existe u K et un chemin q0

qf tiquet par v. Par dfinition

q tiquet par u ce qui prouve que uv est reconnu par A, donc que uv L.

Lemme de ltoile

k
k+1
Exercice 17  Supposons le lemme de ltoile vrifi par le langage L1 et posons u = , v = a et w = b . Le
mot uvw appartient L1 donc v se factorise en v = ak1 ak2 ak3 avec k2 > 1 et pour tout n N, uv1 v2n+1 v3 w =
ak+nk2 bk+1 L1 , ce qui est absurde.
Supposons le lemme de ltoile vrifi pour le langage L2 et posons u = ak , v = bk , w = . Alors il existe k2 > 1 tel
que pour tout n N, ak bk+nk2 L2 , ce qui est absurde.
Supposons le lemme de ltoile vrifi pour le langage L3 et considrons un entier premier p tel que p > k. Alors
ap se factorise sous la forme ak1 ak2 ak3 avec k2 > 1 et pour tout n N, ap+nk2 L3 . En particulier, pour n = p le
nombre p + pk2 doit tre premier, ce qui est absurde.

Exercice 18  Si le langage de Dick tait rationnel il existerait un automate reconnaissant les mots de la forme
an bn ; or nous avons vu que dans ce cas il existe k2 > 1 tel que le mot an bn+k2 soit reconnu, et ce dernier mot
nest pas un mot de Dick.
http://info-llg.fr

4.10

option informatique

Pour tout k N le mot (1+(1+(1+(...1))...) (comportant k parenthses ouvrantes et fermantes) appartient


au langage Caml ; en posant u = (1+(1+(1+(...1 , v = ))...) et w = le second lemme de ltoile conduit
une absurdit.

Exercice 19  Supposons L rationnel ; daprs le second lemme de ltoile il existe un entier k tel que pour tout
palindrome m = uvw tel que |v| > k se factorise sous la forme m = uv1 v2 v3 w avec |v2 | > 1, |v1 v2 | 6 k et n N,
uv1 v2n v3 w est un palindrome. En considrant le mot m = ak bak avec u = , v = ak et w = bak on prouve lexistence
dun entier p > 0 tel que pour tout n N, ak+np bak doive tre un palindrome, ce qui est absurde.

intervient dans la premire version du lemme
Exercice 20  Supposons L rationnel et notons k lentier qui
de ltoile. Si la conjecture est vraie il existe p > k tel que 2p 1 soit un nombre premier et dans ce cas le mot
1p appartient L. Daprs le lemme de ltoile ce mot se factorise sous la forme uvw avec |v| > 1 et pour tout
n N, uv n w L. En posant v = 1j on prouve que pour tout n N le mot 1p+nj appartient L, autrement dit que
2p+nj 1 est premier. Mais en prenant n = p on aboutit une absurdit car 2p(j+1) 1 est divisible par 2j+1 1 > 3.

Vous aimerez peut-être aussi