Cours 3
Cours 3
Cours 3
48
Expression régulière et automates finis
Automates finis
-États finis
-Vocabulaire: 2dh, 1dh, café, thé ….
-Transitions
49
Expression régulière et automates finis
Automates finis
Définition
Un automate fini (AF) est un diagramme de transition qui peut reconnaitre avec
précision ce que les expressions régulières peuvent dénoter.
Modélisation de l’AF
Un AF est une machine modélisée par:
- Un ruban d’entrée (Input Tape): Sur lequel on place le mot à traiter
(Input Word). Le ruban est divisé en case (caractères).
- Une tête de lecture (Read Head): Indiquant la position du caractère
suivant à lire.
- Un ensemble d’états (Set of states) parmi lesquels:
- L’état initial: Etat de l’automate au départ de l’exécution.
- Des états accepteurs: Etats finals de l’automate.
- Une relation de transition: Indiquant pour chaque état et symbole lu qu’il
est l’état suivant de l’automate.
50
Expression régulière et automates finis
Automates finis
caractère courant
bae mot à reconnaître
q0 b q1 a q2 b q3 e q4
a
état initial état courant
c état final
ou accepteur
51
Expression régulière et automates finis
Automates finis
Formalisation d’un AF
Un automate fini est un modèle mathématique qui est défini par un
quintuplet A=(Q,V, δ, q0, F) où:
52
Expression régulière et automates finis
Automates finis
Exemple: id:
V={a,…,z,0,…,9}
ER X= x.(x|y)* / x {a,…,z} et y {0,…,9}
54
Expression régulière et automates finis
Automates finis
Expression automate: cas de base
début
début e
début a
55
Expression régulière et automates finis
Automates finis
Représentation d’un AF par une table de transition
La table de transition est un tableau qui permet de représenter la fonction de transition
δ(q; a) = p entre les deux états q et p par le symbole a.
Soit l’AF de l’exemple précédent, la table de transition correspondante est:
a b Exemple: δ(q0; a) = q0
56
Expression régulière et automates finis
Automates finis
Automate Fini non déterministe (AFN)
Un AFN est un AF caractérisé par:
- Plusieurs transitions correspondantes au même symbole sortant d’un même état.
a q2
q
q1
a
- Des transitions sur le symbole ε (mot vide): Changer d’état sans avancé dans le mot d’entrée.
ε
q > q1
Exemple d’un AFN
q0 q1 q2
57
Expression régulière et automates finis
Automates finis
Automate Fini déterministe (AFD)
Un AFD est un cas particulier des AFN tel que:
- Aucun état n’a de ε transition.
- Pour chaque état q et chaque symbole a, il existe au plus un arc
d’étiquette a partant de q.
q0 q1
58
Exercice 1
59
Correction
60
Exercice 1
Correction
61
Exercice 2
Soit A = {a,b,c}. Pour chacun des langages suivants, donner un
automate fini déterministe (AFD) le reconnaissant :
l’ensemble des mots dont la longueur est un multiple de 3 ;
l’ensemble des mots se terminant par b ;
l’ensemble des mots ne se terminant pas par b ;
l’ensemble des mots contenant exactement un b ;
l’ensemble des mots ne contenant aucun b ;
l’ensemble des mots comportant au moins 3 lettres et dont la
troisième lettre à partir de la fin est un a ou un c ;
Proposer un automate et une expression régulier pour le
langage de tous les mots {a,b,c}*. dont cac est un sous-mot
62
Expression régulière et automates finis
Automates finis
Automate Fini déterministe complet (AFDC)
Un automate fini déterministe complet (AFDC) est un automate
déterministe pour lequel chaque état q et chaque symbole a, il
existe au moins un arc d’étiquette a partant de q.
63
Expression régulière et automates finis
Automates finis
Transformation de l’AFD en AFDC
Tout AFD peut être transformé en un AFDC reconnaissant le même langage par
l’algorithme suivant:
- Rajouter à l’AFD un nouvel état P non final (« P est appelé état poubelle ou
état erreur »)
- Rajouter les transitions d’étiquettes manquantes en les dirigeant toutes vers
cet état poubelle P ; ne pas oublier les transitions de P vers lui-même .
Exemple
a,b,c
65
Expression régulière et automates finis
Automates finis
Théorème de Rabin et Scott
Tout langage accepté par un AFN est également accepté
par un AFD.
Proposition
Tout AFN (avec ou sans ε-transition) peut être
transformé en un AFD.
66
Expression régulière et automates finis
Automates finis
Transformation d’un AFN sans ε-transition en AFD
1- A partir de l’état initial E(0)={q0} (c’est l’état initial du nouvel automate);
2- Construire E(1) l’ensemble des états obtenus à partir de E(0) par la transition x:
E(1)=Uq’E(0)δ(q’,x)
3-Recommencer l’étape 2 pour toutes les transitions possibles et pour chaque nouvel
ensemble E(k);
E(k)= Uq’E(k-1)δ(q’,x)
4- Tous les ensembles contenant au moins un état final du premier automate
deviennent finaux;
5- Renuméroter les états en tant qu’états simples.
67
Expression régulière et automates finis
Exercice
Transformer en AFD l’automates suivant :
68