Vous êtes sur la page 1sur 8

Chapitre 2 : Thorie des langages : Langages rguliers et Automates Etats Finis

Le but de la thorie des langages est de donner un modle de ce quest un langage. Lobjectif de ce chapitre est de : Etre capable de dcrire un langage : Description Fabriquer une machine capable de reconnatre les textes qui appartiennent un langage donn : Reconnaissance .

I.

Concepts fondamentaux

I.1. Alphabet (Vocabulaire) Cest un ensemble fini de symboles (ou caractres). Notation : Exemples : Alphabet latin { a, b, c ,.} Alphabet binaire {0, 1} Alphabet des mots cls { if, then, else,} Alphabet des chiffres hexadcimaux { 0, 1, 2, , 9, A, , F} I.2. Mot Un mot ou chane sur un alphabet est une squence/ suite finie de symboles de lalphabet. Notation : Exemples : Alphabet = {a, b} = {0, 1} Mot = aaa, abba, ababa, bbaba, abbaaaaba = 0011 , 10101, 01101 = if if b a b := := then begin Longueur dun mot: | |: Nombre doccurrence des symboles dans . Exemples : = {a, b} |aab| = 3 , | abab| = 4 , |abbaaba| = 7 = {a, bb} |a| = 1, |abb| = 2, |bbaabb| = 4, |bbbbabba| = 5 Par convention, il existe une chane de longueur 0, cest la chane vide note Soit un alphabet / Vocabulaire * : Ensemble des mots forms partir de . * = { , a, b, ab, aab, ababa, aabbbb, babaaaaaaaaabbbbbbbbb,.} + : * \ { } : Ensemble des mots dfinis sur lalphabet sauf le mot vide (chanes non vides). 1 Exemple : = {a, b} ||=0

= {if, then, begin, else, end, :=, a, b, 4, c} = if a then b else b := 4

Chap2 : Thories des langages : Langages rguliers et Automates Etats Finis (A.U 2012 2013)

Remarque : Si alors * est infini, * = { } 1 = Remarque : Occurrences de symboles = {a, b} Soit = abb, | | = 3 | |a = 1 | |b = 2 n o n 0 : Ensemble des chanes / Mots sur de longueur n. 0 = { }

II.

Les langages

II.1. Dfinition Un langage est un ensemble dnombrable quelconque de chanes sur un alphabet donn. Cest un sous ensemble de * Exemple : = {a, b} L1 = { anbn / n 0 } = { , ab, aabb, aaabbb, aaaabbbb, } II.2. Oprations sur les langages Soient deux langages L et M. On peut dfinir les oprations suivantes : Opration Union Concatnation Intersection Puissance Dfinition et Notation L U M = { / L ou M} L . M = {12 / 1 L et 2 M} : Ensemble des mots forms en prenant une chane dans le er langage et une chane dans le 2me langage. L M = { / L et M} Ln = L.L.L.L = {12 n , i L pour tout i {1,, n}} n fois Etoile/ Fermeture de L* = Kleene Fermeture transitive Exemple : Soit L lensemble des lettres { A,, Z, a,z }. Soit C lensemble des chiffres {0, 1 , , 9} Il y a 2 faons de voir : - L et C sont des alphabets - L et C sont des langages dont toutes les chanes ont une longueur = 1. Que dfinissent les langages suivants : L U C, L.C, L5, L*, L(L U C)*, C+ 1) L U C 2) L.C 3) L5 4) L* 5) L(L U C)* 6) C+ Chap2 : Thories des langages : Langages rguliers et Automates Etats Finis (A.U 2012 2013) 2

n>=0 Ln =
i =1

L
i =0 i

= { } U L U L2 U L3 U U Ln

L+ = L*.L =

(sans )

III. Les langages rguliers / Expressions rgulires


III.1. Dfinition de langages rguliers Un langage L sur un alphabet est dfini rcursivement comme suit : { } est un langage rgulier sur . Si a est un symbole de , {a} est un langage rgulier sur et L(a) = {a} Si R est un langage rgulier sur , alors Rn et R* sont des langages rguliers sur . Si R1 et R2 sont des langages rguliers sur , alors R1 U R2 et R1R2 sont des langages rguliers.

Les langages rguliers se dcrivent trs facilement par une expression rgulire. III.2. Dfinition dune expression rgulire Les expressions rgulires (E.R) sur un alphabet et les langages quelles dcrivent sont dfinis rcursivement de la manire suivante : est une E.R qui dcrit le langage { } Si a , alors a est une E.R qui dcrit {a} Si r est une E.R qui dcrit le langage R, alors (r)* est une E.R dcrivant R* Si r est une E.R qui dcrit le langage R, alors (r)+ est une E.R dcrivant R+

Si r et s sont des E.R qui dcrivent respectivement les langages R et S alors (r)|(s) est une E.R dcrivant R U S Si r et s sont des E.R qui dcrivent respectivement les langages R et S alors (r)(s) est une E.R dnotant R.S Il ny a pas dautres expressions rgulires

Remarques : 1)
Orde de priorit croissante | .

ab*|c quivalent ((a)(b*))|(c)

2) La concatnation est distributive par rapport | : r(s|t) = rs|rt et (s|t)r = sr |tr


Exemples : Soit = {a, b} 1) a|b dnote le langage {a, b} 2) (a|b)(a|b) dnote le langage {aa, ab, ba, bb} = aa|ab|bb|ba 3) a* dnote lensemble des chanes de 0, 1 ou plusieurs a soit { , a, aa, aaa, aaaaaaaa, .} 4) (a|b)* dnote lensemble de toutes les chanes constitues dun nombre quelconque de a et de b { , a, b, ab, aaab, bab, aabbbb, bababa, aabbabab,} = (a*b*)* 5) a|a*b dnote lensemble form par la chane a et toutes les chanes formes par 0, 1 ou plusieurs a suivi de b : {a, b, ab, aab, aaaaaab, aaaaaaaaaaaaab, aaaaaaaaaaaaaaaab,}

Chap2 : Thories des langages : Langages rguliers et Automates Etats Finis (A.U 2012 2013)

III.3. Thormes algbriques pour les expressions rgulires Commutativit Associativit Associativit de la concatnation Distributivit de la concatnation par rapport lunion neutre pour la concatnation est inclus dans la fermeture Idempotence de * Remarque : (a|b)*.a.(a|b)* qui dcrit les mots sur {a, b} ayant au moins un a est ambigu. abaab colle lexpression rgulire de plusieurs manires abaab = .a.baab = ab.a.ab = aba.a.b En revanche b*a(a|b)* dcrit le mme langage et nest pas ambigu. abaab = .a.baab r|s = s|r r|(s|t) = (r|s)|t r.(s.t) = (r.s).t r.(s|t) = r.s | r.t (r|s).t = r.t |s.t .r = r. = r r* = (r| )* (r*)* = r*

IV. Automates tats finis


Les Automates Etats Finis (A.E.F) sont des reconnaisseurs pour les langages rguliers. Un reconnaisseur pour un langage est un programme qui prend en entre une chane x et rpond OUI si x est une chane du langage et NON sinon. IV.1. Dfinition dun A.E.F Un automate tats finis est un quintuplet A = < Q, , , q0, F> Q : Ensemble des tats de lautomate : Alphabet dentre (On suppose que nest jamais un membre de ) : Fonction de transition qui donne pour chaque tat et chaque symbole de lensemble des tats suivants. : Q Q (q,a) = q avec (q, q) Q2 et a q0 : Q distingu comme ltat de dpart (tat initial). F : Q distingu comme tant lensemble des tats dacceptation (tats finaux). Exemple : Soit lautomate dfini comme suit : ={a,b} (0,a) = {0,1} Q= {0, 1, 2, 3} (0,b) = {0} q0= {0} F= {3} (2,b) = {3} (1,b) = {2}

Reprsentation du graphe de transition

Cet automate permet de reconnatre lexpression rgulire : (a|b)*abb Lensemble des chanes qui se terminent par abb. Chap2 : Thories des langages : Langages rguliers et Automates Etats Finis (A.U 2012 2013) 4

Un AEF peut tre reprsent par une table de transition. Etat a b 0 {0,1} {0} 1 {2} 2 {3} 3 Acceptation de chanes dentre par des automates Un automate accepte une chane dentre x ssi il y a un chemin dans le graphe de transition partant de ltat initial et aboutissant lun des tats finaux. Exemple : Soit ={a,b} Automate qui reconnat lexpression rgulire a b (a|b)* Automate qui reconnat lexpression rgulire aa*| bb*
a 0 b 4 2 b 4 1 a

IV.2. Dfinition dun AFD Un Automate tats Finis Dterministe (AFD) sur un alphabet est un automate qui vrifie les deux conditions suivantes : - Il possde un seul tat initial - Pour tout tat q, et pour tout symbole a de , il existe au plus une transition partant de q et portant ltiquette a. Exemple : Soit ={a,b}. Langage qui reconnat (a | b)* b Solution Non Dterministe a,b b 0 1 Solution Dterministe b a b
0 a 1

IV.3. Dterminisation dun Automate tats Finis Non dterministe (AFN) Principe : Considrer des ensembles dtats plutt que des tats Dterminisation : 1) Partir de ltat initial E = {e0} 2) Construire lensemble E1 des tats obtenus partir de E par la transition a: E(1) = (E,a) 3) Recommencer 2 pour toutes les transitions possibles pour chaque nouvel ensemble dtat E(i) 4) Tous les ensembles contenant au moins un tat terminal deviennent terminaux 5) Renumroter alors les ensembles dtats en tant que simples tats Chap2 : Thories des langages : Langages rguliers et Automates Etats Finis (A.U 2012 2013) 5

Exemple : Soit lautomate dcrit comme suit :


a,b 0 b 1 b a 2 a,b

Table de transition associe : a b 0 0 0,1 1 2 1 2 2 2


a 0 b 3 b a 2

Dterminisation de lautomate 0 1 2 3 Etat 0 0,1 0,2 0,1,2 a 0 0,2 0,2 0,2 B 0,1 0,1 0,1,2 0,1,2

b 1

a a

Remarque : Un automate est dit complet si de chaque tat sortent toutes les transitions possibles tiquetes par les symboles de . IV.4. Extension des AFN : AFN avec -transition(AFN) Un AFN est un automate tats finis qui autorise partir dun tat donn plusieurs transitions avec un mme symbole, sachant que ne fait pas partie de lensemble des symboles . Il peut tre pratique de considrer des transitions spontanes ..d. des transitions sans lire de nouveaux symboles. Une transition o on change d'tat sans lire de symbole est traditionnellement appele une transition car tout ce passe comme si on avait lu le mot vide la place d'un symbole. Dfinition : -transition On appelle -transition, une transition par le symbole entre 2 tats. Un AFN avec -transition est appel AFN. Il est utilis en gnral pour composer les automates. Tout AFN peut tre vu comme un AFN. IV.4.2. Construction dAFN partir dexpressions rgulires : Construction de Thompson Le principe est bas sur la construction de Thompson, base sur la rcursivit des expressions rgulires. Pour une expression rgulire S, on note A(S) un automate reconnaissant cette expression. Expression rgulire Automate qui reconnat

R r et s
r 0 1

Chap2 : Thories des langages : Langages rguliers et Automates Etats Finis (A.U 2012 2013)

r|s

r*

r+
En appliquant la construction de Thompson, convertissez les expressions rgulires suivantes en AFN.

1) a+(bc)*

2) (ab | bca)+ bb (ab | cb)*

IV.4.3. Dterministation dun AFN avec -transition Dfinition : -fermeture On appelle -fermeture dun ensemble dtats T = {e1,e2 ,, en} lensemble des tats accessibles depuis un tat ei de T par des -transitions. -fermeture({e1,,en}) = {e1,,en}U{e tq ei avec i =1,2,,n tq ei Dterminisation : 1) Partir de -fermeture de ltat initial 2) Rajouter dans la table de transition toutes les -fermetures des nouveaux tats produits, avec leurs transitions. 3) Recommencer 2 jusqu ce quil n y ait plus de nouvel tat 4) Tous les tats contenant au moins un tat terminal deviennent terminaux 5) Renumroter alors les tats Exemple : Soit lautomate dcrit comme suit :
a a B a b C b b b D a

e}

Dterminisation de lautomate AFN {0} {0, 1, 2} {0,1} {0,1, 3} Etat AFD A B C D A {1,2} B {1, 2} B {1, 2} B {1, 2} B B {1} C {1, 3} D {1} C {1} C

Chap2 : Thories des langages : Langages rguliers et Automates Etats Finis (A.U 2012 2013)

III. Minimisation dun AFD


Lobjectif est dobtenir un automate ayant le minimum dtats possibles. Certains tats peuvent tre considrs quivalents. Principe : On dfinit des classes dquivalence dtats par raffinements successifs. Chaque classe dquivalence obtenue forme un seul et mme tat du nouvel tat. Minimisation : 1) Faire deux classes : A contenant les tats terminaux et B contenant les tats non terminaux. 2) Sil existe un symbole a et deux tats e1 et e2 dune mme classe tel que (e1,a) et (e2,a) nappartiennent pas la mme classe, alors crer une nouvelle classe et sparer e1 et e2. on laisse dans la mme classe tous les tats qui donnent un tat darrive dans la mme classe. 3) Recommencer 2 jusqu ce quil ny ait plus de classes sparer. 4) Chaque classe restante forme un tat du nouvel automate. Exemple : Soit lautomate dcrit comme suit :
b b A a a a C a B b a D b E b

Minimisation de lautomate A I I I I I I I IV I I B I I I I I III IV IV III IV C I I I I I I I IV I I D I I II III I II III IV II III E II I I II I I II IV I II I : {A, B, C, D} II : {E} I :{A, B, C} II : {E} III : {D} I : {A, C} II : {E} III : {D} IV: {B}

a b a b a b

Automate minimal:
b b I b a a b a IV a II

III

Chap2 : Thories des langages : Automates finis et langages rguliers (A.U 2012 2013)

Vous aimerez peut-être aussi