1/2 Théorie des Lngges Formels Chpitre 4 : Automtes complets déterministes Florence Levé Florence.Leve@u-picrdie.fr Année 2015-2016
2/2 Introduction 4 5 6 7 8 9 10 11 12 Recherche de :,
/2 Automte déterministe Automte déterministe. Un utomte est déterministe si et seulement si les deux conditions suivntes sont vérifiées : 1. L utomte possède un et un seul étt initil ; 2. Pour chque étt q et pour chque lettre α, il existe u plus une trnsition issue de q d étiquette α. Qund un utomte est déterministe, l ensemle des trnsitions est souvent vu comme une fonction de Q A dns Q. L ensemle des trnsitions est lors présenté sous forme d un tleu à deux dimensions. On note lors δ(q, ) l étt q (s il existe) tel que (q,, q ) est une trnsition.
4/2 Exemples
4/2 Exemples
4/2 Exemples
4/2 Exemples Le troisième utomte est déterministe, mis ps complet.
5/2 Automte complet Définition. Un utomte est complet si pour chque étt q et pour chque lettre α, il existe u moins une trnsition issue de q étiquetée pr α. Ett puits. Pour un utomte complet, on ppelle étt puits, tout étt e non terminl tel que pour toute trnsition (e, α, f ), e = f. Algorithme de complétion. Pour rendre un utomte complet : Ajouter un étt puits P ; Ajouter pour chque étt q, et chque lettre α, une trnsition (q, α, P) s il n existe ps déjà une trnsition prtnt de q pr l lettre α. Pour chque lettre α, jouter l trnsition (P, α, P). Remrque : L complétion ne chnge ni le lngge reconnu, ni le déterminisme éventuel de l utomte.
6/2 Exemple
6/2 Exemple P
6/2 Exemple, P
6/2 Exemple,, P
6/2 Exemple,, P Attention : P n est ps un étt d ccepttion!!
6/2 Exemple,, P Attention : P n est ps un étt d ccepttion!! Remrque : un utomte peut être non déterministe mis complet.
7/2 Déterministion (méthode des sous-ensemles) Pour tout utomte fini Aut = <A, Q, D, F, δ >, l utomte Aut d suivnt est déterministe complet et reconnît le même lngge que Aut : Aut d =<A, Q d, D d, F d, δ d > où Qd = 2 Q i.e. les étts de Aut d sont les prties (sous-ensemles) de Q ; Dd = {D} i.e. D d ne contient qu un étt qui est l ensemle des étts initiux de Aut ; F d = {P Q d P F } i.e. est étt d ccepttion toute prtie de Q qui contient u moins un étt d ccepttion de Aut ; δd = {(P, α, P ) P, P Q d, α A tels que P = {q (q, α, q ) δ, q P}} i.e. l unique trnsition dns Aut d qui prt de P Q d étiquetée pr l lettre α mène dns l ensemle P qui est l ensemle des étts de Aut qu on peut tteindre pr une trnsition étiquetée pr α en prtnt d un étt de P.
8/2 Pourquoi ç mrche? On vérifie isément que l utomte construit est déterministe et complet. Propriété : si P et P sont deux ensemles d étts de Q (deux étts de Q d ), il existe un chemin prtnt de P outissnt en P étiqueté pr un mot u si et seulement s il existe un étt p dns P, un étt p dns P tels qu il existe un chemin dns Aut prtnt de p rrivnt dns p d étiquette u. Se démontre pr récurrence sur u. D où l églité des lngges. Remrque : l utomte construit n est en générl ps émondé.
Construction de l tle de trnsitions Donnée : un utomte Aut = <A, Q, D, F, δ > Résultt : l tle de trnsitions de l utomte ccessile de Aut d. 1. Définir un tleu à deux dimensions ynt une colonne de plus que de lettres dns l lphet. 2. Étiqueter l première colonne étts (les vleurs dns cette colonne qui seront les étts de l utomte déterministe, étiquetteront les lignes).. Étiqueter les utres colonnes pr les lettres de l lphet. 4. Plcer sur une première ligne en première colonne, l ensemle des étts de déprt de Aut. 5. Tnt qu u moins une cse du tleu n est ps remplie : choisir une cse à remplir : notons P l ensemle d étts de Aut figurnt en première colonne de l ligne de cette cse, et notons α l lettre étiquetnt l colonne de l cse ; clculer l vleur de l cse : δ(p, α) ; si ucune ligne n est ssociée à cette vleur, commencer une nouvelle ligne étiquetée pr cette vleur. 9/2
10/2 Clcul de l utomte déterministe complet Donnée : un utomte Aut = <A, Q, D, F, δ >, Résultt : construit l utomte ccessile Aut de l utomte Aut d. Émonder l utomte Aut. Appliquer l lgorithme précédent de construction de l tle de trnsitions. à l fin de cet lgorithme, sont connus l lphet de Aut (c est A), les étts de Aut (ce sont les étts qui pprissent dns l première colonne de l tle), les trnsitions de Aut (elles se lisent dns l tle). Mrquer l étt initil de Aut : il s git de l étt sur l première ligne de l tle ; le mrquer visuellement pr une flèche juste devnt l étt de l tle. Déterminer et mrquer les étts terminux de Aut : pour le mrquge mettre une flèche devnt chque étt concerné (si l étt initil est ussi terminl, on pourr remplcer l flèche pr une flèche )
11/2 Exemple L utomte est émondé.
12/2 Exemple : clcul de l tle de trnsition
12/2 Exemple : clcul de l tle de trnsition 1. Définir un tleu à deux dimensions ynt une colonne de plus que de lettres dns l lphet.
12/2 Exemple : clcul de l tle de trnsition 2. Étiqueter l première colonne étts. étts
12/2 Exemple : clcul de l tle de trnsition. Étiqueter les utres colonnes pr les lettres de l lphet. étts
12/2 Exemple : clcul de l tle de trnsition 4. Plcer sur une première ligne en première colonne, l ensemle des étts de déprt de Aut. étts {1,}
12/2 Exemple : clcul de l tle de trnsition 5. Tnt qu u moins une cse du tleu n est ps remplie : choisir une cse à remplir et clculer s vleur δ(p, α) ; si ucune ligne n est ssociée à cette vleur, commencer une nouvelle ligne étiquetée pr cette vleur. étts {1, }
12/2 Exemple : clcul de l tle de trnsition 5. Tnt qu u moins une cse du tleu n est ps remplie : choisir une cse à remplir et clculer s vleur δ(p, α) ; si ucune ligne n est ssociée à cette vleur, commencer une nouvelle ligne étiquetée pr cette vleur. étts {1, } {1, 2}
12/2 Exemple : clcul de l tle de trnsition 5. Tnt qu u moins une cse du tleu n est ps remplie : choisir une cse à remplir et clculer s vleur δ(p, α) ; si ucune ligne n est ssociée à cette vleur, commencer une nouvelle ligne étiquetée pr cette vleur. étts {1, } {1, 2} {1, 2}
12/2 Exemple : clcul de l tle de trnsition 5. Tnt qu u moins une cse du tleu n est ps remplie : choisir une cse à remplir et clculer s vleur δ(p, α) ; si ucune ligne n est ssociée à cette vleur, commencer une nouvelle ligne étiquetée pr cette vleur. étts {1, } {1, 2} {1, 2}
12/2 Exemple : clcul de l tle de trnsition 5. Tnt qu u moins une cse du tleu n est ps remplie : choisir une cse à remplir et clculer s vleur δ(p, α) ; si ucune ligne n est ssociée à cette vleur, commencer une nouvelle ligne étiquetée pr cette vleur. étts {1, } {1, 2} {1, 2}
12/2 Exemple : clcul de l tle de trnsition 5. Tnt qu u moins une cse du tleu n est ps remplie : choisir une cse à remplir et clculer s vleur δ(p, α) ; si ucune ligne n est ssociée à cette vleur, commencer une nouvelle ligne étiquetée pr cette vleur. étts {1, } {1, 2} {1, 2} {2}
12/2 Exemple : clcul de l tle de trnsition 5. Tnt qu u moins une cse du tleu n est ps remplie : choisir une cse à remplir et clculer s vleur δ(p, α) ; si ucune ligne n est ssociée à cette vleur, commencer une nouvelle ligne étiquetée pr cette vleur. étts {1, } {1, 2} {1, 2} {2} {2}
12/2 Exemple : clcul de l tle de trnsition 5. Tnt qu u moins une cse du tleu n est ps remplie : choisir une cse à remplir et clculer s vleur δ(p, α) ; si ucune ligne n est ssociée à cette vleur, commencer une nouvelle ligne étiquetée pr cette vleur. étts {1, } {1, 2} {1, 2} {2} {1, } {2}
12/2 Exemple : clcul de l tle de trnsition 5. Tnt qu u moins une cse du tleu n est ps remplie : choisir une cse à remplir et clculer s vleur δ(p, α) ; si ucune ligne n est ssociée à cette vleur, commencer une nouvelle ligne étiquetée pr cette vleur. étts {1, } {1, 2} {1, 2} {2} {1, } {2}
12/2 Exemple : clcul de l tle de trnsition 5. Tnt qu u moins une cse du tleu n est ps remplie : choisir une cse à remplir et clculer s vleur δ(p, α) ; si ucune ligne n est ssociée à cette vleur, commencer une nouvelle ligne étiquetée pr cette vleur. étts {1, } {1, 2} {1, 2} {2} {1, } {2} {1, }
12/2 Exemple : clcul de l tle de trnsition 5. Tnt qu u moins une cse du tleu n est ps remplie : choisir une cse à remplir et clculer s vleur δ(p, α) ; si ucune ligne n est ssociée à cette vleur, commencer une nouvelle ligne étiquetée pr cette vleur. étts {1, } {1, 2} {1, 2} {2} {1, } {2} {1, }
12/2 Exemple : clcul de l tle de trnsition 5. Tnt qu u moins une cse du tleu n est ps remplie : choisir une cse à remplir et clculer s vleur δ(p, α) ; si ucune ligne n est ssociée à cette vleur, commencer une nouvelle ligne étiquetée pr cette vleur. étts {1, } {1, 2} {1, 2} {2} {1, } {2} {1, }
1/2 Exemple : mrquer l étt initil étts {1, } {1, 2} {1, 2} {2} {1, } {2} {1, }
14/2 Exemple : mrquer les étts d ccepttion étts {1, } {1, 2} {1, 2} {2} {1, } {2} {1, }
15/2 Exemple : l utomte déterministe correspondnt étts {1, } {1, 2} {1, 2} {2} {1, } {2} {1, } {1,} {1,2}, {2}
16/2 Complexité L déterministion est une opértion fondmentlement exponentielle. En effet, il existe des utomtes non déterministes, pour lesquels tout utomte déterministe reconnissnt le même lngge contient un nomre exponentiel d étt. Pr exemple, pour n entier, le lngge ( + ) ( + ) n 1 des mots sur {, } dont l n-ième lettre vnt l fin est un est reconnu pr un utomte non déterministe à n + 1 étts (Q = {0,..., n}, D = {0}, F = {n}, δ = {(0,, 0), (0,, 0), (0,, 1)} {(i 1,, i), (i 1,, i) i {1,..., n}}), mis tout utomte déterministe doit contenir u moins 2 n étts (il fut un étt pour le mot vide et un étt pour chque mot de l forme u vec u n pour chque mot de longueur u plus n 1). Tester si un utomte est déterministe peut se fire en temps polynômil.
17/2 Utilistion d utomtes déterministes : complémenttion Complémenttion Soit Aut = <A, Q, {d}, F, δ > un utomte fini déterministe complet reconnissnt un lngge L. Le lngge A \ L (complémentire de L dns A ) est reconnu pr l utomte Aut = <A, Q, {d}, Q \ F, δ >. Aucune trnsition n ynt été enlevée ou joutée, cet utomte est églement déterministe complet.
18/2 Remrques Le fit que l utomte soit ici déterministe est fondmentl. Exemple : A = {}, Q = {1, 2, }, D = {1}, F = {2}, δ = {(1,, 1), (1,, 2), (2,, )}. Cet utomte reconnît +. Si on prend F = {1, } on otient un utomte qui reconnît et non {ε} le complémentire ttendu. Le fit que l utomte soit ici complet est églement fondmentl (ici l lphet de référence joue églement un rôle cpitl). Exemple : A = {, }, Q = {1} = D = F, δ = {(1,, 1)}. L complémenttion v reconnître l ensemle vide et non tous les mots contennt u moins un. Tous les étts de l utomte résultt ne seront ps nécessirement co-ccessiles même s ils l étient u déprt.
19/2 Complexité Étnt donné un utomte de n étts, l complexité de l complémenttion est en O(n) si on ne fit ps une copie de l utomte. Elle est en O(n 2 ) sinon.
20/2 Utilistion pour l intersection Étnt donnés deux utomtes reconnissnt des lngges L 1 et L 2, existe-t-il un lgorithme qui permet de construire un utomte reconnissnt l intersection L 1 L 2? Oui! Cel peut se fire vec des utomtes déterministes, en otennt un utomte déterministe. L idée est de suivre simultnément des chemins dns les deux utomtes. L même technique permet de construire un utomte déterministe reconnissnt l union de deux lngges reconnus pr des utomtes déterministes.
21/2 Union et intersection déterministe Soient Aut 1 = <A, Q 1, {d 1 }, F 1, δ 1 > et Aut 2 = <A, Q 2, {d 2 }, F 2, δ 2 > deux utomtes finis déterministes complets reconnissnt les lngges L 1 et L 2. Les lngges L 1 L 2 et L 1 L 2 sont respectivement reconnus pr les utomtes finis déterministes complets et où : Aut = <A, Q 1 Q 2, {(d 1, d 2 )}, F, δ > Aut = <A, Q 1 Q 2, {(d 1, d 2 )}, F, δ > δ = {((p1, p 2 ),, (q 1, q 2 )) (p 1,, q 1 ) δ 1, (p 2,, q 2 ) δ 2 } ; F = F 1 F 2 (un mot est dns L 1 L 2 s il est ccepté pr Aut 1 et Aut 2 ) ; F = (F 1 Q 2 ) (Q 1 F 2 ) (un mot est dns L 1 L 2 s il est ccepté pr Aut 1 ou Aut 2 ).
22/2 Remrques Là encore, le fit que les utomtes soient complets est cpitl pour l union. Pour l union, l utomte plus d étt que pour l union non déterministe vue précédemment. Tous les étts de l utomte d union (et fortiori pour l intersection) ne sont ps nécessirement ccessiles et co-ccessiles. Si n 1 et n 2 sont les nomres d étts respectifs du premier et du deuxième utomte, lors les lgorithmes précédents sont en O(n 2 1 n2 2 ).
2/2 Conséquences Proposition : L fmille des lngges rtionnels (resp. reconnissles) est close pr intersection et complémenttion. L 1 \ L 2 = L 1 (A \ L 2 ). L 1 \ L 2 est clculle pr les lgorithmes précédents. L proposition précédente explique l usge d expressions régulières étendues dns les logiciels vec possiilité d intersection et de complémenttion Cel permet une plus grnde fcilité d expression Pr exemple, pour les identifints de vriles, il est plus fcile d exclure tous les mots clefs plutôt que de prévoir directement une expression rtionnelle ou un utomte représentnt le lngge