IFT313 / IFT451 - Grammaires - PLANIART

Download Report

Transcript IFT313 / IFT451 - Grammaires - PLANIART

IFT313
Introduction aux langages formels
Froduald Kabanza
Département d’informatique
Université de Sherbrooke
planiart.usherbrooke.ca/kabanza/cours/ift313
Lemme de l’étoile
Sujets
• Propriétés des langages réguliers, dont le lemme de l’étoile (ou
pumping theorem en anglais), parfois appelé aussi théorème du
gonflement.
IFT313
© Froduald Kabanza
2
Objectifs
• Connaître les propriétés des langages réguliers, dont le lemme de
l’étoile
• Pouvoir appliquer le lemme de l’étoile pour prouver que certains
langages sont non réguliers
IFT313
© Froduald Kabanza
3
Références
[1] Sudkamp, T. A.. Languages and Machines. Third Edition Edition.
Addison-Wesley, 2005.
– Sections 6.5 à 6.7.
[3] Wolper, P. Introduction à la calculabilité, 3è édition. Dunod, 2006
– Section 3.5
IFT313
© Froduald Kabanza
4
Au-delà des langages réguliers
 Les langages réguliers forme une classe très intéressante, mais tous les
langages ne sont certainement pas réguliers.
 Pour établir que certains langages ne sont pas réguliers, nous allons
caractériser les langages réguliers en observant certaines propriétés de base,
pour aboutir finalement à une propriété dite le lemme de l’étoile.
IFT313
© Froduald Kabanza
5
Observations de base
1.
Tous les langages finis (comportant un nombre fini de mots) sont réguliers.
–
En effet, si un langage contient les mots {w1, …, wk}, il est décrit par l’expression
régulière w1|…| wk.. L’expression décrit une union finie des mots du langage.
2.
Un langage non régulier doit donc forcément comporter un nombre infini
de mots.
–
Par contre, l’inverse n’est pas vrai. Par exemple, le langage décrit par l’expression a*
est régulier, mais contient un nombre infini de mots.
IFT313
© Froduald Kabanza
6
Observations de base
3.
Si un langage comporte un nombre infini de mots, il n’y a pas de borne à
la taille de mots faisant parti du langage.
–
En effet, supposons qu’il y ait une borne n à cette taille. L’alphabet Σ sur lequel est
construit le langage comporte un nombre fixé de symboles, soit k. Donc le nombre de
mots de longeur inférieur à n est
1
mot de longeur 0
+ k
mots de longeur 1
+ k2
mots de longeur 2
+ kn
mots de longeur n
=
𝑘 𝑛+1 −1
𝑘−1
et est donc fini.
IFT313
© Froduald Kabanza
7
Observations de base
4.
Tout langage régulier est accepté par un automate fini comportant un
nombre fixé d’états, soit n.
–
En effet, nous avons vu la construction d’un automate fini correspondant à une
expression régulière. La preuve a été laissée comme exercice. Voir [Wolper, Pierre.
Introduction à la calculabilité, 3è édition. Dunod, 2006]
IFT313
© Froduald Kabanza
8
Observations de base
5.
Considérons un langage régulier infini et un automate à n états acceptant
ce langage. Pour tout mot de longueur supérieure à n accepté par
l’automate, l’exécution de l’automate sur ce mot doit passer par un même
état sk au moins deux fois avec une partie non vide du mots séparant les
deux passages.
s
6.
x
sk
u
sk
y
sf
Par conséquent, si x, u, et y sont les mots représentés par la figure
précédente, tous les mots de la forme xu*y sont accepté par l’automate et
font partie du langage.
IFT313
© Froduald Kabanza
9
Observations de base
s
6.
x
sk
u
sk
y
sf
Par conséquent, si x, u, et y sont les mots représentés par la figure précédente, tous
les mots de la forme xu*y sont accepté par l’automate et font partie du langage
Autrement dit, pour tout mot suffisamment long d'un langage régulier infini, il y a une
partie du mot qui peut être répétée un nombre arbitraire de fois, de sorte que chacun des
mots produits est encore dans le langage.
C-à.-d., tout mot suffisamment long du langage peut être gonflé par la répétition d’une
de ses parties pour obtenir un autre mot du langage.
C’est ce que l’on appelle le théorème du gonflement (pumping theorem) ou encore le
lemme de l’étoile.
IFT313
© Froduald Kabanza
10
Lemme de l’étoile
• Soit L un langage régulier infini sur l’alphabet Σ. Alors , il existe x, u, y ϵ
Σ*, avec u≠ε, tels que xuny ϵ L, ∀ 𝑛 ≥ 0.
– Preuve : découle des observations précédentes.
• Corrolaire: Soit L un langage régulier infini sur l’alphabet Σ et soit w ϵ L
tel que |w| ≥ |S| où S est l’ensemble des états d’un automate déterministe
acceptant L. Alors , il existe x, u, y ϵ Σ*, avec u≠ε, tels que |xu |≤ |S| et,
∀ 𝑛 ≥ 0, xuny ϵ L.
– Preuve : découle des observations précédentes.
IFT313
© Froduald Kabanza
11
Application du lemme de l’étoile
• Le langage anbn n’est pas régulier.
• Pour le démontrer, il suffit d’établir qu’il n’est pas possible de trouver des
mots x, u, y, tels que xuky ϵ anbn ∀ 𝑘 ≥ 0
• Supposons l’existence de tels x, u, y et voyons ce que pourrait être u.
– u ϵ a* : impossible, car si on répète u (en appliquant le lemme de
l’étoile), le nombre de a ne sera plus égal au nombre de b.
– u ϵ b* : impossible, pour une raison similaire au cas précédent.
– u est un mot différent de a* ou b*: impossible, car dans ce cas une
occurrence de b précèdera une occurrence de a dans uk.
Donc, le lemme de l’étoile n’est pas valide pour le langage anbn , par
conséquent ce langage n’est pas régulier.
IFT313
© Froduald Kabanza
12
Résumé
 Les langages réguliers forme une classe très intéressante, mais tous les
langages ne sont certainement pas réguliers.
 Le lemme de l’étoile stipule que tout mot suffisamment long d'un langage
régulier infini peut être gonflé, au sens qu'une partie centrale du mot peut
être répétée un nombre arbitraire de fois, et que chacun des mots produits
est encore dans le langage.
 En appliquant ce lemme, vous pouvez démontrer que certains langages ne
sont pas réguliers.
IFT313
© Froduald Kabanza
13
Prochaine leçon
 Grammaires.
IFT313
© Froduald Kabanza
14