Вы находитесь на странице: 1из 11

i

Automates 2006/4/16 11:20 page 1 #1

i i

Automates nis
Jean-Eric Pin

Mots-cls : automate, langage, expression rationnelle, reconnaissable, automate squentiel, industrie de la langue, e e vrication, spcication. e e Rsum : introduits vers 1950, les automates nis constituent le mod`le le plus lmentaire de machine. Ce chapitre e e e ee prsente dune part les automates usuels, qui se contentent de lire un mot en entre pour laccepter ou le rejeter, et e e les automates squentiels, munis dune entre et dune sortie. Apr`s une br`ve prsentation du thor`me de Kleene, e e e e e e e cl de vote de la thorie des automates, nous dcrivons les applications des automates dans divers domaines, e u e e notamment la modlisation et les industries de la langue. e

Un bref historique

La thorie des automates est ne de la convere e gence de plusieurs courants scientiques. Le premier est issu des tentatives de logiciens tels que Church, Gdel ou Turing pour formaliser la notion o de calcul et de machine. Cet eort a occup toute e la premi`re moiti du vingti`me si`cle et pourtant, e e e e les automates nis, qui constituent le mod`le le e plus simple de machine, ne seront dnis formele lement que bien apr`s les machines de Turing. Les e syst`mes dynamiques discrets forment la seconde e source dinspiration. Bien que leur tude remonte e aux travaux de Morse datant de la premi`re moiti e e du vingti`me si`cle, leurs liens avec les automates e e nis font encore ` ce jour lobjet de recherches a tr`s actives. Le troisi`me courant, proche coue e sin du prcdent, est la thorie de linformation e e e btie par Shannon en 1948. Les probl`mes de coa e dage, tudis notamment par Schtzenberger d`s e e u e les annes cinquante, ont en eet profondment e e inuenc la thorie des automates. La quatri`me e e e source provient de linguistes tels que Chomsky qui, en cherchant ` formaliser les langues natua relles, ont introduit les concepts de mots, langages, grammaires, que nous utilisons aujourdhui. Le domaine des circuits lectroniques a t la cine ee qui`me source dinspiration. Il a conduit notame ment ` la notion dautomate avec sortie et au a concept de spcication du comportement dun e circuit. Les cinq domaines que nous venons dvoquer e bri`vement ont eu une inuence considrable sur e e la gn`se et le dveloppement de la thorie des aue e e e tomates. Mais historiquement, cest un article sur les rseaux neuronaux publi en 1943 par McCule e loch et Pitts qui est ` lorigine de la notion daua tomate. Il semble en eet que le terme thorie e des automates ait t introduit en 1948 par Von ee

Neumann en rfrence ` cet article. Par ailleurs, ee a ` la demande de la RAND Corporation, Kleene a a longuement analys cet article dans un mmoire e e rdig durant lt 1951, mais publi seulement en e e ee e 1956. Cet article marque la naissance de la thorie e des automates. Kleene y dmontre un thor`me qui arme e e e que les langages reconnus par un automate sont exactement les langages rationnels, appels aussi e langages rguliers, que lon peut dcrire ` pare e a tir des lettres de lalphabet eu utilisant trois oprations : lunion (qui joue le rle de laddie o tion), le produit et ltoile. On obtient ainsi un e procd descriptif tout ` fait dirent des autoe e a e mates, et ce rsultat est assez surprenant. Il a e pour consquence que lensemble des langages rae tionnels est ferm par intersection et complment. e e Les automates avec sortie ont t introduits ee eux aussi ` la n des annes cinquante. Un autoa e mate avec sortie lit un mot en entre et produit e un mot en sortie. Les mod`les les plus intressants e e sont les automates squentiels, qui permettent e dobtenir la sortie au fur et ` mesure de la lecture a du mot dentre. Ces automates sont tr`s proches e e des circuits lectroniques et leur synth`se en cire e cuit peut dailleurs tre enti`rement automatise. e e e

Mots et langages

En informatique, mais aussi en mathmatie ques, en linguistique ou en biologie, les informations sont souvent reprsentes par des cha e e nes de caract`res. Par exemple pour les donnes ine e formatiques, on utilise des suites de 0 et de 1, pour linformation gntique, des suites formes e e e des quatre caract`res A (Adnine), C (Cytosine), e e G (Guanine) et T (Thymine) et pour les langues naturelles, les mots gurant dans un dictionnaire. La formalisation commune ` ces exemples est a

i i i

i
Automates 2006/4/16 11:20 page 2 #2

i i
2 Automates finis

la suivante. Un alphabet est un ensemble ni dont les lments sont appels des lettres. Ainsi, on ee e parle de lalphabet binaire {0, 1}, de lalphabet du gnome {A, C, G, T }, de lalphabet latin usuel e {a, . . . , z, A, . . . , Z}. Dans les exemples qui vont suivre, on utilisera le plus souvent des alphabets assez petits tels que {a, b} ou {a, b, c} et on notera A lalphabet tout entier. Un mot sur lalphabet A est une suite nie de lettres de A. On note ces lettres par simple juxtaposition : ainsi le mot abracadabra est un mot sur lalphabet {a, b, c, d, r}. La longueur dun mot u, note |u|, est gale au nombre de lettres e e gurant dans u, chaque lettre tant compte aue e tant de fois quelle appara Ainsi, |abaabb| = 6 t. et |abracadabra| = 11. Il existe aussi un mot de longueur 0, que lon note . Le produit (ou concatnation) de deux mots e est le mot obtenu en mettant ces mots bout ` a bout. Par exemple, le produit des mots abra et cadabra est le mot abracadabra. On note aussi un le produit de n mots gaux ` u. Ainsi, (ab)3 = e a ababab. On appelle langage tout ensemble de mots sur un alphabet donn. Par exemple, les ensembles e {aba, babaa, bb} et {an bn | n 0} sont des langages sur lalphabet {a, b}.

ce mot en partant de ltat initial 1, on utilise e dabord la transition dtiquette a qui va de 1 vers e 2, puis celle de 2 vers 2 dtiquette a et enn celle e dtiquette b de 2 vers 3. Comme 3 est un tat e e nal, le mot aab est accept par lautomate. e Si on lit maintenant le mot aba en partant de ltat initial 1, on utilise successivement les trane sitions de 1 vers 2, de 2 vers 3 et enn de 3 vers 1. ` A lissue de la lecture du mot aba on arrive donc dans ltat 1, qui nest pas un tat nal : le mot e e est rejet par lautomate. e Enn, examinons le mot abb. Comme pour le mot aba, on commence par utiliser les transitions de 1 vers 2, puis de 2 vers 3, mais arriv dans e ltat 3, on constate quil ny a pas de transition e dtiquette b issue de 3. La lecture du mot ne peut e donc se poursuivre et le mot est galement rejet. e e

Langages reconnaissables

Lensemble des mots accepts par un autoe mate est par dnition le langage reconnu par e lautomate. On dit quun langage est reconnaissable sil existe un automate dterministe qui le e reconna En voici deux exemples. t. Lautomate de la gure 1.2 reconna le lant gage des mots sur lalphabet {a, b} qui commencent par aba. a, b

Automates dterministes e
1 a 2 b 3 a 4

La gure 1.1 reprsente un automate e dterministe. Cet automate poss`de trois tats, e e e 1, 2 et 3, entours par des cercles sur la gure. e Ltat 1 est ltat initial, ce quon indique par e e une `che entrante. Les tats 2 et 3 sont des e e tats naux, ce qui est indiqu par une `che e e e sortante. Cet automate poss`de aussi des transie tions, reprsentes par des `ches tiquetes par e e e e e des lettres. De plus, de chaque tat sort au plus e une `che dtiquette donne. e e e a a

Fig. 1.2 Un automate dterministe e


Notre second exemple est un peu plus sophistiqu. e Rappelons que la reprsentation binaire dun ene tier sobtient en le dcomposant comme somme de e puissances de 2. Par exemple, le nombre 330 qui vaut 28 + 26 + 23 + 21 , scrit 101001010 en base 2. e On peut montrer que lautomate de la gure 1.3 reconna lensemble des mots sur lalphabet {0, 1} t qui sont la reprsentation binaire dun multiple de e 3. Par exemple, 330 est divisible par 3 et le mot 101001010 est bien accept par lautomate. e 1 0 0 1 1 0 0 2 1

1 a

2 b

Fig. 1.1 Un automate


Pour savoir si un mot est accept ou non par laue tomate, on lit de gauche ` droite les lettres de ce a mot en partant de ltat initial et en suivant les e transitions. Si on parvient dans un tat nal, ce e mot est accept, sinon, il est rejet. e e Prenons par exemple le mot aab. En lisant

Fig. 1.3 Multiples de 3


Tous les langages ne sont pas reconnaissables. Par exemple, on montre que le langage {0n 1n | n 0} nest pas reconnaissable. La signication intuitive

i i i

i
Automates 2006/4/16 11:20 page 3 #3

i i
Automates non dterministes e 3

de ce rsultat est quun automate ni ne peut sie muler une pile de hauteur non borne (voir chae pitre Mod`les de machines). e

poss`de 2n tats. Fort heureusement, cette situae e tion extrme se rencontre rarement en pratique. e a, b a, b

Automates non dterministes e


1 b a a 1 a 2 b 3 1 b a 3 b b a 2 2 a 4 3 a

Les automates non dterministes constie tuent une variante importante des automates dterministes. Ils sont eux aussi reprsents par e e e un graphe tiquet, comme celui de la gure 1.4. e e a, b

Fig. 1.4 Un automate non dterministe e


Mais contrairement au cas des automates dterministes, on peut avoir plusieurs tats inie e tiaux et plusieurs `ches de mme tiquette ise e e sues du mme tat. Ainsi sur notre exemple, il y e e a deux tats initiaux, 1 et 2, et deux transitions e dtiquette a issues de ltat 1 : une de 1 vers 1 et e e lautre de 1 vers 2. Un chemin est une suite de transitions conscutives. Le mot form par les tiquettes de e e e ces transitions conscutives est ltiquette du chee e min. Un chemin est russi sil part dun tat initial e e et aboutit dans un tat nal. Un mot est accept e e sil est ltiquette dau moins un chemin russi (ce e e qui nexclut pas quil puisse tre simultanment e e ltiquette dun chemin non russi !). Le langage e e reconnu par lautomate A est lensemble des mots accepts par A. e Les automates non dterministes permettent e une reprsentation plus concise de certains lane gages. Par exemple, lautomate non dterministe e de la gure 1.5 accepte lensemble des mots sur lalphabet {0, 1} contenant la cha 010. ne 0, 1 0, 1

Fig. 1.6 Un automate non dterministe et un e


automate dterministe quivalent e e

Automate minimal

Si on dispose dun automate dterministe ree connaissant un langage L, on peut liminer tous e les tats inaccessibles ` partir de ltat initial et e a e tous ceux ` partir desquels on ne peut pas ata teindre un tat nal. On obtient ainsi la version e monde de lautomate, qui est quivalente ` laue e e a tomate de dpart. e On peut ensuite minimiser lautomate. Cette opration consiste ` identier deux tats p et e a e q lorsque ce sont exactement les mmes mots e qui permettent daller de p ` un tat nal et a e de q ` un tat nal. Lautomate obtenu apr`s a e e cette opration, appel automate minimal de L, e e est encore quivalent ` lautomate de dpart. e a e On dmontre que parmi tous les automates e dterministes reconnaissant L, lautomate minie mal est celui qui poss`de le plus petit nombre e dtats. e

Expressions rationnelles

Fig. 1.5 Un automate non dterministe pour e


les mots contenant la cha 010 ne Deux automates sont dits quivalents sils recone naissent le mme langage. On dmontre que tout e e automate non dterministe est quivalent ` un aue e a tomate dterministe, comme illustr sur la gure e e 1.6. Toutefois, dterminiser un automate peut e avoir un cot prohibitif puisquon conna des u t exemples dautomates non dterministes ` n e a tats dont le plus petit quivalent dterministe e e e

Si on conna un automate dterministe recont e naissant un langage L, on peut facilement tester si un mot appartient ou non ` L. En revanche, a il nest pas toujours facile de dcrire les mots e de L. Les expressions rationnelles, appeles aussi e expression rguli`re, permettent de rsoudre ce e e e probl`me. e ` Lexpression (a + b) a+ (bab + ca) (b + ) c est un exemple dexpression rationnelle sur lalphabet {a, b, c}. Comme on le voit, cest une forme dexpression algbrique utilisant les lettres de lale phabet, le mot vide, un oprateur +, un oprateur e e produit et une sorte dexposant, not . e Le symbole + dsigne le ou logique. Autree ment dit, L + L reprsente lunion des deux lane gages L et L , forme des mots qui sont dans L e

i i i

i
Automates 2006/4/16 11:20 page 4 #4

i i
4 Automates finis

i
1 0 0 1 0 0, 1

ou dans L . Le produit de L et L , not LL , est e form des mots qui sont produits dun mot de L e et dun mot de L . L + L = {u A | u L ou u L } LL = {uu | u L et u L }. Pour L = ab + abc et L = ab + cab, on trouve L + L = ab+abc+cab et LL = abab+abcab+abccab. Comme pour les mots, on peut dnir les puise sances dun langage en posant L0 = {}, L1 = L, L2 = LL, etc. Ltoile dun langage L, note L , est lunion e e de toutes les puissances de L : X n L . L =
n 0

Fig. 1.7 Dterminisation de lautomate e


En changeant les tats naux et non naux, puis e e en supprimant ltat 4 devenu inutile, on obtient e un automate dterministe qui reconna L (cf. e t gure 1.8). 1 0 0 1

De faon quivalente, L est form de tous les c e e mots qui peuvent scrire comme produit dun e nombre arbitraire de mots de L. Les langages rationnels sont les langages dcrits par des expressions rationnelles. Si A = e {a, b}, les langages suivants sont rationnels : lalphabet A, qui peut scrire a + b, lensemble e A = (a + b) form de tous les mots sur lale phabet A, le langage A aA des mots contenant la lettre a, le langage (A2 ) A des mots de longueur impaire, le langage (ab) form des mots e , ab, abab, ababab, . . .. Les expressions rationnelles sont dun usage courant en informatique. Ainsi, les diteurs vi et e emacs dUnix utilisent des expressions rationnelles pour la recherche dexpressions. Une syntaxe voisine est utilise par les analyseurs lexicaux (lex) e ou les langages de script, tels que Perl ou PHP.

Fig. 1.8 Un automate pour L


Il reste alors ` convertir cet automate en expresa sion rationnelle pour rsoudre notre probl`me. e e Plusieurs rponses sont possibles, par exemple e (1 + 00 11) ( + 00 + 00 1).

Automates squentiels e

Le thor`me de Kleene e e

Le thor`me de Kleene, clef de vote de la e e u thorie des automates, arme quun langage est e rationnel si et seulement sil est reconnaissable. De plus, la dmonstration de ce thor`me foure e e nit un algorithme pour passer dun automate ` a une expression rationnelle et vice-versa. Le lecteur pourra par exemple vrier que le langage accept e e par lautomate de la gure 1.1 est le langage rationnel (aa ba) aa (b + ). Le thor`me de Kleene a plusieurs conse e e quences importantes, notamment le fait que lintersection de deux langages rationnels et la dirence de deux langages rationnels sont encore e des langages rationnels. Pour illustrer la porte de ce dernier rsultat, e e cherchons une expression rationnelle reprsentant e le langage L des mots ne contenant pas la cha ne 010. Pour lobtenir, on part de lautomate de la gure 1.5, qui reconna le langage des mots qui t contiennent la cha 010. La gure 1.7 donne un ne automate dterministe quivalent. e e

Les automates squentiels sont des automates e dterministes qui produisent un mot de sortie. Ils e permettent de raliser plusieurs transformations e famili`res telles que laddition des entiers, la mule tiplication par une constante, divers codages et dcodages, le couper-coller dans un texte, etc. e Dans un automate squentiel, ltat initial et e e les tats naux sont tiquets par des mots et les e e e transitions sont tiquetes par des couples forms e e e dune lettre et dun mot spars par une barre vere e ticale. La lettre gurant ` gauche de la barre est a lue en entre, et le mot gurant ` droite de la barre e a est alors produit en sortie (voir gure 1.9). Le mot de sortie associ ` un mot dentre sobtient en liea e sant lentre depuis ltat initial et en produisant e e les sorties spcies par les transitions, y compris e e celles donnes au dbut par ltat initial et ` la e e e a n par ltat nal. Si on ne parvient pas dans un e tat nal, aucune sortie nest produite. e 1|1 0| 0|0 0|01 0 1 2 1|011 1| 3 00

Fig. 1.9 Un automate squentiel e

i i i

i
Automates 2006/4/16 11:20 page 5 #5

i i
Automates squentiels e 5

Considrons lautomate squentiel de la gure 1.9 e e et prenons 1001101 comme mot dentre. En pare tant de ltat initial 1, et en lisant le mot de gauche e ` droite, on parcourt le chemin : a 1 1 2 2 3 3 1 2 3 La sortie est obtenue comme produit des mots de sortie 0, 1, , 0, , 011, , , 00, soit 01001100. Comme pour les automates dterministes, on e peut minimiser un automate squentiel, bien que e lalgorithme soit plus dlicat ` mettre en place. e a Une fonction est dite squentielle si elle peut tre e e ralise par un automate squentiel. Un rsultat e e e e essentiel assure que la composition de deux fonctions squentielles est squentielle. e e Un automate squentiel est dit lettre ` lettre e a si les mots de sortie de chaque transition sont des lettres. Un automate de Mealy est un automate lettre ` lettre dont ltat initial et les tats a e e naux sont tiquets par le mot vide, ce qui signie e e en pratique que lon peut ignorer ces tiquettes. e Un automate de Moore est une variante dautomate squentiel dans laquelle les sorties sont e lies aux tats traverss et non aux transitions. e e e On peut dmontrer que tout automate de Moore e peut tre simul par un automate de Mealy et e e rciproquement. e La gure 1.10 reprsente un automate e squentiel lettre ` lettre qui permet de raliser la e a e multiplication par 3 des entiers reprsents sous e e forme binaire inverse. Comme son nom lindique, e la reprsentation binaire inverse est obtenue en e e lisant de droite ` gauche la reprsentation binaire a e usuelle. Dans le jargon des informaticiens, cest la reprsentation binaire dans laquelle le bit de e droite a le plus fort poids. 1|1 0|0 0 0|1 1 1 0|0 1|0
1|011 0| 1| 00 0 1|1 0| 0|0 1|

reprsentations aient la mme longueur. Par e e exemple, si n = 22 et m = 13, on prend pour n la reprsentation 01101 (car 2 + 4 + 16 = 22) et pour e m la reprsentation 10110 (car 1 + 4 + 8 = 13). On e consid`re le couple (01101, 10110) e comme un mot sur lalphabet ( 0 ) , ( 1 ) , ( 0 ) , ( 1 ) obtenu en su0 0 1 1 perposant les deux reprsentations et en lisant e les colonnes : ( 0 ) ( 1 ) ( 1 ) ( 0 ) ( 1 ). Lautomate qui 1 1 0 0 1 ralise laddition est reprsent sur la gure 1.11. e e e Il a pour alphabet de sortie {0, 1}. Les tats 0 et 1 e correspondent respectivement ` labsence et ` la a a prsence dune retenue. e 0 ( 0 ) |1 0 ( 1 ) |0 1 1 1

( 0 ) |0 0 ( 0 ) |1 1 ( 1 ) |1 0

( 0 ) |0 1 ( 1 ) |0 0 ( 1 ) |1 1

Fig. 1.11 Un automate squentiel lettre ` lettre e a


pour laddition Sur notre exemple, on trouve en sortie 110001, qui code bien 35 = 1 + 2 + 32. Un automate de Mealy sut pour raliser la e division dun polynme ` coecients dans Z/2Z o a par le polynme X 2 + X + 1. Pour cela, on assoo cie ` chaque mot a0 a1 an sur lalphabet {0, 1} a le polynme a0 X n + a1 X n1 + a2 X n2 + . . . + o an1 X + an ` coecients dans Z/2Z. a 1|0 0|0 1|0 0|0 1|1 0|1

X +1

0|1 2 01 1|1 1|1

Fig. 1.12 Division dun polynme ` coecients o a


dans Z/2Z par X 2 + X + 1 Le quotient de la division est donn par le mot e de sortie et le reste par ltat darrive. Ainsi le e e mot dentre 10001 donne en sortie le mot 00110 e et arrive dans ltat X + 1, ce qui correspond ` la e a formule X 4 +1 = (X 2 +X +1)(X 2 +X)+(X +1). Les exemples qui prc`dent sont gnriques. e e e e Les automates squentiels permettent de raliser e e la multiplication et la division enti`re par une e constante. Si on travaille sur des polynmes o ` coecients dans un corps ni, laddition, la a multiplication ou la division par un polynme o

Fig. 1.10 Un automate squentiel lettre ` lettre e a


pour la multiplication par 3 Par exemple, le mot 1011 est la reprsentation bie naire inverse du nombre 20 +22 +23 = 1+4+8 = e 13. Or 13 3 = 39 et 39 = 20 + 21 + 22 + 25 dont la reprsentation binaire inverse est 111001, ce qui e e est bien la sortie obtenue en lisant 1011 en entre e dans lautomate squentiel de la gure 1.10. e Laddition des entiers est aussi une opration e squentielle. Pour la raliser, on crit les ene e e tiers n et m en binaire invers et on rajoute e ventuellement des zros pour que les deux e e

i i i

i
Automates 2006/4/16 11:20 page 6 #6

i i
6 Automates finis

constant peuvent tre ralises par des automates e e e squentiels. e En revanche, ni la multiplication, ni la division de deux entiers ne sont des oprations e squentielles. De fait, la conception dun circuit e lectronique ralisant la multiplication de deux e e entiers est beaucoup plus dicile que celle dun additionneur. Voici un dernier exemple, de nature assez dirente des prcdents. Un ltre ` rebonds lit e e e a une suite de bits commenant et nissant par 0 et c change chaque 0 en 1 sil est encadr par des 1, et e chaque 1 en 0 sil est encadr par des 0, les autres e bits tant inchangs. Ainsi, si le mot dentre est e e e 01011010, la sortie sera 00111100. La gure 1.13 reprsente un automate squentiel qui ralise un e e e ltre ` rebonds. a 0|0 0|0 1| 1|1 2 1|11 3 1|1 0|00 0|0 0| 0 4

10.1 Analyse lexicale


Les automates nis sont utiliss en come pilation (voir chapitre Compilateurs) pour constituer des analyseurs lexicaux, qui permettent notamment de reprer les mots-cls dun lane e gage de programmation. Lautomate de la gure 1.14, dans lequel les tats naux sont en e noir, reconna un ensemble de mots-cls du t e langage Java : do, double, final, finally, this, throw, throws.

d f t

o i

u n

b a

l l

e l y

h r

s o w s

Fig. 1.14 Mots-cls en Java e 10.2 Modlisation de syst`mes nis e e


On peut (au moins thoriquement !) utiliser e des automates pour modliser des situations dans e lesquelles il ny a quun nombre ni de congurations possibles. Par exemple, la gure 1.15 reprsente un mod`le tr`s rudimentaire de montee e e charge. Les tats symbolisent les tages. Le montee e charge est muni de deux boutons, D et M qui permettent de descendre ou monter dun seul tage ` e a la fois. Le bouton D est inactif au rez-de-chausse, e de mme que M au deuxi`me tage. e e e M D 0 D 1 D M 2 M

Fig. 1.13 Un ltre ` rebonds a


Ce type de ltre est utilis en traitement dimages. e Chaque ligne de limage est constitue dune suite e de bits. Les ventuelles imperfections de limage, e dues ` une mauvaise qualit du lm ou ` un dfaut a e a e de transmission peuvent tre ventuellement core e riges de cette faon. e c

10

Utilisation pratique des automates

Les automates interviennent souvent dans la modlisation de probl`mes concrets. Cest daile e leurs un bon rexe, face ` un probl`me discret e a e (i.e. ne faisant pas intervenir de nombres rels), e de commencer par regarder si une approche par automate nest pas envisageable. Le mod`le sape plique mme ` certains probl`mes continus. Il est e a e vrai que les cha nes de Markov utilises en probae bilit sont de proches parents des automates. e Nous prsentons ci-dessous quelques applicae tions pratiques des automates. Toutefois, nous ne dirons que quelques mots de lune des applications les plus importantes, la spcication et la e vrication de syst`mes (lectroniques ou infore e e matiques), car elle est traite en dtail au chapitre e e Automates et vrication. e

Fig. 1.15 Un mod`le de monte-charge e


Lexemple qui suit repose sur une devinette classique. Un passeur doit faire passer dune rive ` lautre un loup, une ch`vre et une salade. Toua e tefois, son bateau ne peut transporter quun seul passager en dehors de lui-mme. Bien entendu, il e ne peut laisser le loup et la ch`vre seuls sans sure veillance, sinon le loup mangera la ch`vre. Mme e e chose pour le couple ch`vre-salade, car la ch`vre e e rve de manger la salade. Pouvez-vous aider le e passeur ? On peut modliser ce probl`me par lautomate e e de la gure 1.16.

i i i

i
Automates 2006/4/16 11:20 page 7 #7

i i
Utilisation pratique des automates 7

i
C P L CLP C L
CL PS

CP

C S CP S C S

S C LS P LP S

la conguration du syst`me par un mot sur lale phabet {T, N }, dont la i-`me lettre vaut T ou N e selon que le processeur i poss`de on non le tmoin. e e Sil y a k processeurs, la conguration initiale est donc reprsente par le mot du langage T N k1 . e e On reprsente ensuite la transmission du e tmoin par lautomate squentiel de la gure 1.18. e e On peut donc considrer cette opration comme e e une fonction squentielle : {T, N } {T, N } . e N |N T |N N |T N |N

Fig. 1.16 Le loup, la ch`vre et la salade e


Chaque tat reprsente les protagonistes sur la e e rive oppose. Ainsi ltat CP signie et que la e e ch`vre et le passeur sont sur la rive oppose (et e e que le loup et la salade nont pas encore travers). e Comme le prcise lnonc, certains tats sont ine e e e terdits. Ltat initial est et ltat nal et CLP S. e e Les actions possibles (qui constituent donc lalphabet de lautomate) sont les suivantes : (1) traverser seul (P) (2) traverser avec le loup (L) (3) traverser avec la ch`vre (C) e (4) traverser avec la salade (S) On obtient ainsi lautomate de la gure 1.16 qui donne immdiatement les deux solutions les plus e courtes : CP LCSP C et CP SCLP C.

Fig. 1.18 La transmission du tmoin e


La conguration du syst`me apr`s n transmise e sions de tmoin sobtient en itrant n fois la fonce e tion ` partir de la conguration initiale. a Cet exemple semblera peut-tre lmentaire e ee au lecteur, car litration de la fonction e squentielle se calcule ici sans dicult. Mais e e cest loin dtre toujours le cas ! Considrons par e e exemple lautomate squentiel de la gure 1.19. e 0|0 1|1 0| 1|0 01 1|1 0|0 2 1 3 1|0 4 1 1|1 0|1 5 0|0

10.3 Modlisation de syst`mes innis e e


Les automates permettent aussi de modliser e certains syst`mes de taille non borne, ou mme e e e innie. Ces techniques sont particuli`rement utie lises pour rsoudre les probl`mes danalyse et e e e de vrication de protocoles (ncessit de satise e e faire certaines contraintes logiques, comme labsence de blocage, ou lexclusion mutuelle). Le plus souvent, on utilise des automates travaillant sur des mots innis (voir chapitre Automates et vrication), mais lexemple ci-dessous utilise e uniquement des automates traditionnels. Considrons un rseau de processus aligns e e e qui communiquent avec chacun de leurs voisins, conformment ` la gure 1.17. e a 1 2 3 4 5 6 ...

Fig. 1.19 Un automate squentiel e


Si on utilise la reprsentation binaire inverse des e e entiers, cet automate calcule une fonction f bien connue des programmeurs, dnie par : e ( n/2 si n est pair f (n) = 3n + 1 sinon Une conjecture clbre arme que, partant dun ee entier quelconque n, on arrive toujours ` 1 en a itrant f . Par exemple, en partant de n = 31, on e trouve la suite 31, 94, 47, 142, 71, etc., qui aboutit ` 1 apr`s 106 itrations. La conjecture a t a e e ee vrie pour n 5,764 1017 , mais nest toujours e e pas rsolue ` ce jour. Elle montre en tout cas que e a ltude de litration des fonctions squentielles e e e prsente des dicults insouponnes. e e c e

Fig. 1.17 Un rseau de processus e


Ces processus ralisent un calcul en se passant un e tmoin, qui est initialement dtenu par le procese e ` sus 1. A chaque tape du calcul, un processeur e peut passer le tmoin ` son voisin de droite. Come a ment formaliser ce syst`me ? On peut reprsenter e e

10.4 Industries de la langue


Les automates sont tr`s utiliss dans ce quon e e appelle les industries de la langue : informatique linguistique, traitement des langues naturelles, correction orthographique automatique,

i i i

i
Automates 2006/4/16 11:20 page 8 #8

i i
8 Automates finis

gnration automatique de texte, ralisation de e e e dictionnaires lectroniques, etc. e Lautomate non dterministe de la gure 1.20, e d au linguiste Maurice Gross, indique lordre de u succession des particules prverbales en franais e c (sans tenir compte des lisions). Par exemple les e phrases je ne le lui ai pas donn ou il ny en a jae mais ! sont correctes, mais la phrase il se le lui est fait vol ne lest pas... An dallger la e e gure 1.20, seules certaines particules prverbales e sont reprsentes. Pour les obtenir toutes, il sut e e doprer les substitutions suivantes : e je je, tu, nous, vous, on, ce me me, te, nous, vous, il il, ils, elle, elles le le, la, les, lui lui, leur, y y, ne ne, se se, en en,

arbre ncessite 2203261 nuds, alors que lautoe mate minimal ne poss`de que 273716 tats. e e De plus, on dispose dalgorithmes tr`s ecaces e pour les oprations de recherche et de mise ` jour e a pour ces dictionnaires lectroniques. Si on dispose e dun dictionnaire sous forme dautomate, on peut ensuite facilement raliser un programme informae tique champion du monde de Scrabble... L N N U P A L N S

A B D O

S S

X S

je

ne

le

lui y

Fig. 1.21 Reprsentation par arbre e


en B P D A L N S

il ne

ne me se

le

Fig. 1.20 Suites de particules prverbales e


Les automates sont galement utiliss dans e e la ralisation de dictionnaires lectroniques. La e e reprsentation la plus na e ve dun dictionnaire consiste ` conserver la liste de tous les mots du a dictionnaire. Une structure darbre permet dobtenir une reprsentation plus concise. Ainsi, larbre e de la gure 1.21 reprsente lensemble des mots e {bal, bals, ban, bans, do, don, dons, doux, pal, pals, pan, pans}. Mais lutilisation dun automate (voir gure 1.22) donne une reprsentation beaue coup plus compacte. Le gain en place peut tre tr`s important. e e Pour un dictionnaire de Scrabble anglais, la reprsentation par arbre ncessite 117 150 nuds e e et 780 kilo-octets de mmoire. La reprsentation e e par automate ncessite seulement 19 853 tats et e e 175 kilo-octets de mmoire, soit un gain de pr`s e e de 80%. Pour le Dictionnaire lectronique des formes e chies du franais (DELAF) ralis par les line c e e guistes de luniversit de Marne-la-Valle, qui e e contient 802009 entres sur un alphabet de e 90 lettres (minuscules et majuscules accentues, e chires, et autres signes), la reprsentation par e

N X O U

Fig. 1.22 Reprsentation par automate e 10.5 Recherche dinformation


Tout ce qui concerne lanalyse de textes et lextraction dinformation fait grand usage des automates. Les automates interviennent souvent dans la conception dalgorithmes de recherche dinformation. Nous nous contenterons ici de dcrire le principe de la recherche dans un texte, e dans lequel les automates interviennent de faon c naturelle. Supposons que lon cherche ` dterminer si la a e cha ada appara dans le texte abracadabra. ne t Cela revient ` tester si le mot abracadabra apa partient au langage A adaA. Comme ce langage est rationnel, il sut de trouver son automate minimal, puis de vrier que le texte est bien accept e e par cet automate. Plus gnralement, rechercher un mot u dans e e un texte conduit ` calculer lautomate minimal a du langage A uA . Si n est la longueur du mot

i i i

i
Automates 2006/4/16 11:20 page 9 #9

i i
Extensions de la notion dautomate 9

u, il est facile de construire un automate non dterministe ` n + 1 tats pour ce langage (voir la e a e gure 1.5, pour u = 010). Et, chose remarquable, lautomate minimal de ce langage poss`de lui aussi e n+1 tats. La gure 1.7 illustre cette construction e pour la cha 010. ne

un ensemble dtats naux, mais une table dene sembles dtats {F1 , F2 , . . . , Fk }. Un chemin inni e est alors dit russi sil est issu dun tat initial et si e e lensemble F des tats visits inniment souvent e e gure dans la table. b a 1 a 2 b

10.6 Autres applications


Citons galement la manipulation dimages e parmi les applications rcentes. La compression, e et les transformations usuelles telles que rotations, translations, homothties peuvent en eet e tre ralises par des automates squentiels approe e e e pris. Noublions pas la thorie de la commande e e et du contrle, o` certains algorithmes rcemment o u e dvelopps sont enti`rement bass sur les autoe e e e mates. En thorie des jeux, dont les applications e sont assez diverses, certaines stratgies peuvent e tre modlises par des automates nis, ce qui e e e donne en prime des algorithmes ecaces.

Fig. 1.24 Un automate de Muller


Considrons lautomate de la gure 1.24. Si on e prend pour table {{2}}, un chemin issu de ltat e 1 est russi sil passe inniment souvent par 2 e et par 1 un nombre ni de fois. Lautomate reconna donc lensemble des mots innis ne contet nant quun nombre ni de a. Si on prend pour table {{1, 2}}, lautomate reconna lensemble des mots innis contenant une t innit de a et une innit de b. Enn, si on prend e e pour table {{1}, {2}} lautomate reconna lent semble des mots contenant soit une innit de a e et un nombre ni de b, soit un nombre ni de a et une innit de b. e

11

Extensions de la notion dautomate

Lutilisation des automates nest pas limite e aux mots. Elle a t tendue aux mots innis, qui e ee sont des suites innies de lettres a0 a1 a2 , aux arbres et ` bien dautres structures. Le cas des a mots innis mrite que lon sy arrte, en raison e e de ses applications ` la vrication des syst`mes. a e e

11.2 Transducteurs
Un automate non dterministe muni de sorties e est appel un transducteur. Les transducteurs pere mettent de reprsenter des relations entre mots. e Ce sont des outils formels tr`s puissants, qui ont e aussi des applications pratiques, notamment dans les industries de la langue. On peut aussi considrer des transducteurs e dont les sorties ne sont pas des mots, mais des entiers ou des rels. Ce type de transducteur est e utilis notamment en traitement dimage. Une e variante, connue sous le nom dautomate maxplus est particuli`rement adapte pour tudier e e e les syst`mes ` vnements discrets, qui come a e e prennent par exemple les syst`mes de produce tion, les rseaux de transport, les syst`mes infore e matiques, etc. Les automates permettent daborder certains probl`mes dvaluation de perfore e mance (calcul de taux de production, de dbit), e ou des probl`mes doptimisation (nombre optimal e de processeurs pour raliser une tche donne). Ils e a e permettent en outre de formaliser simplement certains algorithmes daccessibilit sur les graphes. e

11.1 Automates et mots innis


Pour pouvoir utiliser des automates nis pour reconna tre des mots innis, Bchi a propos d`s u e e 1960 la dnition suivante : un chemin inni est e russi sil part dun tat initial et passe inniment e e souvent par un tat nal. Lensemble des mots e innis accepts par un automate est alors lene semble des tiquettes des chemins innis russis. e e Considrons lautomate de la gure 1.23. e a a 1 b 2 b

Fig. 1.23 Un automate de Bchi u


On voit que les mots innis accepts par cet aue tomate sont ceux commenant par a et contenant c une innit de b. e En adaptant la notion dexpression rationnelle, on peut alors tendre le thor`me de Kleene e e e au cas des mots innis. On montre cependant quun automate de Bchi non dterministe nest u e pas toujours quivalent ` un automate de Bchi e a u dterministe. Pour rtablir cette quivalence, il e e e faut utiliser un mode dacceptation dirent, ine troduit par Muller. Il consiste ` donner non pas a

12

Autres dveloppements e

Il nest pas possible de rsumer en quelques e lignes les dveloppements actuels de la thorie des e e automates et nous nous contenterons dvoquer e quelques grands axes. Les liens entre la logique et les automates remontent au tout dbut de la thorie (travaux e e

i i i

i Automates 2006/4/16 11:20 page 10 #10 i


10 Automates finis

i i

de Kleene, Bchi, Rabin et Mc Naughton nou tamment). Le formalisme logique fournit en eet, apr`s les automates et les expressions rationnelles, e une troisi`me faon de dcrire des ensembles de e c e mots. Il sapplique galement aux mots innis e et aux arbres et est tr`s utilis en vrication e e e (voir chapitre Automates et vrication) pour e spcier le comportement de certains syst`mes. e e Les dveloppements algbriques de la thorie e e e des automates sont tout aussi importants. En dotant les mots de coecients, on peut dnir e des sries formelles en variables non commutae tives, pour lesquelles Schtzenberger a tendu u e le thor`me de Kleene. Ces sries ont de mule e e tiples applications, notamment en thorie du e contrle. Une autre branche en plein essor o est la vision abstraite de la reconnaissance, dveloppe par Schtzenberger et Eilenberg. Elle e e u consiste ` remplacer les automates par des objets a mathmatiques, les semigroupes. Cette approche e a permis de rsoudre de tr`s nombreux probl`mes e e e thoriques. Outre la logique et lalg`bre, les aue e tomates entretiennent galement des liens troits e e avec dautres parties des mathmatiques : topoloe gie, probabilit, syst`mes dynamiques, thorie des e e e groupes, etc.

les mots innis. Par ailleurs, plusieurs articles de synth`se pae rus ces derni`res annes dcrivent divers aspects e e e de la thorie des automates. Citons ceux de Pere rin et de Thomas du Handbook of Theoretical Computer Science (van Leeuwen, 1990), et ceux de Bal et Perrin, de Pin, de Staiger, de Thomas e et de Yu dans le Handbook of Formal Languages (Rozenberg et Salomaa, 1997).

Bibliographie
Beauquier D., Berstel J. et Chrtienne P. e e Elments dalgorithmique. Masson. (1992),

Berstel J. et Reutenauer C. (1988), Rational Series and Their Languages. Springer-Verlag. (Traduction de Les sries rationnelles et leurs langages, paru e chez Masson en 1984). Crochemore M., Hancart C. et Lecroq T. (2001), Algorithmique du texte. Vuibert. Eilenberg S. (1974 et 1976), Automata, Languages and Machines, volume A et B. Academic Press. Hopcroft J. E., Motwani R. et Ullman J. D. (2001), Introduction to Automata Theory, Languages and Computation. Addison Wesley. second edition. Perrin D. (1989), Automates et algorithmes sur les mots. Annales des Tlcommunications, 44 :2033. ee Perrin D. (1995), Les dbuts de la thorie des aue e tomates. Technique et Science Informatique, 14 : 409433. Perrin D. et Pin J.-E. (2004), Innite Words. Automata, semigroups, logic and games, volume 141 of Pure and Applied Mathematics. Elsevier. Pin J.-E. (1986), Varieties of formal languages. North Oxford, London et Plenum, New-York. (Traduction de Varits de langages formels, paru chez Masson e e en 1984). Rozenberg G. et Salomaa A. (1997), Handbook of formal languages. Springer Verlag. 3 volumes. e Sakarovitch J. (2003), Elments de thorie des autoe mates. Vuibert, Paris. Sbold P. (1999), Thorie des automates Mthodes ee e e et exercices corrigs. Vuibert, Paris. e van Leeuwen J. (1990), Handbook of theoretical computer science. Vol. B. Elsevier Science Publishers B.V., Amsterdam.

13

Pour en savoir plus...

Pour crire ce chapitre, je me suis appuy sur e e deux articles remarquables de Perrin (1989, 1995), que je recommande particuli`rement au lecteur. Il e y trouvera en particulier des complments biblioe graphiques qui nont pas pu tre repris ici. e Le lecteur francophone trouvera un expos du e thor`me de Kleene et de ses consquences dans e e e le livre de Sbold (1999) et une prsentation ee e beaucoup plus exhaustive de la thorie des autoe mates dans le rcent trait de Sakarovitch (2003). e e Pour un expos des algorithmes utilisant des aue tomates, nous renvoyons au livre de Beauquier et al. (1992) ou, pour tout ce qui concerne les algorithmes sur les mots, ` Crochemore et al. (2001). a On trouve souvent un chapitre ou deux consacrs aux automates dans les ouvrages sur e la compilation ou sur la thorie des langages tels e que le livre de Hopcroft et al. (2001). Pour les aspects les plus mathmatiques, le lecteur pourra e consulter le trait dEilenberg (1974 et 1976) ou e encore Pin (1986). Le livre de Berstel et Reutenauer (1988) est consacr aux sries formelles et e e celui de Perrin et Pin (2004) aux automates sur

i i i

i Automates 2006/4/16 11:20 page 11 #11 i

i i

Index
alphabet, 2 analyseur lexical, 6 automate dterministe, 2 e mond, 3 e e non dterministe, 3 e squentiel, 4 e transition, 2 automates quivalents, 3 e chemin, 3 tiquette, 3 e russi, 3 e concatnation de deux mots, 2 e dictionnaire lectronique, 8 e tat e nal, 2 initial, 2 expression rationnelle, 3 rguli`re, 3 e e ltre ` rebonds, 6 a industries de la langue, 7 Kleene, 4 langage, 2 rationnel, 4 reconnaissable, 2 lettre, 2 Mealy, 5 minimiser, 3 Moore, 5 mot, 2 accept, 2 e inni, 9 semigroupe, 10 srie formelle, 10 e syst`me ` vnements discrets, 9 e ae e transducteur, 9 11

i i i

Вам также может понравиться