Académique Documents
Professionnel Documents
Culture Documents
Chapitre 1
Chapitre 1
Chapitre 1 Automates
p Chapitre 1. Automates p
1. définitions et notations
1.1. Etats et transitions
D éfinition 1. Un automate A est spécifié par la donnée des éléments suivants:
1. un ensemble E, non vide, appelé ensemble des états de A;un ensemble Σ, non vide,
appelé alphabet d'entrée de A;
2. deux sous ensembles I et F; I est l'ensemble ds états initiaux et F est celui des états
finals ou terminaux de A ;
3. un ensemble T appelé ensemble de transitions de A , défini comme un sousenemble
de ExΣxE ou comme un ensemble de transition T défini par la fonction de transition
suivante: t: ExΣ→ E qui a pour (p,s) → q.
On notera A =<E,Σ,I,F,T>
pour simplifier, les transitions son notées ps→q, et se lit « si je suis dans l'état p et j'ai le symbole
s, alors je passe à l'état q»
Exemple 1:
E={p,q,r}, Σ ={a,b} , I={p}, F={r} et T={(p,a,p),(p,b,p),(p,a,q),(q,b,r),(r,a,r),(r,b,r)} ou
T={pa→p,pb→p,pa→q,qb→r,ra→r,rb→r}
a a
a b
p q r
b b
Automate A1
Exemple 2: Diviseur par 3 P1=<{p,q,r}{0,1}{p}{p},T> avec
T={p0→p,p1→q,q0→r,q1→p,r0→q,r1→r}
1 0
0
p q r
1
1 0
Automate P1
Support de cours,Théorie des langages, Module I513Département informatiqueSadki Hassainpage1
Chapitre 1 Automates
On appelle transition spontanée dans un automate, une transition de type p q où désigne
le symbole vide. C'est le passage de l'état p à l'état q sans lecture d'aucun symbole.
1.2. Matrice et table de transition d'un automate
D éfinition . Soit A =<E,Σ,I,F,T> un automate fini. On appelle matrice M de transition de A ,
la matrice carrée de dimension E dont chaque coefficient Mp,q est l'ensemble des symboles
{ | p q } .
Exemple: la matrice de transition de A1 est:
a a
∣ ∣
a b
{a ,b} a ∅
p q r M= ∅ ∅ b
b b ∅ ∅ {a , b }
D éfinition . Soit A =<E,Σ,I,F,T> un automate; on appelle table R de transition de A , la
matrice dont les ligne sont indicées par les éléments de E (états) , les colonnes par ceux de
et dont chaque coefficient Rp,est lensemble des états {q | p q } .
Exemple: la table de transition de A1 est:
a a
R a b
a b
p {p,q} p
p q r
q r
b b
r r r
1.2. Calculs dans un automate
si t≡ pa q est une transition, on dira que a est l'étiquette de t et on notera :
a
p q on dira que p est l'origine et q est l'extrémité de la transition t
D éfinition 5. – Un calcul c dans est une suite de transitions telles que l'origine de chacune
coincide avec lextrémité de la précédente, ce que l'on note :
a1 a2
c := p 0 p1 p2 ⋯ p n
an
Support de cours,Théorie des langages, Module I513Département informatiqueSadki Hassainpage2
Chapitre 1 Automates
Un calcul de A est réussi si son origine est un état initial et son extrémité est un état final. Un mot
de Σ* est dit accepté, ou reconnu, par A si c'est l'étiquette d'un calcul réussi de A.
L'analogie entre le graphe et l'automate est donnée par le tableau suivant:
Graphe Automate
graphe automate
sommet état
arc transition
chemin calcul
étiquette symbole
matrice d'incidence matrice de transition
Exemple: Le mot abab est l'étiquette des 4 calculs suivant de A1 :
a b a b a b a b
c 1 := p p p p p , c 2 :=r r r r r ,
a b a b a b a b
c 3 := p p p q r , c 4 := p q r r r .
c3 et c4 sont des calculs réussis.
Les calculs de longueur 1 dans A sont exactement les transitions de A. Par convention, on
considère que chaque état est à la fois l'origine et l'extrémité d'un (unique ) calcul de longueur 0
dont l'étiquette est le mot vide 1Σ* , unique mot de Σ* de longueur 0. d'où:
P ropriété 1. – Le mot vide 1Σ* , est accepté par un automate A si et seulement si, il existe un
état de A qui est à la fois initial et final:
1Σ∗, est accepté par un automate A ⇔ ∃e∈ E /e ∈I et e∈F
p p p
Support de cours,Théorie des langages, Module I513Département informatiqueSadki Hassainpage3
Chapitre 1 Automates
1.3. Langage d'un automate
D éfinition 6. – i) le langage accepté, ou reconnu par A, appelé aussi comportement de A, et
noté L(A), est l'ensemble des mots acceptés (ou reconnus) par A:
L(A)= {w∈*∣∃ p∈I ,∃q ∈F p q} ;
w
ii) Deux automates sont équivalents s'ils reconnaissent le même langage.
Soit B =<P,Σ,J,U,R> un sousautomate de A =<E,Σ,I,F,T>; tout calcul de B est un calcul de A
puisque P⊆E , tout calcul réussi de B est un calcul réussi de A puisque J ⊆I et U⊆F d'où
2.Types d'automates
2.1. Automate fini
D éfinition 3. – Soit Σ un alphabet fini. Un automate A sur Σ est fini si et selement si son
ensemble d'états E est fini.
a a a a
2 1 0 1 2
b b b b
Automate non fini Z1
2.2. Automate spontané et fermeture
D éfinition 2. Un automate A =<E,Σ,I,F,T> est spontané s'il contient au moins une transition
spontanée. Il est noté As =<E,Σ,I,F, T ∪S > où T désigne l'ensenble des transitions
normales et S désigne l'ensemble des transition spontanées.
Exemple:As=<{0,1,2,3,4}{a,b}{0}{3,4},T U S> avec T={1a→1,1b→3,2b→2,2a→4,3b→3,4a→4}
S={0→1,0→2}
Support de cours,Théorie des langages, Module I513Département informatiqueSadki Hassainpage4
Chapitre 1 Automates
a b
b
1 3
0
a
2 4
b a
Automate spontané A2
2.3. Automate transposé et dualité
D éfinition 8. On appelle automate transposé de A =<E,Σ,I,F,T >l'automate obtenu en
renversant tous les arcs dans A , c'est à dire en échangeant l'origine et l'extrémité de chaque
transition, et en échangeant les états initiaux et finals; on le note At : At =<E,Σ,F,I,T t> avec
T t = { pa q∈T /qa p ∈T t }
Exemple: la transposée de At 1:
E={p,q,r}, Σ ={a,b} , I={r}, F={p} et T={pa→p,pb→p,qa→p,rb→q,ra→r,rb→r}
a a
a b
p q r
b b
Transposée At1 de A1
D éfinition 9. – Soit A =<E,Σ,I,F,T> un automate d'état fini (AEF); On appelle matrice de
transition M de A, la matrice carrée de dimension E, dont chaque coefficient mp,q est
l'ensemble des étiquettes des transitions qui vont de p à q dans A .
La matrice de transition de At est la transposée de la matrice M de A : noté Mt.
∣ ∣ ∣ ∣
{a ,b} a 0 {a ,b} 0 0
M= 0 0 b Mt= a 0 0
0 0 {a , b } 0 b {a ,b}
Support de cours,Théorie des langages, Module I513Département informatiqueSadki Hassainpage5
Chapitre 1 Automates
L'étiquette d'un calcul de At est donc l'image miroir de l'étiquette du calcul dans A ; un calcul
réussi de At correspond à un calcul réussi dans A ; et donc: L(At )=[L(A )]t.
La transposition exprime la dualité entre les deux sens de lecture ( gauche et doite), la dualité
entre origine et extrémité des transitions, la dualité entre état initial et final et pour nombre de
propriétés, nous dirons que A est « coP » pour exprimer que At possède la proriété P.
Algor ithme Transposition()
donnée: A =<E,Σ,I,F,T> fini, a ∈ ; p , q ∈E
sortie :At =<Et,Σ,It,Ft,Tt> fini
debut
E t=E ;
I t =F ;
F t=I ;
T t =∅
pour chaque t= pa q∈T faire
T t =T t∪{ qa p} ;
fpour
fin.
2.4 Automate non ambigu
D éfinition 12. – Un automate A =<E,Σ,I,F,T> est non ambigu si les deux conditions suivantes
w
sont satisfaites: i) ∀ p , q∈ ExE et ∃ ! c := p q ; w∈ * ;c est unique.
ii) ∀ w∈L A , ∃! i∈ I , ∃! f ∈ F / i f ; i et f sont uniques.
w
Exemple: A1 est ambigu.
a a
a b
p q r
b b
Automate ambigu
Puisque le mot w=abab est l'étiquette de deux calculs c1 et c2 distincts d'origine p et d'extrimité r:
a b a b a b a b
c 1 := p p p q r et c 2 := p q r r r
Support de cours,Théorie des langages, Module I513Département informatiqueSadki Hassainpage6
Chapitre 1 Automates
2.5. Automate complet
D éfinition 13. – Un automate A =<E,Σ,I,F,T> est complet si,
s
∀ p∈ E et ∀ s ∈ , ∃ q ∈E / p q est une transition de A .
Par récurrence sur la longueur de mot w, il vient que A est complet si et seulement si, il existe
aux moins un calcul d'origine p et d'étiquette w, pour tout état p et tout mot w∈ * .
Exemple: Les automates Z1 et P1 sont complets;
a a a a 1 0
0
2 1 0 1 2 p q r
1
b b b b 1 0
(a) Z1 est complet (b) P1 est complet
Automates complets.
L'automate A1 n'est pas complet. On peut la transformer en un automate complet:
a a
a a a b
p q r
a b
p q r a
b b
b b z
b a
Automate A1 completé.
Si A =<E,Σ,I,F,T> n'est pas complet, il facile de le transformer en un automate complet.Soit
Ac=<Ec,Σ,I,F,Tc> avec E c =E∪{ z } avec z est un nouvel état.
s s s
T c =T ∪{ t := p z ∀ p ∈E , ∀ s∈ /¬∃ q / l:= p q }∪{ t :=z z ∈T ∀ s ∈ }
2.6. Automate Standard
D éfinition 14.– Un automate A =<E,Σ,I,F,T> est standard si l'ensemble des états initiaux est
un singleton I={i} qui n'est l'extrémité d'aucune autre transition de A .
Support de cours,Théorie des langages, Module I513Département informatiqueSadki Hassainpage7
Chapitre 1 Automates
Exemple:
a
b
1 3
a
0 a
b 2 4
a
Fig 13. Automate standard
P ropriété 5. – Tout automate (fini) est équivalent à un automate (fini) standard.
On peut toujours rendre un automate standard. En effet, il suffit de créer un nouvel état initial
i0 , et ∀ i∈ I créer la transition spontanée i 0 i ; enfin éliminer les transitions spontanées par
l'algorithme de fermeture.
Algor ithme Standardisation()
donnée: A =<E,Σ,I,F,T> fini,
sortie :Astd =<Es,Σ,Is,Fs,Ts> fini
debut
E s=E∪{ i 0 }; ; I s={ i 0 };
F s=F ; ; T s=T ;
pour chaque i∈I faire
T s=T s∪{i 0 i } ;
fpour
Astd =FermetureAvant(Astd ); /* élimination des transitions spontanées */
fin.
2.7 Automate normalisé
D éfinition 15. – Un automate A =<E,Σ,I,F,T> est normalisé si,
i) il est standard (I={i}).
ii) si l'ensemble des états finals est un singleton F={f} qui n'est l'origine
d'aucune transition de A .
iii) i est distinct de f.
Exemple:
b
1 b
a
0 3
b 2 a
a
a
Support de cours,Théorie des langages, Module I513Département informatiqueSadki Hassainpage8
Chapitre 1 Automates
Automate normale
P ropriété 6. – A tout automate (fini) peut être associer un automate (fini) normalisé .
Algor ithme Normalisation()
donnée: A =<E,Σ,I,F,T> fini,
sortie :An =<En,Σ,In,Fn,Tn> fini
debut
<Es,Σ,Is,Fs,Ts>=Standardisation(<E,Σ,I,F,T>);
E n=E s ∪F s ; , I n=I s ; F n={ f n } ; ; T n=T s ;
pour chaque f ∈ F s faire
T n=T n∪{ f f n } ;
fpour
An=FermetureArrière(An); /* élimination des transitions spontanées */
fin.
2.8. Automate déterministe
D éfinition 16. – Un automate A =<E,Σ,I,F,T> est detérministe si les deux conditions suivantes
sont satisfaites:
i) I={i}; unique état initial (A est standard) ;
s
ii) ∀ p∈ E et ∀ s∈ , ∃! p q ;
Si A est fini, en terme de table, A est déterministe si tous les coefficients de la table de
transition sont, soit des singletons, soit vide.
Exemple: A1 n'est detérministe car pa q et pa p
a a
a b
p q r
b b
Automate non déterministe
Les automates P1 et Z1 sont déterministes
1 0 a a a a
0
p q r 2 1 0 1 2
1
1 0 b b b b
Automates déterministes
Support de cours,Théorie des langages, Module I513Département informatiqueSadki Hassainpage9
Chapitre 1 Automates
Si un automate fini n'est pas detérministe, on peut la detérminiser par l'algorithme suivant:
Algor ithme Detérminisation()
debut
donnée: Table de transition R=(rs,) de A=<E,Σ,IlF,T> fini,
sortie :Table de transition D=(ds,) de Ad =<Ed,Σ,Id,Fd,Td> fini
debut
F d =∅ ;
T d =∅ ;
I d ={{i }} ; % i=état initial%
E d ={{i }} ;
N=Ed; % contient les nouveaux états %
repeter
pour chaque S⊂ N faire % pour chaque nouveau état %
pour chaque ∈ faire % pour chaque symbole %
si s r s , ∈T , s∈S alors % si la transition existe dans A %
d S , ={ r s , | S r s , } ;% calculer un état de Ad %
E d =E d ∪{ d S , } ; % l'ajouter dans Ed %
T d =T d ∪{ s r s , | s∈S } ;% ajouter les nouvelles transitions %
si r s , ∈F alors % le nouveau état est final %
F d =F d ∪{ d S , } % l'ajouter dans Fd %
fsi;
si d S , ∉E alors % c'est un nouveau état %
N = N ∪{ d S , }∖ S ; % + nouveaux états – l'ancien état %
fsi;
fsi;
fpour;
fpour;
jusqu'à ( N =∅ );% il n'y a plus de nouveaux états %
fin.
Exemple: soit la table de transition R de l'automate A1 :
a a R a b
a b p {p,q} {p}
p q r
q {r}
b b r {r} {r}
Les étapes de l'algorithme sont:
N={{p}}
S={p} : {p}a {p,q} {p}b {p} donc N={{p,q}}
S={p,q}: {p,q}a {p,q} {p,q}b {p,r} donc N={{p,r}}
Support de cours,Théorie des langages, Module I513Département informatiqueSadki Hassainpage10
Chapitre 1 Automates
N est vide, donc l'algorithme s'arrête. D'où l'automate detérministe Ad de A:
Ad =<Ed;;Id;Fd,Td> avec: Ed={{p},{p,q},{p,r},{p,q,r}}; ={a,b};Id={{p}}; Fd={{p,r},{p,q,r}};
Td={{p}a {p,q}, {p}b {p}, {p,q}a {p,q}, {p,q}b {p,r}, {p,r}a {p,q,r}
{p,r}b {p,r}, {p,q,r}a {p,q,r}, {p,q,r}b {p,r} }
D a b
a {p} {p,q} {p}
b a b
a b a {p,q} {p,q} {p,r}
{p} {p,q} {p,r} {p,q,r}
{p,r} {p,q,r} {p,r}
b
{p,q,r} {p,q,r} {p,r}
Support de cours,Théorie des langages, Module I513Département informatiqueSadki Hassainpage11