Exercices automate finis deterministes Théorie des lang...

Théorie des langages : Exercices automate finis deterministes

Télécharger PDF

Chapitre 4

option informatique

Corrigé des exercices

•Automates finis déterministes � 

Exercice 1

1. Le langage des mots contenant au moins une fois la lettrea:q 0q 1a b

a, b

2. Le langage des mots contenant au plus une fois la lettrea:q 0q 1a bb

3. Le langage des mots contenant un nombre pair de fois la lettrea:q 0q 1a bba 4. Le langage des mots admettantabapour facteur :q 0q 1q 2q 3a baba b

a, b

5. Le langage des mots admettantabapour sous-mot :q 0q 1q 2q 3a baba b

a, b � 

Exercice 2

Posonsn= 2p+ravecr∈{0,1}; alors :

p≡0 mod 5 =⇒n≡rmod 5p≡3 mod 5 =⇒n≡1 +rmod 5

p≡1 mod 5 =⇒n≡2 +rmod 5p≡4 mod 5 =⇒n≡3 +rmod 5

p≡2 mod 5 =⇒n≡4 +rmod 5

D’où l’automate :

http://info-llg.fr

4.2option informatiqueq 0q 1q 2q 3q 41 00 10 10 10 1

Pour lire les entiers à partir du bit de poids le plus faible, il suffit de considérer l’automate transposé, c’est-à-dire

celui obtenu en inversant l’ordre des transitions et en échangeant états initiaux et états finaux. En général, la

transposée d’un automate déterministe est non déterministe, mais l’automate ci-dessus fait exception.q 0q 1q 2q 3q 41 00 10 10 10 1 � 

Exercice 3

Il y a trois types de mots dans ce langage : ceux qui contiennent au moins unaet unbavant le

dernier caractère (étatq6 ), ceux qui ne contiennent que desaet qui sont de longueur au moins 2 (étatq3 ), ceux

qui ne contiennent que desbet qui sont de longueur au moins 2 (étatq5 ).q 0q 1q 2q 3q 4q 5q 6a ba ba ba b

a, ba b

a, b � 

Exercice 4

1.Les mots deL′ sont les mots qui commencent par 1 et qui comportent au moins un 0 dans leur écriture.

D’où l’automate :

Corrigé des exercices4.3q 0q 1q 21 10 0,1

2. Les mots de E sont reconnus par l’automate :q 0q 1q 21 01 0

3.NotonsL1 le langage dénoté par01etL2 le langage dénoté par(10)∗ . AlorsS=EL1 L2 doncSest reconnu

par l’automate :q 0q 1q 2q 3q 41 01 01 10  �

Exercice 5

On définit deux suites (Ri ) et (Si ) de parties de Q en posant R0 ={q0 }, S0 = F et pour touti∈N:R i+1

= Ri ∪{ q∈Q∣ ∣∣ il existe une transition d’un élément de Ri àq} Si+1 = Si ∪{ q∈Q∣ ∣∣ il existe une transition deqà un élément de Si }

Ces deux suites sont croissantes dansQfini donc sont stationnaires. Leurs limitesRetSsont atteintes dès lors

que deux termes consécutifs sont égaux et dans ce casRest l’ensemble des états accessibles etSl’ensemble

des états co-accessibles. Il suffit dès lors de supprimer les états qui n’appartiennent pas àR∩Sainsi que les

transitions dans lesquelles ces états interviennent pour obtenir l’automate émondé demandé.

Commençons par une fonction qui détermine les états accessibles en suivant l’algorithme exposé ci-dessus :

letaccessible a =

let recaux1 b =function

| []−> b

| ((i, _), j)::q when mem i b &&notmem j b−> aux1 (j::b) q

| _::q−> aux1 b q

andaux2 b =letbb = aux1 b a.Deltain

ifb = bbthenbelseaux2 bb

inaux2 [a.Start] ;;

On détermine de même les états co-accessibles :

http://info-llg.fr

4.4option informatique

letcoaccessible a =

let recaux1 c =function

| []−> c

| ((i, _), j)::q when mem j c &&notmem i c−> aux1 (i::c) q

| _::q−> aux1 c q

andaux2 c =letcc = aux1 c a.Deltain

ifc = ccthencelseaux2 cc

inaux2 a.Accept ;;

Il reste à émonder l’automate :

letemonde a =

lete = intersect (accessible a) (coaccessible a)in

let recaux =function

| []−> []

| ((i, _), j)::q whennotmem i e ||notmem j e−> aux q

| t::q−> t::(aux q)

in{Start = a.Start; Accept = intersect a.Accept e; Delta = aux a.Delta} ;;

•Automates non déterministes � 

Exercice 6

La déterminisation du premier automate conduit au résultat :δ ′ab {q0 }{q0 } {q0 , q1 }{q 0

, q1 }{q0 , q2 } {q0 , q1 , q2 }{q 0

, q2 }{q0 , q2 } {q0 , q1 , q2 }{q 0

, q1 , q2 }{q0 , q2 } {q0 , q1 , q2 }q ′0 q′ 1q ′2 q′ 3a ba ba bb a

La déterminisation du second automate conduit au résultat :δ ′ab {q0 }{q1 } {q2 }{q 1}{q 1

} {q0 , q2 }{q 2}{q 2

} {q0 }{q 0

, q2 }{q1 , q2 } {q0 , q2 }{q 1

, q2 }{q1 , q2 } {q0 , q2 }q ′0 q′ 1q ′2 q′ 3q ′4 ab ab ba ba ab Corrigé des exercices4.5 � 

Exercice 7

Seules quatre configurations sont possibles :

– les quatre verres sont tous dans le même sens (configurationq0 ) ;

– trois verres sont dans un sens et le quatrième dans l’autre sens (configurationq1 ) ;

– deux verres voisins sont dans un sens et les deux autres dans l’autre sens (configurationq2 ) ;

– deux verres opposés sont dans un sens et les deux autres dans l’autre sens (configurationq3 ).

On désigne par la lettre :

–ale fait de changer l’orientation d’un des quatre verres ;

–ble fait de changer l’orientation de deux verres voisins ;

–cle fait de changer l’orientation de deux verres opposés.

Le jeu peut alors être représenté par l’automate non déterministe suivant :q 0q 1q 2q 3aa ba bc

b, cc Sa déterminisation conduit à l’automate suivant :0123 12012

013010230212 030

a, bc ac ac ba ca

b, cb ca cb b, ca ca cb ab On constate que la succession de mouvementcbcacbcconduit nécessairement à une position gagnante pour lebarman.  �

Exercice 8

T(A) et doncA′ =D(T(A)) reconnait l’image miroir du langage reconnu parA, doncA′′ reconnait

le même langage que A ; il est équivalent à A.

On obtient pour A′ l’automate :

http://info-llg.fr

4.6option informatiqueq ′0 q′ 1q ′2 q′ 3q ′4 q′ 5q ′6 ab ab ba bba bba et pour A′′ l’automate :q ′′0 q′′ 1q ′′2 ab a, bb a � 

Exercice 9

L’automate non déterministe :q 0q 1q 2q 3q 4

a, babba a, b

se déterminise en :δ ′ab {q0 }{q0 , q1 } {q0 }{q 0

, q1 }{q0 , q1 } {q0 , q2 }{q 0

, q2 }{q0 , q1 } {q0 , q3 }{q 0

, q3 }{q0 , q1 , q4 } {q0 }{q 0

, q1 , q4 }{q0 , q1 , q4 } {q0 , q4 }{q 0

, q4 }{q0 , q1 , q4 } {q0 , q4 }q ′0 q′ 1q ′2 q′ 3q ′4 q′ 5b aa ba bab ab ab On notera que l’étatq′ 5

peut être supprimé sans changer le langage reconnu par cet automate.

L’algorithme KMP consiste à considérer les états et transitions suivants :δab εaεaaab abaabb

abbabbaεabbaaab Corrigé des exercices4.7

puis à transformer l’état acceptant (abba) en puit :ε a

ababbabbab aa ba bab a, b

•Théorème deKleene � 

Exercice 10

On commence par se débarrasser du symboleε: l’expression rationnelle est équivalente à(a+c) ∗

abb+(a+c)∗ . On la linéarise pour obtenir un langage local :(c1 +c2 )∗ c3 c4 c5 +(c6 +c7 )∗ , avecP={c1 , c2 , c3 , c6 , c7 },

S ={c5 , c6 , c7 }et F ={c2 1

, c2 2

, c1 c2 , c2 c1 , c1 c3 , c2 c3 , c3 c4 , c4 c5 , c2 6

, c2 7

, c6 c7 , c7 c6 }.

On déduit de l’automate local qui en résulte l’automate deGlushkovde l’expression rationnelle en supprimant

le marquage des transitions :c 0c 3c 4c 5c 2c 1c 6c 7a ca ac ca aa ac bb ca ac On notera que puisqueεappartient au langagec0 est un état acceptant. Sa déterminisation fournit l’automate

suivant :q 0q 1q 2q 3q 4a ca cb ca b � 

Exercice 11

L’automate suivant reconnait le langage L ={ m∈Σ∗ ∣∣ ∣|m| a

≡0 mod 3} :

http://info-llg.fr

4.8option informatiqueq 0q 1q 2a ba ba b

On lui applique l’algorithme d’élimination des états en éliminant successivementq2 ,q1 etq0 :i q0 fq 1q 2a bε ab ab εi q0 fq 1a bε ab∗ ab εi q0 fb+ab ∗ab ∗a εεi f(b+ab ∗ab ∗a) ∗

L est donc dénoté par (b+ab∗ ab∗ a)∗ . � 

Exercice 12

L’automate suivant reconnait le langage L :q 0q 1q 2q 3a ab ab a

On le rend complet en ajoutant un état puit :q 0q 1q 2q 3q 4a ba ba ba b

a, b

En inversant les états acceptants on obtient un automate qui reconnaitL :

Corrigé des exercices4.9q 0q 1q 2q 3q 4a ba ba ba b

a, b � 

Exercice 13

SiL1 etL2 sont deux langages reconnus par des automatesA1 etA2 nous savons calculer les

automates reconnaissant l’intersection et le complémentaire donc des automates reconnaissantL1 \L2 etL2 \L1 .

Il reste à utiliser l’équivalence : L1 = L2 ⇐⇒(L1 \L2 =∅et L2 \L1 =∅) pour conclure. � 

Exercice 14

Considérons un automate fini déterministeA= (Σ,Q, q0 ,F,δ) qui reconnaitL, notonsAc(respec-

tivementCo) l’ensemble des états accessibles (respectivement co-accessibles) et considérons les trois automates :A p

= (Σ,Q, q0 ,Co,δ),As = (Σ,Q,Ac,F,δ),Af = (Σ,Q,Ac,Co,δ)

(les deux derniers sont non déterministes).AlorsA p

reconnaitpref(L),Af reconnaitsuff(L),Af reconnaitfact(L) (on peut aussi observer quefact(L) =

pref(suff(L)). � 

Exercice 15

SoitA= (Σ,Q, q0 ,F,δ) un automate qui reconnaitL. Pour toutq∈Qon noteIq l’ensemble des

mots qui étiquètent un chemin deq0 àqetFq l’ensemble des mots qui étiquètent un chemin deqà l’un des états

finaux deF. Ces deux langages sont respectivement reconnus par(Σ,Q, q0 ,{q},δ) et(Σ,Q, q,F,δ) donc rationnels.

L’égalité√ L =⋃ q∈QI q∩F q

prouve alors que√ L est aussi rationnel. � 

Exercice 16

SoitA= (Σ,Q, q0 ,F,δ) un automate qui reconnait le langageL. On noteIl’ensemble des états

accessibles à partir deq0 en suivant un chemin étiqueté par un mot deK. On considère alors l’automate (non

déterministe) A′ = (Σ,Q,I,F,δ) ; nous allons montrer que A′ reconnait K−1 L.

Considérons un motv∈K−1 Letu∈Ktel queuv∈L. Puisqueuv∈Lle cheminq0 uv qf mène à un état

acceptantqf ∈F. Ce dernier se décompose en deux cheminsq0 u q

v qf avecq∈Ice qui montre quevétiquète

un chemin menant d’un étatq∈I à un étatqf ∈F.vest donc reconnu par A′ .

Réciproquement, sivest reconnu parA′ il existeq∈I,qf ∈Fet un cheminq

v qf étiqueté parv. Par définition

deIil existeu∈Ket un cheminq0 u q

étiqueté paruce qui prouve queuvest reconnu parA, donc queuv∈L.

•Lemme de l’étoile � 

Exercice 17

Supposons le lemme de l’étoile vérifié par le langageL1 et posonsu=ε,v=ak etw=bk+1 . Le

motuvwappartient àL1 doncvse factorise env=ak 1a k2 ak 3aveck 2

>1 et pour toutn∈N,uv1 vn+1 2v 3w =a k+nk2 bk+1 ∈L1 , ce qui est absurde.

Supposons le lemme de l’étoile vérifié pour le langageL2 et posonsu=ak ,v=bk ,w=ε. Alors il existek2 >1 tel

que pour toutn∈N,ak bk+nk 2∈L 2

, ce qui est absurde.

Supposons le lemme de l’étoile vérifié pour le langageL3 et considérons un entier premierptel quep>k. Alorsa p

se factorise sous la formeak 1a k2 ak 3aveck 2

>1 et pour toutn∈N,ap+nk 2∈L 3

. En particulier, pourn=ple

nombrep+pk2 doit être premier, ce qui est absurde. � 

Exercice 18

Si le langage deDickétait rationnel il existerait un automate reconnaissant les mots de la formea nb n

; or nous avons vu que dans ce cas il existek2 >1 tel que le motan bn+k 2

soit reconnu, et ce dernier mot

n’est pas un mot deDick.

http://info-llg.fr

4.10option informatique

Pour toutk∈Nle mot(1+(1+(1+(...1))...)(comportantkparenthèses ouvrantes et fermantes) appartient

au langageCaml; en posantu=(1+(1+(1+(...1,v=))...)etw=εle second lemme de l’étoile conduit à

une absurdité. � 

Exercice 19

SupposonsLrationnel ; d’après le second lemme de l’étoile il existe un entierktel que pour tout

palindromem=uvwtel que|v|>kse factorise sous la formem=uv1 v2 v3 wavec|v2 |>1,|v1 v2 |6ket∀n∈N,uv 1v n2 v3 west un palindrome. En considérant le motm=ak bak avecu=ε,v=ak etw=bak on prouve l’existence

d’un entierp >0 tel que pour toutn∈N,ak+np bak doive être un palindrome, ce qui est absurde. � 

Exercice 20

SupposonsLrationnel et notonskl’entier qui intervient dans la première version du lemme

de l’étoile. Si la conjecture est vraie il existep>ktel que2p −1 soit un nombre premier et dans ce cas le mot1 p

appartient àL. D’après le lemme de l’étoile ce mot se factorise sous la formeuvwavec|v|>1 et pour toutn∈N,uv n

w∈L. En posantv= 1j on prouve que pour toutn∈Nle mot1p+nj appartient àL, autrement dit que2 p+nj

−1 est premier. Mais en prenantn=pon aboutit à une absurdité car2p(j+1) −1 est divisible par2j+1 −1>3.

Partagez vos remarques, questions ou propositions d'amélioration ici...

Enregistrer un commentaire (0)
Plus récente Plus ancienne