Automates a Pile

115
Th´ eorie des langages Automates ` a pile Elise Bonzon http://web.mi.parisdescartes.fr/vbonzon/ [email protected] 1 / 62 Th´ eorie des langages N

description

o

Transcript of Automates a Pile

Page 1: Automates a Pile

Theorie des langages

Automates a pile

Elise Bonzonhttp://web.mi.parisdescartes.fr/vbonzon/

[email protected]

1 / 62Theorie des langages

N

Page 2: Automates a Pile

Automates a pile

Automates a pile

IntroductionRappels sur les pilesAutomates a pile : definitionAutomates a pile : configurationsLes criteres d’acceptationAutomates a pile deterministesAutomates a pile et langages algebriquesGrammaire algebrique vers automate a pileAutomate a pile vers grammaire algebriqueCloture des langages algebriques

2 / 62Theorie des langages

N

Page 3: Automates a Pile

Automates a pile

Automates a pile

IntroductionRappels sur les pilesAutomates a pile : definitionAutomates a pile : configurationsLes criteres d’acceptationAutomates a pile deterministesAutomates a pile et langages algebriquesGrammaire algebrique vers automate a pileAutomate a pile vers grammaire algebriqueCloture des langages algebriques

3 / 62Theorie des langages

N

Page 4: Automates a Pile

Automates a pile

Introduction

Grammaires hors contexte : generent des langages algebriques

Les automates finis acceptent (exactement) les langages reguliers

Langages reguliers : sous-ensemble strict des langages algebriques

Comment obtenir des automates qui acceptent les langages algebriquesnon reguliers?

Un automate fini dispose par definition d’une memoire finie⇒ L’ajout d’une pile permet d’etendre les possibilites de memorisation

→ Garder en memoire les etapes de calculs passees→ Conditionner les etapes de calculs a venir

↘ ↗cba

4 / 62Theorie des langages

N

Page 5: Automates a Pile

Automates a pile

Introduction

Automate fini : defini principalement a partir de sa fonction de transition

Automate a pile : enrichi la fonction de transition par

1. un nouvel alphabet fini qui contient les symboles qui peuvent etre empileset depiles

2. des transitions conditionnees par le symbole en haut de la pile3. lors d’une transition dans l’automate, il est possible d’empiler ou de depiler

un symbole dans la pile

5 / 62Theorie des langages

N

Page 6: Automates a Pile

Automates a pile

Automate a pile : un exemple introduc-tif

Soit l’automate suivant qui reconnaıt le langage {anbm|n,m > 0}

0 1 2a b

a b

Cet automate ne peut pas reconnaitre le langage {anbm|n = m > 0} :impossible de compter le nombre de a vus.

⇒ Automate a pile :

Empiler un symbole (T ) a chaque passage dans la boucle de l’etat 1Depiler un symbole a chaque passage dans la boucle de l’etat 2Calcul reussi : pile vide

6 / 62Theorie des langages

N

Page 7: Automates a Pile

Automates a pile

Automate a pile : un exemple introduc-tif

0 1 2a b

a b

Trace du calcul pour w = aaabbb

Entree Etat Pile

aaabbb 0 Pile videaabbb 1 Pile videabbb 1 Tbbb 1 TTbb 2 TTb 2 Tε 2 Pile vide

7 / 62Theorie des langages

N

Page 8: Automates a Pile

Automates a pile

Automate a pile : un exemple introduc-tif

0 1 2a b

a b

Trace du calcul pour w = aaabbb

Entree Etat Pileaaabbb 0 Pile vide

aabbb 1 Pile videabbb 1 Tbbb 1 TTbb 2 TTb 2 Tε 2 Pile vide

7 / 62Theorie des langages

N

Page 9: Automates a Pile

Automates a pile

Automate a pile : un exemple introduc-tif

0 1 2a b

a b

Trace du calcul pour w = aaabbb

Entree Etat Pileaaabbb 0 Pile videaabbb 1 Pile vide

abbb 1 Tbbb 1 TTbb 2 TTb 2 Tε 2 Pile vide

7 / 62Theorie des langages

N

Page 10: Automates a Pile

Automates a pile

Automate a pile : un exemple introduc-tif

0 1 2a b

a b

Trace du calcul pour w = aaabbb

Entree Etat Pileaaabbb 0 Pile videaabbb 1 Pile videabbb 1 T

bbb 1 TTbb 2 TTb 2 Tε 2 Pile vide

7 / 62Theorie des langages

N

Page 11: Automates a Pile

Automates a pile

Automate a pile : un exemple introduc-tif

0 1 2a b

a b

Trace du calcul pour w = aaabbb

Entree Etat Pileaaabbb 0 Pile videaabbb 1 Pile videabbb 1 Tbbb 1 TT

bb 2 TTb 2 Tε 2 Pile vide

7 / 62Theorie des langages

N

Page 12: Automates a Pile

Automates a pile

Automate a pile : un exemple introduc-tif

0 1 2a b

a b

Trace du calcul pour w = aaabbb

Entree Etat Pileaaabbb 0 Pile videaabbb 1 Pile videabbb 1 Tbbb 1 TTbb 2 TT

b 2 Tε 2 Pile vide

7 / 62Theorie des langages

N

Page 13: Automates a Pile

Automates a pile

Automate a pile : un exemple introduc-tif

0 1 2a b

a b

Trace du calcul pour w = aaabbb

Entree Etat Pileaaabbb 0 Pile videaabbb 1 Pile videabbb 1 Tbbb 1 TTbb 2 TTb 2 T

ε 2 Pile vide

7 / 62Theorie des langages

N

Page 14: Automates a Pile

Automates a pile

Automate a pile : un exemple introduc-tif

0 1 2a b

a b

Trace du calcul pour w = aaabbb

Entree Etat Pileaaabbb 0 Pile videaabbb 1 Pile videabbb 1 Tbbb 1 TTbb 2 TTb 2 Tε 2 Pile vide

7 / 62Theorie des langages

N

Page 15: Automates a Pile

Automates a pile

Automate a pile

De maniere imagee, un automate a pile est compose de trois unites :

Une unite centrale, dont la configuration est symbolisee par un etat

Un canal de lecture qui contient un mot a analyser

Un canal de lecture-ecriture qui est organise en pile, et qui sert a contenirde l’information auxiliaire, en quantite non bornee.

8 / 62Theorie des langages

N

Page 16: Automates a Pile

Automates a pile

Automates a pile

IntroductionRappels sur les pilesAutomates a pile : definitionAutomates a pile : configurationsLes criteres d’acceptationAutomates a pile deterministesAutomates a pile et langages algebriquesGrammaire algebrique vers automate a pileAutomate a pile vers grammaire algebriqueCloture des langages algebriques

9 / 62Theorie des langages

N

Page 17: Automates a Pile

Automates a pile

Rappels sur les piles

Pile : Type P

LIFO (Last In First Out)

constante pilevide ∈ Pempiler : E × P → Pdepiler : P \ {pilevide} → Psommet : P \ {pilevide} → Eest vide : P → IB

↘ ↗ep...e2

e1

10 / 62Theorie des langages

N

Page 18: Automates a Pile

Automates a pile

Piles et automates a pile

On introduit un alphabet de pile Γ

Une pile p est un mot p ∈ Γ∗

Operations sur les piles :

Tester si la pile est vide : determiner si p = εEmpiler un element x ∈ Γ dans une pile p ∈ Γ∗ : p → xpSi la pile est non vide, elle est de la forme xp, ou x ∈ Γ et p ∈ Γ∗. Depilerl’element x : xp → pOn peut etendre ces notions a des mots. Ainsi, empiler un motu = u1u2 . . . ul revient a empiler successivement les lettres u1, . . . , ul ∈ Γ.Partant de la pile p ∈ Γ∗, on obtient

p → u1p → u2u1p → . . .→ ul . . . u2u1p = uRp

Attention : On obtient le miroir du mot u dans la pile

11 / 62Theorie des langages

N

Page 19: Automates a Pile

Automates a pile

Automates a pile

IntroductionRappels sur les pilesAutomates a pile : definitionAutomates a pile : configurationsLes criteres d’acceptationAutomates a pile deterministesAutomates a pile et langages algebriquesGrammaire algebrique vers automate a pileAutomate a pile vers grammaire algebriqueCloture des langages algebriques

12 / 62Theorie des langages

N

Page 20: Automates a Pile

Automates a pile

Automate a pile

Automate a pile

Un automate a pile non deterministe (en anglais pushdown automa-ton) est un septuplet M = (Σ, Γ,Z0,Q, q0,F , δ), ou

Σ est l’alphabet d’entree

Γ est l’alphabet de pile

Z0 ∈ Γ est le symbole initial de la pile

Q est un ensemble fini d’etats

q0 ∈ Q est l’etat initial de l’automate

F ⊆ Q est l’ensemble des etat finaux (on peut avoir F = ∅)δ est une fonction de Q×(Σ ∪ {ε})×(Γ ∪ {ε}) vers l’ensemble desparties de Q×(Γ ∪ {ε})

13 / 62Theorie des langages

N

Page 21: Automates a Pile

Automates a pile

Automate a pile

Automate a pile : automate fini non-deterministe, a la difference pres quela fonction de transition δ comporte trois arguments

l’etat courantle symbole d’entree courantle symbole courant en haut de la pile, appartenant a l’alphabet de pile.

Si (r ,T )∈ δ(q, a,Y ) (on peut ecrire aussi (q, a,Y , r ,T ) ∈ δ ou(q, a,Y )→ (r ,T )), alors l’utilisation de cette transition conduira a :

depiler YSi Y = ε la transition a lieu independamment du symbole en haut de pile, quireste inchangee

empiler TSi T = ε, aucun symbole n’est empile

lire le symbole atransiter dans l’etat r

Automate fini “traditionnel” est un automate a pile particulier, defini surun alphabet de pile vide (Γ = ∅) et dont toutes les transitions laissent lapile inchangee.

14 / 62Theorie des langages

N

Page 22: Automates a Pile

Automates a pile

Automate a pile

Transition (r ,T )∈ δ(q, a,Y )

depiler YSi Y = ε la transition a lieu independamment du symbole en haut de pile, quireste inchangee

empiler TSi T = ε, aucun symbole n’est empile

lire le symbole atransiter dans l’etat r

q ra,Y /T

15 / 62Theorie des langages

N

Page 23: Automates a Pile

Automates a pile

Automate a pile : exemple

Soit l’automate a pile suivant qui reconnaıt le langage {anbn|n > 0}

0 1 2a, ε/ε b, ε/ε

a, ε/T b, T/ε

16 / 62Theorie des langages

N

Page 24: Automates a Pile

Automates a pile

Automate a pile : exemple

Soit l’automate a pile suivant qui reconnaıt le langage {w ∈ Σ∗|w est unpalindrome}

0 1a, ε/ε

b, ε/ε

ε, ε/ε

a, ε/Ta

b, ε/Tb

a, Ta/ε

b, Tb/ε

17 / 62Theorie des langages

N

Page 25: Automates a Pile

Automates a pile

Automates a pile

IntroductionRappels sur les pilesAutomates a pile : definitionAutomates a pile : configurationsLes criteres d’acceptationAutomates a pile deterministesAutomates a pile et langages algebriquesGrammaire algebrique vers automate a pileAutomate a pile vers grammaire algebriqueCloture des langages algebriques

18 / 62Theorie des langages

N

Page 26: Automates a Pile

Automates a pile

Execution et configurations

Une execution est une suite de configurations.

Pour un automate fini, une configuration est :

mot restant a lire m ∈ Σ∗

etat courant q ∈ QExemple : (abbb, q)

Pour un automate a pile, une configuration est definie par :

le mot restant a lire m ∈ Σ∗

l’etat courant q ∈ Qle contenu de la pile, l’element le plus a gauche etant le sommet de pileExemple : (abbb, q,TATBTBZ0)

19 / 62Theorie des langages

N

Page 27: Automates a Pile

Automates a pile

Configurations

Configuration

La pile contient, a tout moment, un mot h sur Γ. L’automate se trouvedans un etat q, et doit lire encore le mot m ∈ Σ∗

Le couple (m, q, h) est appele une configuration de l’automate.

L’ensemble des configurations est Σ∗ × Q × Γ∗.

La configuration initiale (m, q0,Z0) ∈ Σ∗ × Q × Γ est formee del’etat initial et du symbole initial de la pile

Un “mouvement” de l’automate represente le passage d’une configurationa une autre.

20 / 62Theorie des langages

N

Page 28: Automates a Pile

Automates a pile

Configurations

Configuration

La pile contient, a tout moment, un mot h sur Γ. L’automate se trouvedans un etat q, et doit lire encore le mot m ∈ Σ∗

Le couple (m, q, h) est appele une configuration de l’automate.

L’ensemble des configurations est Σ∗ × Q × Γ∗.

La configuration initiale (m, q0,Z0) ∈ Σ∗ × Q × Γ est formee del’etat initial et du symbole initial de la pile

Un “mouvement” de l’automate represente le passage d’une configurationa une autre.

20 / 62Theorie des langages

N

Page 29: Automates a Pile

Automates a pile

Passage d’une configuration a une autre

Le passage d’une configuration c1 a une configuration c2 dans unautomate M s’ecrit :

c1 `M c2

On note `∗M la cloture reflexive et transitive de `MIl y a deux modes de transition pour changer de configuration :

Sur une Σ-transitionSur une ε-transition

21 / 62Theorie des langages

N

Page 30: Automates a Pile

Automates a pile

Σ-transition : exemple

Transition (q1, b,TA)→ (q1,TB)

Configuration (bba, q1,TAZ0)

On aura alors :(bba, q1,TAZ0) `M (ba, q1,TBZ0)

22 / 62Theorie des langages

N

Page 31: Automates a Pile

Automates a pile

ε-transition : exemple

Transition (q1, ε,TA)→ (q2,TB)

Configuration (bba, q1,TAZ0)

On aura alors :(bba, q1,TAZ0) `M (bba, q2,TBZ0)

On ne touche pas a la tete de lecture

23 / 62Theorie des langages

N

Page 32: Automates a Pile

Automates a pile

Transitions : exemple

Soit l’automate a pile suivant qui reconnaıt le langage {anbn|n > 0}

0 1 2a, ε/ε b, ε/ε

a, ε/T b, T/ε

(aabb, 0,Z0)

24 / 62Theorie des langages

N

Page 33: Automates a Pile

Automates a pile

Transitions : exemple

Soit l’automate a pile suivant qui reconnaıt le langage {anbn|n > 0}

0 1 2a, ε/ε b, ε/ε

a, ε/T b, T/ε

(aabb, 0,Z0) `M (abb, 1,Z0)

24 / 62Theorie des langages

N

Page 34: Automates a Pile

Automates a pile

Transitions : exemple

Soit l’automate a pile suivant qui reconnaıt le langage {anbn|n > 0}

0 1 2a, ε/ε b, ε/ε

a, ε/T b, T/ε

(aabb, 0,Z0) `M (abb, 1,Z0)`M (bb, 1,TZ0)

24 / 62Theorie des langages

N

Page 35: Automates a Pile

Automates a pile

Transitions : exemple

Soit l’automate a pile suivant qui reconnaıt le langage {anbn|n > 0}

0 1 2a, ε/ε b, ε/ε

a, ε/T b, T/ε

(aabb, 0,Z0) `M (abb, 1,Z0)`M (bb, 1,TZ0)`M (b, 2,TZ0)

24 / 62Theorie des langages

N

Page 36: Automates a Pile

Automates a pile

Transitions : exemple

Soit l’automate a pile suivant qui reconnaıt le langage {anbn|n > 0}

0 1 2a, ε/ε b, ε/ε

a, ε/T b, T/ε

(aabb, 0,Z0) `M (abb, 1,Z0)`M (bb, 1,TZ0)`M (b, 2,TZ0)`M (ε, 2,Z0)

24 / 62Theorie des langages

N

Page 37: Automates a Pile

Automates a pile

Transitions : exempleSoit l’automate a pile suivant qui reconnaıt le langage {w ∈ Σ∗|w est unpalindrome}

0 1a, ε/ε

b, ε/ε

ε, ε/ε

a, ε/Ta

b, ε/Tb

a, Ta/ε

b, Tb/ε

(baaab, 0,Z0)

25 / 62Theorie des langages

N

Page 38: Automates a Pile

Automates a pile

Transitions : exempleSoit l’automate a pile suivant qui reconnaıt le langage {w ∈ Σ∗|w est unpalindrome}

0 1a, ε/ε

b, ε/ε

ε, ε/ε

a, ε/Ta

b, ε/Tb

a, Ta/ε

b, Tb/ε

(baaab, 0,Z0) `M (aaab, 0,TbZ0)

25 / 62Theorie des langages

N

Page 39: Automates a Pile

Automates a pile

Transitions : exempleSoit l’automate a pile suivant qui reconnaıt le langage {w ∈ Σ∗|w est unpalindrome}

0 1a, ε/ε

b, ε/ε

ε, ε/ε

a, ε/Ta

b, ε/Tb

a, Ta/ε

b, Tb/ε

(baaab, 0,Z0) `M (aaab, 0,TbZ0)`M (aab, 0,TaTbZ0)

25 / 62Theorie des langages

N

Page 40: Automates a Pile

Automates a pile

Transitions : exempleSoit l’automate a pile suivant qui reconnaıt le langage {w ∈ Σ∗|w est unpalindrome}

0 1a, ε/ε

b, ε/ε

ε, ε/ε

a, ε/Ta

b, ε/Tb

a, Ta/ε

b, Tb/ε

(baaab, 0,Z0) `M (aaab, 0,TbZ0)`M (aab, 0,TaTbZ0)`M (ab, 1,TaTbZ0)

25 / 62Theorie des langages

N

Page 41: Automates a Pile

Automates a pile

Transitions : exempleSoit l’automate a pile suivant qui reconnaıt le langage {w ∈ Σ∗|w est unpalindrome}

0 1a, ε/ε

b, ε/ε

ε, ε/ε

a, ε/Ta

b, ε/Tb

a, Ta/ε

b, Tb/ε

(baaab, 0,Z0) `M (aaab, 0,TbZ0)`M (aab, 0,TaTbZ0)`M (ab, 1,TaTbZ0)`M (b, 1,TbZ0)

25 / 62Theorie des langages

N

Page 42: Automates a Pile

Automates a pile

Transitions : exempleSoit l’automate a pile suivant qui reconnaıt le langage {w ∈ Σ∗|w est unpalindrome}

0 1a, ε/ε

b, ε/ε

ε, ε/ε

a, ε/Ta

b, ε/Tb

a, Ta/ε

b, Tb/ε

(baaab, 0,Z0) `M (aaab, 0,TbZ0)`M (aab, 0,TaTbZ0)`M (ab, 1,TaTbZ0)`M (b, 1,TbZ0)`M (ε, 1,Z0)

25 / 62Theorie des langages

N

Page 43: Automates a Pile

Automates a pile

Automates a pile

IntroductionRappels sur les pilesAutomates a pile : definitionAutomates a pile : configurationsLes criteres d’acceptationAutomates a pile deterministesAutomates a pile et langages algebriquesGrammaire algebrique vers automate a pileAutomate a pile vers grammaire algebriqueCloture des langages algebriques

26 / 62Theorie des langages

N

Page 44: Automates a Pile

Automates a pile

Les criteres d’acceptation

Dans nos exemples, on accepte un mot si le ruban vide, on est sur l’etatfinal et la pile vide

Ce sont des cas particuliers

Il y a deux criteres d’acceptation possibles :

Acceptation par etat final (quelle que soit la pile quand on s’arrete)Acceptation par pile vide (quel que soit l’etat dans lequel on s’arrete)

Mais le ruban doit toujours etre vide!

Ces deux criteres sont equivalents

27 / 62Theorie des langages

N

Page 45: Automates a Pile

Automates a pile

Acceptation par etat final

Acceptation par etat final

Un mot m ∈ Σ∗ est accepte par etat final par un automate a pileM = (Σ, Γ,Z0,Q, q0,F , δ) si pour la configuration (m, q0,Z0), il existeun etat qf ∈ F et un mot z ∈ Γ∗ tel que

(m, q0,Z0) `∗M (ε, qf , z)

Langage accepte par etat final

Le langage accepte par etat final par un automate a pile estl’ensemble des mots acceptes par cet automate.

LF (M) = {m ∈ Σ∗|(m, q0,Z0) `∗M (ε, qf , z)}

28 / 62Theorie des langages

N

Page 46: Automates a Pile

Automates a pile

Acceptation par etat final

Acceptation par etat final

Un mot m ∈ Σ∗ est accepte par etat final par un automate a pileM = (Σ, Γ,Z0,Q, q0,F , δ) si pour la configuration (m, q0,Z0), il existeun etat qf ∈ F et un mot z ∈ Γ∗ tel que

(m, q0,Z0) `∗M (ε, qf , z)

Langage accepte par etat final

Le langage accepte par etat final par un automate a pile estl’ensemble des mots acceptes par cet automate.

LF (M) = {m ∈ Σ∗|(m, q0,Z0) `∗M (ε, qf , z)}

28 / 62Theorie des langages

N

Page 47: Automates a Pile

Automates a pile

Acceptation par etat final : exempleSoit l’automate a pile suivant qui reconnaıt le langage {anbn|n ≥ 0}

0

1

F

ε, Z0/Z0

a, ε/T

b, T/ε

ε, Z0/Z0

b, T/ε

29 / 62Theorie des langages

N

Page 48: Automates a Pile

Automates a pile

Acceptation par pile vide

Acceptation par pile vide

Un mot m ∈ Σ∗ est accepte par pile vide par un automate a pileM = (Σ, Γ,Z0,Q, q0,F , δ) si pour la configuration (m, q0,Z0), il existeun etat q ∈ Q tel que

(m, q0,Z0) `∗M (ε, q, ε)

Langage accepte par pile vide

Le langage accepte par pile vide par un automate a pile estl’ensemble des mots acceptes par cet automate.

LV (M) = {m ∈ Σ∗|(m, q0,Z0) `∗M (ε, q, ε)}

30 / 62Theorie des langages

N

Page 49: Automates a Pile

Automates a pile

Acceptation par pile vide

Acceptation par pile vide

Un mot m ∈ Σ∗ est accepte par pile vide par un automate a pileM = (Σ, Γ,Z0,Q, q0,F , δ) si pour la configuration (m, q0,Z0), il existeun etat q ∈ Q tel que

(m, q0,Z0) `∗M (ε, q, ε)

Langage accepte par pile vide

Le langage accepte par pile vide par un automate a pile estl’ensemble des mots acceptes par cet automate.

LV (M) = {m ∈ Σ∗|(m, q0,Z0) `∗M (ε, q, ε)}

30 / 62Theorie des langages

N

Page 50: Automates a Pile

Automates a pile

Acceptation par pile vide : exemple

Soit l’automate a pile suivant qui reconnaıt le langage {anbn|n ≥ 0}

0 1

ε, Z0/ε

a, Z0/T

b, T/ε

b, T/ε

a, T/TT

31 / 62Theorie des langages

N

Page 51: Automates a Pile

Automates a pile

Criteres d’acceptation

Les deux criteres d’acceptation (par etat final et par pile vide) sontequivalents

Theoreme

Un langage est accepte par un automate a pile avec le critered’acceptation sur pile vide si et seulement si il est accepte par unautomate a pile avec acceptation par etat final.

⇒ Chaque transition dans laquelle Z0 est depile est remplacee par unetransition vers un nouvel etat final

⇐ Apres avoir atteint un etat final, on vide entierement la pile

32 / 62Theorie des langages

N

Page 52: Automates a Pile

Automates a pile

Criteres d’acceptation

Les deux criteres d’acceptation (par etat final et par pile vide) sontequivalents

Theoreme

Un langage est accepte par un automate a pile avec le critered’acceptation sur pile vide si et seulement si il est accepte par unautomate a pile avec acceptation par etat final.

⇒ Chaque transition dans laquelle Z0 est depile est remplacee par unetransition vers un nouvel etat final

⇐ Apres avoir atteint un etat final, on vide entierement la pile

32 / 62Theorie des langages

N

Page 53: Automates a Pile

Automates a pile

Automates a pile

IntroductionRappels sur les pilesAutomates a pile : definitionAutomates a pile : configurationsLes criteres d’acceptationAutomates a pile deterministesAutomates a pile et langages algebriquesGrammaire algebrique vers automate a pileAutomate a pile vers grammaire algebriqueCloture des langages algebriques

33 / 62Theorie des langages

N

Page 54: Automates a Pile

Automates a pile

Automates deterministes

Les automates a pile que nous avons defini jusqu’a maintenant sontindeterministes

Un mot est accepte s’il existe au moins une suite de configurations quiconduit a l’acceptationMais il peut y en avoir plusieursEt il peut il y avoir plusieurs suites de configuration qui menent a l’echec

⇒ Automate a pile deterministe?

34 / 62Theorie des langages

N

Page 55: Automates a Pile

Automates a pile

Automates deterministes

Les automates a pile M est deterministe a 2 conditions :

Premiere condition

pour un etat q donnepour un symbole d’entree x donnepour un sommet de pile z donne

il existe au plus une transition partant de (q, x , z)

Seconde condition

pour un etat q donnepour un sommet de pile z donne

s’il existe une transition partant de (q, ε, z), elle est unique et pour toutelettre x , il n’en existe pas partant de (q, x , z).

⇒ Dans une configuration donnee, on ne peut pas avoir le choix sur latransition a appliquer

35 / 62Theorie des langages

N

Page 56: Automates a Pile

Automates a pile

Automates a pile

IntroductionRappels sur les pilesAutomates a pile : definitionAutomates a pile : configurationsLes criteres d’acceptationAutomates a pile deterministesAutomates a pile et langages algebriquesGrammaire algebrique vers automate a pileAutomate a pile vers grammaire algebriqueCloture des langages algebriques

36 / 62Theorie des langages

N

Page 57: Automates a Pile

Automates a pile

Automates a pile et langages al-gebriques (hors-contextes)

Theoreme

Un langage est algebrique si et seulement si il est reconnu par unautomate a pile

Theoreme

Tout langage algebrique n’est pas reconnu par un automate a piledeterministe

37 / 62Theorie des langages

N

Page 58: Automates a Pile

Automates a pile

Automates a pile et langages al-gebriques (hors-contextes)

Theoreme

Un langage est algebrique si et seulement si il est reconnu par unautomate a pile

Theoreme

Tout langage algebrique n’est pas reconnu par un automate a piledeterministe

37 / 62Theorie des langages

N

Page 59: Automates a Pile

Automates a pile

Automates a pile et langages al-gebriques (hors-contextes)

Langages algebriquesdeterministes

Langages algebriquesnon deterministes

38 / 62Theorie des langages

N

Page 60: Automates a Pile

Automates a pile

Langage algebrique deterministe

Langage algebrique deterministe

Un langage algebrique L est deterministe s’il existe un automate a pileM acceptant par etat final deterministe tel que LF (M) = L

Par exemple, {m ∈ (a + b)∗|m est un palindrome} est un langagealgebrique non deterministe.Intuitivement, on ne sait pas deviner ou est le milieu du mot.{m1cm2|m1m2 ∈ (a + b)∗ est un palindrome} est un langage algebriquedeterministe.

39 / 62Theorie des langages

N

Page 61: Automates a Pile

Automates a pile

Langage algebrique deterministe

Langage algebrique deterministe

Un langage algebrique L est deterministe s’il existe un automate a pileM acceptant par etat final deterministe tel que LF (M) = L

Par exemple, {m ∈ (a + b)∗|m est un palindrome} est un langagealgebrique non deterministe.Intuitivement, on ne sait pas deviner ou est le milieu du mot.

{m1cm2|m1m2 ∈ (a + b)∗ est un palindrome} est un langage algebriquedeterministe.

39 / 62Theorie des langages

N

Page 62: Automates a Pile

Automates a pile

Langage algebrique deterministe

Langage algebrique deterministe

Un langage algebrique L est deterministe s’il existe un automate a pileM acceptant par etat final deterministe tel que LF (M) = L

Par exemple, {m ∈ (a + b)∗|m est un palindrome} est un langagealgebrique non deterministe.Intuitivement, on ne sait pas deviner ou est le milieu du mot.{m1cm2|m1m2 ∈ (a + b)∗ est un palindrome} est un langage algebriquedeterministe.

39 / 62Theorie des langages

N

Page 63: Automates a Pile

Automates a pile

Automates a pile et grammaires al-gebriques

Les automates a pile sont necessaires pour reconnaıtre les langagesalgebriques

Mais ils ne sont pas si faciles a concevoir

Le lien entre derivations d’une grammaire et execution d’un automate apile n’est pas evident a voir

? Est-il possible de deriver automatiquement un automate a pile a partird’une grammaire algebrique?

40 / 62Theorie des langages

N

Page 64: Automates a Pile

Automates a pile

Automates a pile

IntroductionRappels sur les pilesAutomates a pile : definitionAutomates a pile : configurationsLes criteres d’acceptationAutomates a pile deterministesAutomates a pile et langages algebriquesGrammaire algebrique vers automate a pileAutomate a pile vers grammaire algebriqueCloture des langages algebriques

41 / 62Theorie des langages

N

Page 65: Automates a Pile

Automates a pile

Rappel : Forme normale de Greibach

Forme normale de Greibach

Une grammaire algebrique G = 〈V ,Σ,P,S〉 est sous la forme normalede Greibach si toute production est de la forme :

A → aA1 . . .An

A → a

avec A,Ai ∈ V \ Σ, et a ∈ Σ

42 / 62Theorie des langages

N

Page 66: Automates a Pile

Automates a pile

Grammaire algebrique vers automate apile

On presente un algorithme de passage d’une grammaire algebrique sousforme normale de Greibach vers un automate a pile non deterministe

Idee :

Empiler l’axiomeA chaque symbole lu de la chaıne d’entree, remplacer la partie gauche de laproduction concernee par le reste de la partie droite

43 / 62Theorie des langages

N

Page 67: Automates a Pile

Automates a pile

Grammaire algebrique vers automate apile

Grammaire algebrique vers automate a pile

Soit L = L \ ε le langage engendre par G = 〈V ,Σ,P,S〉 sous formenormale de Greibach.On construit l’automate a pile M = (Σ, Γ,S ,Q, q0,F , δ) tel que

Γ = V \ Σ

Q = {q0}F = ∅ (reconnaissance sur pile vide)

S le symbole initial de la pile

On construit δ iterativement de la facon suivante :

1. δ ← ∅2. Pour toute regle A→ aA1A2 . . .An,

δ ← δ ∪ {(q0, a,A)→ (q0,A1A2 . . .An)}On lit a, on depile A et on empile A1A2 . . .An (A1 est en sommet de lapile)

44 / 62Theorie des langages

N

Page 68: Automates a Pile

Automates a pile

Grammaire algebrique vers automate apile : 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, q0,F , δ) tel que

Γ = {S ,B}Q = {q0}, F = ∅δ contient

(q0, a, S)→ (q0,SB)(q0, a, S)→ (q0,B)(q0, b,B)→ (q0, ε)

45 / 62Theorie des langages

N

Page 69: Automates a Pile

Automates a pile

Grammaire algebrique vers automate apile : 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, q0,F , δ) tel que

Γ = {S ,B}Q = {q0}, F = ∅δ contient

(q0, a, S)→ (q0,SB)(q0, a, S)→ (q0,B)(q0, b,B)→ (q0, ε)

45 / 62Theorie des langages

N

Page 70: Automates a Pile

Automates a pile

Grammaire algebrique vers automate apile : exemple

Soit G = 〈V ,Σ,P,S〉 avec V = {a,+, ∗, (, ),S ,A,B,C},Σ = {a, b,+, ∗, (, )}

S → a S → (SCS → aAS A → +S → (SCAS B → ∗S → aBS C → )S → (SCBS

On construit l’automate M = (Σ, Γ,S ,Q, q0,F , δ) tel queΓ = {S ,A,B,C}, Q = {q0}, F = ∅ et δ contient

(q0, a,S) → (q0, ε) (q0, (,S) → (q0,SC )(q0, a,S) → (q0,AS) (q0,+,A) → (q0, ε)(q0, (,S) → (q0,SCAS) (q0, ∗,B) → (q0, ε)(q0, a,S) → (q0,BS) (q0, ),C ) → (q0, ε)(q0, (,S) → (q0,SCBS)

46 / 62Theorie des langages

N

Page 71: Automates a Pile

Automates a pile

Grammaire algebrique vers automate apile : exemple

Soit G = 〈V ,Σ,P,S〉 avec V = {a,+, ∗, (, ),S ,A,B,C},Σ = {a, b,+, ∗, (, )}

S → a S → (SCS → aAS A → +S → (SCAS B → ∗S → aBS C → )S → (SCBS

On construit l’automate M = (Σ, Γ,S ,Q, q0,F , δ) tel queΓ = {S ,A,B,C}, Q = {q0}, F = ∅ et δ contient

(q0, a,S) → (q0, ε) (q0, (,S) → (q0,SC )(q0, a,S) → (q0,AS) (q0,+,A) → (q0, ε)(q0, (,S) → (q0,SCAS) (q0, ∗,B) → (q0, ε)(q0, a,S) → (q0,BS) (q0, ),C ) → (q0, ε)(q0, (,S) → (q0,SCBS)

46 / 62Theorie des langages

N

Page 72: Automates a Pile

Automates a pile

Automates a pile

IntroductionRappels sur les pilesAutomates a pile : definitionAutomates a pile : configurationsLes criteres d’acceptationAutomates a pile deterministesAutomates a pile et langages algebriquesGrammaire algebrique vers automate a pileAutomate a pile vers grammaire algebriqueCloture des langages algebriques

47 / 62Theorie des langages

N

Page 73: Automates a Pile

Automates a pile

Automate a pile vers grammaire al-gebrique

On presente un algorithme de passage d’un automate a pile a unegrammaire algebrique

A tout couple (p, q) d’etats de l’automate, et a tout X de la pile, onassocie un non terminal de la forme 〈p,X , q〉On associe toutes les lectures possibles dans l’automate pour obtenir lagrammaire sans savoir a priori lesquelles vont vider la pile

A la fin, on nettoie la grammaire obtenue

48 / 62Theorie des langages

N

Page 74: Automates a Pile

Automates a pile

Automate a pile vers grammaire al-gebrique : algorithme

Soit M = (Σ, Γ,Z0,Q, q0,F , δ). On veut construire G = 〈V ,Σ,P,S〉equivalente.

1. V = {〈q,X , p〉|p et q ∈ Q, X ∈ Γ} ∪ {S}2. P ← ∅3. Pour tout etat q ∈ Q, P ← P ∪ {S → 〈q0,Z0, 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,Bm . . .B1) de δ faire

Pour tout m-uplet d’etats q1, . . . , qm de Q faireP ← P ∪ {〈q,X , qm〉 → a〈p,Bm, q1〉〈q1,Bm−1, q2〉 . . . 〈qm−1,B1, qm〉}

49 / 62Theorie des langages

N

Page 75: Automates a Pile

Automates a pile

Automate a pile vers grammaire al-gebrique : exemple

0 1

ε, Z0/ε

a, Z0/T

b, T/ε

b, T/ε

a, T/TT

50 / 62Theorie des langages

N

Page 76: Automates a Pile

Automates a pile

Automate a pile vers grammaire al-gebrique : exemple

0 1

ε, Z0/ε

a, Z0/T

b, T/ε

b, T/ε

a, T/TT

1. V = {〈q,X , p〉|p et q ∈ Q, X ∈ Γ} ∪ {S}

V = {S , 〈q0,Z0, q0〉, 〈q0,Z0, q1〉, 〈q1,Z0, q0〉, 〈q1,Z0, q1〉,〈q0,T , q0〉, 〈q0,T , q1〉, 〈q1,T , q0〉, 〈q1,T , q1〉}

50 / 62Theorie des langages

N

Page 77: Automates a Pile

Automates a pile

Automate a pile vers grammaire al-gebrique : exemple

0 1

ε, Z0/ε

a, Z0/T

b, T/ε

b, T/ε

a, T/TT

2. P ← ∅3. Pour tout etat q ∈ Q, P ← P ∪ {S → 〈q0,Z0, q〉}

P recoitS → 〈q0,Z0, q0〉S → 〈q0,Z0, q1〉

50 / 62Theorie des langages

N

Page 78: Automates a Pile

Automates a pile

Automate a pile vers grammaire al-gebrique : exemple

0 1

ε, Z0/ε

a, Z0/T

b, T/ε

b, T/ε

a, T/TT

4. Pour toute transition (q, a,X )→ (p, ε) de δ faireP ← P ∪ {〈q,X , p〉 → a}P recoit

〈q0,Z0, q0〉 → ε〈q0,T , q1〉 → b〈q1,T , q1〉 → b

50 / 62Theorie des langages

N

Page 79: Automates a Pile

Automates a pile

Automate a pile vers grammaire al-gebrique : exemple

0 1

ε, Z0/ε

a, Z0/T

b, T/ε

b, T/ε

a, T/TT

5. Pour toute transition (q, a,X )→ (p,Bm . . .B1) de δ fairePour tout m-uplet d’etats q1, . . . , qm de Q faire

P ← P ∪ {〈q,X , qm〉 → a〈p,B1, q1〉〈q1,B2, q2〉 . . . 〈qm−1,Bm, qm〉}

50 / 62Theorie des langages

N

Page 80: Automates a Pile

Automates a pile

Automate a pile vers grammaire al-gebrique : exemple

0 1

ε, Z0/ε

a, Z0/T

b, T/ε

b, T/ε

a, T/TT

5. Pour toute transition (q, a,X )→ (p,Bm . . .B1) de δ fairePour tout m-uplet d’etats q1, . . . , qm de Q faire

P ← P ∪ {〈q,X , qm〉 → a〈p,B1, q1〉〈q1,B2, q2〉 . . . 〈qm−1,Bm, qm〉}

〈q0,Z0, q0〉 → a〈q0,T , q0〉〈q0,Z0, q1〉 → a〈q0,T , q1〉

50 / 62Theorie des langages

N

Page 81: Automates a Pile

Automates a pile

Automate a pile vers grammaire al-gebrique : exemple

0 1

ε, Z0/ε

a, Z0/T

b, T/ε

b, T/ε

a, T/TT

5. Pour toute transition (q, a,X )→ (p,Bm . . .B1) de δ fairePour tout m-uplet d’etats q1, . . . , qm de Q faire

P ← P ∪ {〈q,X , qm〉 → a〈p,B1, q1〉〈q1,B2, q2〉 . . . 〈qm−1,Bm, qm〉}

〈q0,T , q0〉 → a〈q0,T , q0〉〈q0,T , q0〉〈q0,T , q0〉 → a〈q0,T , q1〉〈q1,T , q0〉〈q0,T , q1〉 → a〈q0,T , q0〉〈q0,T , q1〉〈q0,T , q1〉 → a〈q0,T , q1〉〈q1,T , q1〉

50 / 62Theorie des langages

N

Page 82: Automates a Pile

Automates a pile

Automate a pile vers grammaire al-gebrique : exemple

On recapitule :

V = {S , 〈q0,Z0, q0〉, 〈q0,Z0, q1〉, 〈q1,Z0, q0〉, 〈q1,Z0, q1〉,〈q0,T , q0〉, 〈q0,T , q1〉, 〈q1,T , q0〉, 〈q1,T , q1〉}

S → 〈q0,Z0, q0〉S → 〈q0,Z0, q1〉〈q0,Z0, q0〉 → ε〈q0,T , q1〉 → b〈q1,T , q1〉 → b〈q0,Z0, q0〉 → a〈q0,T , q0〉〈q0,Z0, q1〉 → a〈q0,T , q1〉〈q0,T , q0〉 → a〈q0,T , q0〉〈q0,T , q0〉〈q0,T , q0〉 → a〈q0,T , q1〉〈q1,T , q0〉〈q0,T , q1〉 → a〈q0,T , q0〉〈q0,T , q1〉〈q0,T , q1〉 → a〈q0,T , q1〉〈q1,T , q1〉

51 / 62Theorie des langages

N

Page 83: Automates a Pile

Automates a pile

Automate a pile vers grammaire al-gebrique : exemple

On renomme :

V = {S , 〈q0,Z0, q0〉, 〈q0,Z0, q1〉, 〈q1,Z0, q0〉, 〈q1,Z0, q1〉,〈q0,T , q0〉, 〈q0,T , q1〉, 〈q1,T , q0〉, 〈q1,T , q1〉}

S → 〈q0,Z0, q0〉S → 〈q0,Z0, q1〉〈q0,Z0, q0〉 → ε〈q0,T , q1〉 → b〈q1,T , q1〉 → b〈q0,Z0, q0〉 → a〈q0,T , q0〉〈q0,Z0, q1〉 → a〈q0,T , q1〉〈q0,T , q0〉 → a〈q0,T , q0〉〈q0,T , q0〉〈q0,T , q0〉 → a〈q0,T , q1〉〈q1,T , q0〉〈q0,T , q1〉 → a〈q0,T , q0〉〈q0,T , q1〉〈q0,T , q1〉 → a〈q0,T , q1〉〈q1,T , q1〉

52 / 62Theorie des langages

N

Page 84: Automates a Pile

Automates a pile

Automate a pile vers grammaire al-gebrique : exemple

On renomme :

V = {S ,A, 〈q0,Z0, q1〉, 〈q1,Z0, q0〉, 〈q1,Z0, q1〉,〈q0,T , q0〉, 〈q0,T , q1〉, 〈q1,T , q0〉, 〈q1,T , q1〉}

S → AS → 〈q0,Z0, q1〉A → ε〈q0,T , q1〉 → b〈q1,T , q1〉 → bA → a〈q0,T , q0〉〈q0,Z0, q1〉 → a〈q0,T , q1〉〈q0,T , q0〉 → a〈q0,T , q0〉〈q0,T , q0〉〈q0,T , q0〉 → a〈q0,T , q1〉〈q1,T , q0〉〈q0,T , q1〉 → a〈q0,T , q0〉〈q0,T , q1〉〈q0,T , q1〉 → a〈q0,T , q1〉〈q1,T , q1〉

52 / 62Theorie des langages

N

Page 85: Automates a Pile

Automates a pile

Automate a pile vers grammaire al-gebrique : exemple

On renomme :

V = {S ,A,B,C ,D,E ,F ,G ,H}

S → A B → aFS → B E → aEEA → ε E → aFGF → b F → aEFH → b F → aFHA → aE

52 / 62Theorie des langages

N

Page 86: Automates a Pile

Automates a pile

Automate a pile vers grammaire al-gebrique : exemple

On nettoie :

V = {S ,A,B,C ,D,E ,F ,G ,H}

S → A B → aFS → B E → aEEA → ε E → aFGF → b F → aEFH → b F → aFHA → aE

53 / 62Theorie des langages

N

Page 87: Automates a Pile

Automates a pile

Automate a pile vers grammaire al-gebrique : exemple

On nettoie :

V = {S ,A,B,C ,D,E ,F ,G ,H}

S → A B → aFS → B E → aEEA → ε E → aFGF → b F → aEFH → b F → aFHA → aE

Symboles productifs : {A,F ,H, S ,B}

53 / 62Theorie des langages

N

Page 88: Automates a Pile

Automates a pile

Automate a pile vers grammaire al-gebrique : exemple

On nettoie :

V = {S ,A,B,C ,D,E ,F ,G ,H}

S → A B → aFS → B E → aEEA → ε E → aFGF → b F → aEFH → b F → aFHA → aE

Symboles productifs : {A,F ,H, S ,B}→ On supprime C ,D,E ,G

53 / 62Theorie des langages

N

Page 89: Automates a Pile

Automates a pile

Automate a pile vers grammaire al-gebrique : exemple

On nettoie :

V = {S ,A,B,F ,H}

S → A B → aFS → BA → εF → bH → b F → aFH

Symboles productifs : {A,F ,H, S ,B}→ On supprime C ,D,E ,G

53 / 62Theorie des langages

N

Page 90: Automates a Pile

Automates a pile

Automate a pile vers grammaire al-gebrique : exemple

On nettoie :

V = {S ,A,B,F ,H}

S → A B → aFS → B F → bA → ε F → aFHH → b

Symboles productifs : {A,F ,H, S ,B}→ On supprime C ,D,E ,G

Symboles accessibles : {S ,A,B,F ,H}

53 / 62Theorie des langages

N

Page 91: Automates a Pile

Automates a pile

Automate a pile vers grammaire al-gebrique : exemple

On nettoie :

V = {S ,A,B,F ,H}

S → A B → aFS → B F → bA → ε F → aFHH → b

Symboles productifs : {A,F ,H, S ,B}→ On supprime C ,D,E ,G

Symboles accessibles : {S ,A,B,F ,H}Suppression des regles unitaires

53 / 62Theorie des langages

N

Page 92: Automates a Pile

Automates a pile

Automate a pile vers grammaire al-gebrique : 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 regles unitaires

53 / 62Theorie des langages

N

Page 93: Automates a Pile

Automates a pile

Automate a pile vers grammaire al-gebrique : exemple

0 1

ε, Z0/ε

a, Z0/T

b, T/ε

b, T/ε

a, T/TT

On obtient :S → εS → aFF → bF → aFb

54 / 62Theorie des langages

N

Page 94: Automates a Pile

Automates a pile

Automates a pile

IntroductionRappels sur les pilesAutomates a pile : definitionAutomates a pile : configurationsLes criteres d’acceptationAutomates a pile deterministesAutomates a pile et langages algebriquesGrammaire algebrique vers automate a pileAutomate a pile vers grammaire algebriqueCloture des langages algebriques

55 / 62Theorie des langages

N

Page 95: Automates a Pile

Automates a pile

Cloture par union

Cloture par union

Soient L1 et L2 deux langages algebriques.Alors L1 ∪ L2 est un langage algebrique.

Preuve par construction :

Soient G1 = 〈V1,Σ1,P1,S1〉 et G1 = 〈V2,Σ2,P2,S2〉 engendrant L1 et L2

et tels que (V1 \ Σ1) ∩ (V2 \ Σ2) = ∅ et S 6∈ V1 ∪ V 2 (et sinon onrenomme)

On construit G = 〈V ,Σ,P, S〉 telle que :

V = V1 ∪ V2 ∪ {S}Σ = Σ1 ∪ Σ2

P = P1 ∪ P2 ∪ {S → S1|S2}

56 / 62Theorie des langages

N

Page 96: Automates a Pile

Automates a pile

Cloture par union

Cloture par union

Soient L1 et L2 deux langages algebriques.Alors L1 ∪ L2 est un langage algebrique.

Preuve par construction :

Soient G1 = 〈V1,Σ1,P1,S1〉 et G1 = 〈V2,Σ2,P2, S2〉 engendrant L1 et L2

et tels que (V1 \ Σ1) ∩ (V2 \ Σ2) = ∅ et S 6∈ V1 ∪ V 2 (et sinon onrenomme)

On construit G = 〈V ,Σ,P, S〉 telle que :

V = V1 ∪ V2 ∪ {S}Σ = Σ1 ∪ Σ2

P = P1 ∪ P2 ∪ {S → S1|S2}

56 / 62Theorie des langages

N

Page 97: Automates a Pile

Automates a pile

Cloture par concatenation

Cloture par concatenation

Soient L1 et L2 deux langages algebriques.Alors L1.L2 est un langage algebrique.

Preuve par construction :

Soient G1 = 〈V1,Σ1,P1,S1〉 et G1 = 〈V2,Σ2,P2,S2〉 engendrant L1 et L2

et tels que (V1 \ Σ1) ∩ (V2 \ Σ2) = ∅ et S 6∈ V1 ∪ V 2 (et sinon onrenomme)

On construit G = 〈V ,Σ,P, S〉 telle que :

V = V1 ∪ V2 ∪ {S}Σ = Σ1 ∪ Σ2

P = P1 ∪ P2 ∪ {S → S1S2}

57 / 62Theorie des langages

N

Page 98: Automates a Pile

Automates a pile

Cloture par concatenation

Cloture par concatenation

Soient L1 et L2 deux langages algebriques.Alors L1.L2 est un langage algebrique.

Preuve par construction :

Soient G1 = 〈V1,Σ1,P1,S1〉 et G1 = 〈V2,Σ2,P2, S2〉 engendrant L1 et L2

et tels que (V1 \ Σ1) ∩ (V2 \ Σ2) = ∅ et S 6∈ V1 ∪ V 2 (et sinon onrenomme)

On construit G = 〈V ,Σ,P, S〉 telle que :

V = V1 ∪ V2 ∪ {S}Σ = Σ1 ∪ Σ2

P = P1 ∪ P2 ∪ {S → S1S2}

57 / 62Theorie des langages

N

Page 99: Automates a Pile

Automates a pile

Cloture par operation etoile

Cloture par operation etoile

Soit L un langage algebrique.Alors L∗ est un langage algebrique.

Preuve par construction :

Soit G1 = 〈V1,Σ1,P1, S1〉 engendrant le langage L

On construit G = 〈V ,Σ,P, S〉 engendrant le langage L∗ telle que :

V = V1 ∪ {S}Σ = Σ1

P = P1 ∪ {S → ε|S1S}

58 / 62Theorie des langages

N

Page 100: Automates a Pile

Automates a pile

Cloture par operation etoile

Cloture par operation etoile

Soit L un langage algebrique.Alors L∗ est un langage algebrique.

Preuve par construction :

Soit G1 = 〈V1,Σ1,P1, S1〉 engendrant le langage L

On construit G = 〈V ,Σ,P, S〉 engendrant le langage L∗ telle que :

V = V1 ∪ {S}Σ = Σ1

P = P1 ∪ {S → ε|S1S}

58 / 62Theorie des langages

N

Page 101: Automates a Pile

Automates a pile

Exemple

Peut-on trouver une grammaire algebrique pour L = {aibjck |i = j ouj = k} ?

L se decompose en l’union de

L1 = {aibjck |i = j , k ≥ 0}L2 = {aibjck |i ≥ 0, j = k}

L1 = {aibjck |i = j , k ≥ 0} est la concatenation de

{aibj |i = j} et{ck |k ≥ 0}

L2 = {aibjck |i ≥ 0, j = k} est la concatenation de

{ai |i ≥ 0} et{bjck |j = k}

59 / 62Theorie des langages

N

Page 102: Automates a Pile

Automates a pile

Exemple

Peut-on trouver une grammaire algebrique pour L = {aibjck |i = j ouj = k} ?

L se decompose en l’union de

L1 = {aibjck |i = j , k ≥ 0}L2 = {aibjck |i ≥ 0, j = k}

L1 = {aibjck |i = j , k ≥ 0} est la concatenation de

{aibj |i = j} et{ck |k ≥ 0}

L2 = {aibjck |i ≥ 0, j = k} est la concatenation de

{ai |i ≥ 0} et{bjck |j = k}

59 / 62Theorie des langages

N

Page 103: Automates a Pile

Automates a pile

Exemple

Peut-on trouver une grammaire algebrique pour L = {aibjck |i = j ouj = k} ?

L se decompose en l’union de

L1 = {aibjck |i = j , k ≥ 0}L2 = {aibjck |i ≥ 0, j = k}

L1 = {aibjck |i = j , k ≥ 0} est la concatenation de

{aibj |i = j} et{ck |k ≥ 0}

L2 = {aibjck |i ≥ 0, j = k} est la concatenation de

{ai |i ≥ 0} et{bjck |j = k}

59 / 62Theorie des langages

N

Page 104: Automates a Pile

Automates a pile

Exemple

Peut-on trouver une grammaire algebrique pour L = {aibjck |i = j ouj = k} ?

L se decompose en l’union de

L1 = {aibjck |i = j , k ≥ 0}L2 = {aibjck |i ≥ 0, j = k}

L1 = {aibjck |i = j , k ≥ 0} est la concatenation de

{aibj |i = j} et{ck |k ≥ 0}

L2 = {aibjck |i ≥ 0, j = k} est la concatenation de

{ai |i ≥ 0} et{bjck |j = k}

59 / 62Theorie des langages

N

Page 105: Automates a Pile

Automates a pile

Exemple, suite

{aibj |i = j}S1 → ε|aS1b

{ck |k ≥ 0}S2 → ε|cS2

L1 = {aibjck |i = j , k ≥ 0}S1 → ε|aS1bS2 → ε|cS2

SL1→ S1S2

L2 = {aibjck |i ≥ 0, j = k}S3 → ε|aS3

S4 → ε|bS4cSL2→ S3S4

60 / 62Theorie des langages

N

Page 106: Automates a Pile

Automates a pile

Exemple, suite

{aibj |i = j}S1 → ε|aS1b

{ck |k ≥ 0}S2 → ε|cS2

L1 = {aibjck |i = j , k ≥ 0}S1 → ε|aS1bS2 → ε|cS2

SL1→ S1S2

L2 = {aibjck |i ≥ 0, j = k}S3 → ε|aS3

S4 → ε|bS4cSL2→ S3S4

60 / 62Theorie des langages

N

Page 107: Automates a Pile

Automates a pile

Exemple, suite

{aibj |i = j}S1 → ε|aS1b

{ck |k ≥ 0}S2 → ε|cS2

L1 = {aibjck |i = j , k ≥ 0}S1 → ε|aS1bS2 → ε|cS2

SL1→ S1S2

L2 = {aibjck |i ≥ 0, j = k}S3 → ε|aS3

S4 → ε|bS4cSL2→ S3S4

60 / 62Theorie des langages

N

Page 108: Automates a Pile

Automates a pile

Exemple, suite

{aibj |i = j}S1 → ε|aS1b

{ck |k ≥ 0}S2 → ε|cS2

L1 = {aibjck |i = j , k ≥ 0}S1 → ε|aS1bS2 → ε|cS2

SL1→ S1S2

L2 = {aibjck |i ≥ 0, j = k}S3 → ε|aS3

S4 → ε|bS4cSL2→ S3S4

60 / 62Theorie des langages

N

Page 109: Automates a Pile

Automates a pile

Exemple, suite

L = {aibjck |i = j ou j = k}G = 〈V ,Σ, S ,P〉V = {S1, S2, S3, S4,SL1 , SL2 , S}Σ = {a, b, c}P :

S1 → ε|aS1bS2 → ε|cS2

SL1 → S1S2

S3 → ε|aS3

S4 → ε|bS4cSL2 → S3S4

S → SL1 |SL2

61 / 62Theorie des langages

N

Page 110: Automates a Pile

Automates a pile

Exemple, suite

L = {aibjck |i = j ou j = k}G = 〈V ,Σ, S ,P〉V = {S1, S2, S3, S4,SL1 , SL2 , S}Σ = {a, b, c}P :

S1 → ε|aS1bS2 → ε|cS2

SL1 → S1S2

S3 → ε|aS3

S4 → ε|bS4cSL2 → S3S4

S → SL1 |SL2

61 / 62Theorie des langages

N

Page 111: Automates a Pile

Automates a pile

Exemple, suite

L = {aibjck |i = j ou j = k}G = 〈V ,Σ, S ,P〉V = {S1, S2, S3, S4,SL1 , SL2 , S}Σ = {a, b, c}P :

S1 → ε|aS1bS2 → ε|cS2

SL1 → S1S2

S3 → ε|aS3

S4 → ε|bS4cSL2 → S3S4

S → SL1 |SL2

61 / 62Theorie des langages

N

Page 112: Automates a Pile

Automates a pile

Exemple, suite

L = {aibjck |i = j ou j = k}G = 〈V ,Σ, S ,P〉V = {S1, S2, S3, S4,SL1 , SL2 , S}Σ = {a, b, c}P :

S1 → ε|aS1bS2 → ε|cS2

SL1 → S1S2

S3 → ε|aS3

S4 → ε|bS4cSL2 → S3S4

S → SL1 |SL2

61 / 62Theorie des langages

N

Page 113: Automates a Pile

Automates a pile

Exemple, suite

L = {aibjck |i = j ou j = k}G = 〈V ,Σ, S ,P〉V = {S1, S2, S3, S4,SL1 , SL2 , S}Σ = {a, b, c}P :

S1 → ε|aS1bS2 → ε|cS2

SL1 → S1S2

S3 → ε|aS3

S4 → ε|bS4cSL2 → S3S4

S → SL1 |SL2

61 / 62Theorie des langages

N

Page 114: Automates a Pile

Automates a pile

Cloture par intersection et complemen-tation

Cloture par intersection

La classe des langages algebriques n’est pas close par intersection

Cloture par complementation

La classe des langages algebriques n’est pas close par complementation

62 / 62Theorie des langages

N

Page 115: Automates a Pile

Automates a pile

Cloture par intersection et complemen-tation

Cloture par intersection

La classe des langages algebriques n’est pas close par intersection

Cloture par complementation

La classe des langages algebriques n’est pas close par complementation

62 / 62Theorie des langages

N