You are on page 1of 13

Notes de cours sur les automates (NFP108)

F. Barth lemy e 23 octobre 2007


Avertissement : ce document est en cours d laboration et susceptible d voluer. Il est dans e e un etat provisoire.

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}.

3.2 Ex cution dun automate ni e


3.2.1 D nitions des notions li es a lex cution e e ` e Nous avons vu dans la section pr c dente quun automate ni d nit un langage, cest-` -dire e e e a un ensemble de chane. Mais un automate est aussi une machine, que lon peut ex cuter pour e tester lappartenance dune chane a ce langage ou pour g n rer les chanes de ce langage. ` e e Nous allons dabord voir lex cution dun automate en reconnaissance. e 3

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

3.3 Langage r gulier, non-d terminisme e e


D nition 11 Langage r gulier e e Un langage L est dit r gulier sil existe un automate ni A tel que L = L(A). e D nition 12 Automate ni non-d terministe e e Un automate ni A = (, Q, , i, F ) est dit non d terministe sil existe dans deux transitions e (q1 , x, q2 ) et (q1 , x, q3 ) telles que q2 = q3 . Un automate est non-d terministe si dans certains cas, il existe plusieurs chemins etiquet s e e par la m me chane. Un automate ni est d terministe sil nest pas non-d terministe. e e 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

F IG . 3 exemple dunion dautomates nis

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 .

4.1 Exemple dutilisation des op rations e


Les diff rentes propri t s etudi es dans cette section ont un int r t direct pour la sp cication. e ee e ee e Par exemple, lunion est la base de la modularit . La diff rence ensembliste permet un traitement e e facile des exceptions. Illustrons cela sur un exemple. Supposons que lon veuille repr senter avec un automate ni tous les mots du francais pour e une application de correction orthographique. On va faire une liste de tous les noms au singulier. Chaque nom peut facilement etre repr sent avec un automate ni qui na quun chemin e e succ` s correspondant a ce mot. Par exemple abri est repr sent par : e ` e e

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.

5 Expression r guli` res e e


Les expressions r guli` res sont une facon de noter un langage r gulier. Nous allons dabord e e e les d nir, puis ensuite montrer quelles recouvrent exactement la notion de langage r gulier. e e D nition 15 Expression r guli` re e e e Soit un alphabet. est une expression r guli` re d notant le langage vide. e e e est une expression r guli` re d notant le langage { }. e e e soit x . x est une expression r guli` re d notant le langage {x}. e e e 8

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

6 D terminisation, minimisation, epsilon transition e


Propri t 13 Pour tout langage r gulier L, il existe un automate ni d terministe A tel que ee e e L = L(A). Par d nition, un langage est r gulier sil existe un automate ni qui le reconnat. La propri t e e ee enonc e sp cie de plus que sil existe un automate qui reconnat un langage, alors il existe e e n cessairement un automate ni d terministe qui le reconnat. Cette propri t est int ressante e e ee e op rationnellement, car, si lon peut utiliser cet automate d terministe, on pourra savoir si une e e chane appartient ou non au langage en effectuant un seul calcul de lautomate. Il existe un algorithme de d terminisation permettant de construire un automate d terministe e e a partir dun automate non-d terministe. Cet algorithme utilise la notion densemble de succes` e seurs dun etat pour un symbole donn . e D nition 16 Ensemble de successeurs e Soit A = (, Q, , i, F ) un automate. On appelle ensemble des successeurs de l tat q pour un e symbole x et on note succ(q, x) lensemble des etats r tels quil existe une transition (q, x, r) dans . Soit A = (, Q, , i, F ) un automate ni non-d terministe. On d nit det(A) = (, 2 Q , , {i}, F ) e e avec = {(M, x, N )|N = qM succ(q, x)} F = {M 2Q |M F = } Rappel : 2Q est une notation pour d signer lensemble des parties de lensemble Q. On peut e montrer que det(A) est d terministe et que L(det(A)) = L(A) (ce que nous ne ferons pas ici). e Cet algorithme est potentiellement co teux parce que le nombre d tat crot de facon exu e ponentielle par rapport a lautomate non d terministe. En pratique, ce co t nest pas toujours ` e u effectif parce quun grand nombre d tats de 2Q sont inaccessibles depuis l tat initial {i} et ne e e sont pas calcul s si lon sy prend bien. N anmoins, dans les mauvais cas, la taille du r sultat est e e e une fonction exponentielle de la taille de lautomate non-d terministe. e Prenons un exemple dautomate non d terministe qui d crit les diff rentes formes de ladjece e e tif ni, a savoir : ni, nis, nie et nies. Une construction nave de lautomate consiste a ecrire ` ` un chemin distinct pour chaque mot du langage.
1 f f 0 f f 10 5 i 6 n 7 i 8 s 9 i 2 n 3 i 4

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

automate avec epsilon-transition


Il y a deux chemin de longueur 1 qui commencent per la transition sur epsilon : (1, , 3)(3, b, 3) (1, , 3)(3, c, 4) On ajoute a lautomate deux nouvelles transitions qui r sument ces deux chemins : ` e (1, b, 3) (1, c, 4) Et on supprime la transition (1, , 3). Il est facile de voir que pour tout succ` s dans lancien e automate, il existe un succ` s dans le nouveau et r ciproquement. e e

2 a 1 b b b 3 c automate sans epsilon-transition


Lalgorithme est un peu plus complexe dans les cas o` plusieurs epsilon-transitions se suivent u et si elles vont dans un etat nal, mais le principe g n ral pr sent ici reste valable. e e e e Lutilisation des epsilon-transitions permet parfois de d crire plus lisiblement un langage. e Elle permet aussi de simplier la description de certaines op rations (par exemple lunion ou la e concat nation). Dun autre c t , lexistence depsilon-transitions rend g n ralement lautomate e oe e e non-d terministe puisquon a toujours la possibilit demprunter une telle transition m me quand e e e il existe une transition ordinaire que lon pourrait emprunter. Par exemple, sur notre exemple, depuis la conguration initiale (1, abc), on peut par un pas de calcul aller aussi bien dans la conguration (1, bc) en suivant la transition sur a que dans la conguration (3, abc) en suivant la transition sur epsilon. 12

c c

7 Utilisation des automates nis


Les automates nis et les expressions r guli` res sont utilis es dans diff rents contextes. e e e e Pour d crire des traitements textuels (par exemple, recherche de sous-chane). Dans les e traitements de textes, les langages de script (awk, perl), etc. Pour d crire les l x` mes dun langage dans un compilateur ou un interpr teur (langage de e e e e programmation, de script, de description de document, dinterrogation de base de donn e). e De m me pour les chiers de conguration dapplications. e Pour d crire l tage morpho-lexical des langues naturelles (dictionnaires, lexiques). e e Pour d crire les propri t s dynamiques dun syst` me. Par exemple dans des langages de e ee e description comme UML (diagrammes etats-transitions) ou SA-RT. Pour d crire le ot de contr le dun programme s quentiel (par exemple, pour faire des e o e tests daccessibilit dinstructions). e Les propri t s des automates nis sont tr` s int ressantes. Gr ce a la d terminisation et a la ee e e a ` e ` minimisation, toute description sous forme dautomate ni peut etre ex cut e efcacement. Les e e op rations ensemblistes ainsi que la concat nation et l toile ouvrent la voie a la modularit e e e ` e et au traitement dexceptions. Des botes a outil efcace existent qui permettent de d crire et ` e dex cuter de tr` s gros automates (plusieurs millions d tats et de transitions). e e e Dun autre c t , les automates nis ont une puissance limit e. Ils nont pas la puissance des oe e machines de Turing. La seule m moire des automates nis est les etats qui sont en nombre ni. e Parmi les langages qui ne peuvent pas etre d crits par automates nis, voici quelques exemples e classiques : les chanes qui ont le m me nombre de a que de b. e les chanes bien parenth s es (avec une parenth` se fermante pour chaque ouvrante et une ee e bonne imbrication des parenth` ses). e Il existe plusieurs formalismes qui augmentent le pouvoir descriptif des automates nis. Cela permet de repr senter des langages non r guliers. Il y a donc surcrot de puissance. Mais la e e contrepartie est la perte de certaines des bonnes propri t s des automates nis. Citons quelques ee exemples : les transducteurs nis sont utilis s pour d crire des relations r guli` res ou des fonctions e e e e de traduction. Sur chaque transition, il y a deux symbole : un en lecture, un en ecriture. Reconnatre une chane permet dobtenir son image par la fonction. les automates a pile : une pile de taille illimit e est ajout a un automate ni. Chaque tran` e e` sition lit un symbole de chane et r alise une op ration de pile (empilement, d pilement, e e e lecture du sommet). Ce dispositif d crit les langages non contextuels qui sont utilis s pour e e d crire la syntaxe des langages informatique et parfois aussi la syntaxe des langues natue relles. les r seaux de Petri : sur la base dun graphe orient , on ajoute la notion de jetons qui e e peuvent se d placer dans le graphe, etre cr es ou eliminer. Des contraintes sp ciques e e e permettent de limiter le nombre de jetons dans certains nuds du graphe. Compte tenu de leur faible pouvoir expressif, les sp cications sous forme dautomates nis e sont souvent des sp cications partielles qui ne d crivent quimparfaitement, approximativement e e un syst` me. Ils sont n anmoins les bienvenus dans ce r le du fait de leur simplicit . e e o e 13

You might also like