Théorie des Langages Formels Chapitre 5 : Automates minimaux

29
Automate minimal Automate des résiduels Test de minimalité Algorithme de Moore Théorie des Langages Formels Chapitre 5 : Automates minimaux Florence Levé [email protected] Année 2014-2015 1/29

Transcript of Théorie des Langages Formels Chapitre 5 : Automates minimaux

Page 1: Théorie des Langages Formels Chapitre 5 : Automates minimaux

Automate minimal Automate des résiduels Test de minimalité Algorithme de Moore

Théorie des Langages FormelsChapitre 5 : Automates minimaux

Florence Levé

[email protected]

Année 2014-2015

1/29

Page 2: Théorie des Langages Formels Chapitre 5 : Automates minimaux

Automate minimal Automate des résiduels Test de minimalité Algorithme de Moore

Introduction

Les algorithmes vus précédemment peuvent mener à desautomates relativement gros.

On souhaite obtenir des automates les plus petits possible, engardant l’avantage des automates déterministes.

Nous nous intéressons donc ici à l’automate déterministe ayantle moins d’états possible :

I Nous allons voir qu’il est unique.I Nous verrons deux méthodes pour l’obtenir : une directement à

partir d’une expression rationnelle ; l’autre à partir d’unautomate déjà connu.

2/29

Page 3: Théorie des Langages Formels Chapitre 5 : Automates minimaux

Automate minimal Automate des résiduels Test de minimalité Algorithme de Moore

Automate minimal

Théorème : Tout langage reconnaissable est reconnu par ununique (au renommage près des états) automate déterministecomplet tel que tout autre automate déterministe complet aau moins autant d’états que lui.

L’automate décrit ci-dessus est appelé automate minimalcomplet ou plus simplement automate minimal reconnaissantle langage.

3/29

Page 4: Théorie des Langages Formels Chapitre 5 : Automates minimaux

Automate minimal Automate des résiduels Test de minimalité Algorithme de Moore

Résiduel

Soient A un alphabet, L ⊆ A∗ un langage et u ∈ A∗ un mot.Le résiduel (à gauche ou quotient à gauche) de L par rapportà u est le langage

u−1L = {v ∈ A∗ | uv ∈ L}.

Exemple :L = {ab, ba, aab}

I a−1L = {b, ab},I b−1L = {a},I c−1L = ∅

Méthode :I u−1L est l’ensemble X tel que L ∩ uA∗ = uX

I Pour calculer un résiduel u−1L sur un exemple simple :1. Trouver les mots de L commençant par u : L ∩ uA∗ ;2. Enlever les préfixes u −→ u−1L.

4/29

Page 5: Théorie des Langages Formels Chapitre 5 : Automates minimaux

Automate minimal Automate des résiduels Test de minimalité Algorithme de Moore

LemmeSoit L ⊆ A∗ un langage reconnu par un automate déterministecomplet Aut =<A,Q, {d},F , δ>.Soit u un mot. Il existe un unique chemin dans Aut partant de d etétiqueté par u : soit p l’état dans lequel aboutit ce chemin.Alors :

u−1L = Lp

Preuve :uLp ⊆ L implique Lp ⊆ u−1LPour v appartenant à u−1L, uv ∈ L. Puisque l’automate estdéterministe, l’unique chemin reconnaissant uv dans Aut estun chemin qui après avoir reconnu u arrive en p et doncv ∈ Lp. Ainsi u−1L ⊆ Lp.

Corollaire :Tout langage reconnaissable a un nombre fini de résiduels.

5/29

Page 6: Théorie des Langages Formels Chapitre 5 : Automates minimaux

Automate minimal Automate des résiduels Test de minimalité Algorithme de Moore

Lemme

Pour tous mots u et v et pour tout langage L,

(uv)−1L = v−1(u−1L)

Preuve :

(uv)−1L = {w | uvw ∈ L}= {w | vw ∈ u−1L}= v−1(u−1L)

6/29

Page 7: Théorie des Langages Formels Chapitre 5 : Automates minimaux

Automate minimal Automate des résiduels Test de minimalité Algorithme de Moore

Approche

On peut calculer les résiduels u−1L pour les longueurs de usuccessives : 0, 1, 2,. . .Comme il y a un nombre fini de résiduels, le calcul ne peut ques’arrêter.

7/29

Page 8: Théorie des Langages Formels Chapitre 5 : Automates minimaux

Automate minimal Automate des résiduels Test de minimalité Algorithme de Moore

Calcul des résiduels

Donnée : un langage L ;Hypothèse : le langage L a un nombre fini de résiduels ;Résultats : les résiduels de L(notés L0, . . . , Lk−1 où k est le nombre de résiduels de L).

Premier résiduel : ε−1L = L (le noter L0)tant que de nouveaux ensembles apparaissent :

I calculer les résiduels par rapport aux lettres de l’alphabet enpartant des ensembles précédemment obtenus ;

I numéroter au fur et à mesure les langages distincts rencontrés.

8/29

Page 9: Théorie des Langages Formels Chapitre 5 : Automates minimaux

Automate minimal Automate des résiduels Test de minimalité Algorithme de Moore

Formules utiles

Dans le formulaire suivant a est une lettre, L, L1 et L2 sont desensembles.

1. a−1(L1 ∪ L2) = a−1L1 ∪ a−1L2

2. a−1(L1L2) = (a−1L1)L2 si ε 6∈ L1

3. a−1(L1L2) = (a−1L1)L2 ∪ a−1L2 si ε ∈ L1

4. a−1(L∗) = (a−1L)L∗

5. a−1(L1 ∩ L2) = a−1L1 ∩ a−1L2

6. a−1(A∗ \ L) = A∗ \ (a−1L)

7. a−1(L1 \ L2) = (a−1L1) \ (a−1L2)

9/29

Page 10: Théorie des Langages Formels Chapitre 5 : Automates minimaux

Automate minimal Automate des résiduels Test de minimalité Algorithme de Moore

Exemple

Résiduels du langage A∗ab sur alphabet {a, b}.

L0 = ε−1L = La−1L0 = a−1(A∗ab) = (a−1A∗)ab ∪ a−1{ab} =(a−1A)A∗ab ∪ {b} = εA∗ab ∪ {b} = A∗ab + b := L1

b−1L0 = L0

a−1L1 = L1

b−1L1 = ε+ A∗ab := L2

a−1L2 = L1

b−1L2 = L0

10/29

Page 11: Théorie des Langages Formels Chapitre 5 : Automates minimaux

Automate minimal Automate des résiduels Test de minimalité Algorithme de Moore

Remarques

La méthode de calcul précédente n’est pas implémentable dans tousles cas :

problème 1. Comment est donné le langage L ? Pasnécessairement par le biais d’une expression rationnelle ?problème 2. Comment tester l’égalité d’un langage par rapportaux précédents déjà calculés, en particulier si le langage n’estpas reconnaissable.... et même quand il l’est.L’hypothèse “nombre de résiduels fini” n’est pas toujoursévaluable et, sans elle, le calcul précédent ne finit pas.

Par contre, quand elle est implémentable, elle donne directementun automate déterministe (avec le moins d’états possibles).

11/29

Page 12: Théorie des Langages Formels Chapitre 5 : Automates minimaux

Automate minimal Automate des résiduels Test de minimalité Algorithme de Moore

Construction de l’automate minimal

Proposition :1. Un langage L est reconnaissable si et seulement si le nombre

de ses résiduels est fini.2. L’automate déterministe minimal complet reconnaissant L est

l’automate tel que :I les états sont numérotés de 0 à n − 1 où n est le nombre de

résiduels de L ;I chaque résiduel Li correspond à un état noté i ;I l’état de départ 0 correspond au résiduel de L par rapport à ε,

c’est-à-dire L lui-même (L0 = ε−1L = L) ;I il existe une transition (i , a, j) si et seulement si Lj = a−1Li ;I i est un état d’acceptation si et seulement si ε ∈ Li .

L’automate défini ainsi est appelé automate des résiduels.

12/29

Page 13: Théorie des Langages Formels Chapitre 5 : Automates minimaux

Automate minimal Automate des résiduels Test de minimalité Algorithme de Moore

ExempleL0 = L = A∗aba−1L0 = L1 = A∗ab + bb−1L0 = L0

a−1L1 = L1

b−1L1 = L2 = ε+ A∗ab (ε ∈ L2 ⇒ L2 état d’acceptation)a−1L2 = L1

b−1L2 = L0

L0 L1a

b a

b L2

a

b

13/29

Page 14: Théorie des Langages Formels Chapitre 5 : Automates minimaux

Automate minimal Automate des résiduels Test de minimalité Algorithme de Moore

Preuve de la proposition

1. Un langage L est reconnaissable si et seulement si le nombre deses résiduels est fini.

⇐ on donne une construction de l’automate résiduel.⇒ Le premier lemme du chapitre implique que le nombre derésiduels d’un langage reconnu par un automate fini est finipuisqu’il est majoré par le nombre d’états de cet automate.

2. L’automate déterministe minimal complet reconnaissant L estl’automate des résiduels.

Remarquons également que le même lemme associe à chaquerésiduel au moins un état. Ainsi, le nombre d’états d’unautomate déterministe complet reconnaissant un langage estminoré par le nombre de résiduels (de ce fait, à un état n’estassocié qu’un seul résiduel). Donc l’automate des résiduels aun nombre minimal d’état.

14/29

Page 15: Théorie des Langages Formels Chapitre 5 : Automates minimaux

Automate minimal Automate des résiduels Test de minimalité Algorithme de Moore

Preuve de la proposition2. L’automate déterministe minimal complet reconnaissant L estl’automate des résiduels.

L’automate des résiduels est déterministe et complet : parconstruction, pour chaque état (un résiduel) on calcule unetransition et une seule par chaque lettre.L’automate des résiduels reconnaît le langage L.Idée : Si u = a1 . . . an est un mot, il existe un chemin(L0, a1, a−1

1 L),(a−1

1 L, a2, a−12 (a−1

1 L) = (a1a2)−1L),((a1a2)−1L, a3, (a1a2a3)−1L),. . . ,(a1a2a3 . . . an−1)−1L, an, (a1a2a3 . . . an−1an)−1Ldans l’automate des résiduels.

On a : a1 . . . an ∈ L si et seulement siε ∈ (a1a2a3 . . . an−1an)−1L.

15/29

Page 16: Théorie des Langages Formels Chapitre 5 : Automates minimaux

Automate minimal Automate des résiduels Test de minimalité Algorithme de Moore

Preuve de la propositionIl reste à vérifier que tout automate minimal déterministecomplet est isomorphe à l’automate des résiduels i.e. à unrenommage des états est l’automate des résiduels.

Soit donc un automate Aut ayant le même nombre d’états quel’automate des résiduels.

I On a vu que chaque résiduel est associé à un unique étatI Le résiduel par ε est nécessairement l’état initial.I Les états terminaux correspondent nécessairement aux

résiduels qui contiennent le mot vide.I Considérons à présent une transition (Li , a, Lj). Cette

transition existe puisque l’automate est complet et est uniquepuisque l’automate est déterministe. Par association deslangages aux état, aLj ⊆ Li et donc a−1Li ⊆ Lj . Soit v un motdans Lj , av est alors l’étiquette d’un chemin partant de Liallant dans un état final : av ∈ Li . Ainsi Lj ⊆ a−1Li . Donc lestransitions de l’automate Aut sont les mêmes que celles del’automate des résiduels.

16/29

Page 17: Théorie des Langages Formels Chapitre 5 : Automates minimaux

Automate minimal Automate des résiduels Test de minimalité Algorithme de Moore

Une manière de tester la minimalité

Idée : nous avons vu que, pour tout automate déterministe, toutétat était associé à un unique résiduel.Mais la réciproque n’est pas vraie : deux états peuvent être associésà un même résiduel. Si c’est le cas l’automate n’est pas minimal.

17/29

Page 18: Théorie des Langages Formels Chapitre 5 : Automates minimaux

Automate minimal Automate des résiduels Test de minimalité Algorithme de Moore

États séparés

Soit Aut =<A,Q, {d},F , δ> un automate fini déterministecomplet. Deux états s, t ∈ Q sont séparés par le mot u ∈ A∗ sil’une des deux conditions suivantes est vérifiée :

I u ∈ Ls=init et u 6∈ Lt=init ;I u 6∈ Ls=init et u ∈ Lt=init .

Autrement dit, deux états sont séparés par un mot si le cheminétiqueté par ce mot et partant de l’un des deux états aboutitdans un état d’acceptation, tandis que le chemin étiqueté parce mot et partant de l’autre état aboutit dans un état qui n’estpas d’acceptation.Exemple : < {a, b}, {1, 2, 3}, {1}, {2},{(1, a, 2), (1, b, 1), (2, a, 3), (2, b, 2), (3, a, 3), (3, b, 1)} >.Le mot vide sépare les états 1 et 2. Le mot aab ne les séparepas.

18/29

Page 19: Théorie des Langages Formels Chapitre 5 : Automates minimaux

Automate minimal Automate des résiduels Test de minimalité Algorithme de Moore

Test de minimalité

Proposition : Un automate déterministe complet est minimal si etseulement si pour tout couple d’états (p, q) il existe un mot quisépare p et q.

Conséquence :Le résultat précédent donne un moyen de montrer qu’unautomate est minimal. Il suffit d’exhiber pour chaque coupled’état (p, q) un mot qui les sépare.Par exemple, l’automate précédent est minimal : le mot videsépare les états 1 et 2 ; il sépare aussi les états 2 et 3 ; le motab sépare les états 1 et 3.

19/29

Page 20: Théorie des Langages Formels Chapitre 5 : Automates minimaux

Automate minimal Automate des résiduels Test de minimalité Algorithme de Moore

Équivalence de Nérode

Définition : Étant donnés un automate Aut, des états p et q et unentier n ≥ 0, notons :1. p ≡ q le fait que p et q ne sont séparés par aucun mot2. p ≡n q le fait que p et q ne sont séparés par aucun mot de

longueur inférieure ou égale à n.

La relation ≡ (définie sur les états de Aut) est appelée Relation deNérode.

Lemme : Étant donné un automate Aut, les relations ≡ et ≡n(pour tout entier n ≥ 0) sont des relations d’équivalence (i.e.réflexive, symétrique et transitive).

20/29

Page 21: Théorie des Langages Formels Chapitre 5 : Automates minimaux

Automate minimal Automate des résiduels Test de minimalité Algorithme de Moore

Partitionnement des états d’un automate

Lemme : Pour un automate de k états :

1. pour tout entier n ≥ 0, p ≡n+1 q si et seulement si p ≡n q etpour toute lettre a, δ(p, a) ≡n δ(q, a) ;

2. il existe un entier n avec 0 ≤ n ≤ k tel que ≡n=≡n+1 (i.e.pour tous états p et q, p ≡n q si et seulement si p ≡n+1 q) etpour tout entier m ≥ n, ≡m=≡n=≡ ;

3. Si ≡n=≡n+1 alors ≡n+1=≡n+2.

21/29

Page 22: Théorie des Langages Formels Chapitre 5 : Automates minimaux

Automate minimal Automate des résiduels Test de minimalité Algorithme de Moore

Algorithme de Moore

Donnée : un automate complet déterministe accessible

Résultat : l’équivalence de Nérode et l’automate minimalreconnaissant le langage reconnu par l’automate donné

Principe général : l’algorithme calcule lettre par lettre les motsséparant des états (il calcule donc les classes d’équivalences desrelations ≡n). Après examen de chaque longueur de mot possible,un bilan est fait : il consiste à attribuer un numéro (en chiffreromain) à chaque classe de ≡n.

22/29

Page 23: Théorie des Langages Formels Chapitre 5 : Automates minimaux

Automate minimal Automate des résiduels Test de minimalité Algorithme de Moore

Algorithme de Moore

Construire un tableau dont les colonnes sont les différentsétats de l’automate de départ.La première ligne de bilan s’obtient en séparant (par ε) lesétats d’acceptation et les autres en deux classes.

I Numéroter I l’état de la première colonne ;I Numéroter I ou II les états des autres colonnes de manière que

tous les états d’acceptation soient numérotés de la mêmemanière, et que tous les états non d’acceptation soientnumérotées de l’autre manière.

Les lignes suivantes du tableau sont construites une par une enregardant, pour chaque état, dans quel état mène la transitionpar une lettre de A et en notant la classe à laquelle appartientcet état dans la ligne bilan précédente. Cette opération estréalisée à raison d’une ligne par lettre de A.

23/29

Page 24: Théorie des Langages Formels Chapitre 5 : Automates minimaux

Automate minimal Automate des résiduels Test de minimalité Algorithme de Moore

Algorithme de Moore

Un nouveau bilan est effectué qui prend en compte le bilanprécédent et toutes les lignes que l’on vient de calculer : deuxcolonnes différentes donnent deux classes différentes. La ligneobtenue fait le bilan de tout ce qui précède et c’est avec elleque l’on recommence. Là encore, les classes sont numérotéesen chiffres romains à partir de la gauche.On répète les deux opérations qui précèdent jusqu’à obtenirdeux lignes de bilan successives identiques.

24/29

Page 25: Théorie des Langages Formels Chapitre 5 : Automates minimaux

Automate minimal Automate des résiduels Test de minimalité Algorithme de Moore

Algorithme de Moore

Les états de l’automate minimal complet sont les classes de ladernière ligne de bilan.Les transitions se trouvent dans le tableau entrel’avant-dernière et la dernière ligne de bilan.L’état de départ est la classe contenant l’état de départ del’automate déterministe.Les états d’acceptation sont les classes contenant des étatsd’acceptation de l’automate initial ; puisque ε sépare les étatsd’acceptation des autres, une classe ne contient soit que desétats d’acceptation, soit aucun état d’acceptation.

25/29

Page 26: Théorie des Langages Formels Chapitre 5 : Automates minimaux

Automate minimal Automate des résiduels Test de minimalité Algorithme de Moore

Exemple

0 2a

b

a 3

a

b

1

a

b

a

b

4

5

a

b

b

a

7

b

b

6a

26/29

Page 27: Théorie des Langages Formels Chapitre 5 : Automates minimaux

Automate minimal Automate des résiduels Test de minimalité Algorithme de Moore

Exemple

0 2a

b

a 3

a

b

1

a

b

a

b

4

5

a

b

b

a

7

b

b

6a

0 1 2 3 4 5 6 7ε I II II I I II I Ia II II I II II I II IIb II II II I I II I Ibilan I II III IV IV III IV IVa III III IV III III IV III IIIb II II III IV IV III IV IVbilan I II III IV IV III IV IV

On s’arrête car on a deux fois le même bilan. 27/29

Page 28: Théorie des Langages Formels Chapitre 5 : Automates minimaux

Automate minimal Automate des résiduels Test de minimalité Algorithme de Moore

Exemple : automate minimal0 1 2 3 4 5 6 7

ε I II II I I II I Ia II II I II II I II IIb II II II I I II I Ibilan I II III IV IV III IV IVa III III IV III III IV III IIIb II II III IV IV III IV IVbilan I II III IV IV III IV IV

I IIIa

b

b

II

a

b

a

IVa

b

28/29

Page 29: Théorie des Langages Formels Chapitre 5 : Automates minimaux

Automate minimal Automate des résiduels Test de minimalité Algorithme de Moore

Remarques

L’application de l’algorithme de Moore peut éventuellementmener à la conclusion que tous les états sont séparés. Celaconstitue une preuve que l’automate initial est minimal.Du point de vue complexité, il y a plus n étapes dansl’algorithme. Chaque étape fait un calcul en Θ(n × card(A))(si les transitions données par une table de transitions avecaccès direct). L’algorithme a une complexité en Θ(n2) (mais ilpeut être appliqué sur des automates très grand par exempleissus d’une déterminisation.

29/29