Langages formels, calculabilité et complexité ENS Paris – A1S1 2018-2019
20 septembre 2018 Grosshans Nathan
TD 1 – Langages, AFD et AFN
Pour chacun des langages suivants, trouver un automate fini déterministe le recon- naissant :
Exercice 1.Les mots sur l’alphabet {a, b} contenant le facteur aabou aaab. Solution 1.
start 1 2 3 4
a b
a b
a b
a, b
.
Exercice 2.Les mots sur l’alphabet {a, b} contenant un nombre pair deaet impair de b.
Solution 2.
start 1 2
3 4
a
b
a a b b
a
b
.
Exercice 3.Les mots sur l’alphabet {a} de longueur multiple de3.
Solution 3.
start 0
1 2
a a a
.
Exercice 4.Pour chaque d∈N les mots sur l’alphabet{a} de longueur multiple ded.
Solution 4.On distingue trois cas.
— d= 0.
start 1 a 2
a
.
1
— d= 1.
start 1
a
.
— d≥2.
(Q,{a}, δ, q0,{q0})avec Q={q0, . . . , qd−1} etδ(qi, a) =q(i+1) modd pour tousi∈[[0, d−1]]et a∈Σ.
Exercice 5.Les représentations binaires d’entiers pairs. Ici entier est entendu au sens positif et les nombres sont donnés dans l’ordre gros-boutiste (c’est à dire l’ordre normal de lecture des nombres, 1 puis 0puis 1 puis0 puis1 puis 0c’est le nombre binaire 101010 soit42 en décimal).
Solution 5.
start 1 0 2 3
1 0
1
0 1
.
Exercice 6.Pour chaque d∈N, les représentations binaires des entiers multiples ded.
Solution 6.On distingue trois cas.
— d= 0.
start 1 0 2 3
1 0
1 0,1
.
— d= 1.
start 1 0,1 2
0,1
.
— d≥2.
(Q,{0,1}, δ, s,{q0}) avecQ={s, q0, . . . , qd−1} etδ:Q×Σ→Qtelle que :
— δ(s, b) =qb pour tousb∈ {0,1};
— δ(qi, b) =q(2i+b) moddpour tousi∈[[0, d−1]]et b∈ {0,1}.
Exercice 7.Pour chaque (d, c)∈N2, les représentations binaires des entiers de la formec+k·dpour k∈N.
Solution 7.On distingue deux cas.
— d= 0.
(Q,{0,1}, δ, s,{qc}) avec Q={s, q0, . . . , qc, qc+1} etδ:Q×Σ→Qtelle que : 2
— δ(s, b) =qb pour toutb∈ {0,1};
— δ(qi, b) =
(q2i+b si 2i+b≤c
qc+1 sinon pour tousi∈[[0, d−1]]etb∈ {0,1}.
— d≥1.
(Q,{0,1}, δ, s,{qc,c modd}) avec Q={s} ∪ {qt,r|(t, r)∈ {0, . . . , c} × {0, . . . , d−1}} etδ:Q× Σ→Q telle que :
— δ(s, b) =
(qb,b modd si c≥1
qc,b modd sinon pour toutb∈ {0,1};
— δ(qt,r, b) =
(q2t+b,(2r+b) modd si2t+b≤c
qc,(2r+b) modd sinon pour tous(t, r)∈ {0, . . . , c} × {0, . . . , d−1}et b∈ {0,1}.
Puzzles
Exercice 8.Pour tout alphabetΣ, donner l’ensemble des mots (x, y)∈(Σ∗)2 tels que xy=yx.
Solution 8.Il s’agit de l’ensemble de toutes les paires de mots(x, y)∈(Σ∗)2telles qu’il existeu∈Σ∗ eti, j∈Ntels que x=ui ety=uj.
La démonstration se fait par récurrence sur |xy|, en observant que soitx =ε ou y=ε, soit, sans perte de généralité, |x| ≥ |y| et on peut montrer qu’alors x = yz avec z ∈ Σ∗, ce qui implique que zy =yz avec |zy|<|xy|.
Exercice 9.Expliciter la forme des langages rationnels unaires (c’est-à-dire, sur un alphabet à une lettre).
Solution 9.SiΣ = {a} est l’alphabet, ce sont les langages qui sont des unions finies, pourk∈Net p ∈ N>0 fixés, de langages de la forme {ai} pour i∈ N, i < k et{aj |j ∈ N, j ≥k∧j ≡r modp}
pour r∈[[0, p−1]].
Étant donné un langage rationnel L sur un alphabet Σ, prouver que les langages suivants sont rationnels :
Exercice 10. Init(L) ={u∈Σ∗| ∃v∈Σ∗ :uv∈L}.
Solution 10. Soit A = (Q,Σ, δ, q0, F) un AFD qui reconnaît L, soit F0 l’ensemble des états co- accessibles, c’est à dire les étatsq ∈Q tels qu’il existe w∈Σ∗ vérifiantδ(q, w)ˆ ∈F.
On a que l’AFD (Q,Σ, δ, q0, F0) reconnaît Init(L).
Exercice 11. M in(L) ={w∈L|@u∈L:u préfixe propre dew}.
Solution 11. SoitA= (Q,Σ, δ, q0, F) un AFD qui reconnaîtL. On supprime juste toutes les transi- tions sortant des états deF pour obtenir un AFN reconnaissantM in(L).
Exercice 12. M ax(L) ={w∈L|wu∈L⇒u=ε}.
Solution 12. Soit A = (Q,Σ, δ, q0, F) un AFD qui reconnaît L. On limite les états finaux de A aux états finaux qui ne sont pas co-accessibles autrement que par le mot vide pour obtenir un AFD reconnaissant M ax(L).
Exercice 13. Cycle(L) ={uv ∈Σ∗|vu∈L}.
3
Solution 13. SoitA= (Q,Σ, δ, q0, F) un AFD qui reconnaîtL.
On suppose que ε∈/Σ et on définitQ0 ={q0} ∪Q×Q× {0,1}. On définit δ0:Q0×(Σ∪ {ε})→P(Q0) de la manière qui suit :
— pour tout a∈Σ,δ0(q0, a) =∅etδ0(q0, ε) =∪q∈Q{(q, q,0)};
— pour tous a∈Σ,q, p∈Q,δ0((q, p,0), a) ={(δ(q, a), p,0)} et
δ0((q, p,0), ε) =
(∅ siq ∈/F (q0, p,1) sinon ;
— pour tous a∈Σ,q, p∈Q,δ0((q, p,1), a) ={(δ(q, a), p,1)} etδ0((q, p,1), ε) =∅. On a que l’AFN (Q0,Σ, δ0, q0,∪q∈Q{(q, q,1)}) reconnaît Cycle(L).
Exercice 14. 12L={u∈Σ∗ | ∃v:uv ∈L et |v|=|u|}.
Solution 14. SoitA= (Q,Σ, δ, q0, F) un AFD qui reconnaîtL.
On suppose que ε∈/Σ et on définitQ0 ={q0} ∪Q3.
On définit δ0:Q0×(Σ∪ {ε})→P(Q0) de la manière qui suit :
— pour tout a∈Σ,δ0(q0, a) =∅etδ0(q0, ε) =∪q∈Q{(q0, q, q)};
— pour tous a∈Σ,(q, p, r)∈Q3,δ0((q, p, r), a) =S
b∈Σ{(δ(q, a), p, δ(r, b))} etδ0((q, p, r), ε) =∅. On a que l’AFN (Q0,Σ, δ0, q0,∪(q,r)∈Q×F{(q, q, r)}) reconnaît 12L.
4