IG3 “Langages, Automates, Expressions régulières”

publicité
Polytech-IG3 — Langages, Automates, Grammaires, Expressions Régulières
IG3
avril 2009
p. 1/ 7
“Langages, Automates, Expressions régulières”
Résumé des notations et des propriétés
1
Mots et Langages
1.1
Alphabet-Mots
Un alphabet est un ensemble fini dont les éléments sont appelés lettres (ou symboles).
Un mot (chaîne) sur un alphabet Σ est une séquence finie de symboles de Σ.
Le mot vide, de longueur 0, est noté .
Dans la suite nous utilisons les notations suivantes :
– |m| est la longueur du mot m. Ex : |10001| = 5, || = 0
– pour i ∈ [1, |m|], m(i) est la ième lettre du mot m.
On dispose d’une opération sur les mots appelée produit ou concaténation.
Définition 1 Le produit de 2 mots u et v sur l’alphabet Σ, noté u.v, est un mot m sur l’alphabet Σ, de
longueur |u| + |v|, défini par :
– ∀i ∈ [1, |u|], m(i) = u(i)
– ∀i ∈ [1, |v|], m(i + |u|) = v(i)
Propriété 1 Le produit est associatif et admet le mot vide comme élément neutre
Définition 2 Soit m un mot sur Σ.
– le mot u est un préfixe de m ssi il existe un mot x tel que m = u.x
– le mot u est un suffixe de m ssi il existe un mot x tel que m = x.u
– le mot u est un facteur de m s’il existe 2 mots x et y tels que m = x.u.y.
– u est un facteur (respectivement préfixe, suffixe) propre de m si u est un facteur (respectectivement préfixe, suffixe) de m différent de m et de .
– u = a1 a2 . . . an est un sous-mot de m s’il existe n + 1 mots w1 , w2 , . . . wn+1
tels que m = w1 .a1 .w2 .a2 . . . . .an .wn+1 .
Notation : mi est défini pour i entier positif ou nul, par m0 = , mi = m.mi−1
1.2
Le monoïde libre Σ∗
Σ∗ est l’ensemble de tous les mots construits avec l’alphabet Σ. Cet ensemble peut être défini par le
schéma inductif suivant :
Base :
Règle :
∈ Σ∗
si m ∈ Σ∗ et a ∈ Σ alors a.m ∈ Σ∗
Propriété 2 (Σ∗ , .) a une structure de monoïde libre, c’est à dire :
– le produit est une opération interne, associative et possédant un élément neutre dans Σ∗
– tout mot s’écrit de manière unique comme le produit d’éléments de Σ
Polytech-IG3 — Langages, Automates, Grammaires, Expressions Régulières
avril 2009
p. 2/ 7
Définition 3 Ordre lexicographique
Soit <Σ un ordre total arbitraire sur Σ. L’ordre lexicographique <L sur Σ∗ est défini par :
∀u, v ∈ Σ∗ , u <L v ssi
1.3
∃ w, u0 ∈ Σ∗ , ∃ v 0 ∈ Σ∗ \ {} tels que
u = w.u0 , v = w.v 0 et (u0 = ou u0 (1) <Σ v 0 (1))
Langages
Définition 4 Un langage sur un alphabet Σ est une partie de Σ∗ .
Les opérations sur les langages sont :
– les opérations ensemblistes : l’union (∪), intersection (∩), la différence ensembliste (\), le complémentaire (dans Σ∗ ).
– le produit ou concaténation de deux langages L1 et L2 définis sur un alphabet Σ est le langage sur
Σ noté L1 .L2 , défini par : L1 .L2 = {m1 .m2 /m1 ∈ L1 et m2 ∈ L2 }
– la fermeture de Kleene (ou étoile) d’un langage L ⊆ Σ∗ est le langage de Σ∗ noté L∗ et défini
par :
– L0 = {}
n (∀n ∈ N)
– Ln+1 =
SL.L
∗
i
– L =
L
i∈N
– la fermeture positive d’un langage L ⊆ Σ∗ est le langage noté L+ avec L+ =
S
Li
i∈N,i>0
2
2.1
Automates d’états finis
Définitions
Définition 5 Un automate fini (en abrégé AF) A est un quintuplet < Σ, E, I, F, ∆ > où :
– Σ est l’alphabet d’entrée
– E est un ensemble fini dont les éléments sont appelés états
– I ⊆ E est l’ensemble des états initiaux (ou états de départ)
– F ⊆ E est l’ensemble des états finaux (ou états d’arrivée)
– ∆ ⊆ E × Σ × E est l’ensemble des transitions
On représente un AF A = < Σ, E, I, F, ∆ > par un graphe étiqueté tel que :
– les sommets sont les états de E
– à chaque transition (e1 , a, e2 ) ∈ ∆ correspond un arc entre les sommets e1 et e2 étiqueté par a ; pour
éviter de dessiner trop d’arcs (et d’avoir un multi-graphe), on s’autorise à étiqueter les arcs par des
ensembles de symboles.
– les sommets de I sont repérés par une flèche entrante et ceux associés aux états de F sont marqués
d’un double cercle.
Mots et chemins dans un automate
Définition 6 Soit A =< Σ, E, I, F, ∆ > un automate d’états fini.
Un chemin est une séquence de la forme (e0 , a0 , e1 , a1 , . . . , ek−1 , ak−1 , ek ) avec k ≥ 0, où les ei sont des
états, les ai des lettres de Σ et ∀i ∈ [0, k − 1], (ei , ai , ei+1 ) ∈ ∆.
On dit que (e0 , a0 , e1 , a1 , . . . , ek−1 , ak−1 , ek ) est un chemin de longueur k entre les états e0 et ek , qui a pour
étiquette le mot de Σ∗ : a0 a1 . . . ak−1 .
En particulier pour tout état e, (e) est un chemin de longueur 0 entre e et e dont l’étiquette est .
Polytech-IG3 — Langages, Automates, Grammaires, Expressions Régulières
avril 2009
p. 3/ 7
Définition 7 On définit à partir de l’ensemble de transitions ∆ la fonction de transition δ par
δ : E × Σ −→ 2E avec :
∀e ∈ E, ∀a ∈ Σ,
δ(e, a) = {e0 tq (e, a, e0 ) ∈ ∆}
(on rappelle que 2E désigne l’ensemble des parties de E).
δ(e, a) est l’ensemble des états accessibles par un arc d’origine e et d’étiquette a.
Définition 8 On étend δ de manière à ce que son second argument soit un mot et non seulement un
symbole ; par abus de langage, on conserve la même notation.
δ : E × Σ∗ −→ 2E avec :
∀e ∈ E, ∀a ∈ Σ, ∀m ∈ Σ∗
δ(e, )
δ(e, a.m)
= {e}S
=
δ(e0 , m)
(e,a,e0 )∈∆
δ(e, m) est l’ensemble des états accessibles par un chemin d’origine e et d’étiquette m.
Définition 9 Soit A =< Σ, E, I, F, ∆ > un AF et δ la fonction de transition associée à A.
Un mot m ∈ Σ∗ est reconnu par A s’il est l’étiquette d’un chemin entre un état initial et un état final,
autrement dit s’il existe un état initial ei ∈ I et un état final ef ∈ F tel que ef ∈ δ(ei , m).
L(A), le langage reconnu par A, est l’ensemble des mots de Σ∗ reconnus par A.
Définition 10 Automates équivalents
Deux automates finis A et A0 sur le même alphabet sont équivalents si et seulement si ils reconnaissent
le même langage.
Définition 11 Langages reconnaissables .
Un langage est reconnaissable si et seulement si il est reconnu par un automate d’états fini. On note
Rec(Σ∗ ) la classe des langages de Σ∗ reconnaissables.
2.2
Automates d’états finis complets
Définition 12
Un AF A =< Σ, E, I, F, ∆ > est complet ssi ∀e ∈ E, ∀a ∈ Σ, |{(e, a, e0 ) ∈ ∆}| ≥ 1
Propriété 3 A tout automate fini A =< Σ, E, I, F, ∆ > on peut associer un automate complet équivalent.
Cet automate AC =< Σ, EC , I, F, ∆C > est défini par :
– EC = E ∪ {p}, p un nouvel état n’appartenant pas à E (état "poubelle")
– ∆C = ∆ ∪ {(e, a, p) tq (e, a, e0 ) 6∈ ∆} ∪ {(p, a, p), a ∈ Σ}
2.3
Automates d’états finis déterministes
Définition 13
Un AF A =< Σ, E, I, F, ∆ > est déterministe (en abrégé AFD) ssi
– |I| = 1 (A a un unique état initial)
et – ∀e ∈ E, ∀a ∈ Σ, |{(e, a, e0 ) ∈ ∆}| ≤ 1
(autrement dit, pour tout symbole a, il y a au plus un arc sortant de e)
Polytech-IG3 — Langages, Automates, Grammaires, Expressions Régulières
avril 2009
p. 4/ 7
Dans le cas des automates déterministes, pour simplifier les notations, nous modifions la définition de
la fonction de transition en prenant comme co-domaine les états à la place des parties d’états.
Ainsi pour un AFD A =< Σ, E, I = {i}, F, ∆ > la signature de la fonction de transition est :
δ : E × Σ∗ −→ E ∪ {∅} .
Avec ces notations le langage reconnu par A =< Σ, E, I = {i}, F, ∆ > est L(A) = {m ∈ Σ∗ : δ(i, m) ∈ F }.
Définition 14 Soit A =< Σ, E, I, F, ∆ > un AF. L’AFD associé à A est A0 =< Σ, E 0 , I 0 , F 0 , ∆0 > tel
que : – E 0 = 2E
– I 0 = {I}
– F 0 = {Y ∈ E 0S
/Y ∩ F 6= ∅}
0
– ∆ = {(Y, a,
δ(e, a)) /Y ∈ E 0 , a ∈ Σ}
e∈Y
On remarquera que par construction A0 est déterministe et complet.
Lemme 1 Soient A =< Σ, E, I, F, ∆ > un AF et A0 =< Σ, E 0 , I 0 , F 0 , ∆0 > l’AFD associé à A, δ et δ 0
leur fonction de transition. On a :
S
∀m ∈ Σ∗ , ∀Y ∈ E 0 , δ 0 (Y, m) =
δ(e, m).
e∈Y
Propriété 4 Soient A un AF et A0 l’AFD associé à A ; alors A et A0 sont équivalents.
Théorème 1 Un langage est reconnaissable si et seulement si il est reconnu par un AFD.
Définition 15 Un état e est accessible si et seulement si il existe un chemin de l’état initial à e.
Un état e est co-accessible si et seulement si il existe un chemin de e à un état final.
Propriété 5 Soit A un automate déterministe ; l’automate obtenu à partir de A en supprimant les états
non accessibles reconnaît le même langage que A
Algorithme de construction
L’automate construit est un automate déterministe équivalent à l’automate de départ, ne contenant
que des états accessibles.
Données : AFN A =< Σ, E, I, F, ∆ >
Résultat : AFD A0 =< Σ, E 0 , I 0 , F 0 , ∆0 > un AFD complet, sans état inaccessible et équivalent à
A tq L(A) = L(A0 ) /* E 0 ⊆ 2E , c’est un ensemble de parties de E */
I 0 = {I} ; ∆0 ←− ∅ ; marque(I 0 ) ←− faux ; E 0 ←− I 0 ;
tant que ∃ Y ∈ E 0 et not(marque(Y )) faire
marque(Y ) ←− vrai ;
pour chaque a S∈ Σ faire
Z ←−
z ;
y∈Y, (y,a,z)∈∆
E 0 alors
si Z 6∈
rajouter Z à E 0 ; marque(Z) ←− faux ;
Rajouter (Y, a, Z) à ∆0 ;
F 0 ←− {Y ∈ E 0 /Y ∩ F 6= ∅} ;
Polytech-IG3 — Langages, Automates, Grammaires, Expressions Régulières
3
3.1
avril 2009
p. 5/ 7
Propriétés de fermeture des langages reconnaissables
Langages reconnaissables de base
Propriété 6 Les langages ∅, {}, Σ∗ ainsi que tout langage réduit à un mot d’une lettre sont reconnaissables.
3.2
Composition de langages reconnaissables : opérations ensemblistes
Propriété 7 L’union de deux langages reconnaissables est un langage reconnaissable.
Propriété 8 Le complémentaire d’un langage reconnaissable est un langage reconnaissable.
Propriété 9 L’intersection de deux langages reconnaissables est un langage reconnaissable.
3.3
Opérations produit et étoile
Pour vérifier si les opérations produit et étoile conservent le caractère reconnaissable des langages, on
introduit la notion d’«automate standard».
Définition 16 Un AF A =< Σ, E, I, F, ∆ > est standard si et seulement si il a un unique état initial
et qu’aucune transition n’arrive à cet état de départ, c’est à dire :
|I| = 1 et ∀e ∈ E, ∀a ∈ Σ, δ(e, a) ∩ I = ∅.
Propriété 10 Tout langage reconnaissable peut être reconnu par un AF standard.
Propriété 11 Le produit de deux langages reconnaissables est reconnaissable.
Propriété 12 Si L est un langage reconnaissable alors L∗ est reconnaissable.
En résumé la classe des langages reconnaissables sur un alphabet Σ
– contient le langage vide, le langage réduit au mot vide, les langages réduits à une lettre de Σ
– et est fermée pour les opérations union, intersection, complémentaire, produit et étoile.
4
Expressions régulières (rationnelles), Langages Rationnels
Les expressions régulières (ou expressions rationnelles) sont un autre formalisme permettant de décrire
des langages. Chaque expression régulière r décrit un unique langage L(r).
4.1
Définitions
Définition 17 Les expressions régulières(en abrégé ER) sur un alphabet Σ sont définies inductivement
par :
– ∅, et a, où a ∈ Σ, sont des ER
– Si r et s sont des ER,
– (r)
– (r)|(s)
– (r)(s)
– (r)∗
sont des ER.
Définition 18 Langages décrits par les expressions régulières.
Polytech-IG3 — Langages, Automates, Grammaires, Expressions Régulières
–
–
–
–
avril 2009
p. 6/ 7
L(∅) = ∅
L() = {}
∀a ∈ Σ, L(a) = {a}
r et s étant 2 expressions régulières qui décrivent les langages L(r) et L(s),
– L((r)) = L(r)
– L((r)|(s)) = L(r) ∪ L(s)
– L((r)(s)) = L(r).L(s)
– L((r)∗ ) = (L(r))∗
On utilisera également un autre opérateur unaire, noté +, dont le sens est (r)+ = (r)((r)∗ ).
Pour simplifier les notations, on convient que :
– l’opérateur unaire ∗ a la priorité maximum et son opérande est à sa gauche
– la concaténation a la priorité juste inférieure et est associative à gauche
– | a la plus faible priorité et est associatif à gauche
– l’opérateur unaire + a la même priorité que ∗ et son opérande est à gauche
avec ces conventions : (a)|((b)∗ (c) s’écrit a|b∗ c
Remarque
Des expressions régulières qui décrivent le même langage sont dites équivalentes ; Ex : (a|b) et (b|a).
Définition 19 Un langage sur l’alphabet Σ est rationnel ssi il peut être décrit par une expression régulière
sur Σ. On note Rat(Σ∗ ) la classe des langages rationnels sur l’alphabet Σ.
4.2
Théorème de Kleene
D’après les propriétés de fermeture des langages reconnaissables, on sait que tout langage rationnel est
reconnaissable. Le théorème suivant, dû à Kleene, établit la réciproque et montre donc l’égalité des classes
des langages reconnaissables et rationnels.
Dans la suite une ER désignera également le langage qu’elle décrit. Autrement dit on confondra les
écritures r et L(r).
Théorème 2 Rat(Σ∗ ) = Rec(Σ∗ ).
5
Grammaires régulières - Langages réguliers
5.1
Grammaires : définitions
Définition 20 Une grammaire "hors contexte" G est un quadruplet hAN , Σ, P, Si où :
– AN est un ensemble de symboles ( symboles non terminaux)
– Σ est un ensemble de symboles ( symboles terminaux) ; les ensembles AN et Σ n’ont pas de symboles
en commun.
– S est un élément de AN appelé axiome
– P est l’ensemble des productions.
Chaque production est de la forme X → α avec X ∈ AN et α ∈ (AN ∪ Σ)∗ ; X est appelé partie
gauche de la production, α est appelé partie droite de la production.
Pour alléger un peu l’écriture des grammaires, on peut regrouper les productions ayant même partie
gauche en "règles", en utilisant le symbole | : une règle est de la forme X → α1 |α2 | . . . |αn et correspond
à l’ensemble de n productions : {X → α1 , X → α2 , . . . , X → αn }.
Ex : G = hAN = {S}, Σ = {a, b}, P = {S → a S b | }, Si
Polytech-IG3 — Langages, Automates, Grammaires, Expressions Régulières
avril 2009
p. 7/ 7
Définition 21 Dérivation.
– Une étape de dérivation utilisant la production X → α de P consiste à remplacer X par α dans
une chaîne où figure X. D’une chaîne de la forme βXγ (où β, γ ∈ (AN ∪ Σ)∗ ) on obtient donc par
dérivation βαγ.
On note βXγ ⇒ βαγ.
– Une dérivation de longueur n est une séquence de n étapes de dérivation de la forme :
β0 ⇒ β1 ⇒ . . . ⇒ βn où chaque βi ⇒ βi+1 est une étape de dérivation.
– Notations :
n
β ⇒ γ signifie "β se dérive en γ en n étapes"
∗
β ⇒ γ signifie "β se dérive en γ en un nombre quelconque d’étapes, éventuellement nul"
Définition 22 Langage engendré par une grammaire.
Le langage engendré par une grammaire G, noté L(G), est l’ensemble des suites d’éléments de Σ qui
sont dérivables à partir de l’axiome.
∗
Plus formellement, L(G) = {m ∈ Σ∗ tq S ⇒ m}
5.2
Grammaires régulières à droite
Définition 23 G = hAN , Σ, (P ), Si est une grammaire régulière à droite si toute production est de l’une
des formes suivantes :
X → aY
où X, Y ∈ AN et a ∈ Σ
X→a
où X ∈ AN et a ∈ Σ
X→
où X ∈ AN
Définition 24 Langages réguliers.
L est un langage régulier sur Σ s’il existe une grammaire G régulière à droite telle que L = L(G). On
note Reg(Σ∗ ) la classe des langages réguliers.
Propriété 13
Les langages ∅, {}, {a} sont des langages réguliers.
Propriété 14 Propriétés de fermeture des langages réguliers.
Si L1 et L2 sont des langages réguliers, alors L1 ∪ L2 , L1 L2 et L∗1 sont des langages réguliers.
Théorème 3 Tout langage rationnel est régulier : Rat(Σ∗ ) ⊆ Reg(Σ∗ )
Théorème 4 Tout langage régulier est reconnaissable : Reg(Σ∗ ) ⊆ Rec(Σ∗ )
Théorème 5 Rat(Σ∗ ) = Reg(Σ∗ ) = Rec(Σ∗ )
Téléchargement