Théorie des langages. Automates à pile. Elise Bonzon http://web.mi.parisdescartes.fr/ bonzon/ elise.bonzon@parisdescartes.



Documents pareils
Théorie des Langages

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

CH.6 Propriétés des langages non contextuels

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Rappels sur les suites - Algorithme

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

Définitions. Numéro à préciser. (Durée : )

Représentation d un entier en base b

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Cours 1 : Qu est-ce que la programmation?

Calculs de probabilités

Bien lire l énoncé 2 fois avant de continuer - Méthodes et/ou Explications Réponses. Antécédents d un nombre par une fonction

Continuité et dérivabilité d une fonction

Cours Fonctions de deux variables

Algorithme. Table des matières

Résolution de systèmes linéaires par des méthodes directes

Initiation à la Programmation en Logique avec SISCtus Prolog

LE PROCESSUS ( la machine) la fonction f. ( On lit : «fonction f qui à x associe f (x)» )

Informatique Théorique : Théorie des Langages, Analyse Lexicale, Analyse Syntaxique Jean-Pierre Jouannaud Professeur

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Chapitre 5 : Flot maximal dans un graphe

Programmation linéaire

Limites finies en un point

Résolution d équations non linéaires

Architecture des ordinateurs

Problèmes de Mathématiques Filtres et ultrafiltres

Génie Logiciel avec Ada. 4 février 2013

Université Paris-Dauphine DUMI2E 1ère année, Applications

Représentation géométrique d un nombre complexe

Correction TD algorithmique

Activités numériques [13 Points]

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

La fonction exponentielle

Algorithmes récursifs

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Les algorithmes de base du graphisme

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Initiation à LabView : Les exemples d applications :

2.4 Représentation graphique, tableau de Karnaugh

Introduction à l étude des Corps Finis

Algèbre binaire et Circuits logiques ( )

Introduction à la théorie des graphes. Solutions des exercices

Cours d Analyse. Fonctions de plusieurs variables

a et b étant deux nombres relatifs donnés, une fonction affine est une fonction qui a un nombre x associe le nombre ax + b

Utilisation des tableaux sémantiques dans les logiques de description

Algorithmique et Programmation Fonctionnelle

Introduction à MATLAB R

Model checking temporisé

AC AB. A B C x 1. x + 1. d où. Avec un calcul vu au lycée, on démontre que cette solution admet deux solutions dont une seule nous intéresse : x =

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007

TSTI 2D CH X : Exemples de lois à densité 1

1 Recherche en table par balayage

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Compter à Babylone. L écriture des nombres

t 100. = 8 ; le pourcentage de réduction est : 8 % 1 t Le pourcentage d'évolution (appelé aussi taux d'évolution) est le nombre :

chapitre 4 Nombres de Catalan

TS 35 Numériser. Activité introductive - Exercice et démarche expérimentale en fin d activité Notions et contenus du programme de Terminale S

Décision Markovienne appliquée à un jeu de stop ou encore : Pickomino (Heckmeck Am Bratwurmeck)

Logique. Plan du chapitre

Vers l'ordinateur quantique

Probabilité. Table des matières. 1 Loi de probabilité Conditions préalables Définitions Loi équirépartie...

STATIQUE GRAPHIQUE ET STATIQUE ANALYTIQUE

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé

Cryptographie et fonctions à sens unique

Image d un intervalle par une fonction continue

Fondements de l informatique Logique, modèles, et calculs

Fonctions linéaires et affines. 1 Fonctions linéaires. 1.1 Vocabulaire. 1.2 Représentation graphique. 3eme

Logique : ENSIIE 1A - contrôle final

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Intégration et probabilités TD1 Espaces mesurés

Initiation à la programmation en Python

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

Structures algébriques

Probabilités. I Petits rappels sur le vocabulaire des ensembles 2 I.1 Définitions... 2 I.2 Propriétés... 2

Module 16 : Les fonctions de recherche et de référence

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Algorithmique et programmation : les bases (VBA) Corrigé

Cours de Probabilités et de Statistique

Items étudiés dans le CHAPITRE N5. 7 et 9 p 129 D14 Déterminer par le calcul l'antécédent d'un nombre par une fonction linéaire

Excel 2007 Niveau 3 Page 1

point On obtient ainsi le ou les points d inter- entre deux objets».

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Baccalauréat L spécialité, Métropole et Réunion, 19 juin 2009 Corrigé.

Géométrie dans l espace Produit scalaire et équations

Premiers exercices d Algèbre. Anne-Marie Simon

ANALYSE GÉNÉRALE - PROPOSITION DE CORRIGÉ. Exercice 1

I - PUISSANCE D UN POINT PAR RAPPORT A UN CERCLE CERCLES ORTHOGONAUX POLES ET POLAIRES

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Théorie de la mesure. S. Nicolay

Le théorème de Perron-Frobenius, les chaines de Markov et un célèbre moteur de recherche

Plus courts chemins, programmation dynamique

Équations non linéaires

Transcription:

Automates à pile Elise Bonzon http://web.mi.parisdescartes.fr/ bonzon/ elise.bonzon@parisdescartes.fr 1 / 62

Automates à pile Introduction Rappels sur les piles Automates à pile : définition Automates à pile : configurations Les critères d acceptation Automates à pile déterministes Automates à pile et langages algébriques Grammaire algébrique vers automate à pile Automate à pile vers grammaire algébrique Cloture des langages algébriques 2 / 62

Automates à pile Introduction Rappels sur les piles Automates à pile : définition Automates à pile : configurations Les critères d acceptation Automates à pile déterministes Automates à pile et langages algébriques Grammaire algébrique vers automate à pile Automate à pile vers grammaire algébrique Cloture des langages algébriques 3 / 62

Introduction Grammaires hors contexte : génèrent des langages algébriques Les automates finis acceptent (exactement) les langages réguliers Langages réguliers : sous-ensemble strict des langages algébriques Comment obtenir des automates qui acceptent les langages algébriques non réguliers? Un automate fini dispose par définition d une mémoire finie L ajout d une pile permet d étendre les possibilités de mémorisation Garder en mémoire les étapes de calculs passées Conditionner les étapes de calculs à venir c b a 4 / 62

Introduction Automate fini : défini principalement à partir de sa fonction de transition Automate à pile : enrichi la fonction de transition par 1. un nouvel alphabet fini qui contient les symboles qui peuvent être empilés et dépilés 2. des transitions conditionnées par le symbole en haut de la pile 3. lors d une transition dans l automate, il est possible d empiler ou de dépiler un symbole dans la pile 5 / 62

Automate à pile : un exemple introductif Soit l automate suivant qui reconnaît le langage {a n b m n, m > 0} a b a b 0 1 2 Cet automate ne peut pas reconnaitre le langage {a n b m n = m > 0} : impossible de compter le nombre de a vus. Automate à pile : Empiler un symbole (T ) à chaque passage dans la boucle de l état 1 Dépiler un symbole à chaque passage dans la boucle de l état 2 Calcul réussi : pile vide 6 / 62

Automate à pile : un exemple introductif a a b 0 1 2 b Trace du calcul pour w = aaabbb Entrée Etat Pile 7 / 62

Automate à pile : un exemple introductif a a b 0 1 2 b Trace du calcul pour w = aaabbb Entrée Etat Pile aaabbb 0 Pile vide 7 / 62

Automate à pile : un exemple introductif a a b 0 1 2 b Trace du calcul pour w = aaabbb Entrée Etat Pile aaabbb 0 Pile vide aabbb 1 Pile vide 7 / 62

Automate à pile : un exemple introductif a a b 0 1 2 b Trace du calcul pour w = aaabbb Entrée Etat Pile aaabbb 0 Pile vide aabbb 1 Pile vide abbb 1 T 7 / 62

Automate à pile : un exemple introductif a a b 0 1 2 b Trace du calcul pour w = aaabbb Entrée Etat Pile aaabbb 0 Pile vide aabbb 1 Pile vide abbb 1 T bbb 1 TT 7 / 62

Automate à pile : un exemple introductif a a b 0 1 2 b Trace du calcul pour w = aaabbb Entrée Etat Pile aaabbb 0 Pile vide aabbb 1 Pile vide abbb 1 T bbb 1 TT bb 2 TT 7 / 62

Automate à pile : un exemple introductif a a b 0 1 2 b Trace du calcul pour w = aaabbb Entrée Etat Pile aaabbb 0 Pile vide aabbb 1 Pile vide abbb 1 T bbb 1 TT bb 2 TT b 2 T 7 / 62

Automate à pile : un exemple introductif a a b 0 1 2 b Trace du calcul pour w = aaabbb Entrée Etat Pile aaabbb 0 Pile vide aabbb 1 Pile vide abbb 1 T bbb 1 TT bb 2 TT b 2 T ɛ 2 Pile vide 7 / 62

Automate à pile De manière imagée, un automate à pile est composé de trois unités : Une unité centrale, dont la configuration est symbolisée par un état Un canal de lecture qui contient un mot à analyser Un canal de lecture-écriture qui est organisé en pile, et qui sert à contenir de l information auxiliaire, en quantité non bornée. 8 / 62

Automates à pile Introduction Rappels sur les piles Automates à pile : définition Automates à pile : configurations Les critères d acceptation Automates à pile déterministes Automates à pile et langages algébriques Grammaire algébrique vers automate à pile Automate à pile vers grammaire algébrique Cloture des langages algébriques 9 / 62

Rappels sur les piles Pile : Type P LIFO (Last In First Out) constante pilevide P empiler: E P P depiler: P \ {pilevide} P sommet: P \ {pilevide} E est vide: P IB e p. e 2 e 1 10 / 62

Piles et automates à pile On introduit un alphabet de pile Γ Une pile p est un mot p Γ Opérations sur les piles : Tester si la pile est vide : déterminer si p = ɛ Empiler un élément x Γ dans une pile p Γ : p xp Si la pile est non vide, elle est de la forme xp, où x Γ et p Γ. Dépiler l élément x : xp p On peut étendre ces notions à des mots. Ainsi, empiler un mot u = u 1 u 2... u l revient à empiler successivement les lettres u 1,..., u l Γ. Partant de la pile p Γ, on obtient p u 1 p u 2 u 1 p... u l... u 2 u 1 p = u R p Attention : On obtient le miroir du mot u dans la pile 11 / 62

Automates à pile Introduction Rappels sur les piles Automates à pile : définition Automates à pile : configurations Les critères d acceptation Automates à pile déterministes Automates à pile et langages algébriques Grammaire algébrique vers automate à pile Automate à pile vers grammaire algébrique Cloture des langages algébriques 12 / 62

Automate à pile Automate à pile Un automate à pile non déterministe (en anglais pushdown automaton) est un septuplet M = (Σ, Γ, Z 0, Q, q 0, F, δ), où Σ est l alphabet d entrée Γ est l alphabet de pile Z 0 Γ est le symbole initial de la pile Q est un ensemble fini d états q 0 Q est l état initial de l automate F Q est l ensemble des état finaux (on peut avoir F = ) δ est une fonction de Q (Σ {ɛ}) (Γ {ɛ}) vers l ensemble des parties de Q (Γ {ɛ}) 13 / 62

Automate à pile Automate à pile : automate fini non-déterministe, à la différence près que la fonction de transition δ comporte trois arguments l état courant le symbole d entrée courant le symbole courant en haut de la pile, appartenant à l alphabet de pile. Si (r, T ) δ(q, a, Y ) (on peut écrire aussi (q, a, Y, r, T ) δ ou (q, a, Y ) (r, T )), alors l utilisation de cette transition conduira à : dépiler Y Si Y = ɛ la transition a lieu indépendamment du symbole en haut de pile, qui reste inchangée empiler T Si T = ɛ, aucun symbole n est empilé lire le symbole a transiter dans l état r Automate fini traditionnel est un automate à pile particulier, défini sur un alphabet de pile vide (Γ = ) et dont toutes les transitions laissent la pile inchangée. 14 / 62

Automate à pile Transition (r, T ) δ(q, a, Y ) dépiler Y Si Y = ɛ la transition a lieu indépendamment du symbole en haut de pile, qui reste inchangée empiler T Si T = ɛ, aucun symbole n est empilé lire le symbole a transiter dans l état r q a,y /T r 15 / 62

Automate à pile : exemple Soit l automate à pile suivant qui reconnaît le langage {a n b n n > 0} a, ɛ/t b, T /ɛ a, ɛ/ɛ b, ɛ/ɛ 0 1 2 16 / 62

Automate à pile : exemple Soit l automate à pile suivant qui reconnaît le langage {w Σ w est un palindrome} a, ɛ/t a b, ɛ/ɛ a, T a /ɛ a, ɛ/ɛ 0 1 b, ɛ/t b ɛ, ɛ/ɛ b, T b /ɛ 17 / 62

Automates à pile Introduction Rappels sur les piles Automates à pile : définition Automates à pile : configurations Les critères d acceptation Automates à pile déterministes Automates à pile et langages algébriques Grammaire algébrique vers automate à pile Automate à pile vers grammaire algébrique Cloture des langages algébriques 18 / 62

Exécution et configurations Une exécution est une suite de configurations. Pour un automate fini, une configuration est : mot restant à lire m Σ état courant q Q Exemple : (abbb, q) Pour un automate à pile, une configuration est définie par : le mot restant à lire m Σ l état courant q Q le contenu de la pile, l élément le plus à gauche étant le sommet de pile Exemple : (abbb, q, T A T B T B Z 0 ) 19 / 62

Configurations Configuration La pile contient, à tout moment, un mot h sur Γ. L automate se trouve dans un état q, et doit lire encore le mot m Σ Le couple (m, q, h) est appelé une configuration de l automate. L ensemble des configurations est Σ Q Γ. La configuration initiale (m, q 0, Z 0) Σ Q Γ est formée de l état initial et du symbole initial de la pile 20 / 62

Configurations Configuration La pile contient, à tout moment, un mot h sur Γ. L automate se trouve dans un état q, et doit lire encore le mot m Σ Le couple (m, q, h) est appelé une configuration de l automate. L ensemble des configurations est Σ Q Γ. La configuration initiale (m, q 0, Z 0) Σ Q Γ est formée de l état initial et du symbole initial de la pile Un mouvement de l automate représente le passage d une configuration à une autre. 20 / 62

Passage d une configuration à une autre Le passage d une configuration c 1 à une configuration c 2 dans un automate M s écrit : c 1 M c 2 On note M la clôture réflexive et transitive de M Il y a deux modes de transition pour changer de configuration : Sur une Σ-transition Sur une ɛ-transition 21 / 62

Σ-transition : exemple Transition (q 1, b, T A ) (q 1, T B ) Configuration (bba, q 1, T A Z 0) On aura alors : (bba, q 1, T A Z 0) M (ba, q 1, T B Z 0) 22 / 62

ɛ-transition : exemple Transition (q 1, ɛ, T A ) (q 2, T B ) Configuration (bba, q 1, T A Z 0) On aura alors : (bba, q 1, T A Z 0) M (bba, q 2, T B Z 0) On ne touche pas à la tête de lecture 23 / 62

Transitions : exemple Soit l automate à pile suivant qui reconnaît le langage {a n b n n > 0} a, ɛ/t b, T /ɛ a, ɛ/ɛ b, ɛ/ɛ 0 1 2 (aabb, 0, Z 0 ) 24 / 62

Transitions : exemple Soit l automate à pile suivant qui reconnaît le langage {a n b n n > 0} a, ɛ/t b, T /ɛ a, ɛ/ɛ b, ɛ/ɛ 0 1 2 (aabb, 0, Z 0 ) M (abb, 1, Z 0 ) 24 / 62

Transitions : exemple Soit l automate à pile suivant qui reconnaît le langage {a n b n n > 0} a, ɛ/t b, T /ɛ a, ɛ/ɛ b, ɛ/ɛ 0 1 2 (aabb, 0, Z 0 ) M (abb, 1, Z 0 ) M (bb, 1, TZ 0 ) 24 / 62

Transitions : exemple Soit l automate à pile suivant qui reconnaît le langage {a n b n n > 0} a, ɛ/t b, T /ɛ a, ɛ/ɛ b, ɛ/ɛ 0 1 2 (aabb, 0, Z 0 ) M (abb, 1, Z 0 ) M (bb, 1, TZ 0 ) M (b, 2, TZ 0 ) 24 / 62

Transitions : exemple Soit l automate à pile suivant qui reconnaît le langage {a n b n n > 0} a, ɛ/t b, T /ɛ a, ɛ/ɛ b, ɛ/ɛ 0 1 2 (aabb, 0, Z 0 ) M (abb, 1, Z 0 ) M (bb, 1, TZ 0 ) M (b, 2, TZ 0 ) M (ɛ, 2, Z 0 ) 24 / 62

Transitions : exemple Soit l automate à pile suivant qui reconnaît le langage {w Σ w est un palindrome} a, ɛ/t a b, ɛ/ɛ a, T a /ɛ a, ɛ/ɛ 0 1 b, ɛ/t b ɛ, ɛ/ɛ b, T b /ɛ (baaab, 0, Z 0 ) 25 / 62

Transitions : exemple Soit l automate à pile suivant qui reconnaît le langage {w Σ w est un palindrome} a, ɛ/t a b, ɛ/ɛ a, T a /ɛ a, ɛ/ɛ 0 1 b, ɛ/t b ɛ, ɛ/ɛ b, T b /ɛ (baaab, 0, Z 0 ) M (aaab, 0, T b Z 0 ) 25 / 62

Transitions : exemple Soit l automate à pile suivant qui reconnaît le langage {w Σ w est un palindrome} a, ɛ/t a b, ɛ/ɛ a, T a /ɛ a, ɛ/ɛ 0 1 b, ɛ/t b ɛ, ɛ/ɛ b, T b /ɛ (baaab, 0, Z 0 ) M (aaab, 0, T b Z 0 ) M (aab, 0, T a T b Z 0 ) 25 / 62

Transitions : exemple Soit l automate à pile suivant qui reconnaît le langage {w Σ w est un palindrome} a, ɛ/t a b, ɛ/ɛ a, T a /ɛ a, ɛ/ɛ 0 1 b, ɛ/t b ɛ, ɛ/ɛ b, T b /ɛ (baaab, 0, Z 0 ) M (aaab, 0, T b Z 0 ) M (aab, 0, T a T b Z 0 ) M (ab, 1, T a T b Z 0 ) 25 / 62

Transitions : exemple Soit l automate à pile suivant qui reconnaît le langage {w Σ w est un palindrome} a, ɛ/t a b, ɛ/ɛ a, T a /ɛ a, ɛ/ɛ 0 1 b, ɛ/t b ɛ, ɛ/ɛ b, T b /ɛ (baaab, 0, Z 0 ) M (aaab, 0, T b Z 0 ) M (aab, 0, T a T b Z 0 ) M (ab, 1, T a T b Z 0 ) M (b, 1, T b Z 0 ) 25 / 62

Transitions : exemple Soit l automate à pile suivant qui reconnaît le langage {w Σ w est un palindrome} a, ɛ/t a b, ɛ/ɛ a, T a /ɛ a, ɛ/ɛ 0 1 b, ɛ/t b ɛ, ɛ/ɛ b, T b /ɛ (baaab, 0, Z 0 ) M (aaab, 0, T b Z 0 ) M (aab, 0, T a T b Z 0 ) M (ab, 1, T a T b Z 0 ) M (b, 1, T b Z 0 ) M (ɛ, 1, Z 0 ) 25 / 62

Automates à pile Introduction Rappels sur les piles Automates à pile : définition Automates à pile : configurations Les critères d acceptation Automates à pile déterministes Automates à pile et langages algébriques Grammaire algébrique vers automate à pile Automate à pile vers grammaire algébrique Cloture des langages algébriques 26 / 62

Les critères d acceptation Dans nos exemples, on accepte un mot si le ruban vide, on est sur l état final et la pile vide Ce sont des cas particuliers Il y a deux critères d acceptation possibles : Acceptation par état final (quelle que soit la pile quand on s arrête) Acceptation par pile vide (quel que soit l état dans lequel on s arrête) Mais le ruban doit toujours être vide! Ces deux critères sont équivalents 27 / 62

Acceptation par état final Acceptation par état final Un mot m Σ est accepté par état final par un automate à pile M = (Σ, Γ, Z 0, Q, q 0, F, δ) si pour la configuration (m, q 0, Z 0 ), il existe un état q f F et un mot z Γ tel que (m, q 0, Z 0 ) M (ɛ, q f, z) 28 / 62

Acceptation par état final Acceptation par état final Un mot m Σ est accepté par état final par un automate à pile M = (Σ, Γ, Z 0, Q, q 0, F, δ) si pour la configuration (m, q 0, Z 0 ), il existe un état q f F et un mot z Γ tel que (m, q 0, Z 0 ) M (ɛ, q f, z) Langage accepté par état final Le langage accepté par état final par un automate à pile est l ensemble des mots acceptés par cet automate. L F (M) = {m Σ (m, q 0, Z 0 ) M (ɛ, q f, z)} 28 / 62

Acceptation par état final : exemple Soit l automate à pile suivant qui reconnaît le langage {a n b n n 0} b, T /ɛ b, T /ɛ 1 a, ɛ/t 0 ɛ, Z 0 /Z 0 ɛ, Z 0 /Z 0 F 29 / 62

Acceptation par pile vide Acceptation par pile vide Un mot m Σ est accepté par pile vide par un automate à pile M = (Σ, Γ, Z 0, Q, q 0, F, δ) si pour la configuration (m, q 0, Z 0 ), il existe un état q Q tel que (m, q 0, Z 0 ) M (ɛ, q, ɛ) 30 / 62

Acceptation par pile vide Acceptation par pile vide Un mot m Σ est accepté par pile vide par un automate à pile M = (Σ, Γ, Z 0, Q, q 0, F, δ) si pour la configuration (m, q 0, Z 0 ), il existe un état q Q tel que (m, q 0, Z 0 ) M (ɛ, q, ɛ) Langage accepté par pile vide Le langage accepté par pile vide par un automate à pile est l ensemble des mots acceptés par cet automate. L V (M) = {m Σ (m, q 0, Z 0 ) M (ɛ, q, ɛ)} 30 / 62

Acceptation par pile vide : exemple Soit l automate à pile suivant qui reconnaît le langage {a n b n n 0} ɛ, Z 0 /ɛ b, T /ɛ b, T /ɛ 0 1 a, Z 0 /T a, T /TT 31 / 62

Critères d acceptation Les deux critères d acceptation (par état final et par pile vide) sont équivalents Théorème Un langage est accepté par un automate à pile avec le critère d acceptation sur pile vide si et seulement si il est accepté par un automate à pile avec acceptation par état final. 32 / 62

Critères d acceptation Les deux critères d acceptation (par état final et par pile vide) sont équivalents Théorème Un langage est accepté par un automate à pile avec le critère d acceptation sur pile vide si et seulement si il est accepté par un automate à pile avec acceptation par état final. Chaque transition dans laquelle Z 0 est dépilé est remplacée par une transition vers un nouvel état final Après avoir atteint un état final, on vide entièrement la pile 32 / 62

Automates à pile Introduction Rappels sur les piles Automates à pile : définition Automates à pile : configurations Les critères d acceptation Automates à pile déterministes Automates à pile et langages algébriques Grammaire algébrique vers automate à pile Automate à pile vers grammaire algébrique Cloture des langages algébriques 33 / 62

Automates déterministes Les automates à pile que nous avons défini jusqu à maintenant sont indéterministes Un mot est accepté s il existe au moins une suite de configurations qui conduit à l acceptation Mais il peut y en avoir plusieurs Et il peut il y avoir plusieurs suites de configuration qui mènent à l échec Automate à pile déterministe? 34 / 62

Automates déterministes Les automates à pile M est déterministe à 2 conditions : Première condition pour un état q donné pour un symbole d entrée x donné pour un sommet de pile z donné il existe au plus une transition partant de (q, x, z) Seconde condition pour un état q donné pour un sommet de pile z donné s il existe une transition partant de (q, ɛ, z), elle est unique et pour toute lettre x, il n en existe pas partant de (q, x, z). Dans une configuration donnée, on ne peut pas avoir le choix sur la transition à appliquer 35 / 62

Automates à pile Introduction Rappels sur les piles Automates à pile : définition Automates à pile : configurations Les critères d acceptation Automates à pile déterministes Automates à pile et langages algébriques Grammaire algébrique vers automate à pile Automate à pile vers grammaire algébrique Cloture des langages algébriques 36 / 62

Automates à pile et langages algébriques (hors-contextes) Théorème Un langage est algébrique si et seulement si il est reconnu par un automate à pile 37 / 62

Automates à pile et langages algébriques (hors-contextes) Théorème Un langage est algébrique si et seulement si il est reconnu par un automate à pile Théorème Tout langage algébrique n est pas reconnu par un automate à pile déterministe 37 / 62

Automates à pile et langages algébriques (hors-contextes) Langages algébriques non déterministes Langages algébriques déterministes 38 / 62

Langage algébrique déterministe Langage algébrique déterministe Un langage algébrique L est déterministe s il existe un automate à pile M acceptant par état final déterministe tel que L F (M) = L 39 / 62

Langage algébrique déterministe Langage algébrique déterministe Un langage algébrique L est déterministe s il existe un automate à pile M acceptant par état final déterministe tel que L F (M) = L Par exemple, {m (a + b) m est un palindrome} est un langage algébrique non déterministe. Intuitivement, on ne sait pas deviner où est le milieu du mot. 39 / 62

Langage algébrique déterministe Langage algébrique déterministe Un langage algébrique L est déterministe s il existe un automate à pile M acceptant par état final déterministe tel que L F (M) = L Par exemple, {m (a + b) m est un palindrome} est un langage algébrique non déterministe. Intuitivement, on ne sait pas deviner où est le milieu du mot. {m 1 cm 2 m 1 m 2 (a + b) est un palindrome} est un langage algébrique déterministe. 39 / 62

Automates à pile et grammaires algébriques Les automates à pile sont nécessaires pour reconnaître les langages algébriques Mais ils ne sont pas si faciles à concevoir Le lien entre dérivations d une grammaire et exécution d un automate à pile n est pas évident à voir? Est-il possible de dériver automatiquement un automate à pile à partir d une grammaire algébrique? 40 / 62

Automates à pile Introduction Rappels sur les piles Automates à pile : définition Automates à pile : configurations Les critères d acceptation Automates à pile déterministes Automates à pile et langages algébriques Grammaire algébrique vers automate à pile Automate à pile vers grammaire algébrique Cloture des langages algébriques 41 / 62

Rappel : Forme normale de Greibach Forme normale de Greibach Une grammaire algébrique G = V, Σ, P, S est sous la forme normale de Greibach si toute production est de la forme : avec A, A i V \ Σ, et a Σ A aa 1... A n A a 42 / 62

Grammaire algébrique vers automate à pile On présente un algorithme de passage d une grammaire algébrique sous forme normale de Greibach vers un automate à pile non déterministe Idée : Empiler l axiome A chaque symbole lu de la chaîne d entrée, remplacer la partie gauche de la production concernée par le reste de la partie droite 43 / 62

Grammaire algébrique vers automate à pile Grammaire algébrique vers automate à pile Soit L = L \ ɛ le langage engendré par G = V, Σ, P, S sous forme normale de Greibach. On construit l automate à pile M = (Σ, Γ, S, Q, q 0, F, δ) tel que Γ = V \ Σ Q = {q 0} F = (reconnaissance sur pile vide) S le symbole initial de la pile On construit δ itérativement de la façon suivante : 1. δ 2. Pour toute règle A aa 1 A 2... A n, δ δ {(q 0, a, A) (q 0, A 1 A 2... A n)} On lit a, on dépile A et on empile A 1 A 2... A n (A 1 est en sommet de la pile) 44 / 62

Grammaire algébrique vers automate à pile : exemple Soit G = V, Σ, P, S avec V = {a, b, S, B} Σ = {a, b} P = {S asb ab; B b} 45 / 62

Grammaire algébrique vers automate à pile : exemple Soit G = V, Σ, P, S avec V = {a, b, S, B} Σ = {a, b} P = {S asb ab; B b} On construit l automate M = (Σ, Γ, S, Q, q 0, F, δ) tel que Γ = {S, B} Q = {q 0}, F = δ contient (q 0, a, S) (q 0, SB) (q 0, a, S) (q 0, B) (q 0, b, B) (q 0, ɛ) 45 / 62

Grammaire algébrique vers automate à pile : exemple Soit G = V, Σ, P, S avec V = {a, +,, (, ), S, A, B, C}, Σ = {a, b, +,, (, )} S a S (SC S aas A + S (SCAS B S abs C ) S (SCBS 46 / 62

Grammaire algébrique vers automate à pile : exemple Soit G = V, Σ, P, S avec V = {a, +,, (, ), S, A, B, C}, Σ = {a, b, +,, (, )} S a S (SC S aas A + S (SCAS B S abs C ) S (SCBS On construit l automate M = (Σ, Γ, S, Q, q 0, F, δ) tel que Γ = {S, A, B, C}, Q = {q 0 }, F = et δ contient (q 0, a, S) (q 0, ɛ) (q 0, (, S) (q 0, SC) (q 0, a, S) (q 0, AS) (q 0, +, A) (q 0, ɛ) (q 0, (, S) (q 0, SCAS) (q 0,, B) (q 0, ɛ) (q 0, a, S) (q 0, BS) (q 0, ), C) (q 0, ɛ) (q 0, (, S) (q 0, SCBS) 46 / 62

Automates à pile Introduction Rappels sur les piles Automates à pile : définition Automates à pile : configurations Les critères d acceptation Automates à pile déterministes Automates à pile et langages algébriques Grammaire algébrique vers automate à pile Automate à pile vers grammaire algébrique Cloture des langages algébriques 47 / 62

Automate à pile vers grammaire algébrique On présente un algorithme de passage d un automate à pile à une grammaire algébrique A tout couple (p, q) d états de l automate, et à tout X de la pile, on associe un non terminal de la forme p, X, q On associe toutes les lectures possibles dans l automate pour obtenir la grammaire sans savoir a priori lesquelles vont vider la pile A la fin, on nettoie la grammaire obtenue 48 / 62

Automate à pile vers grammaire algébrique : algorithme Soit M = (Σ, Γ, Z 0, Q, q 0, F, δ). On veut construire G = V, Σ, P, S équivalente. 1. V = { q, X, p p et q Q, X Γ} {S} 2. P 3. Pour tout état q Q, P P {S q 0, Z 0, q } 4. Pour toute transition (q, a, X ) (p, ɛ) de δ faire P P { q, X, p a} 5. Pour toute transition (q, a, X ) (p, B m... B 1) de δ faire Pour tout m-uplet d états q 1,..., q m de Q faire P P { q, X, q m a p, B m, q 1 q 1, B m 1, q 2... q m 1, B 1, q m } 49 / 62

Automate à pile vers grammaire algébrique : exemple ɛ, Z 0 /ɛ b, T /ɛ b, T /ɛ 0 1 a, Z 0 /T a, T /TT 50 / 62

Automate à pile vers grammaire algébrique : exemple ɛ, Z 0 /ɛ b, T /ɛ b, T /ɛ 0 1 a, Z 0 /T a, T /TT 1. V = { q, X, p p et q Q, X Γ} {S} V = {S, q 0, Z 0, q 0, q 0, Z 0, q 1, q 1, Z 0, q 0, q 1, Z 0, q 1, q 0, T, q 0, q 0, T, q 1, q 1, T, q 0, q 1, T, q 1 } 50 / 62

Automate à pile vers grammaire algébrique : exemple ɛ, Z 0 /ɛ b, T /ɛ b, T /ɛ 0 1 a, Z 0 /T a, T /TT 2. P 3. Pour tout état q Q, P P {S q 0, Z 0, q } P reçoit S q 0, Z 0, q 0 S q 0, Z 0, q 1 50 / 62

Automate à pile vers grammaire algébrique : exemple ɛ, Z 0 /ɛ b, T /ɛ b, T /ɛ 0 1 a, Z 0 /T a, T /TT 4. Pour toute transition (q, a, X ) (p, ɛ) de δ faire P P { q, X, p a} P reçoit q 0, Z 0, q 0 ɛ q 0, T, q 1 b q 1, T, q 1 b 50 / 62

Automate à pile vers grammaire algébrique : exemple ɛ, Z 0 /ɛ b, T /ɛ b, T /ɛ 0 1 a, Z 0 /T a, T /TT 5. Pour toute transition (q, a, X ) (p, B m... B 1) de δ faire Pour tout m-uplet d états q 1,..., q m de Q faire P P { q, X, q m a p, B 1, q 1 q 1, B 2, q 2... q m 1, B m, q m } 50 / 62

Automate à pile vers grammaire algébrique : exemple ɛ, Z 0 /ɛ b, T /ɛ b, T /ɛ 0 1 a, Z 0 /T a, T /TT 5. Pour toute transition (q, a, X ) (p, B m... B 1) de δ faire Pour tout m-uplet d états q 1,..., q m de Q faire P P { q, X, q m a p, B 1, q 1 q 1, B 2, q 2... q m 1, B m, q m } q 0, Z 0, q 0 a q 0, T, q 0 q 0, Z 0, q 1 a q 0, T, q 1 50 / 62

Automate à pile vers grammaire algébrique : exemple ɛ, Z 0 /ɛ b, T /ɛ b, T /ɛ 0 1 a, Z 0 /T a, T /TT 5. Pour toute transition (q, a, X ) (p, B m... B 1) de δ faire Pour tout m-uplet d états q 1,..., q m de Q faire P P { q, X, q m a p, B 1, q 1 q 1, B 2, q 2... q m 1, B m, q m } q 0, T, q 0 a q 0, T, q 0 q 0, T, q 0 q 0, T, q 0 a q 0, T, q 1 q 1, T, q 0 q 0, T, q 1 a q 0, T, q 0 q 0, T, q 1 q 0, T, q 1 a q 0, T, q 1 q 1, T, q 1 50 / 62

Automate à pile vers grammaire algébrique : exemple On récapitule : V = {S, q 0, Z 0, q 0, q 0, Z 0, q 1, q 1, Z 0, q 0, q 1, Z 0, q 1, q 0, T, q 0, q 0, T, q 1, q 1, T, q 0, q 1, T, q 1 } S q 0, Z 0, q 0 S q 0, Z 0, q 1 q 0, Z 0, q 0 ɛ q 0, T, q 1 b q 1, T, q 1 b q 0, Z 0, q 0 a q 0, T, q 0 q 0, Z 0, q 1 a q 0, T, q 1 q 0, T, q 0 a q 0, T, q 0 q 0, T, q 0 q 0, T, q 0 a q 0, T, q 1 q 1, T, q 0 q 0, T, q 1 a q 0, T, q 0 q 0, T, q 1 q 0, T, q 1 a q 0, T, q 1 q 1, T, q 1 51 / 62

On renomme : Automates à pile Automate à pile vers grammaire algébrique : exemple V = {S, q 0, Z 0, q 0, q 0, Z 0, q 1, q 1, Z 0, q 0, q 1, Z 0, q 1, q 0, T, q 0, q 0, T, q 1, q 1, T, q 0, q 1, T, q 1 } S q 0, Z 0, q 0 S q 0, Z 0, q 1 q 0, Z 0, q 0 ɛ q 0, T, q 1 b q 1, T, q 1 b q 0, Z 0, q 0 a q 0, T, q 0 q 0, Z 0, q 1 a q 0, T, q 1 q 0, T, q 0 a q 0, T, q 0 q 0, T, q 0 q 0, T, q 0 a q 0, T, q 1 q 1, T, q 0 q 0, T, q 1 a q 0, T, q 0 q 0, T, q 1 q 0, T, q 1 a q 0, T, q 1 q 1, T, q 1 52 / 62

On renomme : Automates à pile Automate à pile vers grammaire algébrique : exemple V = {S, A, q 0, Z 0, q 1, q 1, Z 0, q 0, q 1, Z 0, q 1, q 0, T, q 0, q 0, T, q 1, q 1, T, q 0, q 1, T, q 1 } S A S q 0, Z 0, q 1 A ɛ q 0, T, q 1 b q 1, T, q 1 b A a q 0, T, q 0 q 0, Z 0, q 1 a q 0, T, q 1 q 0, T, q 0 a q 0, T, q 0 q 0, T, q 0 q 0, T, q 0 a q 0, T, q 1 q 1, T, q 0 q 0, T, q 1 a q 0, T, q 0 q 0, T, q 1 q 0, T, q 1 a q 0, T, q 1 q 1, T, q 1 52 / 62

On renomme : Automates à pile Automate à pile vers grammaire algébrique : exemple V = {S, A, B, C, D, E, F, G, H} S A B af S B E aee A ɛ E afg F b F aef H b F afh A ae 52 / 62

Automate à pile vers grammaire algébrique : exemple On nettoie : V = {S, A, B, C, D, E, F, G, H} S A B af S B E aee A ɛ E afg F b F aef H b F afh A ae 53 / 62

Automate à pile vers grammaire algébrique : exemple On nettoie : V = {S, A, B, C, D, E, F, G, H} S A B af S B E aee A ɛ E afg F b F aef H b F afh A ae Symboles productifs : {A, F, H, S, B} 53 / 62

Automate à pile vers grammaire algébrique : exemple On nettoie : V = {S, A, B, C, D, E, F, G, H} S A B af S B E aee A ɛ E afg F b F aef H b F afh A ae Symboles productifs : {A, F, H, S, B} On supprime C, D, E, G 53 / 62

Automate à pile vers grammaire algébrique : exemple On nettoie : V = {S, A, B, F, H} S A B af S B A ɛ F b H b F afh Symboles productifs : {A, F, H, S, B} On supprime C, D, E, G 53 / 62

Automate à pile vers grammaire algébrique : exemple On nettoie : V = {S, A, B, F, H} S A B af S B F b A ɛ F afh H b Symboles productifs : {A, F, H, S, B} On supprime C, D, E, G Symboles accessibles : {S, A, B, F, H} 53 / 62

Automate à pile vers grammaire algébrique : exemple On nettoie : V = {S, A, B, F, H} S A B af S B F b A ɛ F afh H b Symboles productifs : {A, F, H, S, B} On supprime C, D, E, G Symboles accessibles : {S, A, B, F, H} Suppression des règles unitaires 53 / 62

Automate à pile vers grammaire algébrique : exemple On nettoie : V = {S, A, B, F, H} S ɛ S af F b F afb Symboles productifs : {A, F, H, S, B} On supprime C, D, E, G Symboles accessibles : {S, A, B, F, H} Suppression des règles unitaires 53 / 62

Automate à pile vers grammaire algébrique : exemple ɛ, Z 0 /ɛ b, T /ɛ b, T /ɛ 0 1 a, Z 0 /T a, T /TT On obtient : S ɛ S af F b F afb 54 / 62

Automates à pile Introduction Rappels sur les piles Automates à pile : définition Automates à pile : configurations Les critères d acceptation Automates à pile déterministes Automates à pile et langages algébriques Grammaire algébrique vers automate à pile Automate à pile vers grammaire algébrique Cloture des langages algébriques 55 / 62

Clôture par union Clôture par union Soient L 1 et L 2 deux langages algébriques. Alors L 1 L 2 est un langage algébrique. 56 / 62

Clôture par union Clôture par union Soient L 1 et L 2 deux langages algébriques. Alors L 1 L 2 est un langage algébrique. Preuve par construction : Soient G 1 = V 1, Σ 1, P 1, S 1 et G 1 = V 2, Σ 2, P 2, S 2 engendrant L 1 et L 2 et tels que (V 1 \ Σ 1) (V 2 \ Σ 2) = et S V 1 V 2 (et sinon on renomme) On construit G = V, Σ, P, S telle que : V = V 1 V 2 {S} Σ = Σ 1 Σ 2 P = P 1 P 2 {S S 1 S 2 } 56 / 62

Clôture par concaténation Clôture par concaténation Soient L 1 et L 2 deux langages algébriques. Alors L 1.L 2 est un langage algébrique. 57 / 62

Clôture par concaténation Clôture par concaténation Soient L 1 et L 2 deux langages algébriques. Alors L 1.L 2 est un langage algébrique. Preuve par construction : Soient G 1 = V 1, Σ 1, P 1, S 1 et G 1 = V 2, Σ 2, P 2, S 2 engendrant L 1 et L 2 et tels que (V 1 \ Σ 1) (V 2 \ Σ 2) = et S V 1 V 2 (et sinon on renomme) On construit G = V, Σ, P, S telle que : V = V 1 V 2 {S} Σ = Σ 1 Σ 2 P = P 1 P 2 {S S 1 S 2 } 57 / 62

Clôture par opération étoile Clôture par opération étoile Soit L un langage algébrique. Alors L est un langage algébrique. 58 / 62

Clôture par opération étoile Clôture par opération étoile Soit L un langage algébrique. Alors L est un langage algébrique. Preuve par construction : Soit G 1 = V 1, Σ 1, P 1, S 1 engendrant le langage L On construit G = V, Σ, P, S engendrant le langage L telle que : V = V 1 {S} Σ = Σ 1 P = P 1 {S ɛ S 1 S} 58 / 62

Exemple Peut-on trouver une grammaire algébrique pour L = {a i b j c k i = j ou j = k}? L se décompose en l union de L 1 = {a i b j c k i = j, k 0} L 2 = {a i b j c k i 0, j = k} L 1 = {a i b j c k i = j, k 0} est la concaténation de {a i b j i = j} et {c k k 0} L 2 = {a i b j c k i 0, j = k} est la concaténation de {a i i 0} et {b j c k j = k} 59 / 62

Exemple Peut-on trouver une grammaire algébrique pour L = {a i b j c k i = j ou j = k}? L se décompose en l union de L 1 = {a i b j c k i = j, k 0} L 2 = {a i b j c k i 0, j = k} L 1 = {a i b j c k i = j, k 0} est la concaténation de {a i b j i = j} et {c k k 0} L 2 = {a i b j c k i 0, j = k} est la concaténation de {a i i 0} et {b j c k j = k} 59 / 62

Exemple Peut-on trouver une grammaire algébrique pour L = {a i b j c k i = j ou j = k}? L se décompose en l union de L 1 = {a i b j c k i = j, k 0} L 2 = {a i b j c k i 0, j = k} L 1 = {a i b j c k i = j, k 0} est la concaténation de {a i b j i = j} et {c k k 0} L 2 = {a i b j c k i 0, j = k} est la concaténation de {a i i 0} et {b j c k j = k} 59 / 62

Exemple Peut-on trouver une grammaire algébrique pour L = {a i b j c k i = j ou j = k}? L se décompose en l union de L 1 = {a i b j c k i = j, k 0} L 2 = {a i b j c k i 0, j = k} L 1 = {a i b j c k i = j, k 0} est la concaténation de {a i b j i = j} et {c k k 0} L 2 = {a i b j c k i 0, j = k} est la concaténation de {a i i 0} et {b j c k j = k} 59 / 62

Exemple, suite {a i b j i = j} S 1 ɛ as 1 b {c k k 0} S 2 ɛ cs 2 L 1 = {a i b j c k i = j, k 0} S 1 ɛ as 1 b S 2 ɛ cs 2 S L1 S 1 S 2 L 2 = {a i b j c k i 0, j = k} S 3 ɛ as 3 S 4 ɛ bs 4 c S L2 S 3 S 4 60 / 62

Exemple, suite {a i b j i = j} S 1 ɛ as 1 b {c k k 0} S 2 ɛ cs 2 L 1 = {a i b j c k i = j, k 0} S 1 ɛ as 1 b S 2 ɛ cs 2 S L1 S 1 S 2 L 2 = {a i b j c k i 0, j = k} S 3 ɛ as 3 S 4 ɛ bs 4 c S L2 S 3 S 4 60 / 62

Exemple, suite {a i b j i = j} S 1 ɛ as 1 b {c k k 0} S 2 ɛ cs 2 L 1 = {a i b j c k i = j, k 0} S 1 ɛ as 1 b S 2 ɛ cs 2 S L1 S 1 S 2 L 2 = {a i b j c k i 0, j = k} S 3 ɛ as 3 S 4 ɛ bs 4 c S L2 S 3 S 4 60 / 62

Exemple, suite {a i b j i = j} S 1 ɛ as 1 b {c k k 0} S 2 ɛ cs 2 L 1 = {a i b j c k i = j, k 0} S 1 ɛ as 1 b S 2 ɛ cs 2 S L1 S 1 S 2 L 2 = {a i b j c k i 0, j = k} S 3 ɛ as 3 S 4 ɛ bs 4 c S L2 S 3 S 4 60 / 62

Exemple, suite L = {a i b j c k i = j ou j = k} G = V, Σ, S, P V = {S 1, S 2, S 3, S 4, S L1, S L2, S} Σ = {a, b, c} P : S 1 ɛ as 1b S 2 ɛ cs 2 S L1 S 1S 2 S 3 ɛ as 3 S 4 ɛ bs 4c S L2 S 3S 4 S S L1 S L2 61 / 62

Exemple, suite L = {a i b j c k i = j ou j = k} G = V, Σ, S, P V = {S 1, S 2, S 3, S 4, S L1, S L2, S} Σ = {a, b, c} P : S 1 ɛ as 1b S 2 ɛ cs 2 S L1 S 1S 2 S 3 ɛ as 3 S 4 ɛ bs 4c S L2 S 3S 4 S S L1 S L2 61 / 62

Exemple, suite L = {a i b j c k i = j ou j = k} G = V, Σ, S, P V = {S 1, S 2, S 3, S 4, S L1, S L2, S} Σ = {a, b, c} P : S 1 ɛ as 1b S 2 ɛ cs 2 S L1 S 1S 2 S 3 ɛ as 3 S 4 ɛ bs 4c S L2 S 3S 4 S S L1 S L2 61 / 62

Exemple, suite L = {a i b j c k i = j ou j = k} G = V, Σ, S, P V = {S 1, S 2, S 3, S 4, S L1, S L2, S} Σ = {a, b, c} P : S 1 ɛ as 1b S 2 ɛ cs 2 S L1 S 1S 2 S 3 ɛ as 3 S 4 ɛ bs 4c S L2 S 3S 4 S S L1 S L2 61 / 62

Exemple, suite L = {a i b j c k i = j ou j = k} G = V, Σ, S, P V = {S 1, S 2, S 3, S 4, S L1, S L2, S} Σ = {a, b, c} P : S 1 ɛ as 1b S 2 ɛ cs 2 S L1 S 1S 2 S 3 ɛ as 3 S 4 ɛ bs 4c S L2 S 3S 4 S S L1 S L2 61 / 62

Clôture par intersection et complémentation Clôture par intersection La classe des langages algébriques n est pas close par intersection 62 / 62

Clôture par intersection et complémentation Clôture par intersection La classe des langages algébriques n est pas close par intersection Clôture par complémentation La classe des langages algébriques n est pas close par complémentation 62 / 62