Académique Documents
Professionnel Documents
Culture Documents
Théories Des Langages: Chapitre 2
Théories Des Langages: Chapitre 2
CHAPITRE 2
AUTOMATES FINIS ET LANGAGES RÉGULIERS
TIC 1 2
Grammaires et langages réguliers (1)
◦ 𝑇1 = { 𝑎, 𝑏 }
◦ 𝑁1 = {𝑆1, 𝑈1}
◦ 𝑅1 = {𝑆1 → 𝑎𝑆1| 𝑎𝑈1
◦ 𝑈1 → 𝑏𝑈1| 𝑏 } ➔ 𝑆1 → 𝑎𝑆1 → 𝑎𝑎𝑈1 → 𝑎𝑎𝑏, 𝑆1 → 𝑎𝑈1 → 𝑎𝑏
➔ 𝑆1 → 𝑎𝑆1 → 𝑎𝑎𝑈1 → 𝑎𝑎𝑏𝑈1 → 𝑎𝑎𝑏𝑏,
TIC 1 3
Grammaires et langages réguliers (2)
◦ 𝑇2 = { 𝑎, 𝑏 }
◦ 𝑁2 = {𝑆2, 𝑈2}
◦ 𝑅2 = {𝑆2 → 𝑆2𝑏| 𝑈2𝑏 𝑆2 → 𝑈2𝑏 → 𝑎𝑏
◦ 𝑈2 → 𝑈2𝑎| 𝑎 }
TIC 1 4
Grammaires et langages réguliers (3)
Définition (Langage régulier) :
o Un langage est régulier si et seulement s’il existe une grammaire régulière générant ce langage.
o Les grammaires et langages réguliers sont la base de la lexicographie.
o L’ensemble des mots-clés, identificateurs, constantes numériques, ... d’un langage de programmation tel
que le C++ est un langage régulier et peut être décrit par une grammaire régulière.
o L’intérêt de distinguer grammaires régulières à droite ou à gauche apparait lors de l’analyse : si on
lit les symboles du mot à analyser de la gauche vers la droite, alors
- une grammaire régulière à droite sera utilisée pour une analyse descendante, de l’axiome vers le
mot ;
- une grammaire régulière à gauche sera utilisée pour une analyse ascendante, du mot vers l’axiome.
TIC 1 5
Grammaires et langages réguliers (4)
Exemple (Langage régulier) :
◦ 𝑅1 = {𝑆1 → 𝑎𝑆1| 𝑎𝑈1
◦ 𝑈1 → 𝑏𝑈1| 𝑏 }
o Pour analyser le mot 𝑎𝑎𝑎𝑏𝑏 avec la grammaire 𝐺1, on construira la dérivation
TIC 1 6
Les Automates (1)
Définition d’un Automate :
❖ Les grammaires représentent un moyen qui permet d’engendrer un langage.
➔ Elles montrent comment les mots du langage sont construits.
❖ L’expression régulière permet de représenter un langage.
❖ Considérons un langage 𝐿, on cherche à déterminer si le mot 𝜔 ∈ 𝐿.
On peut répondre à cette question de plusieurs façons.
➔ D’abord, on peut vérifier l’existence de mot 𝜔 dans la liste des mots de langage 𝐿
(impossible à réaliser si le langage est infini).
- Si 𝐿 est défini par compréhension, on peut alors vérifier si 𝜔 respecte la propriété du langage.
- Si 𝐿 est défini par une grammaire, on vérifie l’existence d’une chaîne de dérivation pour 𝜔 , pour
conclure que 𝜔 ∈ 𝐿.
➔ Il existe un autre moyen permettant de répondre à cette question : les automates.
TIC 1 7
Les Automates (2)
Définition d’un Automate :
Un automate est une machine abstraite qui permet de lire un mot et de vérifier si :
"un mot 𝜔 appartient-il à un langage 𝐿 ?"
et ou de prendre une décision par : "oui" ou "non".
𝑎𝑏𝑏𝑎𝑎𝑎
« oui »
𝑏𝑏𝑏 Automate
𝑎𝑐𝑐 « non »
Formellement,
➔ Un automate est un modèle mathématique qui permet de déterminer si un mot donné
appartient à un langage.
➔ Un automate est un mécanisme qui peut prendre une décision, il contient au minimum :
– Un alphabet pour les mots en entrée noté 𝑋 ;
– Un ensemble non vide d’états noté 𝑄 ;
– Un état initial noté 𝑞0 ∈ 𝑄 ;
– Un ensemble non vide d’états finaux 𝑞𝑓 ∈ 𝑄 ;
– Une fonction de transition (permettant de changer d’état) notée 𝛿
TIC 1 9
Configuration des Automates
➔ Le fonctionnement d’un automate sur un mot se fait à travers un ensemble de
configurations.
➔ On appelle configuration d’un automate en fonctionnement, les valeurs de ses différents
composants.
Il existe deux configurations spéciales appelées configuration initiale et configuration finale.
➔ La configuration initiale est celle qui correspond à l’état initial 𝑞0 et où l’entrée est
positionnée sur le premier symbole du mot à lire.
➔Une configuration finale est celle qui correspond à un des états finaux 𝑞𝑓 et où le mot a été
entièrement lu.
On dit qu’un mot est reconnu par un automate si, à partir d’une configuration initiale,
on arrive à une configuration finale à travers une succession de configurations
intermédiaires.
TIC 1 10
Classification des Automates
Un automate à états finis est la plus simple machine abstraite (programme) qui reconnaît les langages
réguliers, il n’utilise aucune mémoire
TIC 1 12
Automates à états finis (2)
Définition : AEF
TIC 1 13
Automates à états finis (3)
Définition : AEF
➔ Un mot est accepté par un AEF si, après avoir lu tout le mot, l’automate se trouve
dans un état final (𝑞𝑓 ∈ 𝐹 ).
➔ En d’autres termes, un mot est rejeté par un AEF dans deux cas :
– L’automate est dans l’état 𝑞𝑖 , l’entrée courante étant 𝑎 et la transition 𝛿(𝑞𝑖 , 𝑎) n’existe
pas (on dit que l’automate est bloqué) :
– L’automate arrive à lire tout le mot mais l’état de sortie n’est pas un état final.
➔ Un AEF A est donc un séparateur (ou classifieur) des mots de 𝑋 ∗ en deux parties : –
– L’ensemble des mots reconnus par l’automate (notons le par 𝐿(𝐴))
– Le reste des mots (le complémentaire de 𝐿 ou encore 𝑋 ∗ − 𝐿(𝐴)).
TIC 1 14
Automates à états finis (4)
Il existe trois principales représentations pour les AEF, à savoir la représentation matricielle
(table), sous forme de graphe orienté étiqueté ou sous forme de fonction.
Nous illustrons ces différentes représentation à travers l’exemple suivant.
Soit A l’AEF défini par le quintuplé (𝑋, 𝑄, 𝛿, 𝐼, 𝐹) tel-que :
𝑋 = {𝑎, 𝑏}, 𝑄 = {𝑞0, 𝑞1}, 𝐼 = 𝑞0, 𝐹 = {𝑞1}
et on définit les transitions suivantes :
𝛿(𝑞0, 𝑎) = 𝑞0, 𝛿(𝑞0, 𝑏) = 𝑞1, 𝛿(𝑞1, 𝑏) = 𝑞1.
TIC 1 15
Automates à états finis (5)
Représentation matricielle : AEF
𝛿 𝑎 𝑏
⇒ 𝑞0 𝑞0 𝑞1 𝛿(𝑞0, 𝑎) = 𝑞0, 𝛿(𝑞0, 𝑏) = 𝑞1, 𝛿(𝑞1, 𝑏) = 𝑞1.
⊚ 𝑞1 - 𝑞1
TIC 1 16
Automates à états finis (6)
Représentation graphique : AEF
TIC 1 17
Automates à états finis (7)
Représentation sous forme de relation : AEF
TIC 1 18
Automates à états finis (8)
Exemple : AEF
Représentation matricielle
𝒂, 𝒄, 𝒃
𝒂 𝒄
𝑞1 𝑞3 𝑞4
A 𝒃, 𝒃
𝑞2
TIC 1 20
Automates à états finis (10)
Configuration : AEF
La configuration de l’AEF A, à un certain instant, est donnée par l’état courant de l’AEF et
du mot qui reste à lire (état courant, mot qui reste à lire).
La configuration initiale est (𝑞0, 𝜔) où 𝑞0 est l’état initial de l’AEF et 𝜔 le mot soumis à A
(à reconnaître).
La configuration finale est donnée par (𝑞𝑓, 𝜀) où 𝑞𝑓 est un état final et 𝜀 le mot vide
indique qu’il ne reste rien à lire (le mot appartient au langage).
TIC 1 21
Automates à états finis (11)
Dérivation directe : AEF
TIC 1 22
Automates à états finis (12)
Langage reconnu par un AEF
Remarque : Un AEF reconnaît un et un seul langage, mais le même langage peut être
reconnu par plusieurs AEF.
Interprétation : Un AEF est interprété comme une machine abstraite qui possède une bande
finie et divisée en cellules, sur lesquelles on insère le mot à reconnaître.
TIC 1 23
Langage accepté par un automate (1)
Langage reconnu par un AEF
Le langage accepté ou reconnu par l’AEF A noté 𝐿(𝐴) est constitué de l’ensemble des mots
acceptés par A.
Le langage accepté par l’AEF A est un langage régulier défini par :
𝐿(𝐴) = {𝜔 ∈ 𝑋 ∗ /(𝑞0, 𝜔) ⊨∗ (𝑞𝑓, 𝜀)} avec 𝑞𝑓 ∈ 𝐹.
Remarque : Un AEF reconnaît un et un seul langage, mais le même langage peut être
reconnu par plusieurs AEF.
TIC 1 24
Langage accepté par un automate (2)
Exemple 1 :
𝒂, 𝒃,
A
𝒂 𝒃
𝑞1 𝑞2 𝑞3
TIC 1 25
Langage accepté par un automate (3)
Exemple 2 :
𝒂, 𝒃
𝑞3
𝒃 𝒂
A
𝒂
𝑞1 𝑞2
TIC 1 26
Variantes des Automates à états finis (1)
TIC 1 27
Automates finis indéterministes (1)
Automate fini non déterministe (AFI) :
A est dit non déterministe ou indéterministe
si et seulement si :
- Il plusieurs états initiaux 𝑞1 , 𝑞2 ∈ 𝑄 𝒂, 𝒄, 𝒃
𝒂 𝒄
- Étant donné un état 𝛿𝑖 ∈ δ et un symbole 𝑞1 𝑞3 𝑞4
𝑎 ∈ 𝑋, il peut exister plusieurs transitions
possibles. A 𝒃, 𝒃
TIC 1 28
Automates finis indéterministes (2)
Automate fini non déterministe (AFI) :
- 𝑄 = {𝑞0, 𝑞1, 𝑞2},
-- 𝑋 = {𝑎, 𝑏},
-- 𝛿 = {(𝑞0, 𝑎, 𝑞0), (𝑞0, 𝑎, 𝑞1), (𝑞1, 𝑏, 𝑞1), (𝑞1, 𝑏, 𝑞2)},
-- 𝐼 = {𝑞0},
-- 𝐹 = {𝑞2} sera représenté graphiquement par le graphe :
-➔ Il suffit l’une des deux conditions est suffisante.
A 𝒂, 𝒃,
𝒂 𝒃
𝑞0 𝑞1 𝑞2
TIC 1 29
Automates finis indéterministes (3)
Automate fini non déterministe (AFI) :
De façon informelle, un mot 𝑢 est accepté par un AFI s’il existe un chemin d’un sommet
initial vers un sommet final tel que la concaténation des étiquettes des arcs empruntés par le
chemin soit égale à 𝑢.
Sur l’exemple précédent, le langage des mots acceptés par l’automate est :
◦ 𝐿 = {𝑎𝑛 𝑏 𝑝 /𝑛 > 0, 𝑝 > 0}
TIC 1 30
Automates finis déterministes (1)
Soit A= (𝑋, 𝑄, 𝛿, 𝐼, 𝐹) un AEF
Automate fini déterministe (AFD) :
A est dit déterministe si et seulement si :
- Il a un seul état initial 𝑞1 ∈ 𝑄
- Étant donné un état 𝛿𝑖 ∈ δ et un symbole 𝑎 ∈ 𝑋, il existe une seule transition possible.
𝒂, 𝒃,
A
𝒂 𝒃
𝑞1 𝑞2 𝑞3
TIC 1 31
Automates finis déterministes (2)
𝑞2
Et accepte le langage : 𝐿 = {𝑎𝑛 𝑏 𝑝 /𝑛 > 0, 𝑝 > 0}
𝒂, 𝒃
TIC 1 32
Automates finis déterministes (3)
-− 𝛿 = { 𝑞0, 𝑎 → 𝑞1, 𝑞0, 𝑏 → 𝑞2, 𝑞1, 𝑎 → 𝑞1, 𝑞1, 𝑏 → 𝑞3, 𝑞3, 𝑎 → 𝑞3, 𝑞2, 𝑎 → 𝑞2,
𝑞2, 𝑏 → 𝑞2},
-L’état 𝑞2 de cet automate correspond à un état d’erreur : l’automate va dans cet état dès lors qu’il
reconnait que le mot ne fait pas partie du langage, et 𝑦 reste jusqu’à la fin de l’analyse.
-Dans un souci de simplification, on ne représente généralement pas cet état, et on représente
l’automate par le nouveau graphe :
-
A 𝒂 𝒃
𝒂 𝒃
𝑞0 𝑞1 𝑞3
TIC 1 33
Automates finis déterministes (4)
𝑄 = {𝑞0, 𝑞1}
𝛿 (𝑞0, presser) = {𝑞1}
𝑋 = {presser} 𝛿 (𝑞1, presser) = {𝑞0}
I = initial {𝑞0}
𝐹 = final{𝑞1}
TIC 1 34
Automates finis déterministes (5)
La séquence :
presser presser presser est acceptée par l’automate Par ce que :
• En partant de l’état 𝑞0, avec un presser on passe à l’état 𝑞1
• En lisant le deuxième presser à partir de l’état 𝑞1, on revient à l’état 𝑞0
• Le dernier presser lu nous mène de l’état 𝑞0 à l’état 𝑞1
➔ Donc à la fin de la lecture des trois presser, trois transitions sont effectuées et la dernière nous
mène à l’état 𝑞1 donc la séquence sera acceptée.
TIC 1 35
Automates finis déterministes (6)
Presser
𝑞0 𝑞1
Presser
La séquence :
presser presser n’est pas acceptée par l’automate Par ce que :
• En partant de l’état 𝑞0, avec un presser on passe à l’état 𝑞1
• En lisant le deuxième presser à partir de l’état 𝑞1, on revient à l’état 𝑞0
TIC 1 36
Automates finis déterministes (7)
A 𝑎
𝑞0 𝑞1 (𝑎)∗
𝑎
(𝑎𝑎𝑎)∗
Le langage accepté par cet automate est l’ensemble des séquences de presser qui, partant de l’état
initial 𝑞0, après la lecture de tous les symboles de la séquence, on se trouve à l’état 𝑞1.
Ce langage (le langage accepté par l’automate 𝐴, 𝐿(𝐴)) est l’ensemble des séquences de presser
(𝑎) de longueur impaire.
𝑳(𝑨) = {𝜔 𝜖 {𝒂}∗ / | 𝜔| = 𝟐𝒌 + 𝟏, 𝒌 ≥ 𝟎}
TIC 1 37
Automates finis déterministes (8)
A 𝑎
𝑞0 𝑞1 (𝑎𝑎)∗
𝑎
{𝜔 𝜖 {𝒂}∗ / | 𝜔| = 𝟐𝒌, 𝒌 ≥ 𝟎}
L’état initial devient un état final puisque le mot 𝜀 est accepté (pour𝑘 = 0).
En étant à l’état initial de l’automate, on peut ne rien lire (c-à-d lire 0 symboles donc lire 𝜀 ) et on
est déjà à un état final.
TIC 1 38
Automates finis déterministes (9)
Exercice 1 :
1) Construire un automate fini qui accepte le langage suivant:
{𝜔 𝜖 {𝒂}∗ / | 𝜔| = 𝟐𝒌, 𝒌 > 𝟎}
A 𝒂 𝒂
𝒂
𝑞0 𝑞1 𝑞2 𝑎𝑎(𝑎𝑎)∗
Le plus petit mot accepté est 𝑎𝑎 (On atteint l’état final après la lecture de 𝑎𝑎).
Après il faudra continuer à avoir un nombre paire de 𝑎.
➔ Donc quand on se trouve à l’état d’acceptation ou l’état final, il faudra continuer à lire des
séquences de 2𝑎 pour revenir à l’état final.
TIC 1 39
Automates finis déterministes (10)
Exercice 1 :
1) Construire un automate fini qui accepte le langage suivant:
{𝜔 𝜖 {𝒂}∗ / | 𝜔| = 𝟐𝒌, 𝒌 > 𝟎} (2ème solution)
A 𝒂 𝒂 𝒂
𝑞0 𝑞1 𝑞2 𝑞3 𝑎𝑎(𝑎𝑎)∗
Le plus petit mot accepté est 𝑎𝑎 (On atteint l’état final après la lecture de 𝑎𝑎).
Après il faudra continuer à avoir un nombre paire de 𝑎.
➔ Donc quand on se trouve à l’état d’acceptation ou l’état final, il faudra continuer à lire des
séquences de 2𝑎 pour revenir à l’état final.
TIC 1 40
Automates finis déterministes (11)
Exercice 1 :
2) Construire un automate fini qui accepte le langage suivant:
{𝜔 𝜖 𝒂, 𝒃 ∗ / 𝜔 𝒂 = 𝟑𝒌 + 𝟐, 𝒌 ≥ 𝟎}
𝒃 𝒃 𝒃
A 𝒂 𝒂 ∗ ∗ ∗ ∗ ∗
𝑏 𝑎𝑏 𝑎𝑏 (𝑎𝑏 𝑎𝑏 𝑎𝑏 )∗
∗
𝑞0 𝑞1 𝑞2
Le plus petit mot accepté est 𝑎𝑎 (On atteint l’état final après la lecture de 𝑎𝑎). Après il faudra
continuer à avoir un nombre paire de 𝑎. Donc quand on se trouve à l’état d’acceptation ou l’état
final, il faudra continuer à lire des séquences de 2𝑎 pour revenir à l’état final.
Les 𝑏, on peut les lire à n’importe quel état et on reste au même état puis qu’ils n’engendrent pas une
transitions contrairement à un 𝑎 lu qui nous fait passer de 𝑞0 à 𝑞1 ou de 𝑞1 à 𝑞2 ou de 𝑞2 à 𝑞0 par ce
qu’il faut les comptabiliser.
TIC 1 41
Automates finis déterministes (12)
Exercice 1 :
3) Construire un automate fini qui accepte le langage suivant:
{𝜔 𝜖 𝒂 ∗ / | 𝜔| = 𝟑𝒌 + 𝟏, 𝒌 ≥ 𝟎}
A 𝒂 𝒂 𝒂
𝑞0 𝑞1 𝑞2 𝑞3 𝑎(𝑎𝑎𝑎)∗
Le plus petit mot accepté est 𝑎 (On atteint l’état final après la lecture de 𝑎).
Après il faudra continuer à avoir un nombre multiple de 3𝑎.
➔ Donc quand on se trouve à l’état d’acceptation ou l’état final, il faudra continuer à lire des
séquences de 3𝑎 pour revenir à l’état final.
TIC 1 42
Automates finis déterministes (13)
Exercice 1 :
3) Construire un automate fini qui accepte le langage suivant:
{𝜔 𝜖 𝒂 ∗ / | 𝜔| = 𝟑𝒌 + 𝟏, 𝒌 ≥ 𝟎} (2ème solution)
A 𝒂 𝒂
𝑞0 𝑞1 𝑞2 𝑎(𝑎𝑎𝑎)∗
Le plus petit mot accepté est 𝑎 (On atteint l’état final après la lecture de 𝑎).
Après il faudra continuer à avoir un nombre multiple de 3𝑎.
➔ Donc quand on se trouve à l’état d’acceptation ou l’état final, il faudra continuer à lire des
séquences de 3𝑎 pour revenir à l’état final.
TIC 1 43
Automates finis déterministes (14)
Exercice 1 :
4) Construire un automate fini qui accepte le langage suivant:
{𝜔 𝜖 𝒂, 𝒃, 𝒄 ∗ / 𝜔 𝒂 = 𝟑𝒌 + 𝟏, 𝒌 ≥ 𝟎}
𝒃, 𝒄 𝒃, 𝒄 𝒃, 𝒄
A 𝒂
𝒂 𝒂
𝑞0 𝑞1 𝑞2
TIC 1 44
Automates finis déterministes (15)
Exercice 1 :
5) Construire un automate fini qui accepte l’ensemble des représentations décimales des
nombres entiers ayant le chiffre 1 dans les dizaines (Exemple: 12316, 13, 210) :
𝟎, 𝟏, 𝟐, 𝟑, 𝟒, 𝟓, 𝟔, 𝟕, 𝟖, 𝟗
A 𝟏 𝟎, 𝟏, 𝟐, 𝟑, 𝟒, 𝟓, 𝟔, 𝟕, 𝟖, 𝟗
𝑞0 𝑞1 𝑞2
𝑐 ∗ 1𝑐
(𝟎 + 𝟏 + 𝟐 + 𝟑 + 𝟒 + 𝟓 + 𝟔 + 𝟕 + 𝟖 + 𝟗) ∗𝟏(𝟎 + 𝟏 + 𝟐 + 𝟑 + 𝟒 + 𝟓 + 𝟔 + 𝟕 + 𝟖 + 𝟗)
TIC 1 45
Automates finis non déterministes avec 𝜺 transition
Automate fini non déterministe avec 𝜺 transition (𝜺 −AFI ou 𝜺 −AFN) :
A est dit non déterministe avec 𝜀 transition est un automate fini non déterministe qui autorise
des 𝜀 transition, c’est-à-dire autorise le vide.
Exemple :
Un 𝜀 −AFI acceptant les mots clé : 𝑒𝑏𝑎𝑦, 𝑤𝑒𝑏, Σ𝑒𝑏𝑎𝑦, Σ𝑤𝑒𝑏
➔ On lit 𝚺, puis on ne lit rien et on passe à 2 pour lire 𝑤𝑒𝑏 ou à 6 pour lire 𝑒𝑏𝑎𝑦.
➔ le mot 𝚺 n’est pas accepté car 1 n’est pas un état final.
𝒘 𝒆 𝒃
𝚺
𝜺
2 3 4 5
A
1
𝜺 𝒆 𝒃 𝒂 𝒚
6 7 8 9 10
TIC 1 46
Rendre déterministe un automate fini non déterministe (1)
Exemple :
Pour interpréter l’équivalence entre un AFI et AFD dit encore la déterminisation, nous allons
référer considérer l’AFI (𝑋, 𝑄, 𝛿, 𝐼, 𝐹) suivant :
𝑄= 𝑞0, 𝑞1 , 𝑞2 , 𝑞3
𝑋= 𝑎, 𝑏, 𝑐
𝛿= 𝑞0, 𝑎, 𝑞0 , 𝑞0, 𝑎, 𝑞2 , 𝑞1, 𝑏, 𝑞1 , 𝑞1, 𝑏, 𝑞2 , 𝑞2, 𝑐, 𝑞2 , 𝑞2, 𝑐, 𝑞3
𝐼= 𝑞0, 𝑞1
𝐹= 𝑞3
TIC 1 48
Rendre déterministe un automate fini non déterministe (3)
𝛿 = 𝑞0, 𝑎, 𝑞0 , 𝑞0, 𝑎, 𝑞2 , 𝑞1, 𝑏, 𝑞1 , 𝑞1, 𝑏, 𝑞2 , 𝑞2, 𝑐, 𝑞2 , 𝑞2, 𝑐, 𝑞3
Correspondant au graphe suivant :
𝒂
𝑞0 𝒂 𝒄
𝒃 𝒄
A 𝑞2 𝑞3
𝒃
𝑞1
𝛿 𝑎 𝑏 𝑐
𝑞0 𝑞0 , 𝑞2 ∅ ∅
Pour établir l’équivalence entre AFI et AFD, 𝑞1 ∅ 𝑞1 , 𝑞2 ∅
on doit se référer à sa table de transition, 𝑞2 ∅ ∅ 𝑞2 , 𝑞3
définissant la relation de transition 𝛿 : 𝑞3 ∅ ∅ ∅
TIC 1 49
Rendre déterministe un automate fini non déterministe (4)
Déterminisation :
Pour réduire les transition, il faut rassembler ou réunir les états,
➔ Commençant par les le point de départ ➔ réunir les états initiaux 𝑞0} et {𝑞1
On construit ensuite les états de l’AFD et leur fonction de transition.
➔ L’AFD est à un seul état composé de l’ensemble des états initiaux de l’AFI 𝑞0 , 𝑞1 .
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’AFI : sur notre
exemple, pour l’état {𝑞0 , 𝑞1}, on fait l’union des lignes correspondant à 𝑞0 et 𝑞1, et on
détermine la fonction de transition :
𝛿 𝑎 𝑏 𝑐
𝑞0 , 𝑞1 𝑞0 , 𝑞2 𝑞1 , 𝑞2 ∅
TIC 1 50
Rendre déterministe un automate fini non déterministe (5)
Déterminisation :
quand on est dans l’état "𝑞0 ou 𝑞1" et qu’on lit un 𝑎, on va dans l’état "𝑞0 ou 𝑞2"
(𝛿({𝑞0 , 𝑞1}, 𝑎) = {𝑞0 , 𝑞2}),
quand on est dans l’état "𝑞0 ou 𝑞1" et qu’on lit un 𝑏, on va dans l’état "𝑞1 ou 𝑞2"
(𝛿({𝑞0 , 𝑞1}, 𝑏) = {𝑞1 , 𝑞2})
quand on est dans l’état "𝑞0 ou 𝑞1" et qu’on lit un 𝑐, on va dans l’état " vide", correspondant à
l’état d’erreur (𝛿({𝑞0 , 𝑞1}, 𝑐) = ∅.
Il reste à analyser les états 𝑞0 , 𝑞2 et 𝑞1 , 𝑞2 à l’AFD et on détermine leur fonction de
transition selon le même principe. Ainsi, on peut construire la table de transition suivante pour
l’AFD : 𝛿 𝑎 𝑏 𝑐
𝑞0 , 𝑞1 𝑞0 , 𝑞2 𝑞1 , 𝑞2 ∅
𝑞0 , 𝑞2 𝑞0 , 𝑞2 ∅ 𝑞2 , 𝑞3
𝑞1 , 𝑞2 ∅ 𝑞1 , 𝑞2 𝑞2 , 𝑞3
𝑞2 , 𝑞3 ∅ ∅ 𝑞2 , 𝑞3
TIC 1 51
Rendre déterministe un automate fini non déterministe (6)
Déterminisation :
L’ensemble des états de l’AFD est Q′ = { 𝑞0 , 𝑞1 , {𝑞0 , 𝑞2}, {𝑞1 , 𝑞2}, {𝑞2 , 𝑞3}}.
Les états de l’AFD contenant un état final de l’AFI sont des états finaux. Ici, l’AFI a un seul
état final 𝑞3 et l’ensemble des états finaux de l’AFD est F ′ = 𝑞2 , 𝑞3 .
Cet AFD correspond au graphe suivant :
𝒂
𝛿 𝑎 𝑏 𝑐
𝒂 𝑞0, 𝑞2 𝒄 𝒄
𝑞0 , 𝑞1 𝑞0 , 𝑞2 𝑞1 , 𝑞2 ∅
A’
𝑞0 , 𝑞2 𝑞0 , 𝑞2 ∅ 𝑞2 , 𝑞3
𝑞0 , 𝑞1 𝒃
𝑞1 , 𝑞2 ∅ 𝑞1 , 𝑞2 𝑞2 , 𝑞3 𝑞2, 𝑞3
𝒃 𝒄
𝑞2 , 𝑞3 ∅ ∅ 𝑞2 , 𝑞3
𝑞1, 𝑞2
TIC 1 52
Rendre déterministe un automate fini non déterministe (7)
Déterminisation :
𝒂 𝒂
𝑞0 𝒂 𝒄 𝒂 𝑞0, 𝑞2 𝒄 𝒄
𝒄 A’
A 𝒃 𝑞2 𝑞3
𝒃 𝑞0 , 𝑞1 𝒃
𝑞2, 𝑞3
𝒃 𝒄
𝑞1
𝑞1, 𝑞2
AFI AFD
TIC 1 53
Minimisation d’un automate fini déterministe (AFD) (1)
Objectif :
➔ La minimisation d’un AFD est l’opération qui consiste à transformer un automate fini déterministe
ayant le nombre minimal d’états et qui reconnait 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 (conforme : appartenant à la même classe d’équivalence).
TIC 1 54
Minimisation d’un automate fini déterministe (AFD) (2)
TIC 1 55
Minimisation d’un automate fini déterministe (AFD) (3)
Lorsqu’on a un automate simple c’est facile de distinguer les états inaccessibles, mais si on a un
automate à plusieurs états, il faut trouver une solution automatique.
C’est la machine qui doit s’occuper de chercher les états inaccessible.
➔ Il faut alors programmer un algorithme.
- 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 initial et marquer les états
atteints de bout en bout jusqu’à trouver des états non marqués.
TIC 1 56
Minimisation d’un automate fini déterministe (AFD) (4)
𝒂 𝒂
États 𝒂 𝒃
𝒂 𝒃
𝒂 1 2 3 1 2 5
𝒃
𝒃 2 2 4
6 𝒃
3 3 2
𝒃 𝒂 𝒃
5 4 4 5 3
𝒂
5 4 6
𝒂 6 6 1
7 𝒃 7 5 7
TIC 1 57
Minimisation d’un automate fini déterministe (AFD) (5)
𝒂 𝒂 𝒂 𝒂
𝒂 𝒃 𝒂 𝒃
𝒂 1 2 3 𝒂 1 2 3
𝒃 𝒃
𝒃 𝒃 𝒃 𝒃
6 6
𝒃 𝒂 𝒃 𝒃 𝒂 𝒃
5 4 5 4
𝒂 𝒂
𝒂
7 𝒃
➔ Nous avons nettoyé l’automate, il nous reste à appliquer un algorithme pour minimiser les
états de cet automate.
TIC 1 58
Minimisation d’un automate fini déterministe (AFD) (6)
On cherche alors à réduire le nombre des états tout en gardant le même travail de l’automate,
➔ réduire le temps d’analyse
➔ moins de complexité
2- Regroupement des états équivalents :
État 𝑎 𝑏
État 𝑎 𝑏
0 1 0
0 1 0
1 1 2
1 1 2
2 3 2
2 3 2
3 3 2
➔ Il faut interpréter si les transitions appartiennent à la même classe (s’ils sont cohérents)
➔ Et on regroupe par itération
TIC 1 62
Minimisation d’un automate fini déterministe (AFD) (10)
2- Regroupement des états équivalents :
États 𝒂 𝒃
Algorithme de réduction des états :
1 2 5
Exemple 2 : AEF (initial = 1, finaux {1, 2}) 2 2 4
3 3 2
Étape 1 : Créer deux classes d’états 4 5 3
1. A={1, 2} (les états finaux) 5 4 6
2. B={3, 4, 5, 6} (les états non finaux) 6 6 1
TIC 1 63
Minimisation d’un automate fini déterministe (AFD) (11)
2- Regroupement des états équivalents :
Algorithme de réduction des états :
Exemple 2 : AEF (initial = 1, finaux {1, 2})
Nous allons procéder par itération :
États 𝒂 𝒃
1ère itération A={1, 2} B={3, 4, 5, 6}
1 2 5
B 𝒂 𝒃 2 2 4
A 𝒂 𝒃 3 3∈𝐵 2∈𝐴 3 3 2
1 2∈𝐴 5∈𝐵 4 5∈𝐵 3∈𝐵 4 5 3
2 2∈𝐴 4∈𝐵 5 4∈𝐵 6∈𝐵 5 4 6
6 6∈𝐵 1∈𝐴 6 6 1
A est cohérente B n’est pas cohérente
On raisonne par symbole Il faut donc l’éclater en deux classes
B={3, 6} et C={4, 5}
TIC 1 64
Minimisation d’un automate fini déterministe (AFD) (11)
2- Regroupement des états équivalents :
Algorithme de réduction des états :
Exemple 2 : AEF (initial = 1, finaux {1, 2})
Nous allons procéder par itération :
2ème itération A={1, 2} B={3, 6} C={4, 5}
A 𝒂 𝒃 B 𝒂 𝒃 C 𝒂 𝒃
1 2∈𝐴 5∈𝐶 3 3∈𝐵 2∈𝐴 4 5∈𝐶 3∈𝐵
2 2∈𝐴 4∈𝐶 6 6∈𝐵 1∈𝐴 5 4∈𝐶 6∈𝐵
TIC 1 65
Minimisation d’un automate fini déterministe (AFD) (12)
2- Regroupement des états équivalents :
Résultat de l’algorithme : L’AEFD contient trois états (A, B et C)
A 𝒂 𝒃
1 2∈𝐴 5∈𝐶
2 2∈𝐴 4∈𝐶
État 𝒂 𝒃 • État initial = la classe qui contient
B 𝒂 𝒃 l’ancien état initial (1 ∈ 𝐴) : A
A A C
3 3∈𝐵 2∈𝐴 • États finaux = les classes qui
B B A
6 6∈𝐵 1∈𝐴 contiennent des états finaux ({1, 2}
C C B
C 𝒂 𝒃 ∈ 𝐴) : {A}
AFD minimal • A est en même temps état initial et
4 5∈𝐶 3∈𝐵
5 4∈𝐶 6∈𝐵 final
TIC 1 66
Minimisation d’un automate fini déterministe (AFD) (13)
2- Regroupement des états équivalents :
Résultat de l’algorithme : L’automate obtenu est minimal et accepte le même langage
𝒂 𝒂
État 𝒂 𝒃 𝒃
𝐴 𝐵
A A C
B B A 𝒃
C C B 𝒃
𝐶
TIC 1 67
Minimisation d’un automate fini déterministe (AFD) (14)
Exercice 1 :
Déterminiser et minimiser l’automate suivant :
𝒂 𝒃
𝒂
0 1
𝒂 𝒃
𝒂
2
➔ On demande de déterminiser l’automate, parce qu’il est non déterministe, donc on doit le rendre
en premier lieu déterministe, puis minimiser les états de l’automate déterministe obtenu.
➔ Avec 𝒂, on a trois transition en partant de l’état initial, donc c’est un automate non
déterministe même s’il possède une seule entrée.
TIC 1 68
Minimisation d’un automate fini déterministe (AFD) (15)
Exercice 1 : Correction 𝒂 𝒃
1- Déterminisation 𝒂
0 1
𝒂 𝒃
𝒂
2
𝜹 𝒂 𝒃 𝜹 𝒂 𝒃 𝜹 𝒂 𝒃
1
0 {0, 1, 2} - 0 {0, 1, 2} - 0 1 -
{0, 1, 2} {0, 1, 2} {1, 2} 2 1 1 2
1 - {1, 2} Réduction
{1, 2} {1} {1, 2} 2 3 2
2 {1} - 3
{1} - {1, 2} 3 - 2
On a 3 états
État 1={0, 1, 2} État initial ={0}
État 2={1, 2} 2 États finaux ={1, 2}
État 3={1}
TIC 1 69
Minimisation d’un automate fini déterministe (AFD) (16)
Exercice 1 : Correction
1- Déterminisation
𝜹 𝒂 𝒃 𝒂 𝒃
0 1 - 𝒂 𝒃
0 1 2
1 1 2
2 3 2 𝒂 𝒃
3 - 2 AFD 3
TIC 1 70
Minimisation d’un automate fini déterministe (AFD) (16)
Exercice 1 : Correction 𝒂 𝒃
2- Minimisation 𝒂 𝒃
0 1 2
ère
1 itération
𝒂 𝒃
A={1, 2} contient les états finaux et B={0, 3} contient le reste
3
𝑨 𝒂 𝒃 𝑩 𝒂 𝒃
1 1∈𝐴 2∈𝐴 0 1∈𝐴 -
2 3∈𝐵 2∈𝐴 3 - 2∈𝐴 Le vide casse la cohérence
A n’est pas cohérente B n’est pas cohérente
1 0
Donc, nous allons étaler A et B en deux classes : A={1, 2}→ ቊ et B={0, 3}→ ቊ
2 3
Nous allons obtenir 4 classes A={1}, B={2}, C={0} et D={3}
Puisque le nombre des classes est égale exactement au nombre des états de l’automate de base.
Donc, l’automate de base est déjà minimal.
TIC 1 71
Automates finis et Expressions régulières (ER) (1)
Principes :
Chaque mot accepté correspond à un chemin de l’état initial vers l’état final.
Exemples :
𝒂 𝒂 𝒂 𝒂, 𝒃
1)
𝒃 𝒃 𝒃
1 2 3 4
ER : 𝑎∗ 𝑏𝑎∗ 𝑏𝑎∗
TIC 1 72
Automates finis et Expressions régulières (ER) (2)
Exemples :
𝒂 𝒂 𝒂 𝒂, 𝒃
2)
𝒃 𝒃 𝒃
1 2 3 4
ER : 𝑎∗ 𝑎∗ 𝑏𝑎∗ 𝑎∗ 𝑏𝑎∗ 𝑏𝑎∗ 𝑏(𝑎𝑏)∗ ➔ ER est l’ensemble des mots acceptés par l’automate,
alors c’est l’union de tous les chemins possibles
TIC 1 73
Automates finis et Expressions régulières (ER) (3)
Exemples :
𝒂 𝒂 𝒂 𝒂, 𝒃
2)
𝒃 𝒃 𝒃
1 2 3 4
ER : 𝑎∗ 𝑎∗ 𝑏𝑎∗ 𝑎∗ 𝑏𝑎∗ 𝑏𝑎∗ 𝑏(𝑎𝑏)∗ ➔ ER est l’ensemble des mots acceptés par l’automate,
alors c’est l’union de tous les chemins possibles
TIC 1 74
Automates finis et Expressions régulières (ER) (4)
Remarque :
On constate qu’on a :
➔ Pour les automates simples, l’ensemble des mots acceptés par ces automates est déterminé
en utilisant la structure de l’expression régulière.
➔ Pour les automates complexes, on ne peut pas retenir qu’elles sont les expressions régulières
qui représentent les mots acceptés par ces automates
TIC 1 75
Automates finis et Expressions régulières (ER) (5)
Algorithme des équations linéaires en utilisant le lemme d’Arden :
𝐿0 = 𝑎𝐿0 | 𝑏𝐿1 | ε 𝐿0 = 𝑎𝐿0 | 𝑏𝐿1 | ε 𝐿0 = 𝑎𝐿0 𝑏𝐿1 | ε = 𝑎𝐿0 𝑏(𝑎𝑏 ∗ 𝑎)∗ 𝑏𝐿0 | ε
𝐿1 = 𝑏𝐿0 | 𝑎𝐿2 𝐿1 = 𝑏𝐿0 | 𝑎𝑏 ∗ 𝑎𝐿1 𝐿0 | 𝑎𝑏 ∗ 𝑎𝐿1 = (𝑎𝑏 ∗ 𝑎)∗ 𝑏ต
𝐿1 = 𝑏ต 𝐿0
𝐿2 = 𝑎
ด ต 𝐿1 | 𝑏
ต 𝐿2 𝐿2 = 𝑏 ∗ 𝑎
ต 𝐿1 𝛽 𝛽
𝐿 𝛽 𝑏𝐿 𝛽 𝐿2 = 𝑏 ∗ 𝑎𝐿1
𝐿0 = (𝑎| 𝑏 𝑎𝑏 ∗ 𝑎 ∗ 𝑏)𝐿0 | ε
൞ 𝐿1 = (𝑎𝑏 ∗ 𝑎)∗ 𝑏𝐿0
𝐿2 = 𝑏 ∗ 𝑎𝐿1
En appliquant le lemme d’Arden à 𝐿0 ➔ 𝐿0 = (𝑎| 𝑏 𝑎𝑏 ∗ 𝑎 ∗ 𝑏)∗ ε = (𝑎| 𝑏 𝑎𝑏 ∗ 𝑎 ∗ 𝑏)∗
ER: (𝑎| 𝑏 𝑎𝑏 ∗ 𝑎 ∗ 𝑏)∗
TIC 1 78