Langages formels, calculabilité et complexité ENS Paris – A1S1 2019-2020
10 octobre 2019 NathanGrosshans
TD 3 – Rationalité, minimisation et monoïdes
1 Rationalité
Exercice 1.Les langages suivants sont-ils rationnels ? Justifier.
1. {anbn|n∈N}.
2. {ambn|n≡m (modd)}pour un d∈N>0 donné.
3. {ap |ppremier}.
4. {aP(n) |n∈N} pour P un polynôme à coefficients dans N.
5. {w∈ {a, b, c}∗ |(|w|a= 0)⇒(|w|b = 0)}. 6. {w∈ {a, b}∗| |w|a<|w|b}.
7. {w∈ {a, b}∗|7 divise |w|a,3 divise |w|b}. 8. {w∈ {(,)}∗|w est bien parenthésé}.
2 Non équivalence des lemmes de pompage
Soit les trois versions qui suivent du lemme de pompage.
1. Soit Lun langage rationnel sur un alphabet Σ. Alors
∃n∈N>0,∀u∈L:|u| ≥n⇒ ∃v, t, w∈Σ∗ u=vtw |t|>0 ∀m∈N vtmw∈L . 2. Soit Lun langage rationnel sur un alphabet Σ. Alors
∃n∈N>0,∀rus∈L:|u| ≥n⇒ ∃v, t, w∈Σ∗ u=vtw |t|>0 ∀m∈N rvtmws∈L. 3. Soit Lun langage rationnel sur un alphabet Σ. Alors
∃n∈N>0,∀ru1· · ·uns∈L:
(∀i,|ui| ≥1)⇒ ∃1≤i < j ≤n ∀m∈N ru1· · ·ui(ui+1· · ·uj)muj+1· · ·uns∈L . Exercice 2.Montrer que L={w∈ {a, b}∗ | |w|a=|w|b} vérifie le lemme 1 mais pas le lemme 2.
Exercice 3.Montrer que L={(ab)n(cd)n|n∈N} ∪ L(Σ∗(aa+bb+cc+dd+ac+bd)Σ∗) vérifie le lemme 2 mais pas le lemme 3.
3 Quotients, théorème de Myhill-Nerode
Soit Σun alphabet. Étant donné un langageL surΣ etu∈Σ∗ on définit :
— lequotient à gauche deLparu, notéu−1L, comme étant le langage surΣtel queu−1L={w∈ Σ∗|uw∈L};
— le quotient à droite deL paru, notéLu−1, comme étant le langage sur Σtel que Lu−1 ={w∈ Σ∗|wu∈L}.
Exercice 4.Montrer qu’un langageLsur un alphabetΣest rationnel si et seulement s’il a un nombre fini de quotients à gauche, c’est-à-dire que {u−1L|u∈Σ∗} est fini.
Exercice 5.Montrer que pour tout langage rationnelLsur un alphabetΣ, tout AFD le reconnaissant contient au moins
{u−1L|u∈Σ∗}
états, que ce minorant est atteint et que tous les AFD avec ce nombre minimal d’états sont équivalents à « renommage » des états près (ce qui nous autorise à parler de « l’automate minimal de L»).
1
4 Algorithme de Brzozowski
Soit Σun alphabet.
Étant donné un mot w∈ Σ∗, on définit le mot renversé de w, notéwR, comme étant wR =ε si w=εetwR=an· · ·a1 siw=a1· · ·an pour n∈N>0.
Étant donné un langageLsurΣ, lerenversé deL, notéLR, est simplement le langageLR ={wR| w∈L}.
Pour tout AFD A= (Q,Σ, δ, q0, F), on définit l’AFN AR = (Q,Σ, δR, F,{q0}) où δR:Q×Σ → P(Q) est telle que δR(q, a) = {p ∈ Q | δ(p, a) = q} pour tous q ∈ Q et a ∈ Σ. (Précisons que, dans cette section, nous autoriserons les AFN à avoir un ensemble non vide d’états initiaux au lieu d’uniquement un seul et que nous les interdirons d’avoir des ε-transitions).
On dira enfin qu’un AFD estémondé lorsque chacun de ses états est accessible depuis l’état initial.
Exercice 6.Soit Lun langage surΣetAun AFD émondé le reconnaissant. Montrer que ARest un AFN reconnaissantLR.
Pour tout AFN B = (Q,Σ, δ, S, F), on notera BD l’AFD obtenu de B par la construction par sous-ensembles, c’est-à-dire la version émondée de l’AFD(P(Q),Σ, δ0, S,{P ⊆Q|P ∩F 6=∅}), où δ0 est telle queδ0(P, a) =S
q∈Pδ(q, a)pour tous P ⊆Q eta∈Σ.
Exercice 7.Soit L un langage sur Σ et A = (Q,Σ, δ, q0, F) un AFD émondé le reconnaissant.
Considérons l’AFD (AR)D = (Q0,Σ, δ0, q00, F0), qui reconnaît LR. Montrer que pour tous u, v ∈ Σ∗, Lu−1 =Lv−1 implique que δˆ0(q00, uR) = ˆδ0(q00, vR).
Exercice 8.En déduire que pour tout langage L sur Σ et AFD émondé A le reconnaissant, (AR)D est l’automate minimal reconnaissant LR.
Exercice 9.Proposer un algorithme de minimisation se basant sur le résultat précédent et en discuter la complexité.
5 Reconnaissance par monoïdes
Unmonoïdeest la donnée(M, ?)d’un ensembleM et d’une loi de composition interne?:M×M → M tels que
— ? est associative :∀x, y, z∈M,(x ? y)? z =x ?(y ? z);
— ? a un élément neutre :∃e∈M,∀m∈M, e ? m=m ? e=m.
Il est classique de montrer que cet élément neutre est unique, et on le notera donc1(M,?).
SiΣest un alphabet, l’ensemble de tous les motsΣ∗ muni de la concaténation·forme un monoïde (Σ∗,·) dont l’élément neutre est le mot vide, appelé le monoïde libre engendré parΣ.
Étant donné deux monoïdes (M, ?) et(N,⊥), un morphisme de(M, ?) dans(N,⊥) est une appli- cationϕ:M →N telle que :
— ∀m1, m2 ∈M, ϕ(m1)⊥ϕ(m2) =ϕ(m1? m2);
— ϕ(1(M,?)) = 1(N,⊥).
Si Σest un alphabet, on dira qu’un monoïde(M, ?)reconnaît un langage Lsur Σsi et seulement s’il existe un morphisme ϕ: Σ∗ → M de (Σ∗,·) dans (M, ?) tel que L = ϕ−1(P) pour un certain P ⊆M.
Exercice 10. Montrer que si un langage est reconnu par un monoïde fini, alors il est rationnel.
Exercice 11. Montrer que si un langage est rationnel, alors il est reconnu par un monoïde fini.
Exercice 12. Montrer, en utilisant ce résultat, que le langage {w ∈ {a, b}∗ | |w|a =|w|b} n’est pas rationnel. Donner un monoïde permettant de le reconnaître.
2