5. Equivalences d automates 5.1. Le problème du déterminisme 5.2. Différentes sortes d AEF 5.3. Déterminisation d un AEF 5.4. Déterminisation d un AEF avec ɛ-transitions 5.5. Minimisation d un AEF déterministe Anne Berry, 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 δ(q 0, 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 A 1 = (Q, Σ, δ, q 0, F ) sans ɛ-transition. On calcule un automate d états finis déterministe A 2 = (Q, Σ, δ, Q 0, F ), avec Q 0 = {q 0} 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 δ : 1 On construit la table de transition de δ (qui comporte des ensembles d états) 2 Initialisation de δ - on commence par Q 0 ={q 0} - on applique chaque caractère x de Σ à Q 0 - on obtient un ensemble d états qui est sera état de Q 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 δ - on choisit un état Q de Q non encore traité - on applique chaque caractère x de Σ chaque état de Q avec δ - on obtient un ensemble d états 1 si cet ensemble ne correspond pas à un été déjà défini de Q, on crée un nouvel état (final) de Q 4 les états finaux de A 2 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 A 1 = (Q, Σ, δ, q 0, F ) Resultat : un automate déterministe A 2 = (Q, Σ, δ, Q 0, F ). Initialisation : Q 0 {q 0};ATRAITER Q 0 = {q 0} ; Q {Q 0 } ; tant que ATRAITER faire CHOISIR Q dans ATRAITER ; ATRAITER ATRAITER - Q ; pour chaque caractère x de Σ faire pour chaque état Q de Q faire δ (Q, x) δ (Q, x) δ(q, x) ; si δ (Q, x) n est pas un état de Q alors Q δ (Q, x) ; Q Q + {Q } ; ATRAITER ATRAITER + {Q } ; pour chaque état Q de Q contenant un état de F faire AJOUTER Q à F ; Retourner((Q, Σ, δ, Q 0, F )). 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} δ a b c q 0 {q 1,q 3 } { } { } q 1 { } {q 2 } { } q 2 { } { } { } q 3 { } { } {q 4 } q 4 { } { } { } Anne Berry, Cours de Théorie des Langages Partie 1 : 5. Equivalences d automates 13/34
5.3. Déterminisation d un AEF sans ɛ-transition Initialisation : Q 0 = {q 0} δ (Q 0, a) = {q 1, q 3 } : on crée un nouvel état Q 1 = {q 1, q 3 } δ (Q 0, b) = { } ; δ (Q 0, 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 Q 1 = {q 1, q 3 } qui n est pas traité : δ (Q 1, a) = δ (Q 0, b) = {q 2} : on crée un nouvel état Q 2 = {q 2} δ (Q 0, c) = {q 4} : on crée un nouvel état Q 3 = {q 4} 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 Q 2 = {q 2} : δ (Q 2, a) = δ (Q 2, b) = δ (Q 2, c) = On traite l état Q 3 = {q 4} : δ (Q 3, a) = δ (Q 3, b) = δ (Q 3, c) = Etats finaux : Q 2 parce qu il contient q 2, et Q 3 parce qu il contient q 4. 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 : δ a b c q 0 {q 1,q 3 } { } { } q 1 { } {q 2 } { } q 2 { } { } { } q 3 { } { } {q 4 } q 4 { } { } { } δ a b c Q 0 ={q 0} {q 1,q 3 }=Q 1 { } { } Q 1 ={q 1,q 3 } { } {q 2 }=Q 2 {q 4 }=Q 3 Q 2 =q 2 { } { } { } Q 3 =q 4 { } { } { } Anne Berry, 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 2 k é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 δ (Q i, 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 q i 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(q 0 ) = {q 0, q 1, q 2 } ɛ-fermeture(q 1 ) = {q 1, q 2 } ɛ-fermeture(q 2 ) = {q 2 } 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 de l AEF déterministe en cours de calcul : 1 On part de l ɛ-fermeture de Q. 2 On calcule δ(q ) 3 On calcule l ɛ-fermeture de δ(q ) 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 : δ a b c ɛ q 0 {q 0 } { } { } {q 0,q 1,q 2 } q 1 { } {q 1 } { } {q 1,q 2 } q 2 { } { } {q 2 } {q 2 } Construction de δ, Q 0 =ɛ-fermeture(q 0)={q 0,q 1,q 2 } 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 δ a b c Q 0 = {q 0, q 1, q 2 } {q 0 } Q 0 {q 1 } {q 1,q 2 }=Q 1 {q 2 } {q 2 }= Q 1 = {q 1, q 2 } { } {Q 1 } {Q 2 } Q 2 = {q 2} { } { } {Q 2 } Anne Berry, Cours de Théorie des Langages Partie 1 : 5. Equivalences d automates 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 les états finaux 2 les états non finaux (y compris l état poubelle ) Anne Berry, 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 C i : 1 appliquer à C i une transition par un caractère x de Σ ; 2 séparer les éléments de C i 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 C i obtenue : x Σ, q, q C i, δ(q, x) = δ(q, x) On obtient la description d un nouvel AEF déterministe, dont l état initial est l état contenant q 0 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 C 1 = {q 3, q 4 } et C 2 = {q 0, q 2, } (C 1, a), (C 1, b), (C 1, c), (C 2, a) C 2 C 2, b : (q 0, b) C 2, (q 2, b) C 1, (q 2, c) C 1 On sépare C 2 = {q 0, q 2 } en C 2 = {q 0, } et C 2 = {q 2} 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 A 1 = (Q, Σ, δ, q 0, F ) Resultat : l automate déterministe minimum A 2 = (Q, Σ, δ, Q 0, F ). Initialisation : C {Q F, F } ; b 1 ; SUPPRIMER de A 1 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 ; δ fonction de passage d une classe de C à une autre ; F ensemble des classes de C classes contenant au moins un état de F ; Retourner(C, Σ, δ, q 0, F ). 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