Notes du cours de Théorie des Automates Licence 3 Année

Notes du cours de Th´eorie des Automates
Licence 3
Ann´ee 2012-2013
G´
erard H. E. Duchamp
15 octobre 2012
15-10-2012 06:38
Table des mati`eres
1 Introduction 2
1.1 Les diff´erentes th´eories ............................. 2
1.2 Uncalculpeutseterminerounon....................... 2
1.2.1 Unexempleclassique. ......................... 2
1.3 D´ecalages des langages. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3.1 G´en´eralit´es. ............................... 4
1.3.2 Quelquesexemples............................ 4
2 Graphes marqu´es 7
3 Chemins 9
3.1 Leschemins,leursourceetleurbut...................... 9
3.2 Lamatricedetransition ............................ 9
4 Puissances de la matrice de transition 9
4.1 La th´eorie bool´eenne classique : Automates finis et structures de transition 9
4.2 Comportement d’un automate : une fonction sur les mots . . . . . . . . . . 11
4.3 Automates d´eterministes............................ 12
4.4 ´
Equivalence avec un AF d’un automate `a-transitions ........... 12
4.4.1 G´en´eralit´es ............................... 12
4.4.2 Suppression des -transitions...................... 12
4.4.3 Application des -transitions...................... 12
5 Etoile d’une matrice 12
5.1 ´
Etoile d’une matrice-lettres . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
6 Fonctions sur les mots 13
6.1 Quelquesexemplesdemachines ........................ 14
Pri`ere de me signaler les erreurs ou bien `a Julien David ou bien `aAlo¨ıs Brunel.
1
7Syst`emes et Calcul 15
7.1 Introduction................................... 15
7.2 Descriptiondelastructuredautomate .................... 15
7.2.1 Graphe pond´er´e............................. 15
7.2.2 Structureetcomportementdesautomates .............. 16
7.2.3 Premiersautomates........................... 17
7.2.4 Compositiondesautomates ...................... 17
1 Introduction
1.1 Les diff´erentes th´eories
Lorsqu’on parle d’automate en th´eorie des langages1, on entend souvent automate bool´een,
c’est `a dire essentiellement un accepteur, qui est une machine qui accepte ou non un mot.
Nous verrons que ce type de machine est une partie d’une classe plus vaste qui comprend
les automates bool´eens (ceux dont on vient de parler)
les automates `a-transitions
les automates probabilistes, stochastiques et doublement stochastiques 2
les automates pour le calcul de longueur (ou de charge) de parcours
les automates avec m´emoire des adresses
les transducteurs.
Nous avons r´esolument adopt´e ici le point de vue matriciel qui est, `a notre connaissance
le seul qui permette d’unifier les r´esultats obtenus dans les diff´erentes th´eories (dont les
pr´ec´edentes) par des moyens sp´ecifiques ou efficaces et, en mˆeme temps qui offre une
impl´ementation rapide et naturelle.
Nous commen¸cons par rappeler (ou exposer) la th´eorie classique `a l’aide de ce point de vue
matriciel, puis nous montrerons comment celle-ci pr´epare presque enti`erement `alath´eorie
en´erale par des conditions naturelles sur les scalaires qui sont appel´es `a remplacer le {0,1}
bool´een. Cette “variation des scalaires” permet d’aborder presque toutes les machines `a
nombre fini d’´etats connues.
1.2 Un calcul peut se terminer ou non
1.2.1 Un exemple classique.
Un algorithme se termine toujours (c’est dans la d´efinition), mais il y a des proed´es de
calcul qui se terminent ou non selon les entr´ees que l’on leur soumet. Un exemple c´el`ebre
est donn´e par les fractions continues.
Fractions continues.—
Pour xRdonn´e, on peut imaginer le proed´edecalculsuivant.
1. Les langages sont simplement ls parties d’un mono¨ıde libre.
2. Les deux premiers types se d´efinissent par une condition sortante (la probablit´e totale de sortir d’un
´etat - ou d’y faire une boucle - est ´egale `a 1), le dernier type exige aussi une condition rentrante.
2
On applique tant que c’est possible, le calcul suivant.
x0=x;an=xn;xn=an+1
xn+1
.(1)
frac_cont:=proc(x,n) option remember;
local res,an,xn,i;
xn:=x:an:=floor(x):res:=an:
for i to n while xn<>floor(xn)
do
xn:=1/(xn-an):an:=floor(xn): res:=res,an
od
:[res]
end;
Le domaine d’indexation de cette suite est, comme toujours
{nN|xnest d´efini }(2)
Il est ´evident que c’est un intervalle du type [0,···N]Navec NNou bien N=+.
sonvoitbienquececalculsarrˆete (division par z´ero) si, pour un ndonn´e, xnN,sinon
il se poursuit ind´efiniment.
On pr´esente la fraction continue ainsi
x=a0+1
a1+1
a2+1
a3+1
a4+···
(3)
Exemple 1.1 evelopper x=3
2en fraction continue.
Marche `asuivre.—
1. x0=xet a0=xest ici 0
2. x0=3
2=0+ 1
x1d’o`ux1=2
3et a1=x1=1
3. x1=1+ 1
x2d’o`ux2=1
2
31=3
23=3(2+3)
43=2
3+3 (on a appliqu´elaquantit´e
conjugu´ee) et a2=x2=6
4. x2=6+ 1
x3d’o`ux3=1
233=23+3
4.39=23+3
3(on applique encore la quantit´e
conjugu´ee) et a3=x3=2
5. x3=2+ 1
x4d’o`ux4=1
23+3
32=3
23+36=3
233=2
3+3 (on applique encore la
quantit´econjugu´ee encore et toujours !)
6. x3=x1, les calculs se r´ep`etent et donc la fraction continue est p´eriodique
[0,1,6,2,6,2,6,2,6,2,6,···]
7. On a
x=3
2=0+ 1
1+ 1
6+ 1
2+ 1
6+···
(4)
3
1.3 D´ecalages des langages.
1.3.1 G´en´eralit´es.
Ici, les “quotients” analogues au proc´ed´edecalculpr´ec´edent seront donn´es par les d´ecalages.
On rappelle que le d´ecalage est d´efini par
efinition 1.2 Soit LAun langage. Pour tout wAet LA,
w1L={u|wu L}(5)
En fait, l’op´erateur w1est adjoint de la multiplication `a gauche par wcomme la montre
l’´equivalence suivante3
w1L|u=L|wu.(7)
Pour M,L A;a,b A;u,v Ales formules suivantes
i) a1(L+M)=a1(L)+a1(M) ii) a1(LM)=a1(L)M+L|a1(M)
iii) a1(L)=a1(L)(L)iv)a1(b)=a|b;a1()=
v) u1v1(L)=(vu)1L
on construit alors l’automate des d´ecal´es de la fa¸con suivante
Proc´ed´e(1.3.1)
1. Donn´ees : Un alphabet (fini) Aet un langage LA
2. ´
Etat initial : L
3. Transitions : L1
x
−→ L2si L2=x1L1
4. ´
Etats : le plus petit ensemble qui puisse supporter les transitions ci-dessus
5. ´
Etats finaux : les Litels que Li
L’automate obtenu est un ADC (pas n´ecessairement fini !) qui reconnait le langage L.
1.3.2 Quelques exemples.
Commen¸cons par l’automate des d´ecal´es de abaA(Fig. 1).
Cet automate est un AFDC qui reconnaˆıt abaA.
Une autre fa¸con d’obtenir un automate (pas n´ecessairement d´eterministe) par d´ecalages
est de produire une famille finie dans laquelle est le langage donn´eetquieststablepar
ecalage. On entend par l`a que tout d´ecal´e de la famille est r´eunion d’´el´ements de la
famille. Un exemple est donn´eparlesd´ecal´es de L=A(aba +aa).
On peut aussi produire un automate (non d´eterministe en g´en´eral) en construisant une
famille de langages (Li)iI={1..n}
dont fait partie L
qui soit stable par d´ecalage.
Le deuxi`eme point veut dire que les d´ecal´es de tout Lisont des unions des Li.Soit
(iI)(aA)(a1Li=µij (a)Lj(8)
3. On rappelle que le produit scalaire est d´efini, dans le contexte bool´een par l’appartenance
L|w=1siwL
0siw/L(6)
4
baA
abaA
start
aA
A
a
b
a
b
a,b
a
b
a,b
Fig. 1–Automate des d´ecal´es de L=abaA.
L+ba +a
L
start
L+ba +a+
L+a
a
b
b
a
a
b
a
b
Fig. 2–Automate des ecal´es de L=A(aba +aa).
5
1 / 21 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !