• Aucun résultat trouvé

TD 2 – Automates finis et expressions rationnelles

N/A
N/A
Protected

Academic year: 2022

Partager "TD 2 – Automates finis et expressions rationnelles"

Copied!
7
0
0

Texte intégral

(1)

Langages formels, calculabilité et complexité ENS Paris – A1S1 2019-2020

3 octobre 2019 NathanGrosshans

TD 2 – Automates finis et expressions rationnelles

1 Langages locaux

Soit Σ un alphabet. On dit qu’un langage L sur Σest local lorsqu’il existe P, S ⊆Σet N ⊆Σ2 tels queL\ {ε}= (PΣ∩ΣS)\Σ.

Exercice 1.

Caractériser la classe des langages locaux en termes d’AFD, c’est-à-dire, définir une classe d’AFD dits locaux telle qu’un langage est local si et seulement s’il est reconnu par un AFD local.

Solution 1.

C’est la classe des AFD (Q,Σ, δ, q0, F) tels qu’il existe p ∈ Q\F vérifiant δ(p, a) = p pour tout a∈Σ(pest un puits non acceptant) et que pour touta∈Σ, on ait|{δ(q, a)|q∈Q} \ {p}| ≤1(pour toute lettre lue, quel que soit l’état dans lequel on se trouve, on va soit dans le puits p, soit dans un autre état qui est toujours le même).

Soit A = (Q,Σ, δ, i, F) un tel AFD. Pour tout a ∈ Σ, on pose qa comme étant l’unique état de {δ(q, a)|q ∈Q} \ {p} si celui-ci existe,p sinon. Posons :

— P ={a∈Σ|δ(i, a)6=p};

— S ={a∈Σ|qa∈F};

— N ={a1a2 ∈Σ2 |δ(qa1, a2) =p}.

Il est direct de voir que, pour tousq ∈Q et a∈Σ, on a δ(q, a)∈ {qa, p}. Ainsi donc, pour tout mot w =a1· · ·an avec n∈N>0 et a1, . . . , an ∈Σ, on a δ(i, w)ˆ ∈ {qan, p}. En utilisant cette observation, on peut montrer queL(A)\ {ε}= (PΣ∩ΣS)\Σ.

Soit maintenant Lun langage local sur un alphabetΣ. Il existe doncP, S⊆ΣetN ⊆Σ2 tels que L\{ε}= (PΣ∩ΣS)\Σ. Construisons l’automateA= (Σ∪{q0, p},Σ, δ, q0, F)où{q0, p}∩Σ =∅, F =

(S∪ {q0} si ε∈L

S sinon etδ: (Σ∪ {q0, p})×Σ→(Σ∪ {q0, p}) est telle que :

— pour tout a∈Σ,δ(q0, a) =

(a sia∈P p sinon ;

— pour tous a1, a2 ∈Σ,δ(a1, a2) =

(a2 si a1a2 ∈/N

p sinon ;

— pour tout a∈Σ,δ(p, a) =p.

On peut montrer que Avérifie les conditions énoncées plus haut et que L=L(A).

Exercice 2.

Soit L1 un langage local sur un alphabet Σ1 etL2 un langage local sur un alphabet Σ2 tels que Σ1∩Σ2 =∅. Montrer queL1∪L2 etL1L2 sont locaux.

Solution 2.

La démonstration se fait assez directement en utilisant la caractérisation de l’exercice précédent.

Exercice 3.

Soit L un langage local sur un alphabetΣ. Montrer queL est local.

Solution 3.

La démonstration se fait également assez directement en utilisant la caractérisation de l’exercice 1.

(2)

2 Algorithme de Glushkov

Une expression rationnelle sur un alphabet Σ est dite linéaire lorsqu’elle contient au plus une fois chaque lettrea∈Σ.

Exercice 4.

Montrer que toute expression rationnelle linéaire correspond à un langage local.

Solution 4.

On procède simplement par récurrence sur la forme d’une expression rationnelle linéaire en utilisant les deux résultats précédents.

Exercice 5.

Étant donné une expression rationnelle linéaire E sur un alphabet Σ, donner un algorithme per- mettant de déterminer P, S⊆ΣetN ⊆Σ2 tels queL(E)\ {ε}= (PΣ∩ΣS)\Σ, ainsi que si ε∈ L(E) ou non.

Solution 5.

Étant donné une expression rationnelle linéaire E, on calcule récursivement sur la forme de E les ensemblesP(E)⊆Σ,S(E)⊆Σ,(E)⊆ {ε}etF(E)⊆Σ2tels queL(E)\ {ε}= (P(E)Σ∩ΣS(E))\ Σ2\F(E))Σ etε∈ L(E) si et seulement si ε∈(E).

On procède de la manière suivante, pour tous a∈Σet E1, E2 expressions rationnelles linéaires.

P(∅) =∅ P(ε) =∅ P(a) ={a}

P(E1+E2) =P(E1)∪P(E2) P(E1E2) =P(E1)∪(E1)P(E2)

P(E1) =P(E1), S(∅) =∅ S(ε) =∅ S(a) ={a}

S(E1+E2) =S(E1)∪S(E2) S(E1E2) =S(E2)∪S(E1)(E2)

S(E1) =S(E1), (∅) =∅ (ε) ={ε}

(a) =∅

(E1+E2) =(E1)∪(E2) (E1E2) =(E1)(E2)

(E1) ={ε} , F(∅) =∅

F(ε) =∅ F(a) =∅

F(E1+E2) =F(E1)∪F(E2)

F(E1E2) =F(E1)∪F(E2)∪S(E1)P(E2) F(E1) =F(E1)∪S(E1)P(E1) .

(3)

Exercice 6.

En déduire un algorithme permettant, étant donné une expression rationnelle E, de construire un AFN reconnaissantL(E).

Solution 6.

Il suffit, étant donné l’expression rationnelleE, de la linéariser en une expression rationnelle linéaire E0 en mémorisant les remplacements de lettres effectués, de calculerP(E0),S(E0),(E0) etF(E0) en utilisant la procédure récursive de l’exercice précédent, de construire l’AFD correspondant àL(E0) en utilisant la construction utilisée dans la solution de l’exercice 1, puis d’y remplacer les lettres dans le sens inverse, ce qui donne un AFN reconnaissantL(E).

Exercice 7.

Utiliser cet algorithme pour obtenir un AFN reconnaissant le langage correspondant à(a(ab))+ (ba) sur{a, b}.

Solution 7.

L’expression rationnelle linéarisée est E0= (a1(a2a3))+ (a4a5).

En calculant à la main, on obtient P(E0) ={a1, a4},S(E0) ={a1, a3, a5}, (E0) ={ε}, F(E0) = {a1a1, a1a2, a2a3, a3a1, a3a2, a4a5, a5a4}.

On construit l’AFD suivant reconnaissant L(E0) (où on omet l’état puits) :

1 start

a1

a2

a3 a4

a5 a4 a1

a1 a2

a3

a1

a2

a5 a4

.

On le transforme enfin en l’AFN suivant reconnaissant L((a(ab))+ (ba)) :

1 start

a1

a2

a3

a4

a5 b a

a a

b a

a a

b

.

3 Équations linéaires

Exercice 8. Lemme d’Arden

Soit K et L deux langages sur un alphabet Σ. Montrer que si ε ∈/ K, alors il existe un unique X⊆Σ tel queX =KX∪Len explicitant X.

Solution 8.

Supposons que ε∈/K et montrons que l’uniqueX⊆Σ tel queX=KX∪Lest X=KL.

Soit X ⊆ Σ tel que X = KX ∪L. Nous allons montrer que pour tout w ∈ Σ, w ∈ X si et seulement siw∈KL, par récurrence sur la longueur dew.

Cas de base |w|= 0. Si ε ∈ KL, alors ε ∈ L et donc ε ∈ X. Inversement, si ε ∈ X, alors, puisque ε∈/K, on a ε∈L et doncε∈KL.

Récurrence. Soit l ∈ N>0 et supposons que pour tout w ∈ Σ,|w|< l, on ait que w ∈ X si et seulement siw∈KL.

Soit w∈Σ,|w|=l.

(4)

Supposons que w ∈KL. Alors, soit w ∈L, et donc w ∈ X, soit w ∈ K+L. Dans le dernier cas, il existe nécessairement u ∈ K et v ∈ KL tels que w = uv. Puisque |u| > 0, on a que

|v|< l, et donc par hypothèse de récurrence, quev∈X. Ainsi donc,w=uv ∈KX ⊆X.

Inversement, supposons que w ∈ X. Alors, soit w ∈ L, et donc w ∈ KL, soit w ∈ KX.

Dans le dernier cas, il existe nécessairement u ∈ K et v ∈ X tels que w = uv. Puisque

|u| > 0, on a que |v| < l, et donc par hypothèse de récurrence, que v ∈ KL. Ainsi donc, w=uv∈KKL⊆KL.

Exercice 9.

Qu’advient-il du lemme précédent si K contient le mot vide ? Solution 9.

Alors sont solutions tous les langages de la forme KM avec L⊆M.

Soit X ⊆ Σ tel que X = KX ∪L. Soit M = L∪X \(K \ {ε})+X. On peut montrer que pour tout w ∈ Σ,w ∈ X si et seulement si w ∈KM, par récurrence sur la longueur de w. D’où, nécessairement X = KM pour un M ⊆Σ vérifiant L⊆ M. En réalité, tout tel M convient, donc X∈ {KM |M ⊆Σ, L⊆M}.

Exercice 10.

Étant donné n ∈ N>0, soit Ki,j pour i, j ∈ [[1, n]] ainsi que Li pour i ∈ [[1, n]] des langages sur un alphabet Σ. Montrer que si, pour tous i, j ∈ [[1, n]], ε ∈/ Ki,j, alors il existe X1, X2, . . . , Xn ⊆ Σ uniques tels que

X1 =K1,1X1∪K1,2X2∪ · · · ∪K1,nXn∪L1

X2 =K2,1X1∪K2,2X2∪ · · · ∪K2,nXn∪L2

... ...

Xn=Kn,1X1∪Kn,2X2∪ · · · ∪Kn,nXn∪Ln ,

qui de plus sont rationnels dès que Ki,j pour i, j∈[[1, n]] etLi pour i∈[[1, n]] le sont.

Solution 10.

Montrons ce résultat par récurrence sur n.

Case de base n= 1. Il s’agit du lemme d’Arden.

Récurrence. Soit n∈N, n≥2 et supposons que le résultat est vrai pourn−1.

Soit Ki,j, avec ε ∈/ Ki,j, pour i, j ∈ [[1, n]] ainsi que Li pour i ∈ [[1, n]] des langages sur un alphabet Σ. Nous allons montrer qu’il existeX1, X2, . . . , Xn⊆Σ uniques tels que

X1 =K1,1X1∪K1,2X2∪ · · · ∪K1,nXn∪L1

X2 =K2,1X1∪K2,2X2∪ · · · ∪K2,nXn∪L2

... ...

Xn=Kn,1X1∪Kn,2X2∪ · · · ∪Kn,nXn∪Ln

(1)

et qui de plus sont rationnels dès que Ki,j pour i, j∈[[1, n]] etLi pour i∈[[1, n]] le sont.

Soit X1, . . . , Xn−1⊆Σ fixés. Puisque

Kn,1X1∪Kn,2X2∪ · · · ∪Kn,nXn∪Ln=Kn,nXn∪(Kn,1X1∪ · · · ∪Kn,n−1Xn−1∪Ln) , par le lemme d’Arden, il existe donc un uniqueXn⊆Σ tel que

Xn=Kn,1X1∪Kn,2X2∪ · · · ∪Kn,nXn∪Ln , qui est

Xn=Kn,n (Kn,1X1∪ · · · ∪Kn,n−1Xn−1∪Ln) .

(5)

Par conséquent, pour que X1, X2, . . . , Xn vérifient (1), il faut et il suffit que X1, . . . , Xn−1

vérifient

X1 =K1,10 X1∪ · · · ∪K1,n−10 Xn−1∪L01

... ...

Xn−1 =Kn−1,10 X1∪ · · · ∪Kn−1,n−10 Xn−1∪L0n−1

(2)

où Ki,j0 =Ki,j∪Ki,nKn,n Kn,j, qui ne peut pas contenirε, pour i, j ∈[[1, n−1]] etL0i =Li∪ Ki,nKn,n Ln pouri∈[[1, n−1]]. Par hypothèse de récurrence, il existe ainsi X1, . . . , Xn−1 ⊆Σ uniques vérifiant (2), qui de plus sont rationnels dès queKi,j0 pour i, j ∈[[1, n−1]]et L0i pour i∈[[1, n−1]]le sont.

On peut en conclure que X1, X2, . . . , Xn ⊆ Σ vérifiant (1) sont uniques et sont de plus ra- tionnels dès que Ki,j pour i, j ∈ [[1, n]] et Li pour i ∈ [[1, n]] le sont, puisqu’alors Ki,j0 pour i, j∈[[1, n−1]]etL0i pour i∈[[1, n−1]]le sont aussi.

Exercice 11.

En déduire un algorithme permettant, étant donné un AFN A, de construire une expression ra- tionnelle correspondant à L(A).

Solution 11.

Soit A= (Q,Σ, δ, q1, F) un AFN.

Notons Q={q1, q2, . . . , qn} où |Q|=n. Posons Ki,j ={a∈Σ|qj ∈δ(qi, a)} pour i, j∈[[1, n]] et Li =

({ε} siqi ∈F

∅ sinon pour i∈[[1, n]].

Posons à présent Ri = {w ∈ Σ | δ(qˆ i, w)∩F 6= ∅} pour tout i ∈ [[1, n]]. On peut montrer que R1, R2, . . . , Rn vérifient

X1 =K1,1X1∪K1,2X2∪ · · · ∪K1,nXn∪L1

X2 =K2,1X1∪K2,2X2∪ · · · ∪K2,nXn∪L2

... ...

Xn=Kn,1X1∪Kn,2X2∪ · · · ∪Kn,nXn∪Ln .

(3)

Par le résultat précédent,R1, R2, . . . , Rnsont les uniquesX1, X2, . . . , Xnvérifiant (3). Pour calculer algorithmiquement une expression rationnelle pour chacun d’eux, il suffit donc d’utiliser récursivement le procédé d’élimination basé sur le lemme d’Arden présenté dans la solution de l’exercice précédent, en observant qu’on peut très facilement écrire une expression rationnelle pour les Ki,j et les Li, qui sont ensuite combinés par addition, concaténation et étoile dans cette procédure. On en déduit donc une expression rationnelle correspondant à L(A).

Exercice 12.

Donner une expression rationnelle correspondant au langage reconnu par l’AFN suivant, sur{a, b}:

start 1 2 3 4

a, b a

a

b a

a b

.

(6)

Solution 12.

On cherche X1, X2, X3, X4 ⊆ {a, b} uniques tels que : X1 ={a, b}X1∪ {a}X2 X2 ={b}X3∪ {a}X4 X3 ={a}X4∪ {ε}

X4 ={a}X3∪ {b}X4 . On trouve alors, après élimination successive des lignes, que

X1 =L((a+b)a(b+aba)(aba)) X2 =L((b+aba)(aba))

X3 =L((aba)) X4 =L(ba(aba)) .

L’expression rationnelle(a+b)a(b+aba)(aba) correspond donc au langage reconnu par l’AFN en question.

4 Caractérisations

Soit Σun alphabet.

Exercice 13.

Donner une condition nécessaire et suffisante sur la forme d’une expression rationnelle E sur Σ pour que L(E) soit reconnu par un AFD A= (Q,Σ, δ, q0, F) ne contenant aucun circuit non trivial (c’est-à-dire, tel qu’il n’existe pas u, v∈Σ et q, p∈Q, p6=q vérifiantˆδ(q, u) =petδ(p, v) =ˆ q).

Solution 13.

Il s’agit de toutes les expressions rationnelles sommes d’expressions rationnelles de la forme A0a1A1a2· · ·Ak−1akAk

où k∈N,A0, A1, . . . , Ak⊆Σeta1, a2, . . . , ak∈Σtels queai ∈/ Ai−1 pour touti∈[[1, k]].

Exercice 14.

Donner une condition nécessaire et suffisante sur la forme d’une expression rationnelle E sur Σ pour que L(E) soit reconnu par un AFD A = (Q,Σ, δ, q0, F) tel que pour tous u, v ∈Σ et q ∈ Q, δ(q, uv) = ˆˆ δ(q, vu).

Solution 14.

Soit Σ ={a1, . . . , as} pour s∈N>0.

Étant donnés k∈Netp∈N>0, on définit la relation d’équivalence∼k,psur Ntelle que pour tous i, j∈N,i∼k,pj si et seulement si :

— i < k eti=j; ou

— i≥k etj≥keti≡j modp.

Pour tousi1, . . . , is∈N, on définit alors le langage

Fk,p(i1, . . . , is) ={w∈Σ | ∀j∈[[1, n]],|w|a

jk,pij} , qui est rationnel puisque pour tout j ∈ [[1, s]], {w ∈ Σ | |w|a

jk,p ij} est rationnel. Pour tous i1, . . . , is∈N, il existe alors une expression rationnelleEk,p(i1, . . . , is)surΣtelle queL(Ek,p(i1, . . . , is))

=Fk,p(i1, . . . , is).

Il s’agit donc de toutes les expressions rationnelles sommes, pourk∈Netp∈N>0 fixés, d’expres- sions rationnelles Ek,p(i1, . . . , is) pour i1, . . . , is∈N.

(7)

Exercice 15.

Donner une condition nécessaire et suffisante pour qu’un AFD A = (Q,Σ, δ, q0, F) vérifie que L(A) est une combinaison booléenne de langages de la forme Σ avec a ∈ Σ (c’est-à-dire, une union d’intersections de langages de cette forme ou leurs compléments).

Solution 15.

Il s’agit de tous les AFD A = (Q,Σ, δ, q0, F) tels que pour tous u, v∈ Σ etq ∈Q, on ait d’une part ˆδ(q, u2) = ˆδ(q, u), et d’autre partδ(q, uv) = ˆˆ δ(q, vu).

Références

Documents relatifs

[r]

La construction de l'automate de la Figure 13 à partir de celui de la Figure 12 est le résultat d'un procédé général appliquable à tout automate, connu sous le nom

Pour montrer que K n’est pas r´ egulier, on pourra admettre l’existence de mots sans carr´ e arbitrairement longs sur l’alphabet {a, b, c}.. Exercice

justifier la réponse 2 sachant que x  y  10 donner la valeur de K Exercice55pts : la figure suivante est un jardin dont ABED est un carré de côté 12m et BCD est un

Donnez un automate non-déterministe sur Σ ={0, 1, 2, 3, 4, 5, 6, 7, 8, 9} qui accepte les mots dont le dernier chiffre soit un chiffre qui ait déjà apparu...

§ La fermeture d’un langage régulier est régulière ñ Transitions ϵ finaux vers initial. § L’union de deux langages réguliers

§ Dessinez un automate qui reconnaît un code couleur1. ‚ Avec 2 chiffres héxadécimaux

Q ( A ) n'est jamais vide, même si A est vide ; dans ce cas Q ( A ) est l'ensemble des procédures qui calculent la fonction Q ( N ) contient toutes les procédures, N est donc le