• Aucun résultat trouvé

1.2Automatesàpile 1.2.1Dé fi nition

N/A
N/A
Protected

Academic year: 2022

Partager "1.2Automatesàpile 1.2.1Dé fi nition"

Copied!
10
0
0

Texte intégral

(1)

1.2 Automates à pile

Un automate à pile (pushdown automaton) possède les différents éléments d’un reconnais- seur (bande de lecture, tête de lecture, unité de contrôle), sa particularité est qu’il est équipé d’un mode de stockage : une pile dans laquelle sont stockés des symboles d’un al- phabet particulier appelé alphabet de pile. Comme l’automate sans pile, la tête de lecture ne peut se déplacer que d’une case à chaque mouvement, de gauche à droite.

Tête de lecture

Unité de contrôle Pile

Bande de lecture

Figure1.1 – Eléments d’un automate à pile

L’automate peut stocker sur la pile et y accéder, mais, comme son nom l’indique, unique- ment au sommet. Ce type d’automate est capable, par exemple, de reconnaîtreanbn parce que la pile lui permet de se souvenir du nombre deadéjà lus.

Le mouvement d’un tel automate est déterminé par 3 paramètres (seulement 2 pour l’auto- mate sans pile) : (1) le symbole sous la tête de lecture, (2) l’état courant, et (3) le symbole en sommet de pile. Par ailleurs, le « mouvement » d’un tel automate consistera en (1) un déplacement de la tête d’une case à droite (sauf en cas d’ε) (comme l’automate sans pile), et (2) le dépilement du caractère en sommet de pile et l’empilement d’un mot sur la pile (avec le cas particulier d’ε).

1.2.1 Définition

Formellement, on définit un automate à pile par un sextuplet hQ, X,Γ,δ, q0, Z0, Fi:

— Qest un ensemble fini d’états

— X est l’alphabet d’entrée (souvent notéΣ)

— Γest l’alphabet de pile (pas nécessairement disjoint de X)

— δ est l’application4 de transition δ :Q×(X∪{ε})×(Γ∪{ε})−→Q×Γ

— q0 ∈Qest l’état initial

— Z0∈Γ est le symbole de fond de pile

— F ⊂Q est l’ensemble des états d’acceptation

Pour définir de façon précise le comportement d’un tel automate, il est pratique d’introduire la notion deconfiguration. Une configuration représente tous les aspects pertinents de la machine dans une situation donnée. On la définit comme un triplet(q, m,α)∈Q×X×Γ, où :

— q est l’état courant de l’unité de contrôle

4. i.e. pas nécessairement déterministe.

(2)

— m représente la partie du mot à reconnaître non encore lue. Le symbole le plus à gauche dem est le caractère sous la tête de lecture.

— α représente le contenu de la pile (si on la couche sur le côté gauche). Le symbole le plus à gauche d’α est le sommet de la pile.

a q

m

Figure 1.2 – Représentation de la configuration (q, m,α) Il est maintenant possible de spécifier le comportement de l’automate. On dira :

(q, aw, Zα)⊢(q, w,γα) si

(q,γ)∈δ(q, a, Z)

q∈S,a∈X,w∈X,Z ∈Γ,γ ∈Γ Lors de ce mouvement :

— l’unité de contrôle passe de q à q

— le symbole aa été lu

— la tête de lecture s’est déplacée d’une case vers la droite

— le symbole Z a été dépilé et le mot γ empilé.

Remarques :

— Si γ=ε, la pile a été dépilée (sauf si Z =ε)

— Sia=ε, le changement d’état et la modification de la pile se font sans mouvement de la tête.

— SiZ =ε, il s’agit d’une transition permisequel que soit le symbole sur la pile.

— Si γ=εetZ =ε, alors la pile est inchangée.

Donc la transition (q,ε,ε) ⊢ (q,ε) est un changement d’état sans autre modification, l’équivalent pour l’automate à pile de l’ε-transition des automates finis.

1.2.2 Représentation graphique 1.2.2.1 Principe

On peut représenter les automates à pile au moyen d’un graphe, comme pour les automates finis. Mais à un arc seront associés, en plus du symbole de transition, les contraintes et opérations sur la pile. Une étiquette d’arc sera de la forme “a, b→α”5, où aest le symbole lu,ble sommet de pile (si le sommet de pile n’est pasb, la transition ne peut être réalisée), etcest le mot empilé à la place de b. Avec les notations précédentes :

5. Variante notationnelle :a b/α.

(3)

qi a,b→α−→ qj ≡δ(qi, a, b)⊇{(qj,α)}

Le symboleεpeut être utilisé dans chaque cas, avec la signification donnée plus haut. Bien entendu, tout automate fini peut être vu comme un automate à pile, sans opérations ni contraintes liées à la pile. Voir par exemple lafigure 1.3.

c a e/e

e/e

e/e

b

Figure1.3 – Un automate à pile pour abc

1.2.2.2 Exemple

A1 =h{q0, q1, q2},{a, b},δ, q0, Z,{q2}i avec : δ(q0, a, Z)={(q1, aZ)}

δ(q1, a, a) ={(q1, aa)}

δ(q1, b, a) ={(q2,ε)}

δ(q2, b, a) ={(q2,ε)}

Cet automate (figure 1.4) est un automate déterministe reconnaissant le langage anbn. Il commence par lire une suite de aen les empilant, puis dépile un apour chaqueb lu.

a,Z-> aZ q2

b,a -> e

b,a -> e a,a -> aa

q0 q1

Figure1.4 – Un automate à pile pour anbn

1.2.3 Reconnaissance

Uneconfiguration initialed’un automate à pileA=hQ, X,Γ,δ, q0, Z0, Fi est une confi- guration de la forme(q0, m, Z0) avecm∈X. L’automate est dans l’état initial, la pile ne contient que le “fond”, et la tête se trouve sur le premier symbole du mot à reconnaître.

Un motm∈X estacceptépar As’il existe une suite de configurations(qi, mii), telle que(q0, m00) = (q0, m, Z0);(qk, mkk) = (X, Y, Z)et pour touti∈[O, k[,(qi, miαi)⊢ (qi+1, mi+1i+1).

Ici, on a noté (X, Y, Z) la configuration d’acceptation qui peut être caractérisée de plusieurs manières différentes.

Noter que dans un automate à pile non déterministe, il peut y avoir plusieurs suites de configurations qui vérifient la définition précédente.

Voici trois des définitions les plus courantes de configuration d’acceptation :

(4)

Acceptation mixte L(A) ={m∈X/(q0, m, Z0)⊢ (q,ε, Z0) avec q∈F} Acceptation par état final L(A) ={m∈X/(q0, m, Z0)

⊢(q,ε,α) avec q∈ F etα∈Γ}

Acceptation par pile vide L(A) ={m ∈X/(q0, m, Z0)

⊢(q,ε,ε)}

Dans le cas d’acceptation mixte, on s’arrête quand le mot a été reconnu en entier, l’automate est dans un état terminal et la pile ne contient que le “fond”. Dans le cas d’acceptation par état final, on supprime la contrainte de pile réduite à Z0 dans la configuration finale : il suffit que l’état atteint soit un état d’acceptation. Dans le cas d’acceptation par pile vide, la définition formelle est simplifiée en supprimant la notion d’état d’acceptation. Peu importe le type d’état atteint, l’acceptation est atteinte lorsque la pile est vide (εet pas pile réduite àZ0).

La partie sur les équivalences est a résumer sans entrer dans les détails

1.2.3.1 Equivalences

On peut montrer que les trois définitions d’automate à pile ci-dessus sont équivalentes, i.e.

qu’il s’agit du même pouvoir génératif. Pour le montrer, il suffit de montrer que quel que soit l’automate d’un type donné (mixte / par étatfinal / par pile vide) on peut construire un automate engendrant le même langage de chacun des autres types.

L’équivalence entre automate par pile vide / automate par étatfinal se montre comme suit (cf. F. Yvon) : Si M reconnaît L en acceptant par état final, alors pour obtenir un automate équivalent M, acceptant par pile vide, il suffit d’ajouterà M :

1. un nouvel état initial q0 et un nouveau symbole de fond de pile Z0, ainsi qu’une transitionεde q0 vers q0, qui empile Z0.

2. un état de "vidange de pile"qv, vers lequel il existe une transitionεdepuis tout état final de M, ces transitions dépilant n’importe que symbole de pile et en particulier étant les seules à dépilerZ0.

On a bien M et M équivalents : pour une chaîne acceptée dans M, alors on arrive en état final dans M avec une pile quelconque, et donc dans M via les transitions de vidange, avec une pile vide. Inversement, ce qui garantit que M ne surgénère pas est que les transitions de vidange sont les seules à dépilerZ0.

Inversement, pour un automate M acceptant par pile vide, on peut construire un automate équivalent M, acceptant par état final, tel que :

1. M est intégralement repris dans M

2. mais M fonctionne en empilant au départ un nouveau symbole de fond de pileZ0, non présent dans l’alphabet de pile de M.

3. On ajoute à Mun nouvel état F, qui sera son seul état d’acceptation. On ajoute à M des transitions spontanées partant de tous les états de M, et applicables uniquement siZ0 est en haut de la pile

On se convainc facilement que M et M engendrent les mêmes langages : M arrive en état d’acceptation F pour une chaine si et seulement si la pile est réduite à Z0 dans la configuration immédiatement précédente, ce qui correspond exactement au cas de pile vide dans M.

Les autres équivalences peuvent être montrées de façon analogue.

(5)

1.2.3.2 Table de transition

Une des façons de spécifier une table est de procéder comme dans l’exemple suivant (anbn par étatfinal).

a b

→ 0, Z 1, Z

1, Z 1, TZ 0,ε 1, T 1, TT 2, ε

2, Z 0,ε

2, T 2,ε

1.2.3.3 Exemple 2

A2 =h{B, C, D, E, F},{a, b, c},{$, a},δ, B,$,{D, F}i avec ($ est au fond de la pile) : δ(B, a,ε) ={(B, a)} δ(C, b, a) ={(C,ε)} δ(E, b,ε) ={(E,ε)}

δ(B,ε,ε) ={(C,ε),(E,ε)} δ(C,ε,$) ={(D,$)} δ(E,ε,ε) ={(F,ε)}

δ(D, c,$) ={(D,$)} δ(F, c, a) ={(F,ε)}

$

e ->

e

e, e -> e

e, e -> e b, e -> e

B

C D

E F

a,e -> a

b,a -> e

c, a -> e c, $

e,$ -> $

->

e,

Figure1.5 – Automate à pile reconnaissant aibjck avec i=j oui=k

L’automateA2de lafigure 1.5 est un automatenon déterministe, et reconnaît le langage {aibjck, aveci, j, k ≥ 0 eti = j ou i = k}. Le principe est de lire une suite de a en les empilant, pour pouvoir comparer leur nombre au nombre debou dec. Cette comparaison est un peu délicate, et c’est là que le non-déterminisme entre en jeu : chaque branche de l’automate correspond à une alternative. La branche supérieure vérifie qu’il y a autant de bque dea(le nombre decétant dès lors non contraint), celle du bas vérifie qu’il y a autant dec que de a, en sautant les b qui peuvent être en nombre quelconque.

(6)

1.3 Théorèmes d’équivalence

Théorème : L⊂X est algébrique ssiL est reconnu par un automate à pile.

Comme souvent, la démonstration de ce théorème se fait en deux parties : il faut d’une part démontrer que tout langage engendré par une grammaire algébrique peut être reconnu par un automate à pile, et inversement que tout langage reconnu par un automate à pile peut être engendré par une grammaire algébrique. La démonstration se fait par construction : on va proposer un algorithme qui à une grammaire algébrique quelconque associe un automate à pile qui reconnaît le même langage (idem dans l’autre sens). Si on peut démontrer (1) que l’algorithme termine toujours, et (2) que l’automate résultant reconnaît le langage engendré, alors on a démontré la moitié du théorème. On peut aussi envisager des preuves plus mathématiques (par récurrence).

On utilise dorénavant les abréviations PDA (pushdown automaton) et CFG (context free grammar).

1.3.1 PDA → CFG 1.3.1.1 Intuition

L’idée est la même que celle mise en œuvre pour la correspondance automates/grammaires régulières : chaque transition de l’automate sera traduite en une règle A → xB. Mais les non-terminaux ne correspondent plus aux états, mais à des triplets (qi,α, qk) où qi et qk sont des états, etα un symbole de pile.

Intuitivement, on va viser des règles de la forme(qi,α, qk)−→a(qj, qk) (pour les cas où la pile n’est pas modifiée). Il est facile de comprendre le rôle de qi etα, qui correspondent bien à la « situation » courante (en gros, un état donné correspond à la combinaison d’un état de l’automate et d’un symbole de sommet de pile) ; pourqk, on notera qu’il s’agit en fait de l’état « à atteindre », l’axiome étant dans cette méthode de transcription(q0, Z0, qf) oùqf ∈F.

1.3.1.2 Mise en œuvre

Voir annexe A.2 pour une description de l’algorithme avec idée de la démonstration.

Normalisation de l’automate On part d’un automate à pile qui doit avoir les proprié- tés suivantes :

— L’état initial q0 est unique, empile le symbole de fond de pile, et n’est pas atteint dans l’automate (« non récursif »).

— L’étatfinalf est unique, n’a pas de transition sortante, et toutes les transitions vers l’étatfinal sont de la formeq ε,Z−→0→εf

— La reconnaissance se fait par pile vide : les transitions vers l’état f vident la pile.

— Les transitions sont unitaires : chaque transition empile au plus un symbole.

Pour transformer un automate à transitions généralisées en un automate à transitions unitaires, il faut ajouter autant d’états tque nécessaires pour décomposer toutes les tran- sitions : au lieu deqi

a,P→SRQP

−→ qj, on aura la suite de transitionsqi

a,P→QP

−→ t1,t1 ε,Q→RQ−→ t2, t2ε,R→SR−→ qj.

(7)

Les transitions de l’automate sont donc de trois types possibles :

— transition ne modifiant pas la pile : qi

a,P→P

−→ qj

— empilement strict d’un symbole : qi

ε,P→QP

−→ qj

— dépilement strict : qi

ε,P→ε

−→ qj

Voir lafigure 1.6 pour une description précise d’un automate à pile (à transitions généra- lisées, dans la terminologie de Muller) correspondant à une normalisation : les transitions reconnaissant un symbole n’empilent rien, et les actions de pile ne reconnaissant aucun symbole.

Le tableau de correspondance entre transitions (unitaires) et règles de production de la grammaire est alors donné par la table de la figure 1.7.

Tout automate à pile A = hQ,Σ,Γ,δ, q0,Z0, Fi est équivalent à un automate à pileA=hQ,Σ,Γ,δ, q0, Z0,Fi qui vérifie les propriétés suivantes :

— A possède un symbole initial Z0 et reconnaît par pile vide ;

— Aucune transition n’aboutit à l’état initial q0;

— Il y a un unique état f ∈Q tel que :

— aucune transition ne part def,

— toutes les transitions aboutissant àf sont de la forme :qi ε,Z−→0→εf

— Toutes les autres transitions (qj 6= f) sont de l’un des types suivants, où P ∈Γ :

qi a,P→P

−→ qj a∈Σ∪{ε} (la pile reste inchangée)

qi

ε,P→QP

−→ qj Q∈Γ,Q6=Z0 (empilement strict deQ)

qi ε,P→ε

−→ qj P 6=Z0 (dépilement strict deP)

Figure 1.6 – Une version d’automate à pile normalisé (voir polycopié M.-P. Muller)

1.3.2 CFG → PDA

On va être plus précis pour la construction dans ce sens, car l’algorithme permet d’aborder par la suite le problème de l’analyse syntaxique.

Etant donnée une grammaire G = hX, V, P, Si, on construit un automate à pile A qui accepte un mot m ∈ X si (et seulement si) il existe une dérivation pour m dans G.

L’automate est conçu de façon à être capable de trouver une dérivationS →+ m.

L’idée clé est d’écrire dans la pile de A les proto-phrases qui constituent la dérivation recherchée. Pour cela, on commence par empiler l’axiomeS, puis on remplacera S par un chaîneαtelle queS→α(partie droite d’une règle). Par la suite, on définira les transitions selon deux cas possibles, selon la nature du symbole en sommet de pile :

— Si c’est un terminal, on le compare au symbole sous la tête de lecture. S’ils sont égaux, on dépile.

— Si c’est un non-terminal, on le remplace par une partie droite de règle et on recom- mence.

Exemple Soit la grammaire ET F vue plus haut, et rappelée ici : G3=E→E+T |T, T →T ×F |F, F →(E)|a

(8)

Transition Productions Transition ne modifiant pas la pile pour toutqk∈Q\ {q0}

qi a,P→P

−→ qj hqi, P, qki→ahqj, P, qki

P Γ,aΣ{ε} la balise visée reste la même

Empilement strict d’un symbole pour toutqk∈Q\ {q0} (sur pile non vide) pour tout qk ∈Q\ {q0}

qi

ε,P→QP

−→ qj hqi, P, qki→hqj, Q, qkihqk, P, qki

P, QΓ,Q6=Z0 une nouvelle balise est placée enqk et est visée avantqk

Dépilement strict qi

ε,P→ε

−→ qj hqi, P, qki→ε

P Γ la balise visée enqj est atteinte et supprimée

Figure1.7 – Equivalence entre un automate à pile normalisé et une grammaire algébrique Les différents états de la pile de l’automate correspondant à la grammaire G3 lors de la reconnaissance du mot a+a∗a sont représentés à la figure 1.8. On remarquera que la dérivation qui est construite est une dérivation gauche, car à chaque étape, c’est le symbole se trouvant en sommet de pile qui est traité. Ce symbole correspond au symbole le plus à gauche dans la proto-phrase correspondante.

E E + T

T + T

F + T

a + T

+

T T

T

∗ F

F

∗ F

a

∗ F

F F a ε

Figure 1.8 – Etats de la pile lors de la reconnaissance de a+a∗a Pour illustrer l’exemple, dessiner la bande de lecture

E →E+T →F +T →a+T →a+T∗F →a+F∗F →a+a∗F →a+a∗a E

✟✟✟✟

E T F a

+ T

✟✟ ❍ T

F a

∗ F a

Figure1.9 – Dérivation gauche et arbre syntaxique pour a+a∗a

On voit bien ici le rôle que joue le non déterminisme de A. Lorsqu’un non terminalS doit

(9)

être remplacé au sommet de la pile, il peut l’être par la partie droite de n’importe quelle règle d’origine S (i.e. de la forme S −→ β). On ne sait pas à l’avance quelle règle choisir. C’est la difficulté principale de cette tâche. Elle est résolue dans les automates à pile par la notion de non déterminisme qui permet de poursuivre plusieurs hypothèses successivement. Il faut cependant noter que si la grammaire est récursive gauche, elle risque de ne jamais s’arrêter lors de la reconnaissance d’un mot.

L’automate à pile A correspondant à la grammaire G = hV, X, S, Pi non récursive gauche est défini de la façon suivante :

A=h{q0, q1, q2}, X, V ∪X∪{Z0},δ, q0, Z0,{q2}i

— Apossède trois états : {q0, q1, q2}.

— l’alphabet d’entrée est l’alphabet terminal de G.

— l’alphabet de pile est constitué des symboles non terminaux et terminaux de G ; et du symbole de fond de pile Z0.

— la fonction de transition δ (c’est elle qui fait tout le travail) est définie de la façon suivante :

— δ(q0,ε, Z0) ={(q1, SZ0)}. On empile l’axiome.

— δ(q1,ε, Vi) = {(q1, mi)/ avecVi −→ mi ∈ P}. Si un symbole non terminal Vi occupe le sommet de pile, on le remplace par la partie droite d’une règle d’origine Vi.

— δ(q1, a, a) = {(q1,ε) aveca ∈X}. Si on a le même symbole sur la pile et dans la case courante de la bande de lecture, on dépile.

— δ(q1,ε, Z0) = {(q2, Z0)}. Si le mot en entrée a été reconnu, et que la pile ne contient que le fond de pile, on passe à l’état d’acceptation.

— q0 est l’état initial

— Z0 est le symbole de fond de pile

— q2 est l’unique état d’acceptation

La forme générale de cet automate est représentée graphiquement à lafigure 1.10.

pour tout terminal a de X

q0 e e q1 , Z0/Z0e q2 e, Vi /mi

a, a/e

pour toute règle Vi −−> mi de P

, /S

Figure 1.10 – Automate à pile correspondant à une grammaire

Voir les figures 1.11 et 1.12 pour des représentations graphiques des automates produits avec la grammaire standard correspondante.

(10)

Figure 1.11 – Exemple de PDA avec ETF

Figure1.12 – Exemple de PDA avec le langage de Dyck

Références

Documents relatifs

[r]

[r]

[r]

construire une petite boîte pour mettre les petits cailloux perdus au cours de la partie qui peuvent être récupérés par un joueur chanceux et la poser à côté du plateau de

A l’aide d’un tableur, construit les diagrammes représentant la température et les précipitations sur l’ile Heard.. Quelle est l’étendue

[r]

Les élèves disposent d’un paquet de cartes et d’un plateau de jeu A3.. Le jeu nécessite aussi un dé et

Par comparaison entre ce qui est pareil et ce qui est différent, le binôme trouve ce qu’il faut donner à Minibille pour qu’elle ait autant que Maxibille.. Le