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