automates d`états finis

Transcription

automates d`états finis
5. Equivalences d’automates
5.1.
5.2.
5.3.
5.4.
5.5.
Anne Berry,
Le problème du déterminisme
Différentes sortes d’AEF
Déterminisation d’un AEF
Déterminisation d’un AEF avec -transitions
Minimisation d’un AEF déterministe
Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates
1/34
5. Equivalences d’automates
♣ il existe plusieurs types d’Automates d’Etats Finis
♠ ils sont équivalents
Anne Berry,
Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates
2/34
5.1. Le problème du déterminisme
La définition d’un automate d’états finis
n’interdit pas les ”conflits”.
L = aab ∗ a + ab ∗ b
Comment doit-on interpréter δ(q0 , a) ?
Anne Berry,
Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates
3/34
5.1. Le problème du déterminisme
Le choix est non-déterministe.
Anne Berry,
Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates
4/34
5.1. Le problème du déterminisme
Définition
Un automates d’états finis déterministe (AEFD)
(en anglais : Deterministic Finite Automaton (DFA) )
est un automate d’états finis tel que, de chaque état q∈Q,
il part |Σ| transitions, une pour chacune des lettres
de l’alphabet Σ.
1
dans la pratique, les transitions absentes partent vers l’état
poubelle, qui souvent est implicite.
2
pas d’-transition !
Anne Berry,
Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates
5/34
5.1. Le problème du déterminisme
Exemple d’automate déterministe :
Anne Berry,
Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates
6/34
5.2. Différentes sortes d’AEF
On définit 3 sortes d’automates d’états finis :
1
les automates d’états finis déterministes
2
les automates d’états finis non-déterministes avec -transition
(NFA-)
3
les automates d’états finis non-déterministes sans -transition
(NFA-W, W pour”Without”)
Anne Berry,
Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates
7/34
5.2. Différentes sortes d’AEF
Théorème
La classe des langages reconnus par :
- les automates d’états finis déterministes
- les automates d’états finis non-déterministes sans -transition
- les automates d’états finis non-déterministes avec -transition
est la même : celle des langages rationnels.
Preuve : constructive
(algorithmes de passage d’un type d’AEF à un autre)
Anne Berry,
Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates
8/34
5.3. Déterminisation d’un AEF sans -transition
♦ On part d’un AEF non déterministe
A1 = (Q, Σ, δ, q0 , F ) sans -transition.
♣ On calcule un automate d’états finis déterministe
A2 = (Q 0 , Σ, δ 0 , Q00 , F 0 ), avec Q00 = {q0 }
Anne Berry,
Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates
9/34
5.3. Déterminisation d’un AEF sans -transition
Principe : On construit les états et la table de transition de δ 0 :
1 On construit la table de transition de δ (qui comporte des
ensembles d’états)
2 Initialisation de δ 0
- on commence par Q00 ={q0 }
- on applique chaque caractère x de Σ à Q00
- on obtient un ensemble d’états qui est sera état de Q 0
Anne Berry,
Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates
10/34
5.3. Déterminisation d’un AEF sans -transition
3 Construction de δ 0
- on choisit un état Q 0 de Q 0 non encore traité
- on applique chaque caractère x de Σ chaque état de Q 0
avec δ
- on obtient un ensemble d‘états
1
si cet ensemble ne correspond pas à un été déjà défini de
Q 0 , on crée un nouvel état (final) de Q 0
4 les états finaux de A2 sont ceux qui contiennent au moins un
état de F
Anne Berry,
Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates
11/34
5.3. Déterminisation d’un AEF sans -transition
Algo DETERMINISATION
Donnee : un automate A1 = (Q, Σ, δ, q0 , F )
Resultat : un automate déterministe A2 = (Q 0 , Σ, δ 0 , Q00 , F 0 ).
Initialisation : Q00 ← {q0 };ATRAITER ← Q00 = {q0 } ; Q 0 ← {Q00 } ;
tant que ATRAITER 6= ∅ faire
CHOISIR Q 0 dans ATRAITER ; ATRAITER ← ATRAITER - Q 0 ;
pour chaque caractère x de Σ faire
pour chaque état Q de Q 0 faire
δ 0 (Q 0 , x) ← δ 0 (Q 0 , x) ∪ δ(Q, x) ;
si δ 0 (Q 0 , x) n’est pas un état de Q 0 alors
Q 00 ← δ 0 (Q 0 , x) ; Q 0 ← Q 0 + {Q 00 } ;
ATRAITER ← ATRAITER + {Q 00 } ;
pour chaque état Q 0 de Q 0 contenant un état de F faire
AJOUTER Q 0 à F 0 ;
Retourner((Q 0 , Σ, δ 0 , Q00 , F 0 )).
Anne Berry,
Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates
12/34
5.3. Déterminisation d’un AEF sans -transition
Exemple :
L = {ab, ac}
δ
q0
q1
q2
q3
q4
Anne Berry,
a
{q1 ,q3 }
{∅}
{∅}
{∅}
{∅}
b
{∅}
{q2 }
{∅}
{∅}
{∅}
c
{∅}
{∅}
{∅}
{q4 }
{∅}
Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates
13/34
5.3. Déterminisation d’un AEF sans -transition
Initialisation : Q00 = {q0 }
δ 0 (Q00 , a) = {q1 , q3 } : on crée un nouvel état Q10 = {q1 , q3 }
δ 0 (Q00 , b) = {∅} ; δ 0 (Q00 , c) = {∅}
Anne Berry,
Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates
14/34
5.3. Déterminisation d’un AEF sans -transition
On a un état Q10 = {q1 , q3 } qui n’est pas traité :
δ 0 (Q10 , a) = ∅
δ 0 (Q00 , b) = {q2 } : on crée un nouvel état Q20 = {q2 }
δ 0 (Q00 , c) = {q4 } : on crée un nouvel état Q30 = {q4 }
Anne Berry,
Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates
15/34
5.3. Déterminisation d’un AEF sans -transition
On traite l’état Q20 = {q2 } : δ 0 (Q20 , a) = δ 0 (Q20 , b) = δ 0 (Q20 , c) = ∅
On traite l’état Q30 = {q4 } : δ 0 (Q30 , a) = δ 0 (Q30 , b) = δ 0 (Q30 , c) = ∅
Etats finaux : Q20 parce qu’il contient q2 , et Q30 parce qu’il contient
q4 .
Anne Berry,
Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates
16/34
5.3. Déterminisation d’un AEF sans -transition
A la fin, on obtient :
δ
q0
q1
q2
q3
q4
δ0
Q00 ={q0 }
Q10 ={q1 ,q3 }
Q20 =q2
Q30 =q4
Anne Berry,
a
{q1 ,q3 }=Q10
{∅}
{∅}
{∅}
a
{q1 ,q3 }
{∅}
{∅}
{∅}
{∅}
b
{∅}
{q2 }=Q20
{∅}
{∅}
b
{∅}
{q2 }
{∅}
{∅}
{∅}
c
{∅}
{∅}
{∅}
{q4 }
{∅}
c
{∅}
{q4 }=Q30
{∅}
{∅}
Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates
17/34
5.3. Déterminisation d’un AEF sans -transition
Remarque :
Etant donné un AEF non déterministe à k états, l’AEF
déterministe correspondant peut avoir 2k états.
Anne Berry,
Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates
18/34
5.4. Déterminisation d’un AEF avec -transitions
On étend la technique de déterminisation en étendant la fonction
de transition δ 0 (Qi , x) à une fonction donnée par les mots ∗ x∗ .
Anne Berry,
Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates
19/34
5.4. Déterminisation d’un AEF avec -transitions
Définition
On appelle -fermeture d’un état q l’ensemble des états qi
atteignables à partir de q par un chemin étiqueté uniquement par
le mot vide .
Définition
On appelle -fermeture d’un ensemble Q d’états l’union des
-fermetures des états appartenant à Q.
Anne Berry,
Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates
20/34
5.4. Déterminisation d’un AEF avec -transitions
Exemple :
a∗ b ∗ c ∗
-fermeture(q0 ) = {q0 , q1 , q2 }
-fermeture(q1 ) = {q1 , q2 }
-fermeture(q2 ) = {q2 }
Anne Berry,
Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates
21/34
5.4. Déterminisation d’un AEF avec -transitions
Principe de déterminisation :
Pour un état Q 0 de l’AEF déterministe en cours de calcul :
1
On part de l’-fermeture de Q 0 .
2
On calcule δ(Q 0 )
3
On calcule l’-fermeture de δ(Q 0 )
4
On obtient un état du nouvel automate
Les états finaux du nouvel automate sont ceux qui contiennent au
moins un état de l’automate de départ.
Anne Berry,
Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates
22/34
5.4. Déterminisation d’un AEF avec -transitions
Exemple :
δ
q0
q1
q2
a
{q0 }
{∅}
{∅}
b
{∅}
{q1 }
{∅}
c
{∅}
{∅}
{q2 }
{q0 ,q1 ,q2 }
{q1 ,q2 }
{q2 }
Construction de δ 0 , Q00 =-fermeture(q0 )={q0 ,q1 ,q2 }
Anne Berry,
Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates
23/34
5.4. Déterminisation d’un AEF avec -transitions
δ0
= {q0 , q1 , q2 }
Q10 = {q1 , q2 }
Q20 = {q2 }
Q00
Anne Berry,
a
{q0 } → Q00
{∅}
{∅}
b
{q1 } → {q1 ,q2 }=Q10
{Q10 }
{∅}
Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates
c
{q2 } → {q2 }=
{Q20 }
{Q20 }
24/34
5.4. Déterminisation d’un AEF avec -transitions
Tous les états sont finaux, on obtient l’automate :
Anne Berry,
Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates
25/34
5.5. Minimisation d’un AEF déterministe
Théorème
(de Nérode - Myhill) :
Pour un langage rationnel donné L, il existe un automate d’états
finis déterministe canonique (uniquement défini), et qui comporte
un nombre minimum d’états, reconnaissant L.
Il existe un algorithme très efficace de minimisation.
Anne Berry,
Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates
26/34
5.5. Minimisation d’un AEF déterministe
Principe de minimisation d’un automate d’états finis déterministe :
utilise le principe algorithmique d’éclatement de partitions.
Anne Berry,
Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates
27/34
5.5. Minimisation d’un AEF déterministe
Rappel : une partition d’un ensemble est la définition d’un
ensemble de classes, tel que l’union de toutes les classes est
l’ensemble de départ et l’intersection de deux classes est vide
(une partition correspond à une relation d‘’équivalence)
Principe algorithmique d’éclatement de partitions
(ou d’affinement de partitions)
1
on part d’une (ou plusieurs) (grandes) classes
2
on a un critère qui permet de partitionner un classe en
plusieurs classes plus petites
3
on arête quand chaque classe obtenue est non-partitionnable
Anne Berry,
Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates
28/34
5.5. Minimisation d’un AEF déterministe
Pour minimiser un AEF déterministe :
1
on retire les états non atteignables ;
2
on partitionne l’ensemble des états en deux classes :
1
2
Anne Berry,
les états finaux
les états non finaux (y compris l’état poubelle ∅)
Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates
29/34
5.5. Minimisation d’un AEF déterministe
Etape d‘éclatement d‘une classe Ci :
1
appliquer à Ci une transition par un caractère x de ∈ Σ ;
2
séparer les éléments de Ci qui n’aboutissent pas à la même
classe
Anne Berry,
Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates
30/34
5.5. Minimisation d’un AEF déterministe
On répète jusqu’à ce qu’il n’y ait plus d’éclatement possible.
A la fin, on a pour toute classe Ci obtenue :
∀x ∈ Σ, ∀q, q 0 ∈ Ci , δ(q, x) = δ(q 0 , x)
On obtient la description d’un nouvel AEF déterministe,
dont l’état initial est l’état contenant q0
et dont les états finaux sont les états contenant un état final de de
l’automate de départ.
Anne Berry,
Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates
31/34
5.5. Minimisation d’un AEF déterministe
Exemple : L = {ab, ac}
On part de C1 = {q3 , q4 } et C2 = {q0 , q2 , ∅}
(C1 , a)
∅, (C1 , b)
∅, (C1 , c)
∅,
(C2 , a)
C2
C2 , b : (q0 , b)
∅ ∈ C2 , (q2 , b)
C1 , (q2 , c)
C1
On sépare C2 = {q0 , q2 } en C20 = {q0 , ∅} et C200 = {q2 }
etc. On obtient un automate d’états finis déterministe à trois
états :
Anne Berry,
Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates
32/34
5.5. Minimisation d’un AEF déterministe
Algo MINIMISATION
Donnee : un automate déterministe A1 = (Q, Σ, δ, q0 , F )
Resultat : l’automate déterministe minimum
A2 = (Q 0 , Σ, δ 0 , Q00 , F 0 ).
Initialisation : C ← {Q − F , F } ; b ← 1 ;
SUPPRIMER de A1 les états non atteignables ;
tant que b=1 faire
b ← 0;
pour chaque classe C de C faire
pour chaque caractère x de Σ faire
si par δ on n’aboutit pas dans une même classe de C alors
REMPLACER C dans C par les classes obtenues ; b ← 1 ;
δ 0 ← fonction de passage d’une classe de C à une autre ;
F 0 ← ensemble des classes de C classes contenant au moins un
état de F ;
Retourner(C , Σ, δ 0 , q0 , F 0 ).
Anne Berry,
Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates
33/34
5.5. Minimisation d’un AEF déterministe
Théorème
Pour un langage rationnel L donné, il existe un unique automate
d’états fini déterministe minimum engendrant L.
Conséquence fondamentale :
Les langages rationnels sont non ambigüs.
Anne Berry,
Cours de Théorie des Langages Partie 1 : 5. Equivalences d’automates
34/34