Vous êtes sur la page 1sur 78

Théories des langages

CHAPITRE 2
AUTOMATES FINIS ET LANGAGES RÉGULIERS

Maha Cherif 2022/2023


Plan

Grammaires et langages réguliers


Automates
- Automates à états finis
- Automates finis indéterministes AFI
- Automates finis déterministes AFD
Rendre déterministe un automate fini non déterministe
Minimisation d’un automate fini déterministe

TIC 1 2
Grammaires et langages réguliers (1)

Définition (Grammaire régulière) :


On rappelle qu’une grammaire 𝐺 = (𝑇, 𝑁, 𝑆, 𝑅) est régulière
– à droite si les règles de 𝑅 sont de la forme
◦ 𝐴 → 𝑎𝐵 ou 𝐴 → 𝑎 avec 𝐴, 𝐵 ∈ 𝑁 et 𝑎 ∈ 𝑇
– à gauche si les règles de 𝑅 sont de la forme
𝐴 → 𝐵𝑎 ou 𝐴 → 𝑎 avec 𝐴, 𝐵 ∈ 𝑁 et 𝑎 ∈ 𝑇

Exemple de grammaire régulière à droite : 𝐺1 = 𝑇1, 𝑁1, 𝑆1 , 𝑅1 avec :

◦ 𝑇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)

Exemple de grammaire régulière à gauche : 𝐺2 = 𝑇2, 𝑁2, 𝑆2 , 𝑅2 avec :

◦ 𝑇2 = { 𝑎, 𝑏 }
◦ 𝑁2 = {𝑆2, 𝑈2}
◦ 𝑅2 = {𝑆2 → 𝑆2𝑏| 𝑈2𝑏 𝑆2 → 𝑈2𝑏 → 𝑎𝑏
◦ 𝑈2 → 𝑈2𝑎| 𝑎 }

𝐺1 et 𝐺2 engendrent le même langage : 𝐿(𝐺1) = 𝐿(𝐺2) = {𝑎𝑛 𝑏𝑝/𝑛 > 0, 𝑝 > 0}

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

𝑆1 ⇒ 𝑎𝑆1 ⇒ 𝑎𝑎𝑆1 ⇒ 𝑎𝑎𝑎𝑈1 ⇒ 𝑎𝑎𝑎𝑏𝑈1 ⇒ 𝑎𝑎𝑎𝑏𝑏

◦ 𝑅2 = {𝑆2 → 𝑆2𝑏| 𝑈2𝑏


◦ 𝑈2 → 𝑈2𝑎| 𝑎 }
o Tandis que pour analyser ce mot avec la grammaire 𝐺2, on construira la dérivation

𝑎𝑎𝑎𝑏𝑏 ⇐ 𝑈2𝑎𝑎𝑏𝑏 ⇐ 𝑈2𝑎𝑏𝑏 ⇐ 𝑈2𝑏𝑏 ⇐ 𝑆2𝑏 ⇐ 𝑆2

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 »

Un automate est composé de :


– Une entrée : séquence de symbole ou le mot à lire.
– Une sortie (réponse) : "oui" ou "non".
TIC 1 8
Les Automates (3)

Définition d’un Automate :

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

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

Type 3 ou automate à états fini (AEF) : il reconnaît les langages de type 3.


Langage Régulier
Type 2 ou automate à pile : il reconnaît les langages de type 2.
Langage Algébrique
Type 1 ou automate à bornes linéaires (ABL) : il reconnaît les langages de type 1.
Langage Contextuel
Type 0 ou machine de Turing : il reconnaît les langages de type 0.
Langage Récursivement énumérable
TIC 1 11
Automates à états finis (1)
Définition :

Un automate à états finis est un outil fondamental de calcul et de modélisation en mathématique


discrète, utilisé dans de nombreux domaines (Langages formels et compilation, protocoles de
communication, contrôle de processus, etc. ).

Un automate est un algorithme permettant de déterminer si un mot donné appartient à un langage.

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

Un automate fini consiste en un quintuplé de la forme (𝑋, 𝑄, 𝛿, 𝐼, 𝐹) avec :

𝑋 est un ensemble fini de symboles (les lettres de l’alphabet)


𝑄 est un ensemble fini d’états
◦ 𝐼 est l’état initial
◦ 𝐹 est l’ensemble des états finaux, 𝐹 ≠ ∅, 𝐹 ⊆ 𝑄, 𝐹 représente l’ensemble des états
d’acceptation et ∅ signifie que la configuration n’est pas prise en charge
𝛿 est une fonction de transition définie par l’ensemble fini de transitions de la forme 𝑖, 𝛿, 𝑗 où 𝑖 et
𝑗 sont des états et 𝑎 est un symbole ∈ 𝑋.
On la note 𝛿 𝑖, 𝑎 = 𝑗 qui signifie la transition de l’état 𝑖 vers l’état 𝑗 en lisant le symbole 𝑎.

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)

Représentation d’un AEF

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

On peut interpréter l’exemple précèdent par une matrice.


La première colonne représente l’ensemble des états (𝑞0 et 𝑞1),
La première ligne représente l’ensemble des lettres de l’alphabet (𝑎 et 𝑏).
On remarque l’apparition du symbole:
⇒ pour dire 𝑞0 est l’état initial et du symbole.
⊚ pour dire que 𝑞1 est un état final.

𝛿 𝑎 𝑏
⇒ 𝑞0 𝑞0 𝑞1 𝛿(𝑞0, 𝑎) = 𝑞0, 𝛿(𝑞0, 𝑏) = 𝑞1, 𝛿(𝑞1, 𝑏) = 𝑞1.
⊚ 𝑞1 - 𝑞1
TIC 1 16
Automates à états finis (6)
Représentation graphique : AEF

On représente un AF par un graphe orienté étiqueté :


- les nœuds représentent les états,
- les arêtes représentent les transitions,
- les lettres de l’alphabet sont les étiquettes des arêtes,
- l’état initial (𝑞0) est représenté par une flèche entrante,
- les états finaux (𝑞1) sont représentés par un double cercle
𝒂, 𝒃
A 𝒃
𝑞0 𝑞1 𝛿(𝑞0, 𝑎) = 𝑞0, 𝛿(𝑞0, 𝑏) = 𝑞1, 𝛿(𝑞1, 𝑏) = 𝑞1.
𝐿 𝐴 = 𝑎𝑛 𝑏𝑏 𝑛 = 𝑎∗ 𝑏𝑏 ∗

TIC 1 17
Automates à états finis (7)
Représentation sous forme de relation : AEF

C’est une relation binaire entre deux ensembles, :


- le premier contient toutes les combinaisons possibles de couples (état, lettre de l’alphabet),
- le second contient les états de l’automate,
➔ les flèches reliant des éléments du premier ensemble aux éléments du deuxième
représentent les transitions.
Notons que l’état initial et les états finaux doivent (q0, a)
être définis sous forme d’ensembles (q0, b) q0
(état initial I= {𝑞0} et l’état final F={𝑞1}). (q1, a) q1
𝛿(𝑞0, 𝑎) = 𝑞0, 𝛿(𝑞0, 𝑏) = 𝑞1, 𝛿(𝑞1, 𝑏) = 𝑞1. (q1, b)

TIC 1 18
Automates à états finis (8)
Exemple : AEF
Représentation matricielle

Soit A l’AEF défini par le quintuplé (𝑋, 𝑄, 𝛿, 𝐼, 𝐹) tel-que :


𝑋 = {𝑎, 𝑏, 𝑐}, 𝑄 = {𝑞1, 𝑞2, 𝑞3, 𝑞4}, 𝐼 = {𝑞1, 𝑞2}, 𝐹 = {𝑞4}
et on définit les transitions suivantes :
𝛿 𝑞1, 𝑎 = 𝑞1, 𝑞3 , 𝛿 𝑞2, 𝑏 = 𝑞2, 𝑞3 , 𝛿 𝑞3, 𝑐 = 𝑞3, 𝑞4 , 𝛿 𝑞4, 𝑏 = 𝑞4 .
𝛿 𝑎 𝑏 𝑐
⇒ 𝑞1 𝑞1, 𝑞3 - -
⇒ 𝑞2 - 𝑞2, 𝑞3 -
𝑞3 - - 𝑞3, 𝑞4
⊚ 𝑞4 - 𝑞4 -
TIC 1 19
Automates à états finis (9)
Exemple : AEF
Représentation graphique :
𝛿 𝑞1, 𝑎 = 𝑞1, 𝑞3 , 𝛿 𝑞2, 𝑏 = 𝑞2, 𝑞3 , 𝛿 𝑞3, 𝑐 = 𝑞3, 𝑞4 , 𝛿 𝑞4, 𝑏 = 𝑞4 .

𝒂, 𝒄, 𝒃
𝒂 𝒄
𝑞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

On dit qu’une configuration (𝑞1, 𝑎𝜔) dérive directement la configuration (𝑞2, 𝜔) si et


seulement si 𝛿(𝑞1, 𝑎) = 𝑞2 où 𝛿 est la fonction de transition, 𝑎 ∈ 𝑋 et 𝜔 ∈ 𝑋 ∗ .
On note (𝑞1, 𝑎𝜔) ⊨ (𝑞2, 𝜔). (⊨ symbole vrai)

Dérivation indirecte : AEF


On dit qu’une configuration (𝑞, 𝜔1) dérive indirectement une autre configuration (𝑝, 𝜔2), si
et seulement s’il existe 0, 1 ou plusieurs dérivations directes qui, à partir de(𝑝, 𝜔1), mènent à
la configuration 𝑞, 𝜔2 .
On note (𝑝, 𝜔1) ⊨∗ (𝑞, 𝜔2).

TIC 1 22
Automates à états finis (12)
Langage reconnu par un AEF

Le langage reconnu par l’AEF A noté 𝐿(𝐴) est 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.

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

Le langage accepté par cet automate est :


𝐿(𝐴1 ) = {𝑎𝑛 𝑏 𝑝 /(𝑛 > 0, 𝑝 > 0}.
Exemple:
Les mots 𝑎𝑎𝑎𝑏 et 𝑎𝑎𝑏𝑏 sont acceptés par l’automate.
Les mots 𝑏𝑎𝑎, 𝑏𝑏𝑎𝑏 et 𝑎𝑏𝑎 ne sont pas acceptés par l’automate.
➔ l’automate est ploqué en 𝑞1, il ne peut pas lire 𝒃

TIC 1 25
Langage accepté par un automate (3)
Exemple 2 :
𝒂, 𝒃

𝑞3
𝒃 𝒂
A
𝒂
𝑞1 𝑞2

Le langage accepté par cet automate est :


𝐿(𝐴2 ) = {𝑎, 𝑎𝑏𝑎, 𝑎𝑏𝑎𝑏𝑎, 𝑎𝑏𝑎𝑏𝑎𝑏𝑎, … }.
Exemple:
Les mots qui commencent par 𝑏 ne sont pas acceptés par l’automate. Il est ploqué en 𝑞3.

TIC 1 26
Variantes des Automates à états finis (1)

❖ Automate fini non déterministe ou indéterministe (AFN ou AFI)


❖ Automate fini déterministe (AFD)
❖ Automate fini non déterministe à 𝜀 transition (𝜀- AFN ou 𝜀- AFI)

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 𝒃, 𝒃

( Au niveau de la représentation graphique, ce


𝑞2
non déterministe correspond au cas où il y a
plusieurs arcs étiquetés par un même symbole
terminal qui partent du même sommet).

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

A accepte le langage : 𝐿 = {𝑎𝑛 𝑏 𝑝 /𝑛 > 0, 𝑝 > 0}

TIC 1 31
Automates finis déterministes (2)

Exemple, l’AFD (𝑋, 𝑄, 𝛿, 𝐼, 𝐹) tel que :


-𝑄 = {𝑞0, 𝑞1, 𝑞2, 𝑞3},
-- 𝑋 = {𝑎, 𝑏},
-− 𝛿 = { 𝑞0, 𝑎 → 𝑞1, 𝑞0, 𝑏 → 𝑞2, 𝑞1, 𝑎 → 𝑞1, 𝑞1, 𝑏 → 𝑞3, 𝑞3, 𝑏 → 𝑞3, 𝑞2, 𝑎 → 𝑞2,
𝑞2, 𝑏 → 𝑞2},
-- 𝐼 = {𝑞0}, A 𝒂 𝒃
𝒂 𝒃
-- 𝐹 = {𝑞3} 𝑞0 𝑞1 𝑞3

-sera représenté graphiquement par le graphe :


𝒃 𝜺

𝑞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)

Exemple d’un automate fini :


Cet automate reconnaît les séquences de
Presser
(presser) qui nous mènent toujours à
𝑞0 𝑞1 l’état final souhaité 𝑞1 (lampe allumée)
Presser En partant d’un état initial où la lampe
est éteinte (𝑞0)

𝑄 = {𝑞0, 𝑞1}
𝛿 (𝑞0, presser) = {𝑞1}
𝑋 = {presser} 𝛿 (𝑞1, presser) = {𝑞0}
I = initial {𝑞0}
𝐹 = final{𝑞1}

TIC 1 34
Automates finis déterministes (5)

Exemple d’un automate fini :


Presser presser presser presser
𝑞0 𝑞1
Lemot est lu et l’état est final
Presser donc le mot sera accepté

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)

Exemple d’un automate fini :

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)

Exemple d’un automate fini :

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)

Exemple d’un automate fini :

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)

❖ Pour déterminer si un mot 𝑢 de longueur 𝑛 est accepté, un AFD effectue exactement 𝑛


transitions, tandis qu’un AFI en effectue de l’ordre de 2𝑛 .
❖ L’exécution d’un AFD est donc nettement plus efficace que celle d’un AFI.
➔ Plus de temps et plus de mémoire.
❖ En contrepartie, on peut se demander si les AFI sont plus généraux, c’est-à-dire s’ils
acceptent plus de langages que les AFD.
➔ La réponse est non en se basant sur le théorème suivant :

Théorème (Rabin-Scott (équivalence entre AFD et AFI)) :


La famille des langages acceptés par un AFD est identique à la famille des langages acceptés
par un AFI
➔ Autrement dit, s’il existe un AFI reconnaissant un langage donné, alors il existe un AFD
reconnaissant le même langage.
TIC 1 47
Rendre déterministe un automate fini non déterministe (2)

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

Deux entrées (𝑞0 ) et (𝑞1) Une seule entrée (𝑞0 , 𝑞1)


Un seul symbole par exemple (𝒂) pour Un seul symbole par exemple (𝒂) pour
2 transitions vers (𝑞0 ) et vers (𝑞2) une seule transition (𝑞0 , 𝑞2)

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)

1- Minimisation 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 consiste à éliminer ces états. 𝒂 7
1 2 𝒄, d
5 𝒆 𝒃
Exemple :
𝒄, 𝒅
Les états 7 et 3 sont inaccessibles. 6
➔ Donc, nous les supprimerons. 4 𝒃 𝒃
➔ Le but est de nettoyer l’automate et éliminer les états inaccessibles. 3
c’est-à-dire les états qu’on ne peut pas les atteindre à partir de
l’état initial.

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.

1- Minimisation 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 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)

1- Minimisation des états inaccessibles en utilisant l’algorithme de marquage :

𝒂 𝒂
É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- Minimisation des états inaccessibles en utilisant l’algorithme de marquage :

𝒂 𝒂 𝒂 𝒂

𝒂 𝒃 𝒂 𝒃
𝒂 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 :

❖ Les états 𝜷-équivalents :


Deux états 𝑞𝑖 et 𝑞𝑗 sont dits 𝛽-équivalents s’ils permettent d’atteindre les états finaux à travers les
mêmes mots. On écrit alors : 𝑞𝑖 𝛽 𝑞𝑗
Alors on remplace les états d’équivalence par des classes d’équivalence ➔ Regroupement
❖ Remarque :
- La relation 𝛽-équivalents est une relation d’équivalence.
- Le nombre de classes d’équivalence de la relation 𝛽-équivalents 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).
TIC 1 59
Minimisation d’un automate fini déterministe (AFD) (7)
2- Regroupement des états équivalents :
Exemple 1 :
Soit un automate à état fini suivant (initial = 0, finaux {2,3})

État 𝑎 𝑏
État 𝑎 𝑏
0 1 0
0 1 0
1 1 2
1 1 2
2 3 2
2 3 2
3 3 2

2 et 3 appartiennent à la même classe d’équivalence puisqu’ils font le même travail et ils


ont les mêmes transitions

➔ Il faut garder un seul état


TIC 1 60
Minimisation d’un automate fini déterministe (AFD) (8)
2- Regroupement des états équivalents :
Exemple 2 :
Soit un automate à état fini suivant (initial = 1, finaux {1, 2}) États 𝒂 𝒃
1 2 5
1- Nous avons éliminé les états inaccessibles (état 7)
2 2 4
2- Nous ne trouvons pas des états ayant la même fonction donc 3 3 2
pour réduire les états il faut construire des classes d’équivalence 4 5 3
en suivant l’algorithme de réduction des états 5 4 6
6 6 1
➔ En analysant le tableau, on ne voit pas de ressemblance

➔ Il faut procéder un algorithme pour résoudre le problème


(minimiser les états)

➔ On construire des classes d’équivalence


TIC 1 61
Minimisation d’un automate fini déterministe (AFD) (9)
2- Regroupement des états équivalents :
Algorithme de réduction des états :

Algorithme: fusion des états 𝛽-équivalents d’un AEF 𝐴 = (𝑋, 𝑄, 𝐼, 𝐹, 𝛿)


1 créer deux classes d’états : 𝐴 = 𝐹 (états finaux), 𝐵 = 𝑄 − 𝐹 (le reste)
2 S’il existe un symbole 𝑎 et deux états 𝑞𝑖 et 𝑞𝑗 d’une même classe tel que
𝛿(𝑞𝑖 , 𝑎) et 𝛿(𝑞𝑗 , 𝑎) n’appartiennent pas à la même classe, alors créer une
nouvelle classe et séparer 𝑞𝑖 et 𝑞𝑗 . On laisse dans la même classe tous les états
d’arrivée dans la même classe.
3 Recommencer l’étape 2 jusqu’à ce qu’il n’y ait plus d’états à séparer.

➔ 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

Étape 2 : Vérifier la cohérence des classes


On dit qu’une classe A est cohérente par rapport à un symbole 𝑎 si toutes les transitions de A avec le
symbole 𝑎 mènent à la même classe.
Si une classe n’est pas cohérente il faut la découper au moins en deux parties jusqu’à trouver des classes
cohérentes.

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∈𝐵

A est cohérente B est cohérente C est cohérente


➔ Donc, l’AEFD contiendra trois états (A, B et C)
➔ Donc, on a passé de 6 états à 3 états

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

Il nous reste à minimiser l’automate obtenu


La 1ère étape : éliminer les étapes inaccessibles
➔ pas d’étapes inaccessibles parce qu’en partant de 0, on peut atteindre tous les états
On passe alors à la 2ème étape : minimisation
➔ on ne peut pas voir s’il y a des états équivalents, alors, il vaut mieux appliquer l’algorithme à la lettre

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.

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

Exemples :
𝒂 𝒂 𝒂 𝒂, 𝒃
1)
𝒃 𝒃 𝒃
1 2 3 4

Pour cet automate, on a un seul chemin de l’état 1 vers l’état 3.

ER : 𝑎∗ 𝑏𝑎∗ 𝑏𝑎∗

TIC 1 72
Automates finis et Expressions régulières (ER) (2)
Exemples :
𝒂 𝒂 𝒂 𝒂, 𝒃
2)
𝒃 𝒃 𝒃
1 2 3 4

Pour cet automate, on a un 3 chemins

Chemin 1 : 𝑎∗ ➔ de 1 vers 1, l’automate lit 𝑎 n fois

Chemin 2 : 𝑎∗ 𝑏𝑎∗ ➔ de 1 vers 2

Chemin 3 : 𝑎∗ 𝑏𝑎∗ 𝑏𝑎∗ 𝑏(𝑎𝑏)∗ ➔ de 1 vers 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

Pour cet automate, on a un 3 chemins

Chemin 1 : 𝑎∗ ➔ de 1 vers 1, l’automate lit 𝑎 n fois

Chemin 2 : 𝑎∗ 𝑏𝑎∗ ➔ de 1 vers 2

Chemin 3 : 𝑎∗ 𝑏𝑎∗ 𝑏𝑎∗ 𝑏(𝑎𝑏)∗ ➔ de 1 vers 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

➔ Alors, dans ce cas, il faut procéder à un algorithme

TIC 1 75
Automates finis et Expressions régulières (ER) (5)
Algorithme des équations linéaires en utilisant le lemme d’Arden :

Soit 𝐴 = (𝑋, 𝑄, 𝐼, 𝐹, 𝛿) un automate à états finis quelconque. On distingue par 𝐿𝑖 le langage


accepté par l’automate si son état initial était 𝑞𝑖 . Par conséquent, trouver le langage accepté par
l’automate revient à trouver 𝐿0 étant donné que l’analyse commence à partir de l’état initial 𝑞0 .
L’automate permet d’établir un système d’équations aux langages de la manière suivante:
- Si 𝛿 𝑞𝑖 , 𝑎 = 𝑞𝑗 , alors on écrit : 𝐿𝑖 = 𝑎𝐿𝑗
- Si 𝑞𝑖 ∈ 𝐹, alors on écrit : 𝐿𝑖 = 𝜀
- Si 𝐿𝑖 = 𝑎 et 𝐿𝑖 = 𝛽, alors on écrit : 𝐿𝑖 = 𝑎 | 𝛽
-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 : 𝑳 = 𝒂𝑳 | 𝜷 est le langage 𝑳 = 𝒂∗ 𝜷
-➔ (Attention !! Si on obtient 𝑳 = 𝒂𝑳 alors c’est la preuve d’une faute de raisonnement).
TIC 1 76
Automates finis et Expressions régulières (ER) (6)
Exemple :
Trouvons le langage accepté par cet automate. Le système des équations est le suivant :
➔ On va transformer l’automate en un ensemble des équations linéaires. Pour chaque état, on
associe un langage
𝑏𝐿1 𝑎𝐿2
1) État 1 → 𝐿0 , on cherche les transitions partant de 0 𝑎𝐿0
𝒂 𝒃 𝒂
𝑏𝐿2
𝒃
➔ 𝐿0 = 𝑎𝐿0 | 𝑏𝐿1 | ε = 𝑎𝐿0 + 𝑏𝐿1 + ε ε
(avec | ou +, représente l’union) 0 1 2
2) État 2 → 𝐿1 , on cherche les transitions partant de 1 𝐿0 𝐿2
𝐿1
➔ 𝐿1 = 𝑏𝐿0 | 𝑎𝐿2 = 𝑏𝐿0 + 𝑎𝐿2 𝒃 𝒂
𝑏𝐿0 𝑎𝐿1
3) État 3 → 𝐿2 , on cherche les transitions partant de 2
➔ 𝐿2 = 𝑎𝐿1 | 𝑏𝐿2 = 𝑎𝐿1 + 𝑏𝐿2
Le but est de trouver l’expression de 𝐿0 en fonction des symboles (𝑎, 𝑏) parce qu’elle présente
l’état initiale, et pour résoudre les systèmes linéaires, on fait des substitutions en utilisant le
lemme d’Arden,
La solution de l’équation 𝑳 = 𝒂𝑳 | 𝜷 est le langage 𝑳 = 𝒂∗ 𝜷
TIC 1 77
Automates finis et Expressions régulières (ER) (7)
Exemple :
En appliquant le lemme d’Arden,
La solution de l’équation 𝑳 = 𝒂𝑳 | 𝜷 est le langage 𝑳 = 𝒂∗ 𝜷

𝐿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

Vous aimerez peut-être aussi