IG3 “Langages, Automates, Expressions régulières†Résumé des ...
IG3 “Langages, Automates, Expressions régulières†Résumé des ...
IG3 “Langages, Automates, Expressions régulières†Résumé des ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Polytech-<strong>IG3</strong> — Langages, <strong>Automates</strong>, Grammaires, <strong>Expressions</strong> Régulières avril 2009 p. 2/ 7Définition 3 Ordre lexicographiqueSoit < Σ un ordre total arbitraire sur Σ. L’ordre lexicographique < L sur Σ ∗ est défini par :∀u, v ∈ Σ ∗ , u < L v ssi∃ w, u ′ ∈ Σ ∗ , ∃ v ′ ∈ Σ ∗ \ {ɛ} tels queu = w.u ′ , v = w.v ′ et (u ′ = ɛ ou u ′ (1) < Σ v ′ (1))1.3 LangagesDé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 L 1 et L 2 définis sur un alphabet Σ est le langage surΣ noté L 1 .L 2 , défini par : L 1 .L 2 = {m 1 .m 2 /m 1 ∈ L 1 et m 2 ∈ L 2 }– la fermeture de Kleene (ou étoile) d’un langage L ⊆ Σ ∗ est le langage de Σ ∗ noté L ∗ et définipar :– L 0 = {ɛ}– L n+1 = L.L n (∀n ∈ N)– L ∗ = ⋃ L ii∈N– la fermeture positive d’un langage L ⊆ Σ ∗ est le langage noté L + avec L + =2 <strong>Automates</strong> d’états finis2.1 Définitions⋃L ii∈N,i>0Dé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 <strong>des</strong> états initiaux (ou états de départ)– F ⊆ E est l’ensemble <strong>des</strong> états finaux (ou états d’arrivée)– ∆ ⊆ E × Σ × E est l’ensemble <strong>des</strong> transitionsOn représente un AF A = < Σ, E, I, F, ∆ > par un graphe étiqueté tel que :– les sommets sont les états de E– à chaque transition (e 1 , a, e 2 ) ∈ ∆ correspond un arc entre les sommets e 1 et e 2 étiqueté par a ; pouréviter de <strong>des</strong>siner trop d’arcs (et d’avoir un multi-graphe), on s’autorise à étiqueter les arcs par <strong>des</strong>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ésd’un double cercle.Mots et chemins dans un automateDéfinition 6 Soit A =< Σ, E, I, F, ∆ > un automate d’états fini.Un chemin est une séquence de la forme (e 0 , a 0 , e 1 , a 1 , . . . , e k−1 , a k−1 , e k ) avec k ≥ 0, où les e i sont <strong>des</strong>états, les a i <strong>des</strong> lettres de Σ et ∀i ∈ [0, k − 1], (e i , a i , e i+1 ) ∈ ∆.On dit que (e 0 , a 0 , e 1 , a 1 , . . . , e k−1 , a k−1 , e k ) est un chemin de longueur k entre les états e 0 et e k , qui a pourétiquette le mot de Σ ∗ : a 0 a 1 . . . a k−1 .En particulier pour tout état e, (e) est un chemin de longueur 0 entre e et e dont l’étiquette est ɛ.
Polytech-<strong>IG3</strong> — Langages, <strong>Automates</strong>, Grammaires, <strong>Expressions</strong> Régulières avril 2009 p. 4/ 7Dans le cas <strong>des</strong> automates déterministes, pour simplifier les notations, nous modifions la définition dela fonction de transition en prenant comme co-domaine les états à la place <strong>des</strong> 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 A ′ =< Σ, E ′ , I ′ , F ′ , ∆ ′ > telque : – E ′ = 2 E– I ′ = {I}– F ′ = {Y ∈ E ′ /Y ∩ F ≠ ∅}– ∆ ′ = {(Y, a, ⋃ δ(e, a)) /Y ∈ E ′ , a ∈ Σ}e∈YOn remarquera que par construction A ′ est déterministe et complet.Lemme 1 Soient A =< Σ, E, I, F, ∆ > un AF et A ′ =< Σ, E ′ , I ′ , F ′ , ∆ ′ > l’AFD associé à A, δ et δ ′leur fonction de transition. On a :∀m ∈ Σ ∗ , ∀Y ∈ E ′ , δ ′ (Y, m) = ⋃ δ(e, m).Propriété 4 Soient A un AF et A ′ l’AFD associé à A ; alors A et A ′ sont équivalents.Théorème 1 Un langage est reconnaissable si et seulement si il est reconnu par un AFD.e∈YDé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 étatsnon accessibles reconnaît le même langage que AAlgorithme de constructionL’automate construit est un automate déterministe équivalent à l’automate de départ, ne contenantque <strong>des</strong> états accessibles.Données : AFN A =< Σ, E, I, F, ∆ >Résultat : AFD A ′ =< Σ, E ′ , I ′ , F ′ , ∆ ′ > un AFD complet, sans état inaccessible et équivalent àA tq L(A) = L(A ′ ) /* E ′ ⊆ 2 E , c’est un ensemble de parties de E */I ′ = {I} ; ∆ ′ ←− ∅ ; marque(I ′ ) ←− faux ; E ′ ←− I ′ ;tant que ∃ Y ∈ E ′ et not(marque(Y )) fairemarque(Y ) ←− vrai ;pour chaque a⋃∈ Σ faireZ ←−z ;y∈Y, (y,a,z)∈∆si Z ∉ E ′ alorsrajouter Z à E ′ ; marque(Z) ←− faux ;Rajouter (Y, a, Z) à ∆ ′ ;F ′ ←− {Y ∈ E ′ /Y ∩ F ≠ ∅} ;
Polytech-<strong>IG3</strong> — Langages, <strong>Automates</strong>, Grammaires, <strong>Expressions</strong> 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 à gaucheavec ces conventions : (a)|((b) ∗ (c) s’écrit a|b ∗ cRemarqueDes 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èresur Σ. On note Rat(Σ ∗ ) la classe <strong>des</strong> langages rationnels sur l’alphabet Σ.4.2 Théorème de KleeneD’après les propriétés de fermeture <strong>des</strong> langages reconnaissables, on sait que tout langage rationnel estreconnaissable. Le théorème suivant, dû à Kleene, établit la réciproque et montre donc l’égalité <strong>des</strong> classes<strong>des</strong> 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éguliers5.1 Grammaires : définitionsDéfinition 20 Une grammaire "hors contexte" G est un quadruplet 〈A N , Σ, P, S〉 où :– A N est un ensemble de symboles ( symboles non terminaux)– Σ est un ensemble de symboles ( symboles terminaux) ; les ensembles A N et Σ n’ont pas de symbolesen commun.– S est un élément de A N appelé axiome– P est l’ensemble <strong>des</strong> productions.Chaque production est de la forme X → α avec X ∈ A N et α ∈ (A N ∪ Σ) ∗ ; X est appelé partiegauche de la production, α est appelé partie droite de la production.Pour alléger un peu l’écriture <strong>des</strong> grammaires, on peut regrouper les productions ayant même partiegauche 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 = 〈A N = {S}, Σ = {a, b}, P = {S → a S b | ɛ}, S〉
Polytech-<strong>IG3</strong> — Langages, <strong>Automates</strong>, Grammaires, <strong>Expressions</strong> Régulières avril 2009 p. 7/ 7Définition 21 Dérivation.– Une étape de dérivation utilisant la production X → α de P consiste à remplacer X par α dansune chaîne où figure X. D’une chaîne de la forme βXγ (où β, γ ∈ (A N ∪ Σ) ∗ ) on obtient donc pardé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 22Langage engendré par une grammaire.Le langage engendré par une grammaire G, noté L(G), est l’ensemble <strong>des</strong> suites d’éléments de Σ quisont dérivables à partir de l’axiome.Plus formellement, L(G) = {m ∈ Σ ∗ tq S ∗ ⇒ m}5.2 Grammaires régulières à droiteDéfinition 23 G = 〈A N , Σ, (P ), S〉 est une grammaire régulière à droite si toute production est de l’une<strong>des</strong> formes suivantes :X → aYX → aX → ɛoù X, Y ∈ A N et a ∈ Σoù X ∈ A N et a ∈ Σoù X ∈ A NDé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). Onnote Reg(Σ ∗ ) la classe <strong>des</strong> langages réguliers.Propriété 13Les langages ∅, {ɛ}, {a} sont <strong>des</strong> langages réguliers.Propriété 14 Propriétés de fermeture <strong>des</strong> langages réguliers.Si L 1 et L 2 sont <strong>des</strong> langages réguliers, alors L 1 ∪ L 2 , L 1 L 2 et L ∗ 1sont <strong>des</strong> 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(Σ ∗ )