8 - Automates à pile

Transcription

8 - Automates à pile
Récapitulatif
Les grammaires algébriques engendrent les ...
langages hors-contexte (= algébriques)
8 - Automates à pile
qui sont reconnus par
des automates à pile
1!
2!
Fonctionnement
Pourquoi une pile ?
L’automate à pile AP va tenter de lire le mot aaabbb :
a
!
a!
a!
a!
a!
b!
b!
• 
les automates finis n’ont pas d’autre mémoire que leurs états
• 
ils ne savent donc pas «compter» au-delà de leur nombre d’états
• 
une pile procure une mémoire additionnelle non bornée
• 
on accède à la pile uniquement par son sommet
• 
le nombre de symboles utilisés dans la pile est fini
• 
la pile vide peut être un critère d’acceptation des
mots.
b!b!
AP
Pile vide
3!
4!
Automate à pile
Un automate à pile non-déterministe* (APN) est un
septuplet (Q,Σ,Γ,δ,q0,Z,F) avec :
• 
• 
• 
• 
• 
• 
• 
Q : ensemble fini d’états
Σ : alphabet fini des symboles d’entrée
Γ : alphabet fini des symboles de pile (a priori Γ∩Σ=∅) q0 : état initial
Z ∈ Γ : symbole initial de pile
F ⊆ Q : ensemble des états terminaux
δ est l’ensemble des règles de transition
*pushdown automaton en anglais
Transition
•  une règle ( q,σ,γ → q’, χ ) de transition considère :
• 
l’état courant q de l’automate
• 
le caractère lu σ sur le ruban (ou peut-être pas :
• 
le symbole γ de sommet de pile (ou peut-être pas :
•  une règle indique :
• 
• 
le prochain état q’ de l’automate
la suite de symboles χ à empiler à la place du sommet de
pile •  la relation de transition δ est l’ensemble des règles
de transition vues comme des quintuplets : δ ⊆ Q × (Σ∪{ε}) × (Γ∪{ε}) × Q × Γ*
5!
6!
Mode de reconnaissance
  Il existe 2 modes de reconnaissance pour les automates
à pile selon que F égale ∅ ou pas :
reconnaissance par état final
•  reconnaissance sur pile vide
• 
  Le langage accepté par
• 
A est :
reconnaissance sur état final
LF(A) = { w ∈ Σ , la pile contenant Z au départ, il existe une lecture de w depuis q0 à f, f ∈ F }.
• 
ε)
ε)
reconnaissance par pile vide
L∅(A) = { w ∈ Σ , la pile contenant Z au départ,
il existe une lecture de w depuis q0
qui termine avec la pile vide }
7!
Exemple
(reconnaissance sur pile vide)
Automate à pile
A=
ε
(Q,Σ,Γ,δ,q0,Z,∅)
mode de reconnaissance :
  pile vide
A
Σ = {a,b}
q 0
Q = {q0,q1}
q0 initial
Γ = {A, Z}
= {(q0,ε,
.(q0,a,
(q0,a,
(q0,b,
(q1,b,
F = ∅
δ
A accepte
Z → ε
a Z → A
a A → A A
Z → q0, ε)
Z → q0, A)
A → q0, A A)
A → q1, ε)
A → q1, ε) }.
b A →
ε
q 1
b A →
ε
les mots du langage algébrique L∅(A) = {anbn,n≥0}.
8!
Exemple
B
= (Q,Σ,Γ,δ,q0,Z,F)
mode de reconnaissance :
  sur état final
Σ = {a,b}
Q = {q0,q1,q2}
q0 initial
Γ = {A, Z}
δ = {(q0,ε, Z → q2, Z)
. (q0,a, Z → q0, Z A)
(q0,a, A → q0, A A)
. (q0,b, A → q1, ε)
. (q1,b, A → q1, ε)
. (q1,ε, Z → q2, Z) }.
F = {q2}
B accepte
Equivalence
(reconnaissance sur état final)
a Z → Z A
a A → A A
B
q 0
b A →
ε
q 1
b A →
ε
ε Z → Z
Z → Z
ε
q 2
9!
Déterminisme
A est
Théorème un langage est reconnu par un automate à pile sur pile
vide si et seulement si il est reconnu par un automate
à pile à états finals.
• 
sens direct : chaque état où la pile se vide, Z en étant retiré,
donne lieu à une transition vers un état final inédit.
• 
réciproquement : on fait en sorte que la pile se vide entièrement et
pour la première fois, après chaque état final.
10!
APN versus APD
déterministe à 2 conditions :
Première condition :
•  pour un état q donné
•  pour un symbole d’entrée σ donné
•  pour un sommet de pile γ donné
il existe au plus une transition débutant par (q,σ,γ)..
Seconde condition : •  pour un état q donné
•  pour un sommet de pile γ donné
•  s’il existe une transition sur (q,ε,γ) elle est unique et pour toute lettre σ, il n’en existe pas sur (q,σ,γ).
les deux modes de reconnaissance pour les automates à
pile : reconnaissance par états finals et reconnaissance
sur pile vide sont équivalents.
Justification :
L∅(A) = LF(B) = {anbn,n≥0}.
Un automate à pile
• 
Bref, dans une configuration donnée, on ne peut pas avoir
le choix quant à la transition à appliquer !
11!
Théorème un langage est algébrique ssi il est reconnu
par un automate à pile.
Théorème tout langage algébrique n’est pas reconnu
(admis) par un automate à pile déterministe.
A méditer (cf. TD) :
le langage { w=wR, w ∈ Σ+ } .
n’est pas reconnu par un auto-
mate à pile déterministe
:-(
12!
Langages algébriques déterministes
Langages algébriques
Grammaire algébrique → A.P.N.
Algorithme
Rappel : une grammaire algébrique G = (N,T,P,S) est sous
forme normale de Greibach si toute production est de la forme
• 
1  L = L\{ε} langage engendré par G = (N,T,P,A) sous F.N.G.
On construit A = (Q,Σ,Γ,δ,q0,Z,F) tel que:
-  Q = {q0} exceptionnellement
- Σ = T - Γ = N ∪ T ∪ {Z}
A → aα
A ∈ N, a ∈ T, α ∈
(N∪T)*
• 
Rappel : il existe un algorithme permettant de transformer
toute grammaire algébrique propre et sans production vide en
une grammaire sous F.N.G.
• 
On présente ici l’algorithme de passage d’une grammaire
algébrique sous F.N.G à un automate à pile non-déterministe.
L’idée consiste à commencer par empiler l’axiome. Ensuite, à chaque symbole lu de la chaîne d’entrée, on remplace la partie gauche de la production concernée par le reste de la partie droite ...
• 
-  F = ∅ (reconnaissance sur pile vide)
2  posons δ ← ∅
pour chaque B → a α faire
// avec B ∈ N, a ∈ T, α ∈ (N∪T)*
δ ← δ ∪ { (q0, a, B → q0, αR) }
3  pour chaque a ∈ T faire
δ  ← δ ∪ { (q0, a, a → q0,
4 
δ ← δ ∪ {( q0,
Le langage reconnu par
(N,T,P,S) avec {S} {a,b} {S → a 3 aa 3 b 3 bb 3
S → aSa3 bSb }
G est bien sous F.N.G
3 
1  A
= (Q,Σ,Γ,δ,q0,Z,F)
avec : Q = {q0}, Σ = T,
Γ = N ∪ T ∪ {Z},
F = ∅
Exemple
δ = {
(q0, a,
(q0, a,
(q0, b,
(q0, b,
(q0, a,
(q0, b,
(q0, a,
(q0, b,
S
S
S
S
S
S
a
b
→
→
→
→
→
→
→
→
q 0,
q 0,
q 0,
q 0,
q 0,
q 0,
q 0,
q 0,
a)
ε)
b)
a S)
b S)
ε)
ε) }
Le langage reconnu par A
est bien :
2  Posons : δ ← ∅
L = L(G) = {w = wR, w ∈ Σ+} .
15!
δ = { .(q0, ε, Z → q0, S) (q0, a, S → q0, ε)
(q0, a, S → q0, a)
(q0, b, S → q0, ε)
(q0, b, S → q0, b)
(q0, a, S → q0, a S)
(q0, b, S → q0, b S) (q0, a, a → q0, ε)
(q1, b, b → q0, ε) }
ε)
4  δ ← δ ∪ { (q0,ε,Z → q0,S)
reconnaissance sur pile vide
A est bien L(G) = L.
14!
Exemple
=
=
=
=
ε)}
ε, Z → q0, A )}
13!
0  G
N
T
P
Γ ∩ Σ ≠ ∅.
ε Z → S
a S → ε!
A
q0!
a
b
b
a
b
a
b
S
S
S
S
S
a
b
→ a
→ ε!
→ b
→ a S
→ b S
→ ε!
→ ε!
L(A) = { w = wR, w ∈ Σ+} .
16!
Exemple
Lecture de a
ε Z → S
a S → ε!
a S → a
b S → ε!
A
q0!
b S → b
a S → a S
b S → b S
a a → ε!
b b → ε!
b
a
SS
S
Z
a b a
a b
a
b
S
a
a S a
b S b
a a
17!
a
a
b
a

Documents pareils