Cours 2 : Automate minimal
Automate minimal
Rappel : si
est déterministe complet, alors chaque lettre peut être vue comme une action sur :
si
- Morphisme d’automates
pour : -
est morphisme de à si
- Isomorphisme :
-
morphisme bijectif
- Résiduel
à gauche de par : -
NB :
Si
où
où
Si
NB :
LEMME : Si
est déterministe complet, alors
D’où :
Corollaire : Si
est régulier, alors l’ensemble des résiduels à gauche de est fini.
- Automate
des résiduels de : -
où
Lemme :
Preuve :
NB :
Preuve (laborieuse) : par double inclusion :
-
Si
:- si
: alors état initial de , donc - sinon si
: donc (hypothèse d’induction), et donc
- si
-
Si
:- Si
, état initial de est final, donc - sinon, si
: donc , et
- Si
MIEUX :
Lemme :
Par induction sur
- Si
alors et donc - Si
alors , et donc
Ex :
Lemme : Soit
dét. comp. Alors
est un morphisme surjectif d’automates.
Preuve :
Donc l’automate des résiduels est l’unique automate dét. comp. minimal à isomorphisme près.
NB : par contre, le problème de l’égalité entre deux langages réguliers (en l’occurrence, ici : les résiduels) est PSPACE-complet : l’algo n’est pas du tout efficace !
Algorithme de minimisation
Soit
- Automate quotient
de par : -
où :
- $𝛿_≡ ≝ \lbrace ([q]≡, a, [q’]≡) \mid (q, a, q’)∈𝛿\rbrace$
alors
-
En effet : Soit
:on a donc :
et
- Congruence
sur dét. comp. : -
une rel. d’éq. tq :
Lemme : Si
est une congruence, alors
Preuve :
La seule chose à montrer est
Soit
On montre que :
-
Pour
: convient -
Induction :
et par HR :
donc
donc
convient.Enfin :
ssiet donc l’exécution
est acceptante.
- Congruence de Nérode :
-
ssi
NB :
-
on vérifie aisément que c’est une congruence
-
est isomorphe à l’automate minimal : devient injective
Algorithme de Moore
On définit une famille
ssi ssi et
Lemme :
et est la congruence de Nérode
-
La décroissance de la suite est claire
-
Si $≡i \, = \, ≡{i+1}$, alors
Donc
- On note
l’équivalence de Nérode : montrons que
Si
-
pour
: donc le résultat s’ensuit. -
pour
: par HR, doncet
implique
donc
Soit
et donc
et donc
Ex :
Partitions :
⟶ L’algorithme naïf en
Concrètement, on associe à chaque
tq
Pour tout a∈𝛴:
Pour tout q∈Q:
bloc(q) = max × bloc(q) + bloc(a \cdot q)
max = 2max +1
algo en
NB :
-
alogrithme d’Hopcroft en
-
union find : pas très bon ici
-
En TD : un algorithme en
dit de “double renversement” de BROZOZWSKI
fonctionne sur un automate non dét. !
NB :
- mais en pratique : tous ces algos sont plutôt efficace (MOORE, BROZOZWSKI, HOPCROPFT)
-
très souvent : BROZOZWSKI est même plus efficace que MOORE et HOPCROPFT ! (car les opérations de renversement sont très faciles à faire en pratique)
- En espérance : MOORE est en
: donc en moyenne, MOORE est aussi bon qu’HOPCROPFT.
Leave a comment