Professional Documents
Culture Documents
1 Introduction
Les automates nis a etats (automates ni en abr g ) offrent un formalisme de description peu ` e e puissant mais avec beaucoup dalgorithmes efcaces. Ils sont tr` s utilis s notamment dans deux e e domaines : le traitement de chanes de caract` res et la description de comportement dynamique e de syst` mes. e
2 Un premier exemple
Un automate ni est un graphe orient dont les arcs sont etiquet s par des symboles. Voyons e e un exemple.
6 n 4 e 0 j 1 o 2 u 3 o 5 n 7 s z s 8 t
F IG . 1 exemple dautomate ni La notation du graphe met en evidence deux types de noeuds particulier. Dune part l tat e initial, qui est caract ris par une ` che entrante venant de nulle part et sans etiquette (ici l tat e e e e 1
0). Dautre part les etats nals, identi s par un double cercle (ici les etats 4 et 8). Il y a toujours e exactement un etat initial, alors quil peut y avoir 0, 1 ou plusieurs etats nals. Les noeuds du graphe sont appel s etats et les arcs sont appel s des transitions. Dans un tel graphe, on sint resse e e e aux chemins qui vont de l tat initial a un etat nal. A chaque chemin est associ e la chane des e ` e etiquettes des arcs parcourus. Par exemple, il y a un chemin qui part de l tat 0, passe par les etats 1, 2, 3 et arrive en 4, e qui est un etat nal. La chane correspondante est joue. Il existe de m me des chemins pour les e chanes joues, jouent, jouez et jouons. Lensemble de ces chanes forme ce que lon appelle le langage de lautomate. Cet exemple est donc un automate qui repr sente le pr sent de lindicatif e e du verbe jouer. Notez que des chemins diff rents partagent des parties communes. Par exemple, e ici, le pr xe jou est repr sent une fois alors quil appartient a toutes les chanes. e e e `
3 Automates nis
3.1 D nitions de base e
D nition 1 Alphabet, chane e On appelle alphabet un ensemble ni de symbole. Une chane sur un alphabet est une s quence e eventuellement vide de symboles de . La s quence vide est not e . Les autres s quences sont e e e not es par la juxtaposition des symboles qui les composent. e D nition 2 Langage e Un langage est un ensemble de chanes sur un alphabet . D nition 3 Automate ni e Un automate ni est un quintuplet A = (, Q, , i, F ) ou : ` est un ensemble ni de symboles appel alphabet. e Q est un ensemble ni dont les el ments sont appel s etats. e e est une relation de Q Q appel e transition ou ensemble des transitions de A. e i est un etat de Q appel etat initial. e F est un sous-ensemble de Q appel ensemble des etats nals de A. e Lensemble des transitions est une relation, cest-` -dire un ensemble de triplets. Cet ena semble est n cessairement ni puisque Q et sont nis. Un automate ni est compos de come e posantes qui sont toutes nis (, Q, , F ), do` le qualicatif de ni. u D nition 4 Repr sentation graphique e e Un automate ni peut etre repr sent graphiquement comme un graphe orient dont les sommets e e e sont les etats et les arcs sont les transitions. Une transition (q1 , x, q2 ) est repr sent e par un arc e e reliant les sommets q1 et q2 , etiquet par x. e Nous avons d j` vu un exemple de repr sentation graphique (gure 1). Reprenons pour cet ea e exemple les diff rentes d nitions. Lalphabet de lautomate est lensemble {e, j, n, o, s, t, u, z}. e e Le quintuplet d crivant lautomate est le suivant : (, {0, 1, 2, 3, 4, 5, 6, 7, 8}, , 0, {4, 8}) avec e 2
= {e, j, n, o, s, t, u, z} = {(0, j, 1), (1, o, 2), (2, u, 3), (3, e, 4), (3, o, 5), (4, n, 6), (4, s, 8), (4, z, 8), (5, n, 7), (6, t, 8), (7, s, 8)} D nition 5 Chemin e Soit A = (, Q, , i, F ) un automate. Un chemin de cet automate est une s quence e d a d a a d (q1 , x1 , q1 ) . . . (qn , xn , qn ) de transitions de telle que n 0 et i, 1 < i n, qi1 = qi . La chane associ e a ce chemin est x1 . . . xn . e ` Cette notion de chemin correspond a celle de chemin en th orie des graphes. ` e D nition 6 Chemin succ` s e e d a d a Soit A = (, Q, , i, F ) un automate. Un chemin (q1 , x1 , q1 ) . . . (qn , xn , qn ) de cet automate est d a appel un succ` s si q1 = i et qn F . e e En dautres termes, un chemin succ` s est un chemin qui part de l tat initial et qui arrive dans e e un etat nal. D nition 7 Chane associ e a un chemin e e ` d a d a Soit A = (, Q, , i, F ) un automate et (q1 , x1 , q1 ) . . . (qn , xn , qn ) un chemin de A. La chane assocu e a ce chemin est x1 . . . xn . e ` D nition 8 Langage d ni par un automate ni e e Soit A un automate. Le langage d ni par cet automate est lensemble des chanes associ es aux e e chemins succ` s de cet automate. e Attention, une chane appartient a ce langage sil existe un chemin succ` s associ a cette ` e e ` chane. Cela ne signie pas que tous les chemins partant de l tat initial et associ s a cette chane e e ` sont des succ` s. e Sur lexemple de la gure 1, voici deux exemples de chemins. (0, j, 1)(1, o, 2)(2, u, 3)(3, e, 4) (0, j, 1)(1, o, 2)(2, u, 3)(3, o, 5)(5, n, 7) Les deux chemins commencent dans l tat initial 0. Le premier chemin se termine dans l tat 4 e e qui est un etat nal. Donc ce chemin est un succ` s. Le second chemin se termine dans l tat 7 e e qui nest pas nal. Ce nest donc pas un succ` s. Les chanes associ es a ces deux chemins sont e e ` respectivement joue et jouon. Le language d ni par lautomate est lensemble e {joue, joues, jouons, jouez, jouent}.
D nition 9 Conguration, conguration initiale, conguration nale e Une conguration dun automate A = (, Q, , i, F ) est un el ment de Q (un couple e comprenant un automate et un chane). La conguration (i, w) o` i est l tat initial et w la chane dont on cherche a savoir si elle u e ` appartient ou non a L(A) est appel e conguration initiale. e ` Une conguration (q, ) o` q F est appel e conguration nale u e Une conguration re` te un etat interm diaire dun parcours dun chemin. L tat donne le e e e noeud auquel on est arriv et la chane est ce quil reste a reconnatre sur la suite du chemin. e ` Cest un sufxe de la chane que lon teste. D nition 10 Pas de calcul, calcul, calcul succ` s e e Un pas de calcul permet de passer dune conguration (q1 , a) a une conguration (q2 , ) sil ` existe une transition (q1 , a, q2 ) dans . Un tel pas de calcul est not (q1 , a) (q2 , ). e Un calcul est une s quence de conguration c1 , . . . , cn telle que i, 1 < i n, ci1 ci . e Un calcul c1 , . . . , cn est appel un succ` s si c1 est la conguration initiale et cn est une congue e ration nale. Un calcul est un moyen de parcourir un chemin du graphe a la recherche dun chemin succ` s ` e (cest a dire un chemin partant de l tat initial et arrivant dans l tat nal, etiquet par w). Un ` e e e calcul succ` s correspond a un chemin succ` s. e ` e Propri t 1 Soit A = (, Q, , i, F ) un automate. Une chane w appartient a L(a) si et seuleee ` ment si il existe un calcul succ` s partant de la conguration initiale (i, w). e Attention, il faut quun calcul succ` s existe, cela ne signie pas que tous les calculs partant e de cette conguration doivent etre des succ` s. Sil y a plusieurs chemins dans le graphe partant e de l tat initial qui sont etiquet s par w, il suft quun de ces chemins arrive dans un etat nal e e pour que w appartienne au langage. Pour prouver que w appartient a L(A), il faut trouver un ` chemin succ` s. Pour prouver que w nappartient pas a L(A), il faut prouver quaucun chemin e ` nest un succ` s. Il faut donc avoir regard tous les chemins pour tirer cette conclusion. e e 3.2.2 Exemple dex cution e Prenons un exemple. Voyons pour cet automate un calcul qui permet de montrer que aaba appartient au langage. La conguration initiale est (0,aaba). Le calul succ` s est le suivant : e (0,aaba) (1,aba) (3,ba) (2,a) (2, ) Ce calcul est un succ` s parce que la derni` re conguration a une chane vide et arrive dans e e l tat nal 2. e On peut d nir un notion de calcul et dex cution dautomate en g n ration, pour enum rer e e e e e les chanes dun automate. Nous ne d taillerons pas cela ici. Le principe g n ral consiste a accu e e e ` muler les symboles vus sur la partie du chemin d j` parcourue au lieu de stocker le reste de ce ea qui reste a trouver sur le chemin non enocre parcouru. ` 4
b a a 0 1 a b 3 b a 2
F IG . 2 automate a ex cuter ` e
4 Propri t s de cl ture ee o
Nous allons nous int resser a deux langages r guliers particulier et a des op rations enseme ` e ` e blistes qui conservent la r gularit . e e Propri t 2 Le langage vide est r gulier. ee e Lautomate qui ne comprend que l tat initial qui nest pas nal ne poss` de aucun chemin e e succ` s. Il ny a aucun etat nal, donc il ny a pas de chemin succ` s. Donc le langage reconnu ne e e comporte aucune chane, cest le langage vide (lensemble vide). Propri t 3 Le langage { } est r gulier. ee e Lautomate qui ne comprend que l tat initial qui est egalement nal reconnat ce langage, e sil na aucune transition. Il convient de bien saisir la diff rence entre le langage vide qui ne e contient aucune chane et ce langage qui contient une chane, la chane vide. 5
Propri t 4 Lunion de deux langages r guliers est un langage r gulier. ee e e La preuve de cette propri t est bas e sur un algorithme qui construit un automate reconnaisee e sant L(A1 ) L(A2 ) etant donn s les deux automates A1 et A2 . e A1 = (, Q1 , 1 , i1 , F1 ) et A2 = (, Q2 , 2 , i2 , F2 ). On suppose que Q1 et Q2 sont disjoints. Si ce nest pas le cas, on peut renommer les etats dun des deux automates. Cela ne change pas le langage reconnu, puisque le nom des etats nintervient pas dans les chanes. A 1 A2 = (, Q1 Q2 {i}, , i, F1 F2 ) o` u i est un nouvel etat initial napprtenant ni a Q1 , ni a Q2 . ` ` = 1 2 {(i, x, q)|(i1 , x, q) 1 } {(i, x, q)|(i2 , x, q) 2 } La gure 3 montre un exemple dunion. Le nouvel etat initial cr e est l tat 0. e e D nition 13 Concat nation de langages e e Soient L1 et L2 deux langages. La concat nation de L1 et L2 , not e L1 .L2 est d nie par : e e e L1 .L2 = {w1 w2 |w1 L1 et w2 L2 }. Propri t 5 La concat nation de deux langages r guliers est un langage r gulier. ee e e e A1 = (, Q1 , 1 , i1 , F1 ) et A2 = (, Q2 , 2 , i2 , F2 ). On suppose que Q1 et Q2 sont disjoints. A1 .A2 = (, Q1 Q2 , , i1 , F ) o` u = 1 2 {(q1 , x, q2 )|q1 F1 et (i2 , x, q2 ) 2 } F = F2 F3 si i2 F2 F = F3 sinon D nition 14 Cl ture sous concat nation e o e Soit L un langage. On appelle cl ture sous concat nation de L et on note L le langage d nit o e e par L = {w1 . . . wn |n 0 et i, 1 i n, wi L}. Propri t 6 La cl ture sous concat nation dun langage r gulier est un langage r gulier. ee o e e e A = (, Q, , i, F ). A = (, Q, , i, F {i}) o` = {(q1 , x, q2 )|q1 F et (i, x, q2 ) } u Propri t 7 Lintersection de deux langages r guliers est un langage r gulier. ee e e Soient A1 = (, Q1 , 1 , i1 , F1 ) et A2 = (, Q2 , 2 , i2 , F2 ). A1 A2 = (, Q1 Q2 , , (i1 , i2 ), F1 F2 ) avec = {((q1 , q2 ), x, (r1 , r2 ))|(q1 , x, r1 ) 1 , (q2 , x, r2 ) 2 } Propri t 8 Le compl mentaire dun langage r gulier L, not L, est un langage r gulier. ee e e e e Soit A = (, Q, , i, F ) un automate. Pour calculer lautomate d nissant L(A), on proc` de e e en deux temps. Dabord on compl` te lautomate A au moyen dun etat dit etat poubelle et de e transitions allant des autres etats vers cet etat. Pour tout etat de Q et tout symbole x de , soit il existe une transition (q, x, r) dans , soit on ajoute une transition (q, x, poub) a lautomate (poub ` etant l tat poubelle). Ensuite, on inverse le statut des etats : les etats nals deviennent non nals e et les etats non nals deviennent nals. A = (, Q1 {poub}, , i, Q1 F ) avec = {(q, x, poub)| il nexiste pas (q, x, r) dans }. 6
a 1 b
a a 2 a a 1 a b b 2 3 b c
a 4
a b c a 4 a b
Propri t 9 La diff rence ensembliste de deux langages r guliers est un langage r gulier. ee e e e Cette propri t est la cons quence des deux propri t s pr c dentes. En effet, L 1 L2 = ee e ee e e L1 L 2 .
Le lexique de tous les noms au singulier peut etre obtenu en faisant lunion de tous les auto mates ainsi construits. Appelons noms_singulier cet automate. Pour avoir maintenant les noms au pluriel, il faut ajouter un s a la n des mots. Cela peut etre ` obtenu au moyen de lop ration de concat nation. e e Mais il y a certaines exceptions qui ont un pluriel en x. On peut faire la liste de ces exceptions (pou, hibou, chou, etc). Appelons exceptions lautomate construit a partir de cette liste. Ap` pelons s_final et x_final les deux automates qui contiennent respectivement les chanes s et x. La liste des mots au pluriel peut sobtenir par : ((noms_singulier-exceptions).s_final)(exceptions.x_final) Dans une application r elle, il faut g rer aussi dautres exceptions (pluriel des mots en al, en e e ail, en eu et pluriels irr guliers). Cela peut se faire avec le m me genre dutilisation des op rations e e e ensemblistes.
Supposons que p et q sont deux expressions r guli` res d notant les langages L1 et L2 . e e e Alors, p|q est une expression r guli` re d notant le langage L1 L2 . e e e pq est une expression r guli` re d notant le langage L1 .L2 . e e e p est une expression r guli` re d notant le langage L . e e e 1 On peut etend la notation des expressions r guli` res avec des parenth` ses facultatives et avec e e e + la notation p pour abr ger lexpression r guli` re p p. e e e Deux exemples dexpressions r guli` res : e e (a|b)(a|c) d note le langage {aa,ac,ba,bc}. e ab a d note lensemble des chanes commencant par un a, suivies dun nombre quelconque e de b et termin e par un a. e Deux expressions r guli` res sont egales si elles d notent le m me ensemble r gulier. Voici e e e e e quelques egalit s dexpressions r guli` res : e e e p|q = q|p (par commutativit de lunion densemble) e = (p|q)|r = p|(q|r) (par associativit de lunion ensembliste) e p = p=p p|p = p (p ) = p p = p Les langages d nis par les expressions r guli` res et les automates nis sont les m mes : ce e e e e sont les langages r guliers. Cela peut s noncer au moyen de deux propri t s (double inclusion). e e ee Propri t 10 Pour toute expression r guli` re p, il existe un automate ni qui reconnat le lanee e e gage d ni par p. e Cette propri t est une cons quence evidente des propri t de cl tures enonc es a la section ee e ee o e ` pr c dente. e e Propri t 11 Pour tout automate ni A, il existe une expression r guli` re d notant le langage ee e e e L(A). Nous nallons pas prouver cette propri t . Nous allons donner un moyen de d terminer lexee e pression r guli` re associ e a un automate ni. Pour chaque etat q de lautomate, on note X q le e e e ` langage comprenant toutes les chanes etiquetant un chemin partant de q et arrivant dans un etat nal. Si q est nal, alors le chemin vide conduit a un etat nal, donc appartient a X q . Tout ` ` chemin non vide commence par une premi` re transition conduisant a un etat q et ni par une e ` chemin allant de q a un etat nal. Un tel chemin est etiquet par une chane de Xq . En suivant ` e cette id e, on peut etablir pour chaque X une equation compos e de la disjonction de tous les e e moyens de faire un chemin allant dans un etat nal. Nous avons un syst` me d quations avec autant d quations que d tats dans lautomate. On e e e e r soud ce syst` me en utilisant le lemme dArden. e e Propri t 12 Lemme dArden ee Une equation du type X = X| o` nappartient pas a a une solution unique X = . u ` 9
11
12
13
14
15
16
17
18
19
20
10
La construction de lautomate d terministe part de l tat initial, 0. Par f, on peut aller dans e e les etats 1, 5, 10, et 15. On cr e un nouvel etat de nom 1,5,10,15. De 1 par i on va en 2, de 5 e en 6, de 10 en 11, de 15 en 16. On cr e donc un nouvel etat appel 2,6,11,16, avec une ` che e e e de 1,5,10,15 vers 2,6,11,16, etiquet e par i. Et ainsi de suite, ce qui donne le r sultat e e suivant.
e 0 f 1,5 10,15 i 2,6 11,16 n 3,7 12,17 i 4,8 13,18 s 9 14,19 s 20
Il existe un algorithme dit algorithme de minimisation qui permet de calculer un automate minimal en nombre d tat, equivalent a un automate d terministe donn . Nous ne d taillerons e ` e e e pas cet algorithme un peu complexe. Il est bas sur la recherche de redondance entre etats, cest e a dire des etats diff rents qui calculent le m me langage. Si on en trouve, ces etats redondants ` e e peuvent etre fusionn s en un seul. Cet algorithme est egalement assez co teux. e u La minimisation de lautomate d terministe pr c dent permet de fusionner les etats 9 et 20. e e e
e 0 f 1,5 10,15 i 2,6 11,16 n 3,7 12,17 i 4,8 13,18 14,19 s 9,20
Une extension simple et parfois utile des automates nis consiste a autoriser des transitions ` sans etiquettes, qui ne lisent pas de symbole de la chane. On appelle ces transitions epsilon transitions et on les note avec un epsilon en guise d tiquette. Cette extension de la syntaxe e des automates nis ne change rien a la puissance du formalisme. Cest a dire que les automates ` ` avec epsilon-transitions d crivent la m me classe de langages que les automates sans epsilone e transition, cest-` -dire les langages r guliers. a e Il existe un algorithme permettant de transformer un automate avec epsilon-transition en un automate equivalent sans epsilon-transition. Le principe de lalgorithme consiste a remplacer ` chaque chemin de longueur 1 commencant par une epsilon-transition par une nouvelle transition qui d crit ce chemin. Prenons un exemple. e
11
a 1
b epsilon
2 b 3
c c 4
c c