0% ont trouvé ce document utile (0 vote)
114 vues45 pages

2 Automate

Ce document traite des automates à états finis, définissant leur structure, leur fonctionnement et leur classification. Il aborde également les concepts de déterminisation et de minimisation des automates, ainsi que la distinction entre automates déterministes et non déterministes. Enfin, il explique comment représenter graphiquement et matriciellement ces automates, ainsi que les langages qu'ils acceptent.

Transféré par

rolandguy392
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
114 vues45 pages

2 Automate

Ce document traite des automates à états finis, définissant leur structure, leur fonctionnement et leur classification. Il aborde également les concepts de déterminisation et de minimisation des automates, ainsi que la distinction entre automates déterministes et non déterministes. Enfin, il explique comment représenter graphiquement et matriciellement ces automates, ainsi que les langages qu'ils acceptent.

Transféré par

rolandguy392
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Théorie des Langages et Compilation

Cours 4 : Les Automates à Etat Finis


(AEF)
Plan du cours

II. Automates Finis


III. Déterminisation
IV. Minimisation
V. Automate vs Expressions Régulière

2
Introduction

Objectif : Définir formellement (modéliser) un mécanisme qui peut


prendre une décision.

Quel type de décision ?


entrée : une séquence de symboles
sortie (réponse) : ”oui” ou ”non” (acceptation ou rejet)

3
Introduction

Les automates sont des modèles mathématiques qui permettent de


déterminer si un mot donné appartient à un langage.

Classification des automates:

Comme les langages et les grammaires il y a quatre types d’automates:


• Automate à états finis : il reconnaît les langages de type 3
• Automate à pile : il reconnaît les langages de type 2
• Automate à bornes linéaires : il reconnaît les langages de types 1
• Machine de Turing : automate qui reconnaît les langages de type 0

4
Automate Fini
Définition

Un automate d’états finis est défini par un quint-uplets A=(X, Q , I , 𝛿 , F)

Avec :
X : L’alphabet.
Q : L’ensemble fini des états.
I : L’ensemble des états initiaux (I⊆Q)
F : L’ensemble des états finaux (F⊆Q)
𝛿 : La relation de transition définie par l’ensemble fini de transitions de la
forme (i, 𝛿, j) où i et j sont des états et a est un symbole ∈ X.

On la note 𝛿(i,a)=j qui signifie la transition de l’état i vers l’état j en lisant


le symbole a .

5
Automate Fini
Représentation Graphique

Elle consiste à représenter un automate d’états finis par un graphe


orienté comme suit :

▪ Chaque état est schématisé par un rond (un nœud).


▪ Chaque état initial est précédé d’une flèche.
▪ Chaque état final est entouré d’un cercle.
▪ Pour chaque transition 𝛿(qi, a)=qj on raccorde le noeud qi au nœud qj
par un arc étiqueté par le symbole a

6
Automate Fini
Représentation Graphique

Soit l’automate d’états finis A=(X , Q , I , 𝛿 ,F)

avec:
• X = {a, b, c}

• Q = {q1, q2, q3, q4}

• I = {q1, q2}

• F = {q4}
• Les transitions:
𝛿 (q1,a)= {q1,q3}
𝛿 (q2,b)= {q2,q3}
𝛿 (q3,c)= {q3,q4}
𝛿 (q4,b)= q4

7
Automate Fini
Représentation Matricielle

Elle consiste à représenter un automate d’états finis par une matrice dont :

▪ Les indices de lignes correspondent aux états de Q.

▪ Les indices de colonnes correspondent aux symboles de X.

▪ Chaque case de la matrice de ligne qi et de colonne xi correspond à la relation de


transition 𝛿 (qi, xi )

8
Automate Fini
Représentation Matricielle

Soit l’automate d’états finis A=(X , Q , I , 𝛿 ,F)

avec:

• X = {a, b, c}

• Q = {q1, q2, q3, q4}

• I = {q1, q2}

• F = {q4}

• 𝛿 (q1,a)= {q1,q3}
𝛿 (q2,b)= {q2,q3}
𝛿 (q3,c)= {q3,q4}
𝛿 (q4,b)= q4

9
Automate Fini
Langage Accepté par un automate

❑ Définition

Soit l’automate d’états finis A=(X , Q , I , 𝛿 ,F), on dit que:

Tout mot fini w = x0.x1.x2....xn de X est accepté par un automate A si et


seulement si il existe une séquence q0.q1.q2. . . . qn.qn+1 de Q telle que :

• Pour tout 0≤i≤n, (qi,xi,qi+1) ∈ δ.


• qn+1 appartient à l’ensemble F.
• Le langage accepté (ou reconnu) par un automate A, noté L(A) est
constitué de l’ensemble des mots acceptés par A.
• Le langage accepté par un automate d’état fini est un langage régulier.

10
Automate Fini
Langage Accepté par un automate

❑ Exemple

1. Le langage accepté par cet automate est :

L(A1)={anbp / n>0, p>0 }. Les mots bbab,bba et aba ne aab est accepté par l’automate
sont pas acceptés par cet automate.

• 2. L(A2)={a, aba, ababa, abababa,…}

baa n’est pas accepté par l’automate

11
Automate Fini
Automate Fini Non Déterministe

❑ Non Déterminisme

Un automate est dit indéterministe, car:

1. Il peut y avoir plusieurs états initiaux

2.Etant donné un état 𝛿i ∈ 𝛿 et un symbole a ∈ X ,


il peut exister plusieurs transitions possibles

(au niveau de la représentation graphique par un


graphe, ce non déterminisme correspond au cas
où il y a plusieurs arcs étiquetés par un même
symbole terminal qui partent
du même sommet)
12
Automate Fini
Automate Fini Déterministe

Un automate est dit déterministe, si:

1. Il a un seul état initial

2. Etant donné un état 𝛿i ∈ 𝛿 et un symbole a ∈ X . Il existe une seule transition


possible

13
Automate Fini
Automate avec ε –transition (ε-AFN)

❑ Définition

Les automates finis possédant des ε-transitions sont des automates pouvant faire
spontanément des transitions. Les arcs correspondants sont étiquetées par le
symbole ε et ne consomment aucun caractère de la chaîne d’entrée.

Exemple:

Un ε-AFN acceptant les mots clé ebay et web.

∑ebay , ∑web acceptés par l’automate

∑x n’est pas accepté

14
Déterminisation d’un AFN

❑ Objectif

▪ Pour déterminer si un mot u de longueur n est accepté, un AFD effectue


exactement n transitions, tandis qu’un AFN en effectue de l’ordre de 2n .
L’exécution d’un AFD est donc nettement plus efficace que celle d’un AFN.
▪ En contrepartie, on peut se demander si les AFN sont plus généraux, c’est-à-dire
s’ils acceptent plus de langages que les AFD. La réponse, négative, est donnée par
le théorème suivant.

❑ Théorème (Rabin-Scott)
Tout langage reconnu par un AFN peut être reconnu par un AFD.

15
Déterminisation d’un AFN

❑ En pratique:
Prenons l’automate suivant:

On construit ensuite les états de l’AFD et leur fonction de transition

16
Déterminisation d’un AFN

❑ En pratique:
Au départ, l’AFD a un seul état qui est composé de l’ensemble des états initiaux de
l’AFN : sur notre exemple, l’état initial de l’AFD est {S1,S2}. A chaque fois qu’on ajoute
un nouvel état dans l’AFD, on détermine sa fonction de transition en faisant l’union des
lignes correspondantes dans la table de transition de l’AFN : sur notre exemple, pour
l’état {S1,S2}, on fait l’union des lignes correspondant à S1 et S2, et on
détermine la fonction de transition:

17
Déterminisation d’un AFN

❑ En pratique:
On rajoute ensuite les états {S1,S3} et {S2,S3} à l’AFD et on détermine leur fonction de
transition selon le même principe. De proche en proche, on construit la table de transition
suivante pour l’AFD :

18
Déterminisation d’un AFN

❑ En pratique:

L’ensemble des états de l’AFD est Q = {{S1, S2}, {S1, S3}, {S2, S3}, {S3, S4}}. Les
états de l’AFD contenant un état final de l’AFI sont des états finaux. Ici, l’AFN a un seul
état final S4 et l’ensemble des états finaux de l’AFD est F′ = {{S3,S4}}. Cet AFD
correspond au graphe suivant :

19
Déterminisation d’un AFN

❑ En pratique:

AFN AFD

20
Minimiser un Automate Fini
Déterministe

❑ Objectif:

La minimisation d'un automate fini déterministe est l'opération qui consiste à


transformer un automate fini déterministe donné en un automate fini déterministe
ayant le nombre minimal d'états et qui reconnaît le même langage régulier. La
minimisation a une importance pratique évidente par le gain d'espace qu'elle permet.

La minimisation s’effectue :

1. En éliminant les états dits inaccessibles

2. En regroupant les états congruents (appartenant à la même classe d’équivalence).

21
Minimiser un Automate Fini
Déterministe
1. L’élimination des états inaccessibles:
• Un état est dit inaccessible s’il n’existe aucun chemin permettant de l’atteindre à
partir de l’état initial. c’est-à- dire qu’ils ne participeront jamais à l’acceptation d’un
mot. Ainsi, la première étape de minimisation d’un AEF consiste à éliminer ces
états.

Exemple

• Les états 7 et 3 sont inaccessibles. Donc nous les supprimons.

22
Minimiser un Automate Fini
Déterministe

1. L’élimination des états inaccessibles en utilisant l’algorithme de marquage

• Pour des automates de taille importante, nous utilisons l’algorithme de marquage


pour supprimer les états inaccessibles .

• Le principe de cet algorithme est de commencer le marquage des états depuis l’état
initial et marquer les états atteints de bout en bout jusqu'à trouver des états non
marqués.

23
Minimiser un Automate Fini
Déterministe
1. L’élimination des états inaccessibles en utilisant l’algorithme de marquage

Etats a b
1* 2 5
2* 2 4
3* 3 2
4* 5 3
5* 4 6
6* 6 1
7 5 7

24
Minimiser un Automate Fini
Déterministe
1. L’élimination des états inaccessibles en utilisant l’algorithme de marquage

25
Minimiser un Automate Fini
Déterministe
2. Regroupement des états équivalents

❑ Les états β-équivalents:

Deux états qi et qj sont dits β-équivalents s’ils permettent d’atteindre les états
finaux à travers les mêmes mots. On écrit alors : qi β qj.

❑ Remarque:
• La relation β-équivalence est une relation d’équivalence.
• Le nombre de classes d’équivalence de la relation β-équivalence est égale au
nombre des états de l’automate minimal car les états de chaque classe
d’équivalence acceptent le même langage (ils seront fusionnés).

26
Minimiser un Automate Fini
Déterministe
2. Regroupement des états équivalents

❑ Exemple 1:

Soit AEF suivant (initial=0, finaux={2,3})

Etat a b Etat a b
0 1 0 0 1 0
1 1 2 1 1 2
2 3 2 2 2 2
3 3 2

27
Minimiser un Automate Fini
Déterministe
2. Regroupement des états équivalents

❑ Exemple 2: Soit AEF suivant (initial=1, finaux={1,2})

1. Nous avons éliminé les états inaccessibles ( l’état 7)


2.Nous ne trouvons pas des états ayant la même fonction donc pour

réduire les états il faut construire des classes d’équivalence en suivant

l’algorithme de réduction des états Etats a b


1 2 5
2 2 4
3 3 2
4 5 3
5 4 6
6 6 1
28
Minimiser un Automate Fini
Déterministe
2. Regroupement des états équivalents

❑ L’algorithme de réduction des états :

29
Minimiser un Automate Fini
Déterministe
2. Regroupement des états équivalents

Exemple:

Etape 1: Créer deux classes d’états

1. A={1,2} ( les états finaux)

2. B={3,4,5,6} ( les états non finaux)

Etape 2: Vérifier la cohérence des classes

• On dit qu’une classe A est cohérente par rapport à un symbole


a si Toutes les transitions de A avec le symbole a mènent à la
même classe . Si une classe n’est pas cohérente il faut la
découper au moins en deux partie jusqu’à trouver des classes

30
Minimiser un Automate Fini
Déterministe
2. Regroupement des états équivalents Etats a b
1 2 5
Nous allons procéder par itération
2 2 4
1 ère Itération: (A={1,2}, B={3,4,5,6}) 3 3 2
A a b 4 5 3
1 2∊ A 5∊ B 5 4 6
2 2∊ A 4∊ B 6 6 1

B a b
A est cohérente
3 3∊ B 2∊ A
4 5∊ B 3∊ B
5 4∊ B 6∊ B
6 6∊ B 1∊ A
B n’est pas cohérente. Il faut donc l’éclater en
deux classes B={3,6} et C={4,5} 31
Minimiser un Automate Fini
Déterministe
2. Regroupement des états équivalents Etats a b
1 2 5
Nous allons procéder par itération
2 2 4
1 ère Itération: (A={1,2}, B={3,4,5,6}) 3 3 2
A a b 4 5 3
1 2∊ A 5∊ B 5 4 6
2 2∊ A 4∊ B 6 6 1

B a b
A est cohérente
3 3∊ B 2∊ A
4 5∊ B 3∊ B
5 4∊ B 6∊ B
6 6∊ B 1∊ A
B n’est pas cohérente. Il faut donc l’éclater en
deux classes B={3,6} et C={4,5} 32
Minimiser un Automate Fini
Déterministe
2. Regroupement des états équivalents

Nous allons procéder par itération

2 ère Itération: (A={1,2}, B={3,6}, C={4,5})

A a b C a b
1 2∊A 5∊C 4 5∊C 3∊B
2 2∊A 4∊C 5 4∊C 6∊B
A est cohérente C est cohérente

B a b
3 3∊B 2∊A
6 6∊B 1∊A
B est cohérente

Donc l’AEFD contiendra trois états A,B et C 33


Minimiser un Automate Fini
Déterministe
Résultat de l’algorithme: l’AEF contiendra trois états A,B et C
▪ Etat iniIal= la classe qui conIent l’ancien
état iniIal : A ( 1)
A a b ▪ Etats finaux= les classes qui conIennent des
1 2∊A 5∊C états finaux: {A}
2 2∊A 4∊C
Etat a b
B a b
A A C
3 3∊B 2∊A
B B A
6 6∊B 1∊A
C C B
C a b
4 5∊C 3∊B AFD minimal
5 4∊C 6∊B

34
Minimiser un Automate Fini
Déterministe

Résultat de l’algorithme: l’automate obtenu est minimal et accepte le

même langage

Etat a b
A A C
B B A
C C B

35
Exercice

Exercice 1:

Déterminiser et minimiser l’automate suivant:

36
Solution
Exercice 1:
1. Déterminisation

a b a b

0 {0,1,2} - 0 1 -
{0,1,2} {0,1,2} {1,2} Réduction 1 1 2
{1,2} 1 {1,2} 2 3 2
1 - {1,2} 3 - 2

37
Solution

Exercice 1:
1. Déterminisation

a b
0 1 -
1 1 2
2 3 2
3 - 2

AFD

38
Solution

Exercice 1:

2. Minimisation:
1 ère itération

A={1,2}
B={0,3}

A a b B a b
1 1∊A - 0 1∊A -
2 3∊B 2∊A 3 - 2∊A

A n’est pas cohérente B n’est pas cohérente


Donc nous allons étaler A et B en deux classes. Cela fera 4 classes A={1}, B={2}, C={0}, D={3}
Puisque le nombre de classes est égal exactement au nombre des états de l’automate de base
alors l’automate de base est déjà minimal.

39
Automates et Expression Régulières
Le passage d’un AEF vers une ER

❑ Principes

• Chaque mot accepté correspond à un chemin de l’état initial vers l’état final.

• L’expression régulière obtenue est l’union de tout les chemins possibles.


Exemples:

1.

ER: a*ba*ba*

40
Automates et Expression Régulières
Le passage d’un AEF vers une ER

❑Exemples:

2.

Chemin 1: a*

Chemin 2: a*ba*

Chemin 3: a*ba*ba*b(ab)*

ER: a* |a*ba* | a*ba*ba*b(ab)*

41
Automates et Expression Régulières
Le passage d’un AEF vers une ER
❑ L’algorithme des équations linéaires en utilisant le lemme d’Arden
Soit A = (X, Q, q0, F, δ) un automate à états finis quelconque. On désigne par Li le
langage accepté par l’automate si son état initial était qi. Par conséquent, trouver le
langage accepté par l’automate revient à trouver L0 étant donné que l’analyse
commence à partir de l’état initial q0. L’automate permet d’établir un système
d’équations aux langages de la manière suivante :

— si δ(qi,a)=qj alors on écrit: Li =aLj;


— si qi ∈F, alors on écrit: Li =ε
— si Li =α et Li =β alors on écrit: Li =α|β;

Il suffit ensuite de résoudre le système en précédant à des substitutions et en utilisant la


règle du lemme d’Arden suivante : la solution de l’équation L = αL|β est le langage
L = α∗β

(attention! si vous obtenez L = αL alors c’est la preuve d’une faute de raisonnement).


42
Automates et Expression Régulières
Le passage d’un AEF vers une ER
❑ Exemple:
Trouvons le langage accepté par cet automate.

Le système d’équations est le suivant: :

1) L0 = aL0| bL1| ε

2) L1 = bL0| aL2

3) L2 = aL1| bL2

Ensuite on applique le lemme d’Arden:

La solution de l’équation L = αL|β est le langage L = α∗β

43
Automates et Expression Régulières

44
Solution

45

Vous aimerez peut-être aussi