Langages formels, calculabilité et complexité ENS Paris – A1S1 2019-2020
26 septembre 2019 NathanGrosshans
TD 1 – Langages, AFD et AFN
1 Construction d’AFD
Exercice 1.Pour chacun des langages suivants, donner un automate fini déterministe (AFD) le re- connaissant.
1. Les mots sur l’alphabet {a, b}contenant le facteur aab ou aaab.
2. Les mots sur l’alphabet {a, b}contenant un nombre pair de aet impair de b.
3. Les mots sur l’alphabet {a}de longueur multiple de3.
4. Pour chaqued∈Nles mots sur l’alphabet{a} de longueur multiple ded.
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).
6. Pour chaqued∈N, les représentations binaires des entiers multiples ded.
7. Pour chaque(d, c)∈N2, les représentations binaires des entiers de la formec+k·dpourk∈N.
Solution 1.
1. On construit l’automate suivant :
start 1 2 3 4
a b
a b
a b
a, b
. 2. On construit l’automate suivant :
start 1 2
3 4
a
b
a a b b
a
b
.
3. On construit l’automate suivant : start 0
1 2
a a a
.
4. On distingue trois cas :
1
— d= 0 :
start 1 a 2
a
.
— 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]]
eta∈Σ.
5. On construit l’automate suivant :
start 1 0 2 3
1 0
1
0 1
. 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}) avec Q={s, q0, . . . , qd−1}etδ:Q×Σ→Q telle que :
— δ(s, b) =qb pour tous b∈ {0,1};
— δ(qi, b) =q(2i+b) modd pour tousi∈[[0, d−1]]etb∈ {0,1}. 7. On distingue deux cas :
— d= 0 :
(Q,{0,1}, δ, s,{qc}) avec Q={s, q0, . . . , qc, qc+1} etδ:Q×Σ→Qtelle que :
— δ(s, b) =qb pour tout b∈ {0,1};
— δ(qi, b) =
(q2i+b si2i+b≤c
qc+1 sinon pour tousi∈[[0, d−1]]etb∈ {0,1}. 2
— 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 sic≥1
qc,b modd sinon pour toutb∈ {0,1};
— δ(qt,r, b) =
(q2t+b,(2r+b) modd si 2t+b≤c
qc,(2r+b) modd sinon pour tous(t, r)∈ {0, . . . , c} × {0, . . . , d−1}
etb∈ {0,1}.
2 Puzzles
Exercice 2.Pour tout alphabetΣ, donner l’ensemble des mots (x, y)∈(Σ∗)2 tels que xy=yx.
Solution 2.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 3.Expliciter la forme des langages rationnels unaires (c’est-à-dire, sur un alphabet à une lettre).
Solution 3.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]].
3 Rationalité
Exercice 4.Étant donné un langage rationnelLsur un alphabetΣ, prouver que les langages suivants sont rationnels.
1. Init(L) ={u∈Σ∗ | ∃v∈Σ∗, uv∈L}.
2. M in(L) ={w∈L|@u∈L, u préfixe propre dew}. 3. M ax(L) ={w∈L| ∀u∈Σ∗, wu∈L⇒u=ε}. 4. Cycle(L) ={uv ∈Σ∗ |vu∈L}.
5. 12L={u∈Σ∗ | ∃v∈Σ∗, uv∈L∧ |v|=|u|}. Solution 4.
1. Soit A = (Q,Σ, δ, q0, F) un AFD qui reconnaît L, soit F0 l’ensemble des états co-accessibles, c’est à dire les états q∈Q tels qu’il existe w∈Σ∗ vérifiantδ(q, w)ˆ ∈F.
On a que l’AFD(Q,Σ, δ, q0, F0) reconnaît Init(L).
2. Soit A = (Q,Σ, δ, q0, F) un AFD qui reconnaît L. On supprime juste toutes les transitions sortant des états deF pour obtenir un AFN reconnaissantM in(L).
3. 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).
4. Soit A= (Q,Σ, δ, q0, F) un AFD qui reconnaîtL.
On suppose queε∈/ Σet on définit Q0 ={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)};
3
— pour tous a∈Σ,q, p∈Q,δ0((q, p,0), a) ={(δ(q, a), p,0)} et
δ0((q, p,0), ε) =
(∅ si q∈/ 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).
5. Soit A= (Q,Σ, δ, q0, F) un AFD qui reconnaîtL.
On suppose queε∈/ Σet on définit Q0 ={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 Caractérisations
Soit Σun alphabet.
Étant donné un AFD A = (Q,Σ, δ, q0, F), un état q ∈ Q est dit co-accessible si et seulement s’il existew∈Σ∗ vérifiantδ(q, w)ˆ ∈F; il est appelépuitslorsqueδ(q, a) =q pour touta∈Σ. On dira de plus queq se trouve dans un circuit lorsqu’il existe w∈Σ+ tel queδ(q, w) =ˆ q.
Exercice 5.Donner une condition nécessaire et suffisante pour qu’un langage sur Σsoit reconnu par un AFD dont les états co-accessibles non puits ne se trouvent dans aucun circuit.
Solution 5.Il faut que le langage soit une union finie de langages de la forme {uv |v ∈Σ∗} ou {u}
pour u∈Σ∗.
Exercice 6.Donner une condition nécessaire et suffisante pour qu’un AFD sur Σ reconnaisse un langage fini ou cofini.
Solution 6.Il faut que l’AFD vérifie que ses états co-accessibles non puits ne se trouvent dans aucun circuit et que ses états puits accessibles soient tous soit finaux, soit non finaux.
4