Vous êtes sur la page 1sur 11

 

                                                                                                                                    Chapitre 1 Automates 

p Chapitre 1. Automates p

Un automate est un graphe  orienté  et  étiqueté  par les symboles d'un alphabet, et dans lequel 


deux sous­ensembls de sommets ont été distinqués à savoir: le sous ensemble de sommets sources  
et ceux des sommets de destinations.

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 sous­enemble 
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 I513­Département informatique­Sadki Hassain­page1                  
                                                                                                                                     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.

D éfinition 4. Soit A =<E,Σ,I,F,T> un automate; une partie P⊆E définit alors un automate 


B =<P,Σ,J,U,R> par:  R=T ∩ Px  xP ,  J =I ∩P et . L'automate B  est un sous­
automate. Un sous­ensemble  H⊆T définit aussi un automate C =<E,Σ,I,F,H> qu'on appellera 
aussi sous­automate de A .

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 I513­Département informatique­Sadki Hassain­page2                  
                                                                                                                                     Chapitre 1 Automates 

L'état  p0  est l'origine du calcul et  pn  est son extrémité. La longueur du calcul  c  est  n, c'est le 


nombre   de   transitions   qui   constituent  c.   L'étiquette   de  c  est   la   concaténation   (   le   produit)   des 
étiquettes des transitions de c:
a1 a2 ...an
c := p 0  p n

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

(a) (b) (c)


Fig. 5. Automates:(a) pour ∅ (b) pour 1 (c) pour  * *

         Support de cours,Théorie des langages, Module I513­Département informatique­Sadki Hassain­page3                  
                                                                                                                                     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 sous­automate 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ù

P ropriété 2. – Si B est un sous­automate de A,  L  B⊆L  A ; c'est à dire le langage de B est 


inclus dans celui de A.

D éfinition 7. – Soit Σ un alphabet fini. Un Langage L de Σ* est dit reconnaissable s'il est 


reconnu par un automate fini sur Σ, c'est à dire, il existe un automate fini A sur Σ tel que 
L=L(A). La famille des langages reconnaissable de Σ* est notée: R(Σ*).

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.

Exemple 3: L'automate =< ℤ ,{a,b},{0},{0},T> avec T={za→z+1,zb→z­1} z  ℤ n'est pas 


un automate 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 I513­Département informatique­Sadki Hassain­page4                  
                                                                                                                                     Chapitre 1 Automates 

a b
b
 1 3

0
a
 2 4

b a

 Automate spontané A2

P roposition. Tous automate fini spontané As =<E,Σ,Is,F, T s∪S > peut être effectivement 


transformé en un automate fini équivalent, sans transitions spontanées et avec le même 
nombre d'états A =<E,Σ,I,F,T>.

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 I513­Département informatique­Sadki Hassain­page5                  
                                                                                                                                     Chapitre 1 Automates 

Si  w=a 1 a2 ... a n ∈ * , on appelle image méroir de w (ou transposé de w) le mot 


t
w =a n a n−1 ... a 1 . En général  ∀ L ∈ * L t={ wt∣w∈ L } .

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 « co­P » 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 I513­Département informatique­Sadki Hassain­page6                  
                                                                                                                                     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 ∈ }

Tous calcul (réussi) de  A1    est un calcul (réussi) de  A1c  . La réciproque est fausse, en effet un 


calcul de A1c  qui passe par z n'est pas un calcul de A1  ,puisqu'il se termine dans z (puit).

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 I513­Département informatique­Sadki Hassain­page7                  
                                                                                                                                     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 I513­Département informatique­Sadki Hassain­page8                  
                                                                                                                                     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 I513­Département informatique­Sadki Hassain­page9                  
                                                                                                                                     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 I513­Département informatique­Sadki Hassain­page10                  
                                                                                                                                     Chapitre 1 Automates 

S={p,r}: {p,r}a  {p,q,r}        {p,r}b  {p,r}      donc N={{p,q,r}}


S={p,q,r}: {p,q,r}a  {p,q,r}         {p,q,r}b  {p,r}   donc     N={}

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 I513­Département informatique­Sadki Hassain­page11                  

Vous aimerez peut-être aussi