TD 8 : Accessibilité dans les grammaires algébriques
Chargé de TD : Stefan Schwoon.
EX 1
digraph {
rankdir=LR;
q_0[shape="doublecircle"];
subgraph cluster_0 {
label="𝒜"
q_f;
}
q_f -> q_0[label="𝜀"];
q_0 -> q_0[label="u∈𝛺"];
q_0 -> puits_q[label="q∈Q"];
puits_q -> q_0[label="q_bar ∈Q_bar"];
}
1.
Si $𝒜_L = ⟨Q_L, 𝛺, 𝛿_L, q_{0, L}, F_L⟩$ est un automate reconnaissant $L$.
On pose
\[𝛿_L' ≝ \Big\lbrace (q_L, v, q'_L) \mid ∃n≥0; q_1, ⋯, q_n ∈ Q ∪ 𝛤 \, ; \; q_L \overset{q_1 ⋯ q_n \overline{q_n} ⋯ \overline{q_1} v}{⟶}_{𝒜_L} \, q'_L \Big\rbrace\]Alors l’automate
\[𝒜' ≝ ⟨Q_L, 𝛺, 𝛿'_L, q_{0, L}, F_L⟩\]reconnaît $Clot(L)$.
digraph {
rankdir=LR;
subgraph cluster_0 {
q_i, q_j, q_1, q_2;
}
q_1, q_2, q_3[label=""];
"" -> q_i[label="u", style = "dashed"];
q_i-> q_1[label="a"];
q_i -> q_j[label="𝜀"];
q_1 -> q_2[label="𝜀*", style="dashed"];
q_2 -> q_j[label="a_bar"];
q_j -> q_3[label="v", style="dashed"];
}
Soit
\[B ≝ (S, 𝛺, 𝜂, s_0, G)\]un automate fini tq $L(B) = L$
Soit $𝜂’$ le plus petit ensemble tq
\[𝜂 ∪ \left\lbrace (s,𝜀, t) \mid ∃a∈ Q∪𝛤, s', t'∈S; \begin{cases} (s, a, s')∈ 𝜂' ∧ s' \overset{𝜀}{⟶}^\ast_{𝜂'} t' \\ (t', \overline{a}, t) ∈ 𝜂' \end{cases} \right\rbrace\]Mq $B’ ≝ (S, 𝛺, 𝜂’, s_0, G)$ accepte $Clot(L)$.
$Clot(L)⊆ L(B’)$
C’est facile, par construction.
$L(B’) ⊆ Clot(L)$
On construit $𝜂’$ itérativement :
- $𝜂_0 ≝ 𝜂$
- $𝜂_{i+1} ≝ 𝜂_i ∪ \lbrace (q_{i+1}, 𝜀, q’_{i+1}) \rbrace$
- $\vdots$
- $𝜂_K ≝ 𝜂’$ pour $K$ assez grand
Puis, on pose :
\[B_i ≝ (S, 𝛺, 𝜂_i, s_0, G)\]On prouve par réc. sur $i$ que
\[L(B_i) ⊆ Clot(L)\]-
Pour $i=0$ : $L⊆Clot(L)$
-
Pour $i>0$ :
Si $s_0 ⟶^w s_G$ est un chemin acceptant dans $B_{i+1}$, on note $j$ le nombre d’occurrences de $(q_{i+1}, 𝜀, q’_{i+1})$ dans ce chemin.
Par réc sur $j$ :
-
Pour $j=0$ : ok car $L(B_i) ⊆ Clot(L)$ par HR
-
Pour $j+1$ :
avec $uv = w$
Alors :
\[s_0 \overset{u}{⟶}_{B_{i+1}}^\ast q_{i+1} \underbrace{⟶^a_{B_{i+1}} \overset{𝜀}{\leadsto}^\ast ⟶^{\overline{a}}_{B_{i+1}} }_{∈𝜂_i} q'_{i+1} \overset{v}{⟶}_{B_{i+1}}^\ast s_G\]Par hypothèse de réc, $ua \overline{a} v ∈ Clot(L)$, donc $uv=w$ aussi.
2.
\[q, 𝛾 \overset{n}{⟶} q', 𝛾'\]ssi
\[q, 𝛾 \overset{a_1 ⋯ a_n}{⟶} q', 𝛾'\]ssi
\[\begin{align*} \underbrace{q_0}_{= q}, \underbrace{𝛾_0}_{= 𝛾} &\overset{a_1}{⟶} q_2, 𝛾_2 \\ & \vdots \\ &\overset{a_n}{⟶} \underbrace{q_n}_{= q'}, \underbrace{𝛾_n}_{=𝛾'} \\ \end{align*}\]$⟹$
Par réc sur $n∈ℕ^\ast$.
- Pour $n=1$ :
Si $q, 𝛾 \overset{a}{⟶} q’, 𝛾’’$
alors
- $𝛾 = \widetilde{𝛾} z$
- $𝛾’ = \widetilde{𝛾} z’’$
Par déf de $K$ :
\[\overline{q}\overline{z} 𝛾'' q'∈K\]Soit :
\[𝛾q\overline{q} \overline{z} 𝛾'' q' = \widetilde{𝛾} z q\overline{q} \overline{z} 𝛾'' q' \leadsto^2 \widetilde{𝛾} 𝛾'' q' = 𝛾'q'\]L’hérédité est immédiate.
$⟸$
Si $∃w∈K$ tq
\[𝛾 q \overline{p} \overline{z} 𝛾'' q'' \leadsto^2 𝛾' q'\]où $w = \overline{p} \overline{z} 𝛾’’ q’’$
Nécessairement :
- $p=q$ et $𝛾 = \widetilde{𝛾} z$
Donc
\[w = \overline{q} \overline{z} 𝛾'' q'' ∈ K ⟹ ∃a; (q, z, q, q'', 𝛾'') ∈ 𝛿\]Par simplification :
\[𝛾qw \leadsto^2 \widetilde{𝛾} 𝛾'' q'' = 𝛾'q' ⟹ \begin{cases} \widetilde{𝛾} 𝛾'' = 𝛾' \\ q'' = q' \end{cases}\]On conclut que
\[q, 𝛾 ⟶^a q', 𝛾'\]L’hérédité est immédiate.
3.
\[C(p, 𝛾) ≝ \lbrace ⟨p', 𝛾'⟩ \mid p,𝛾 ⟶^+ p', 𝛾' \rbrace \\ = Clot(𝛾pK^+) ∩ 𝛤^\ast Q\]( par 2) )
-
$𝛾pK^+$ est régulier, d’alphabet $𝛺$
- donc d’après 1) : $Clot(𝛾pK^+)$ est régulier
-
$𝛤^\ast Q$ est régulier
-
les langages réguliers sont clos par intersection.
Donc
$C(p, 𝛾)$ est régulier.
4.
ATTENTION : pour cette question, on change d’interprétation : la tête de pile est désormais à gauche.
$L’⊆ Q 𝛤^\ast$ régulier
\[\overline{C}(L') ≝ \lbrace q𝛾' ∈ Q𝛤^\ast \mid q, 𝛾' ⟶^\ast p, 𝛾 \text{ pour } p, 𝛾∈L'\rbrace\]NB : Dans la question précédente, la taille de l’automate construit est considérable. On propose maintenant une nouvelle méthode qui construit un automate ayant le même nombre d’états.
Pour $𝒜$ un automate de pile, $Q$ des états, et $𝛤$ alphabet de pile.
- Un $𝒜$-automate :
-
un automate fini de la forme $B ≝ (S, 𝛤, 𝜂, Q, F)$ tel que $L(B) ≝ \lbrace qw \mid q∈Q, w∈𝛤^\ast, q \overset{w}{⟶}^\ast q_f \text{ avec } q_f∈F\rbrace$
Construire $B$ avec
\[L(B) = L'\]Rajouter des transitions à $B$ selon la règle suivante :
si $(p, a, 𝜎, q, 𝛾’)$ est une transition dans $𝒜$ et
\[q \overset{𝛾'}{⟶}^\ast q'\]dans $B$ pour un $q’$ quelconque,
on rajoute $(p, a, q’)$ dans $B$.
Leave a comment