Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Algorithme de Brzozowski de minimisation d'un automate fini — Wikipédia
Algorithme de Brzozowski de minimisation d'un automate fini — Wikipédia 👆 Click Here! Read More..
Un article de Wikipédia, l'encyclopédie libre.
Article principal : Minimisation d'un automate fini déterministe.

En théorie des automates, et notamment des automates finis déterministes, l'algorithme de Brzozowski de minimisation d'un automate fini, publié par Janusz A. Brzozowski en 1963[1], est un algorithme de minimisation d'un automate fini fondé sur une double transposition et une double déterminisation.

L'algorithme est, avec l'algorithme de Moore et l'algorithme de Hopcroft, l'un des trois algorithmes principaux de minimisation d'un automate fini déterministe. Ce n'est pas le plus efficace, mais il est plus simple à expliquer. Il est remarquable que la minimisation se ramène ainsi à deux opérations conceptuellement très différentes : la transposition et la déterminisation.

Prérequis

[modifier | modifier le code]

Soit A = ( Q , F , I , T ) {\displaystyle {\mathcal {A}}=(Q,{\mathcal {F}},I,T)} {\displaystyle {\mathcal {A}}=(Q,{\mathcal {F}},I,T)} un automate fini (déterministe ou non déterministe), où I {\displaystyle I} {\displaystyle I} et T {\displaystyle T} {\displaystyle T} sont les ensembles d'états respectivement initiaux et terminaux et où F {\displaystyle {\mathcal {F}}} {\displaystyle {\mathcal {F}}} est l'ensemble des transitions, sur un alphabet fixé.

Automate transposé

[modifier | modifier le code]

L'automate transposé de A {\displaystyle {\mathcal {A}}} {\displaystyle {\mathcal {A}}} , noté t r ( A ) {\displaystyle tr({\mathcal {A}})} {\displaystyle tr({\mathcal {A}})}, est l'automate obtenu en inversant le sens des transitions, et en échangeant les états initiaux avec les états terminaux. Formellement, c'est l'automate défini par

t r ( A ) = ( Q , F R , T , I ) {\displaystyle tr({\mathcal {A}})=(Q,{\mathcal {F}}^{R},T,I)} {\displaystyle tr({\mathcal {A}})=(Q,{\mathcal {F}}^{R},T,I)},

où F R = { ( p , a , q ) ∣ ( q , a , p ) ∈ F } {\displaystyle {\mathcal {F}}^{R}=\{(p,a,q)\mid (q,a,p)\in {\mathcal {F}}\}} {\displaystyle {\mathcal {F}}^{R}=\{(p,a,q)\mid (q,a,p)\in {\mathcal {F}}\}}.

Automate déterminisé

[modifier | modifier le code]

L'automate déterminisé de A {\displaystyle {\mathcal {A}}} {\displaystyle {\mathcal {A}}}, noté det ( A ) {\displaystyle \det({\mathcal {A}})} {\displaystyle \det({\mathcal {A}})} [2], est l'automate déterministe, dont tous les états sont accessibles, équivalent à l'automate de départ A {\displaystyle {\mathcal {A}}} {\displaystyle {\mathcal {A}}}, obtenu par la procédure usuelle de construction par sous-ensembles.

Algorithme

[modifier | modifier le code]

L'algorithme de minimisation part d'un automate A {\displaystyle {\mathcal {A}}} {\displaystyle {\mathcal {A}}} reconnaissant un langage L {\displaystyle L} {\displaystyle L} (déterministe ou non) et construit l'automate

A ( L ) = det ( t r ⁡ ( det ( t r ⁡ ( A ) ) ) ) {\displaystyle {\mathcal {A}}(L)=\det(\operatorname {\,tr\,} (\det(\operatorname {\,tr\,} ({\mathcal {A}}))))} {\displaystyle {\mathcal {A}}(L)=\det(\operatorname {\,tr\,} (\det(\operatorname {\,tr\,} ({\mathcal {A}}))))}.

L'automate A ( L ) {\displaystyle {\mathcal {A}}(L)} {\displaystyle {\mathcal {A}}(L)} est l'automate déterministe minimal reconnaissant L {\displaystyle L} {\displaystyle L}.

L'algorithme de minimisation d'un automate fini A {\displaystyle {\mathcal {A}}} {\displaystyle {\mathcal {A}}} est donc en deux étapes :

  1. Calculer det ( t r ⁡ ( A ) ) {\displaystyle \det(\operatorname {\,tr\,} ({\mathcal {A}}))} {\displaystyle \det(\operatorname {\,tr\,} ({\mathcal {A}}))}, en transposant l'automate puis en le déterminisant, par la procédure usuelle par exemple, qui ne conserve que les états accessibles ;
  2. Répéter l'opération 1 sur l'automate det ( t r ⁡ ( A ) ) {\displaystyle \det(\operatorname {\,tr\,} ({\mathcal {A}}))} {\displaystyle \det(\operatorname {\,tr\,} ({\mathcal {A}}))} obtenu.

La première étape se fait à partir d'un automate fini A {\displaystyle {\mathcal {A}}} {\displaystyle {\mathcal {A}}} quelconque, déterministe ou non, la deuxième par contre prend en argument l'automate déterministe accessible complet det ( t r ⁡ ( A ) ) {\displaystyle \det(\operatorname {\,tr\,} ({\mathcal {A}}))} {\displaystyle \det(\operatorname {\,tr\,} ({\mathcal {A}}))}.

Complexité

[modifier | modifier le code]

La complexité en temps et en place de l'algorithme est exponentielle dans le pire des cas en fonction de la taille de l'automate de départ, car l'automate intermédiaire A ∼ {\displaystyle {\mathcal {A}}^{\sim }} {\displaystyle {\mathcal {A}}^{\sim }} peut être exponentiel. On pourrait penser que la complexité est doublement exponentielle puisqu'il y a deux déterminisations consécutives, mais ce n'est pas le cas : Le coût d’une déterminisation est en O ( | A | + | det ⁡ ( A ) | ) {\displaystyle O(|{\mathcal {A}}|+|\operatorname {det} ({\mathcal {A}})|)} {\displaystyle O(|{\mathcal {A}}|+|\operatorname {det} ({\mathcal {A}})|)}, l’automate intermédiaire t r ⁡ ( det ( t r ⁡ ( A ) ) ) {\displaystyle \operatorname {\,tr} (\det(\operatorname {\,tr} (A)))} {\displaystyle \operatorname {\,tr} (\det(\operatorname {\,tr} (A)))} est de taille O ( 2 n ) {\displaystyle O(2^{n})} {\displaystyle O(2^{n})}, l’automate final aussi, d’où une complexité totale en O ( 2 n ) {\displaystyle O(2^{n})} {\displaystyle O(2^{n})}. Un exemple où la borne est atteinte est fourni par le langage K n {\displaystyle K_{n}} {\displaystyle K_{n}} des mots de longueur au moins n {\displaystyle n} {\displaystyle n} sur un alphabet à deux lettres a {\displaystyle a} {\displaystyle a} et b {\displaystyle b} {\displaystyle b}, et dont la n {\displaystyle n} {\displaystyle n}-ième lettre est un a {\displaystyle a} {\displaystyle a}, en d'autres termes :

K n = { a , b } n − 1 a { a , b } ∗ {\displaystyle K_{n}=\{a,b\}^{n-1}a\{a,b\}^{*}} {\displaystyle K_{n}=\{a,b\}^{n-1}a\{a,b\}^{*}}.

Ce langage est reconnu par un automate à n + 1 {\displaystyle n+1} {\displaystyle n+1} états plus un état puits, mais son transposé, une fois déterminisé, requiert 2 n {\displaystyle 2^{n}} {\displaystyle 2^{n}} états[3].

Il a été observé[3] que l'algorithme semble donner des résultats meilleurs dans la pratique que l'on pourrait penser. Ceci pose la question de la complexité en moyenne de l’algorithme. Un article de De Felice et Nicaud[4],[5] apporte une réponse à cette question : l'algorithme de Brzozowski est génériquement super-polynomial. Ce terme technique signifie que la complexité en moyenne, et même que la complexité générique de l'algorithme est plus grande que tout polynôme. Le terme « complexité générique » signifie que l'on est autorisé à « ignorer », dans le calcul de la moyenne, un ensemble de cas particulièrement désavantageux, sous réserve que cet ensemble de cas soit de taille négligeable en un sens que l'on peut préciser.

Justification

[modifier | modifier le code]

L'énoncé précis qui justifie la construction est le suivant :

Proposition (Brzozowski) —  Soit A {\displaystyle {\mathcal {A}}} {\displaystyle {\mathcal {A}}} un automate fini déterministe accessible, et soit A ∼ = det ( t r ⁡ ( A ) ) {\displaystyle {\mathcal {A}}^{\sim }=\det(\operatorname {\,tr} ({\mathcal {A}}))} {\displaystyle {\mathcal {A}}^{\sim }=\det(\operatorname {\,tr} ({\mathcal {A}}))} l'automate fini déterministe complet accessible obtenu à partir de l'automate transposé par déterminisation et élimination des états inaccessibles. Alors l'automate A ∼ {\displaystyle {\mathcal {A}}^{\sim }} {\displaystyle {\mathcal {A}}^{\sim }} est minimal et reconnaît le langage miroir du langage reconnu par A {\displaystyle {\mathcal {A}}} {\displaystyle {\mathcal {A}}}.

La démonstration n’est pas très difficile : soit L {\displaystyle L} {\displaystyle L} le langage reconnu par l'automate déterministe complet A = ( Q , q 0 , T ) {\displaystyle {\mathcal {A}}=(Q,q_{0},T)} {\displaystyle {\mathcal {A}}=(Q,q_{0},T)} et soit t r ⁡ ( A ) = ( Q , T , q 0 , ) {\displaystyle \operatorname {\,tr} ({\mathcal {A}})=(Q,T,q_{0},)} {\displaystyle \operatorname {\,tr} ({\mathcal {A}})=(Q,T,q_{0},)} l'automate transposé reconnaissant M = L ∼ {\displaystyle M=L^{\sim }} {\displaystyle M=L^{\sim }}.

Pour prouver que A ∼ {\displaystyle {\mathcal {A}}^{\sim }} {\displaystyle {\mathcal {A}}^{\sim }} est minimal, on montre que si u − 1 M = v − 1 M {\displaystyle u^{-1}M=v^{-1}M} {\displaystyle u^{-1}M=v^{-1}M}, alors T ⋅ u = T ⋅ v {\displaystyle T\cdot u=T\cdot v} {\displaystyle T\cdot u=T\cdot v} dans l'automate A ∼ {\displaystyle {\mathcal {A}}^{\sim }} {\displaystyle {\mathcal {A}}^{\sim }}. Ceci prouve que A ∼ {\displaystyle {\mathcal {A}}^{\sim }} {\displaystyle {\mathcal {A}}^{\sim }} est isomorphe à l'automate minimal de M {\displaystyle M} {\displaystyle M}.

Soit p {\displaystyle p} {\displaystyle p} un état de T ⋅ u {\displaystyle T\cdot u} {\displaystyle T\cdot u}. Comme A {\displaystyle {\mathcal {A}}} {\displaystyle {\mathcal {A}}} est accessible, il existe un mot w {\displaystyle w} {\displaystyle w} tel que p ⋅ w = q 0 {\displaystyle p\cdot w=q_{0}} {\displaystyle p\cdot w=q_{0}} dans t r ⁡ ( A ) {\displaystyle \operatorname {\,tr} ({\mathcal {A}})} {\displaystyle \operatorname {\,tr} ({\mathcal {A}})}. On a donc u w ∈ M {\displaystyle uw\in M} {\displaystyle uw\in M} et aussi v w ∈ M {\displaystyle vw\in M} {\displaystyle vw\in M}. Comme A {\displaystyle {\mathcal {A}}} {\displaystyle {\mathcal {A}}} est déterministe, p {\displaystyle p} {\displaystyle p} est l'unique état tel que p ⋅ w = q 0 {\displaystyle p\cdot w=q_{0}} {\displaystyle p\cdot w=q_{0}} dans t r ⁡ ( A ) {\displaystyle \operatorname {\,tr} ({\mathcal {A}})} {\displaystyle \operatorname {\,tr} ({\mathcal {A}})}. Tout chemin de T {\displaystyle T} {\displaystyle T} vers q 0 {\displaystyle q_{0}} {\displaystyle q_{0}} étiqueté par v w {\displaystyle vw} {\displaystyle vw} passe par l'état p {\displaystyle p} {\displaystyle p}, et donc p ∈ T ⋅ v {\displaystyle p\in T\cdot v} {\displaystyle p\in T\cdot v}. Ceci montre que T ⋅ u ⊂ T ⋅ v {\displaystyle T\cdot u\subset T\cdot v} {\displaystyle T\cdot u\subset T\cdot v}. L'inclusion dans l’autre sens se montre de la même façon.

Notes et références

[modifier | modifier le code]
  1. ↑ Brzozowski 1963.
  2. ↑ Comme dans  : Benjamin Monmège et Sylvain Schmitz, « Notes de révision : : Automates et langages », Préparation à l’agrégation de mathématiques 2011–2012, sur Préparation en langages formels, LSV, ENS Cachan & CNRS (consulté le 8 juillet 2016).
  3. ↑ a et b Berstel et al. 2010.
  4. ↑ De Felice et Nicaud 2013.
  5. ↑ Felice et Nicaud 2016.

Bibliographie

[modifier | modifier le code]
  • Janusz A. Brzozowski, « Canonical regular expressions and minimal state graphs for definite events », Proceedings of the Symposium on Mathematical Theory of Automata, Polytechnic Institute of Brooklyn, April 1962, New York, Wiley,‎ 1963, p. 529-561 (lire en ligne)
  • Jacques Sakarovitch, Éléments de théorie des automates, Paris, Vuibert, 2003, 816 p. (ISBN 978-2-7117-4807-5, BNF 38989710, zbMATH 1188.68177)
  • Jean Berstel, Luc Boasson, Olivier Carton et Isabelle Fagnot, « Minimization of Automata », dans Automata: from Mathematics to Applications, European Mathematical Society, 2010 (arXiv 1010.5318)
  • Sven De Felice et Cyril Nicaud, « Brzozowski Algorithm Is Generically Super-Polynomial for Deterministic Automata », dans Marie-Pierre Béal et Olivier Carton (éditeurs), Developments in Language Theory - 17th International Conference, Springer-Verlag, coll. « Lecture Notes in Computer Science » (no 7907), 2013 (ISBN 978-3-642-38770-8, DOI 10.1007/978-3-642-38771-5_17), p. 179-190
  • (en) Sven De Felice et Cyril Nicaud, « Average Case Analysis of Brzozowski's Algorithm », International Journal of Foundations of Computer Science, vol. 27, no 02,‎ 2016, p. 109–126 (DOI 10.1142/S0129054116400025)


v · m
Automates finis et langages réguliers
Articles généraux
  • Théorie des automates
  • Automate fini
  • Machine abstraite
Automates finis
  • Automate fini déterministe
  • Automate fini inambigu
  • Automate fini non déterministe
  • Construction par sous-ensembles
  • Automate sur les mots infinis
Automates finis particuliers
  • Automate alternant
  • Automate bidirectionnel
  • Automate pondéré
  • Automate probabiliste
  • Automate quantique
  • Automate temporisé
  • Automate de Büchi
  • Automate de Muller
  • Modèle de Markov caché
  • Système de transition d'états
  • Structure de Kripke
  • Machine à états abstraits
  • Machine de Mealy
  • Machine de Moore
  • Transducteur fini
  • Automate séquentiel
Langages réguliers
  • Langage rationnel
  • Langage sans étoile
  • Langage local
  • Langage congruentiel
  • Langage stochastique
  • Lemme de l'étoile
  • Lemme d'Arden
  • ω-langage rationnel
Des automates aux langages
  • Expression régulière
  • Algorithme de Conway
  • Algorithme de McNaughton et Yamada
  • Méthode de Brzozowski et McCluskey
Des langages aux automates
  • Dérivée de Brzozowski
  • Algorithme de Thompson
  • Construction de Glushkov
  • Complexité en états
Minimisation
  • Théorème de Myhill-Nerode
  • Équivalence de Nerode
  • Minimisation d'un automate fini déterministe
  • Algorithme de Moore
  • Algorithme de Brzozowski
  • Algorithme de Hopcroft
Équivalences
  • Théorème de Kleene
  • Étoile de Kleene
  • Monoïde syntaxique
  • Théorème des variétés d'Eilenberg
  • icône décorative Portail de l'informatique théorique
Ce document provient de « https://fr.teknopedia.teknokrat.ac.id/w/index.php?title=Algorithme_de_Brzozowski_de_minimisation_d%27un_automate_fini&oldid=219189523 ».
Catégories :
  • Automates finis et langages réguliers
  • Théorie des automates
Catégories cachées :
  • Portail:Informatique théorique/Articles liés
  • Portail:Informatique/Articles liés
  • Portail:Mathématiques/Articles liés
  • Portail:Sciences/Articles liés

  • indonesia
  • Polski
  • الرية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصر
  • Nederlands
  • 本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українска
  • Tiếng Việt
  • Winaray
  • 中文
  • Русски
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id