Vous êtes sur la page 1sur 45

CHAPITRE 04

Ones Sidhom AUTOMATES FINIS


2022-2023
Automates finis
Exemple introductif:
On cherche à reconnaître un langage: (indiquer si in mot qu’on
a lu appartient au langage ou pas)
On souhaite à reconnaître le mot ”fee” :
Lire les lettres les unes après les autres et accepter le mot
une fois qu’on a bien lu ”fee”.
Passer alors par quatre états : lorsqu'on a rien lu, lorsqu'on a
lu 'f', lorsqu'on a lu 'fe' puis lorsqu'on a lu 'fee'

1
Ones Sidhom
Automates finis
Définition : un automate d’états finis est une machine abstraite qui
permet de dire si un mot appartient ou non à un langage régulier.
Définition formelle: Un automate fini est donne par
(S, Σ, δ, S0, SF ) avec:
S: ensemble fini des états
Σ: alphabet
δ: S × Σ → S est la fonction de transition
S0 est l’état initial
SF est l’ensemble des états finaux

2
Ones Sidhom
Notations

3
Ones Sidhom
Automates finis
Exemple:

S = {s0, s1, s2, s3}


Σ = {f, e}
δ(S0, f) = S1, δ(S1, e) = S2, δ(S2, e) = S3
S0 est l’état initial ;
SF = {s3}.

5
Ones Sidhom
Automates finis
Un diagramme de transition pour la reconnaissance des
identificateurs

L’action spécifiée par le symbole ∗ permet de reculer d’une


position sur le fichier source après la consommation d’un
symbole autre qu’une lettre ou un chiffre.
6
Ones Sidhom
Automates finis
Diagramme de transition: Exemple

7
Ones Sidhom
Automates finis
Table detransitions:
Chaque ligne est un état s de S ( l'ensemble des états)
Chaque colonne est un symbole d'entrées.

9
Ones Sidhom
Automates finis
Exercice
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
Donnez la représentation matricielle et La représentation graphique
10
Ones Sidhom
Automates finis
Mot accepté/ reconnu:

Est ce que M1 accepte aaba?


Est ce que M1 accepte abba?
Est ce que M1 accepte baab?
11
Ones Sidhom
Automates finis
Mot accepté/ reconnu:

Est ce que M1 accepte abba?


Est ce que M1 accepte aaba?

12
Ones Sidhom
Automates finis

Automates finis complets


Un automate fini est complet:
De chaque état, il part exactement un arc étiqueté par chacune des
lettres de l’alphabet Σ.

Ones Sidhom 13
Automates finis
Automates finis complets

Ones Sidhom 14
Automates finis
Etats puits et poubelles

Ones Sidhom 15
Automates finis
Automates équivalents

Ones Sidhom 16
Automates finis
Automates équivalents

Ones Sidhom 17
Automates finis
Un automate fini peut être déterministe ou non déterministe,
ce dernier terme signifiant qu'on peut trouver plus d'une
transition sortant d'un état sur le même symbole d'entrée.
Définition (Automate Fini non déterministe = AFN)
Un automate fini non déterministe est défini par (K, T, δ, I, F)
K est un ensemble fini d’états.
T est le vocabulaire terminal (l’alphabet )
δ est une fonction de transition : tout couple formé d’un état et d’un
symbole de K fait correspondre un ensemble, qui peut être vide,
d’états : δ( q , a) =i {q 1 , . .i . , q n }. i
I ⊆ K est l’état initial.

Ones Sidhom
F ⊆ K est l’ensemble des états finaux.
18
Automates finis
Un automate fini peut être déterministe ou non déterministe,
ce dernier terme signifiant qu'on peut trouver plus d'une
transition sortant d'un état sur le même symbole d'entrée.
Définition (Automate Fini non déterministe = AFN)
Un automate fini non déterministe est défini par (K, T, δ, I, F)
K est un ensemble fini d’états.
T est le vocabulaire terminal (l’alphabet )
δ est une fonction de transition : tout couple formé d’un état et d’un
symbole de K fait correspondre un ensemble, qui peut être vide,
d’états : δ( q , a) =i {q 1 , . .i . , q n }. i
I ⊆ K est l’état initial.

Ones Sidhom
F ⊆ K est l’ensemble des états finaux.
19
Automates finis
Exemple
Soit l’AFN défini par :
A = {a, b},
T = {0, 1, 2, 3},
I = {0},
T = {3},
δ(0, a) ={0, 1},
δ(0, b) = {0},
δ(1, b) = {2},
δ(2, b) = {3}.

20
Ones Sidhom
Automates finis
Exemple
Soit l’AFN défini par : A = {a, b}, T = {0, 1, 2, 3}, I = {0}, T = {3},
δ(0, a) ={0, 1}, δ(0, b) = {0},δ(1, b) = {2}, δ(2, b) = {3}. L’AFN est
représenté graphiquement par :

21
Ones Sidhom
Automates finis
Un automate est dit non déterministe car, étant donné un état Si ∈ K
et un symbole a ∈ T, il peut exister plusieurs transitions possibles.
Sur l’exemple précédent, quand l’automate se trouve dans l’état S et
que le mot à analyser commence par a, il a le choix entre rester dans
l’état S ou aller à l’état S'. Dans ce cas, l’automate choisit "au hasard"
une des possibilités, et garde en mémoire le fait qu’il y a d’autres
possibilités (on dit qu’il pose un point de choix). Si avec la transition
choisie il arrive à terminer la dérivation jusqu’à un état final, alors le
mot est accepté et on arrête l’exécution. En revanche, si l’automate
n’arrive pas à terminer la dérivation, alors il retourne jusqu’au dernier
point de choix (on dit qu’il “backtrack") et recommence avec une
autre possibilité. 22
Ones Sidhom
Automates finis
Lorsque deux arcs de même orientation sont possibles entre deux
nœuds, ils sont fusionnés :
a a,b

b
Remarques :
Il y a différence entre:

a,b
R = a+b

a b
R = ab
23
Ones Sidhom
Automates finis

Automates fini déterministes


L’exécution d’un automate fini non déterministe peut être inefficace
s’il comporte beaucoup de points de choix. Pour éliminer ces points
de choix, et rendre l’exécution efficace, il faut que l’automate soit
déterministe, c’est-à-dire, étant donnés un état Si∈ K et un
symbole a ∈ T, il existe une seule transition possible. Chaque
entrée de sa table de transition est un état unique.

24
Ones Sidhom
Automates finis
Exemple: l’AFD (K, T, M, S, I,F) tel que

K = {S, V, U, E} M={
T = {a, b} (S, a) → V
I = {S} (S, b) → E
F = {U} (V, a) → V
(V, b) → U
(U, a) → E
(U, b) → U
(E, a) → E
(E, b) → E
25
Ones Sidhom }
Automates finis
Cet AFD est représenté graphiquement par le graphe :

26
Ones Sidhom
Equivalence entre AFN et AFD
Passage d'un AEF non déterministe vers un AEF déterministe
Déterminisation d’un AFN ne contenant pas de ε-transitions :
La déterminisation d’un AFN ne contenant pas de ε-transitions peut être
effectuée en appliquant l’algorithme suivant sur la table de transition de
l’AFN pour en déduire celle de l’AFD équivalent :
1. Partir de l’état initial E0 = {e0}
2. Construire E1 qui est l’ensemble des états obtenus à partir de E0 par la
transition étiquetée a, E1 = Transiter(E0 , a).
3. Recommencer l’étape 2 pour toutes les transitions possibles et pour
chaque nouvel ensemble d’états Ei .
4. Tous les ensembles d’états Ei contenant au moins un état final
deviennent finaux.
5. Renuméroter les ensembles d’états obtenus en tant que simples états.
Ones Sidhom 27
Equivalence entre AFN et AFD
Exemple
Déterminiser l’l’AFN suivant

Ones Sidhom 28
Equivalence entre AFN et AFD
Exemple
Déterminiser l’l’AFN suivant

Ones Sidhom 29
Equivalence entre AFN et AFD
Exemple
Déterminiser l’l’AFN suivant

Ones Sidhom 30
Equivalence entre AFN et AFD
Exemple

Ones Sidhom 31
Equivalence entre AFN et AFD
Système d’équations

Ones Sidhom 31
Equivalence entre AFN et AFD
Système d’équations

Ones Sidhom 31
Equivalence entre AFN et AFD
Système d’équations

Ones Sidhom 31
Opérations sur les automates

Ones Sidhom 31
Opérations sur les automates
Exemple

Ones Sidhom 31
Opérations sur les automates
Union de deux automates

Ones Sidhom 31
Opérations sur les automates
Exemple

Ones Sidhom 31
Opérations sur les automates
Exemple

Ones Sidhom 31
Opérations sur les automates
Exemple

Ones Sidhom 31
APPLICATION

Soit L1 le langage des mots de {a, b} * contenant un nombre impair de


lettres « a » ; et L2 = {aa, ab}.

1. Construire un automate d’états finis simple qui accepte L1.

2. Construire un automate d’états finis simple qui accepte L2.

3. Construire un automate d’états finis simple qui accepte L1 ∪ L2.


4. Rendre l’automate 3. déterministe

Ones Sidhom 27
APPLICATION

Ones Sidhom 27
APPLICATION

Ones Sidhom 27
APPLICATION

Ones Sidhom 27
APPLICATION

Ones Sidhom 27
APPLICATION

Ones Sidhom 27

Vous aimerez peut-être aussi