L2: cours I4c Langages et automates
Transcript of L2: cours I4c Langages et automates
L2: cours I4c Langages et automates
L2: cours I4cLangages et automates
Olivier Togni, LE2I(038039)3887
Modifie le 31 mai 2007
1 de 25
L2: cours I4c Langages et automates
Sommaire
Utiles pour compilation, interpretation,...
1. Langages rationnels
2. Langages reconnaissables
3. Langages algebriques
2 de 25
L2: cours I4c Langages et automates
Langages rationnels
Les mots
- alphabet=ensemble fini de symboles (lettres)- mot sur alphabet A : suite finie de lettres de A- A∗=ensemble des mots definis sur A- mot vide ε ∈ A∗
- longueur d’un mot u : |u|=nb de lettres. |u|a=nb d’occurences dea dans u.- operation de concatenation sur A∗ : si u = abc et v = cac alorsu.v = abccac .Rem : operation associative (u(v .w) = (u.v)w) mais pascommutative (∃u, v , u.v 6= v .u).- notation : le mot aaabbab sera raccourci en a3b2ab.- (A, ., ε) est un monoıde (ensemble muni d’une operationassociative et d’un element neutre, mais pas forcement d’inversecomme dans un groupe).
3 de 25
L2: cours I4c Langages et automates
Langages rationnels
Langages rationnels
- Langage formel sur A= ensemble fini ou infini de mots de A :L ⊂ A∗.- operations :* complementation L = {u ∈ A∗, u 6∈ L}* union L1 ∪ L2 = {u ∈ A∗, u ∈ L1 ou u ∈ L2}* intersection L1 ∩ L2 = {u ∈ A∗, u ∈ L1 et u ∈ L2}* produit L1.L2 = {u ∈ A∗, u = u1u2, u1 ∈ L1 et u2 ∈ L2}* fermeture iterative : L∗ est l’ensemble des mots formes par unconcatenation finie de mots de L : L∗ = {ε} ∪ L ∪ L2 ∪ L3 ∪ . . ..L+ = L∗ − {ε}.
4 de 25
L2: cours I4c Langages et automates
Langages rationnels
Expressions rationnelles
Definition
Un langage est dit rationnel s’il s’ecrit de maniere finie a l’aide desoperations d’union, de produit et de fermeture transitive a partirdes lettres de l’alphabet et du mot vide.
⇒ defini par une expression rationnelle. De facon formelle :
Definition
Une expression rationnelle est definie de facon inductive par :- ∅ est une expression rationnelle,- si a est une lettre, a est une expression rationnelle,- si E est une expression rationnelle, E ∗ aussi,- si E1 et E2 sont des expr. rationnelles, E1 + E2 et E1E2 aussi.
5 de 25
L2: cours I4c Langages et automates
Langages rationnels
Exemple
Ex : si A = {a, b, c}, A∗ = (a ∪ b ∪ c)∗ = (a + b + c)∗.
Ex : sur {a, b}, donner les expressions rationnelles correspondantau langages suivants :
I mots ayant 1 seule occurence de b
I mots contenant abab
I mots ne contenant pas abab.
6 de 25
L2: cours I4c Langages et automates
Langages reconnaissables
Langages reconnaissables
Definition
Un automate fini A est un sextuplet (A,Q,T , λ, I ,F ) avec :- A alphabet fini appele alphabet d’entree,- Q ensemble fini d’etats,- T ensemble des transitions,- λ : T → A etiquettes des transitions,- I ensemble des etats initiaux,- F ensemble des etats terminaux (ou finals),
Rem : (Q,T , λ) est un graphe oriente etiquete (les arcs ont unevaleur ou etiquette qui est une lettre de A).
7 de 25
L2: cours I4c Langages et automates
Langages reconnaissables
Exemple
8 de 25
L2: cours I4c Langages et automates
Langages reconnaissables
Langage reconnu par un automate
Soit r = q0, q1, . . . , qp un chemin dans ALa trace λ(r) de r est le mot de A∗ forme par les etiquettesportees par les arcs qui composent le chemin :λ(r) = λ(q0, q1)λ(q1, q2) . . . λ(qp−1, qp).
Definition
Le langage reconnu par un automate A est l’ensemble des tracesde tous les chemins qui partent d’un etat initial et aboutissent a unetat final : L(A) = {λ(r) ∈ A∗, r = q0, q1, . . . , qp, q0 ∈ I , qp ∈ F}.
Definition
Un langage L est reconnaissable ssi il existe un automate fini A telque L = L(A).
9 de 25
L2: cours I4c Langages et automates
Langages reconnaissables
Exemple :
Langage reconnu par l’automate de l’ex precedant
10 de 25
L2: cours I4c Langages et automates
Langages reconnaissables
Automates minimaux et complets
Il existe souvent plusieurs solutions d’automates correspondant aun langage reconnaissable. Il existe une solution utilisant unnombre minimum d’etats : l’automate minimal. Il existe des algospour minimiser un automate.
Definition
Un automate est complet ssi ∀q ∈ Q,∀a ∈ A, il existe au moinsune transition t d’origine q et d’etiquette a.
Il est facile de rendre un automate complet en ajoutant un etatappele puit et toutes les transitions manquantes de chaque etatvers ce puit.
11 de 25
L2: cours I4c Langages et automates
Langages reconnaissables
Automates deterministes
Definition
Un automate est deterministe ssi :- il n’y a qu’un seul etat initial, et- ∀q ∈ Q,∀a ∈ A, il existe au plus une transition t d’origine q etd’etiquette a.
Un automate non deterministe est souvent plus facile a construire(qu’un deterministe), par contre il est plus facile de tester si unmot appartient a un langage quand on est en presence d’unautomate deterministe.
12 de 25
L2: cours I4c Langages et automates
Langages reconnaissables
Automates deterministes
Pour un automate deterministe, on peut definir la fonction outable de transition δ : Q × A → Q, qui a partir d’un etat et d’unelettre, donne l’etat dans lequel on arrive si on suit la transitioncorrespondant a la lettre.Ex :
13 de 25
L2: cours I4c Langages et automates
Langages reconnaissables
Automates deterministes
Un automate A sera non deterministe si au moins une dessituations suivantes a lieu :- A possede au moins deux etats initiaux- A possede des transitions etiquetees ε- δ n’est pas une fonction mais une relation.Il existe des algorithmes pour determiniser un automate, donc ilexiste toujours une solution deterministe ! !
14 de 25
L2: cours I4c Langages et automates
Langages reconnaissables
Exemple
Construire un automate deterministe acceptant le langage(aab + aa + aabb)∗
15 de 25
L2: cours I4c Langages et automates
Langages reconnaissables
Algorithme de simulation d’un automate deterministe
Etat <- etat_initialTant Que (il reste des lettres) faireDebutLire(lettre)Etat <- TT[Etat,lettre] //TT=table de transition
FinSi Etat est un etat final alors le mot est reconnusinon le mot n’est pas reconnu
17 de 25
L2: cours I4c Langages et automates
Langages reconnaissables
Rationnel vs reconnaissable
Theoreme (Kleene)
L est reconnaissable ssi L est rationnel.
En d’autres termes, il est possible de construire un automate apartir de n’importe quelle expression rationnelle et, reciproquement,d’associer une expression rationnelle a tout automate.Les langages rationnels (ou reconnaissables) permettent de definirformellement beaucoup de langages, mais pas tous. Par ex lelangage {anbn, n ∈ N} n’est pas rationnel.⇒ Langages algebriques...
18 de 25
L2: cours I4c Langages et automates
Langages algebriques
Langages algebriques
Bases sur la notion de reecriture...
Definition
Une grammaire algebrique est un triplet G = (T ,N,P) ou- T est un alphabet fini dit terminal,- N est un alphabet fini dit non-terminal et disjoint de T ,- P est un ensemble fini de regles de production. Une regle estA → u,A ∈ N, u ∈ (N ∪ T )∗
19 de 25
L2: cours I4c Langages et automates
Langages algebriques
Exemple
T = {a, b}, N = {A,B,S} etP = {S → A,S → B,B → bB,B → ε,A → aA,A → ε}.Convention : Terminaux=minuscules, non-terminaux= majuscules
20 de 25
L2: cours I4c Langages et automates
Langages algebriques
Reecriture
Definition
Soient f et g deux mots de (N ∪ T )∗. On dit que f se reecrit en gpar application de la regle p : A → u, que l’on note f →p g ssi fest de la forme f = f1Af2 et g = f1uf2.
Une derivation est une sequence de reecritures la forme
f1 →p1 f2 →p2 . . . fn →pn fn+1.
On dit qu’un mot f se derive en un mot g , note f →∗ g si f = gou s’il existe une derivation telle que f1 = f et fn+1 = g .On ne peut reecrire un mot ne contenant aucun elementnon-terminal : un tel mot est dit terminal ou irreductible.
21 de 25
L2: cours I4c Langages et automates
Langages algebriques
Langage algebrique
Definition
Le langage engendre par une grammaire G a partir de A (appeleaxiome) est l’ensemble des mots irreductibles obtenus parderivation de A : L(G ,A) = {u ∈ T ∗,A →∗ u}. Ce langage est unlangage algebrique.
Ex precedent : mots ne contenant que des a ou que des b.Ex : Soit G = ({a, b}, {S}, {s → aS ,S → Sb,S → ε}). Le langageengendre par la grammaire G est L(G ,S) = a∗b∗.
22 de 25
L2: cours I4c Langages et automates
Langages algebriques
Quelques proprietes des langages algebriques
I L1 et L2 algebriques ⇒ L1 ∪ L2 et L1.L2 algebriques,
I L1 et L2 algebriques 6⇒ L1 ∩ L2 algebrique,
I tout langage rationnel (reconnaissable) est algebrique.
23 de 25
L2: cours I4c Langages et automates
Langages algebriques
Arbre de derivation
A tout mot d’un langage algebrique on peut faire correspondre unarbre de derivation qui indique par quelle suite de derivations le mota ete obtenu. La racine de l’arbre est le non-terminal de depart etle mot est obtenu par un parcours en largeur les feuilles de l’arbre.Si un mot peut etre obtenu par deux derivations differentes, lagrammaire est dite ambigue.Ex : G : S → x |y |z |(S)|S ∗ S |S + S est ambigue car u = x + y ∗ zpeut etre genere par deux arbres de derivation differents (les 2derivations correspondant a u = (x + y) ∗ z et u = x + (y ∗ z)).Une version non ambigue de la grammaire precedente est :E → E + T |T ,T → T ∗ F |F ,F → (E )|x |y |z .
24 de 25
L2: cours I4c Langages et automates
Langages algebriques
Construction d’une grammaire a partir d’un automate
Chaque etat qi de l’automate correspond a un non-terminal Qi dela grammaire et pour chaque transition (qi , qj) de l’automate, onajoute la regle Qi → aQj , ou a = λ(qi , qj) est l’etiquette de latransition. Le langage engendre par cette grammaire est le memeque l’ensemble des mots reconnus par l’automate.
25 de 25