Vous êtes sur la page 1sur 35

Automates et Langages

Chapitre 2: Automates à états finis


Dr.Ghada Besbes
Motivation
• Problème: est ce qu’une chaîne  appartient à un langage L?
• Solution: Reconnaisseur d’un langage:
• Programme qui prend en entrée une chaîne x et répond par oui
ou non. (x appartient ou non au langage)

Dr.G.Besbes
• Effectue un ensemble d’actions et fournit un résultat

2
Définition
Un automate fini consiste en un quintuple de la forme
(Q, X, , q0, F) avec
• Q est un ensemble fini d’états
• X est un alphabet

Dr.G.Besbes
•  est une fonction de transition
•  : Q x X R(Q) (l’ensemble de tous les sous ensembles de Q)
• Intuitivement; si un automate fini est dans un état qi et reçoit l’entrée a
(qui la reconnaît), alors l’automate passe à l’état qj
• q0 est l’état initial (un élément de Q)
• F est l’ensemble des états finaux (sous ensemble de Q)

3
Exemple d’un automate fini

• Cet automate reconnait les séquences de « presser » qui nous

Dr.G.Besbes
mènent toujours a l’état final souhaité ON (lampe allumée) en
partant d’un état ou la lampe est éteinte (OFF).
• Q = {OFF, ON}
• X = {presser}
• q0 = OFF
• F = {ON}
• (OFF, presser) = {ON} 4
• (ON, presser) = {OFF}
Exemple d’un automate fini

La séquence: presser presser presser est acceptée. Par ce que:

Dr.G.Besbes
• En partant de l’état OFF avec un « presser », on passe a l’état
ON
• En lisant le deuxième « presser » à partir de l’état ON, on
revient a l’état OFF
• Le dernier « presser » lu nous mène de l’état OFF à l’état ON
• Donc à la fin de la lecture des trois « presser », trois
transitions sont effectuées et la dernière nous mène a l’état
ON donc la séquence est acceptée. 5
Le mot est lu et l’état est final donc le mot est accepté
Exemple d’un automate fini

La séquence: presser presser n’est pas acceptée par l’automate.

Dr.G.Besbes
Par ce que:
• En partant de l’état off avec un « presser », on passe a l’état
ON
• En lisant le deuxième « presser » à partir de l’état ON, on
revient a l’état OFF

6
Exemple d’un automate fini

• Le langage accepté par cet automate est l’ensemble des

Dr.G.Besbes
séquences de presser qui, partant de l’état initial OFF, après la
lecture de tous les symboles de la séquence, on se trouve a
l’état ON.
• Ce langage (le langage accepté par l’automate A, noté L(A))
est l’ensemble des séquences de presser de longueur impaire:
L(A) = {  {presser}*/ |  | = 2k + 1, k 0}

7
Notation
• Dans l’exemple précédent, l’automate est noté par une
notation graphique qu’on appelle diagramme de transition
• Il existe une notation tabulaire équivalente à celle graphique
qu’on appelle table de transition

Dr.G.Besbes
8
Exemple d’un automate fini
 a b
q0 q1 q5

q1 q5 q2
q2 q5 q3

Dr.G.Besbes
Diagramme de transition
q5
q3 q4 a, b
q4 q5 q5
q5 q5 q5
q5
Table de transition
a a, b
b a b 9

q0 a q1 b q2 b q3 a q4
Exemple d’un automate fini
a, b

q5
a a, b
b a

Dr.G.Besbes
b
q0 a q1 b q2 b q3 a q4

• X = {a,b}
• Q = {q0, q1, q2, q3, q4, q5}
• q0 = {q0}
10
• F = {q4}
Exemple d’un automate fini
Exemple : Chaine abbbaa
• Il n’y a pas un chemin de q0 à q4 libellé abbbaa
• Donc la chaine “abbbaa” n’est pas acceptée par l’automate B

Dr.G.Besbes
a, b
B
q5
a a, b
b a b 11

q0 a q1 b q2 b q3 a q4
Exemple d’un automate fini
Exercice: 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)

Dr.G.Besbes
12
Exemple d’un automate fini
Exercice: Construire un automate fini qui accepte l’ensemble des
nombres entiers différents de Zéro.

Dr.G.Besbes
13
Les automates finis
déterministes (AFD)
Définition. Automate fini complet
Un automate fini est dit complet sur un vocabulaire X ssi pour chaque
état q et chaque symbole s, il existe au moins une transition qui quitte q
avec le symbole s.

Dr.G.Besbes
Définition. Automate fini non ambigu
Un automate fini est dit non ambigu sur un vocabulaire X ssi pour chaque
état q et chaque symbole s, il existe au plus une transition qui quitte q
avec le symbole s.

Définition. Automate fini deterministe (AFD)


Un automate fini est dit déterministe sur un vocabulaire X ssi il est
complet et non ambigu (pour chaque état q et chaque symbole s, il 14
existe une et une seule transition qui quitte q avec le symbole s).
Dans le cas contraire, l’automate est fini et non déterministe (AFN)
Les automates finis
déterministes

Dr.G.Besbes
15
Le lemme d’Arden
Le lemme d’Arden
Pour deux langages A et B d’un vocabulaire X*,
Les équations L= AL+B et L = LA+B admettent
respectivement comme solution minimale A*B et BA*.

Dr.G.Besbes
Exercice: Vérifier que A*B est bien une solution pour L= AL+B
Corrigé:
AL+B = AA*B+B
=A+B+B
=(A++)B
=A*B
16
=L
Langage accepté par un
automate fini (lemme d’Arden)
• Soit un automate fini sur un vocabulaire X avec x  X
• On dénote par Li, le langage reconnu par l’automate A en
considérant que qi est l’état initial.
j  Lj   i  Li / i = x j en conséquence Li = x Lj

Dr.G.Besbes
• Si qi est un état final alors Li = x Lj + {}

• Remarque: Si qi est un état initial et final alors le langage Li


contient le mot  , et vise versa, si  L alors  est reconnu par
l’automate donc l’état initial est aussi un état final 17
Langage accepté par un
automate fini (lemme d’Arden)
• Soit l’automate A avec l’état initial q0
• Ainsi, L0 est le langage reconnu par A
• Pour déterminer L0, on pose les équations décrivant les
langages Li (le langage reconnu par l’automate A en

Dr.G.Besbes
considérant que qi est l’état initial ) reconnus par chaque état
qi
• Pour n états, on extrait n équations à n inconnus et on cherche
à résoudre l’équation pour la variable L0

18
Langage accepté par un
automate fini (lemme d’Arden)
• 1) A chaque état i on associe une variable Li dénotant le
langage des mots acceptés en prenant i comme état initial.
• 2) On écrit alors les relations entre les Li.

Dr.G.Besbes
19
Langage accepté par un
automate fini (lemme d’Arden)
• Exercice : Soit A un automate fini sur un vocabulaire X= {a,b},
Chercher le langage L0 reconnu par l’automate A

Dr.G.Besbes
• Corrigé :
L0 = {a} L1 (1) L1 = {a} L2 (2) L2 = {a} L0 + {} (3)
(1) + (2) ⇒ L0 = {a}{a}L2 = {aa}L2 (4)
(4) + (3) ⇒ L0 = {aa} L2 = {aa}({a}L0 + {})
⇒ L0 = {aaa}L0 + {aa} 20
⇒D'après le lemme d’Arden: L0 = {aaa}*{aa} = (aaa)*aa
Construction d’un automate fini non
déterministe (AFN) à partir d’une expression
régulière (Construction de Thompson)

Le principe est basé sur la construction de Thompson, basée sur


la récursivité des expressions régulières.
Définition : -transition

Dr.G.Besbes
On appelle -transition, une transition par le symbole  entre 2 états.

21
Construction d’un automate fini non
déterministe (AFN) à partir d’une expression
régulière (Construction de Thompson)

• Construction de Thompson
Expression Automate qui reconnaît
régulière

Dr.G.Besbes

22
e1 .e2
Construction d’un automate fini non
déterministe (AFN) à partir d’une expression
régulière (Construction de Thompson)

• Construction de Thompson
Expression Automate qui reconnaît
régulière

Dr.G.Besbes
e1 +e2

e1 * 23
Construction d’un automate fini non
déterministe (AFN) à partir d’une expression
régulière (Construction de Thompson)
Exercice: construire l’automate de Thompson pour (a+b)*b

Dr.G.Besbes
24
Déterminisation (automate fini
non complet)
• Si l’automate fini est non déterministe par ce qu’il est non
complet, alors pour le rendre déterministe, il suffit d’ajouter
un état puit et ajouter toutes les transitions manquantes vers
cet état.

Dr.G.Besbes
25
Déterminisation (automate fini
ambigu)
• Si l’automate fini est non déterministe par ce qu’il est ambigu
alors on doit construire un automate en groupant les états
visités par un même symbole à partir d’un état, ces états
groupés forment les nouveaux états de l’automate
déterministe.

Dr.G.Besbes
• La construction de l’automate déterministe suit les étapes
suivantes:
• Etape 1. Définir les nouveaux groupes d’états (en commençant
par l’état initial)
• Etape 2. Renommer les nouveaux groupes et définir les états
finaux. Un nouvel état (Groupe d’état) est un état final ssi il
contient un ancien état final
• Etape 3. Construire l’automate déterministe 26
Déterminisation (automate fini
ambigu)
• Exemple:
• Etape 1. Définir les nouveaux groupes d’états

Dr.G.Besbes
a b
{q0} {q0, q1} {q1}
{q0, q1} {q0, q1} {q1}
{q1} {q1} {q1}

27
Déterminisation (automate fini
ambigu)
• Etape 2. Renommer les états et définir les états finaux

Dr.G.Besbes
a b
{q0} A {q0, q1} B {q1} C
{q0, q1} B {q0, q1} B {q1} C
{q1} C {q1} C {q1} C

28
Déterminisation (automate fini
ambigu)
• Etape 3. Construire l’automate déterministe

Dr.G.Besbes
a b
{q0} A {q0, q1} B {q1} C
{q0, q1} B {q0, q1} B {q1} C
{q1} C {q1} C {q1} C

29
Minimisation d’un automate
fini déterministe
Soit A un automate fini deterministe A = (Q, X, , q0, F)
Pour obtenir un automate A minimal en nombre d’états, suivre les
étapes suivantes:
1. Construire une partition initiale 0 composée de deux groupes:
Groupe des états finaux G1 et Groupe des états non finaux G2

Dr.G.Besbes
2. Répéter Jusqu’à  i+1 =  i / i0
• Pour obtenir  i+1 , Partitionner chaque groupe de  i en mettant
ensemble des états p et q si pour chaque symbole s du vocabulaire, p
et q transitent vers des états d’un même groupe d’états.
• Construire les nouveaux groupes
3. Associer à chaque groupe un nom
4. Construire les transitions des groupes en utilisant les transitions
des états des groupes.
5. Un groupe qui contient un état final est un état final dans 30
l’automate minimal
Minimisation d’un automate
fini déterministe
• Exemple : Soit l’automate A suivant. Construire un automate
minimal qui accepte le même langage (Minimiser le nombre
d’états de l’automate A)

Dr.G.Besbes
31
Minimisation d’un automate
fini déterministe
• 1ière itération (0)

Dr.G.Besbes
a b
A I I
B I I
C I I
D I II
E I I 32
Minimisation d’un automate
fini déterministe
• 2ième itération (1)

Dr.G.Besbes
a b
A I I
B I III
C I I
D I II
E I I 33
Minimisation d’un automate
fini déterministe
• 3ième itération (2)

Dr.G.Besbes
a b
A IV I
C IV I
B IV III
D IV II
E IV I 34
Minimisation d’un automate
fini déterministe
• L’automate minimal:

Dr.G.Besbes
35

Vous aimerez peut-être aussi