La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

UMLV 665 a = ( Q, A, i, T, Qétatsensemble fini Aalphabetensemble fini i état initiali Q Tétats terminauxT Q fonction de transition : Q x A Q L ( a ) =

Présentations similaires


Présentation au sujet: "UMLV 665 a = ( Q, A, i, T, Qétatsensemble fini Aalphabetensemble fini i état initiali Q Tétats terminauxT Q fonction de transition : Q x A Q L ( a ) ="— Transcription de la présentation:

1 UMLV 665 a = ( Q, A, i, T, Qétatsensemble fini Aalphabetensemble fini i état initiali Q Tétats terminauxT Q fonction de transition : Q x A Q L ( a ) = { x A*/ x étiquette d'un chemin de i à t T} L = { écritures en base 2 des multiples de 5 } Automates déterministes

2 UMLV 666 Algorithmes sur automates émondage calcul de L ( a ) expression rationnelle automate déterminisation minimisation tests « L ( a ) = ? » ou « L ( a ) = ? » Construction d un automate a tel que L ( a ) = L(B) L ( a ) = L(B) L(C) L ( a ) = L(B)... tester a = B test s équivalence : L ( a ) = L(B) ?...

3 UMLV 667 Représentation des automates Représentation de la fonction de transition par listes des flèches matrice d adjacence listes des successeurs table de transition

4 UMLV 668 Utilisation d un automate Test d appartenance de x à L ( a ), a = (Q, A, i, T, ) fonction reconnaît (mot x, automate (Q, A, i, T, ) ) : booléen; début p i ; tant que non fin de x faire { a lettre suivant de x ; p ( p, a ) ; } si p T retour vrai sinon faux ; fin reconnaissance de ( = ) a p

5 UMLV 669 a = ( Q, A, i, T, automate déterministe p QL(p) = L( (Q, A, p, T, ) ) Congruence syntaxique Soit E équivalence sur Q définie par (p,q) E L(p) = L(q) a / E automate minimal de L( a ). L(3) = L(4) = (A 2 ) L(1) = L(2) = A (A 2 ) Automate minimal a b b b a a a,b 1 a 2 bba

6 UMLV 670 Test de minimalité ? S il existe p,q tels que a A (p,a) = (q,a) alors a non minimal 2 et 3 équivalents Réciproque fausse ! Est-il plus facile de - tester si a est minimal que de - minimiser a ? b a a b a,b b a 2 4 3

7 UMLV 671 Lemme E est l'équivalence la plus grossière telle que : (p,q) E et p T q T compatibilité avec T (p,q) E ( (p,a), (q,a) ) E compatibilité avec F équivalence initiale = (T x T) U ( (Q -T) x (Q -T) ) E j équivalence : (p,q) E j pour tout u A j ( (p,u), (q,u)) F Lemme il existe k 0 E 0 = F > E 1 > … > E k = E k+1 = E Minimisation par partitionnement a b b b a a a,b

8 UMLV 672 j p E j équivalent à q p a b a a a b b b a b ab a a a ab a b bb b a ba b a b a b q a b a a a b b b a b ab a a a ab a b bb b a b a b a b a b

9 UMLV 673 Lemme de récurrence (p,q) E j+1 ssi a A ( (p,a), (q,a)) E j et (p,q) E j p E j -équiv. ab q ba j+1 E j -équiv.

10 UMLV 674 Calcul de la congruence syntaxique : raffiner F en utilisant la récurrence jusqu'à stabilisation F=E 0 :12345 |67 E 1: 123 |45 |67 E 2: 1 |2 |3 |45 |67 Automate minimal Algorithme de Moore a b a a b 6 7 a,b b 1 a b b a,b 2 3 4,56,7 a a,b

11 UMLV 675 Mise en œuvre 1 2 n 1 2 n Automate donné par a... z F Calcul de E j+1 à partir de E j E j E j ( (.,a) )... E j ( (.,z) ) E j+1 Calcul des lignes égales par tri lexicographique Temps de calcul pour chaque E j +1 O(n.card A) moins de n étapes O(n 2.card A)

12 UMLV 676 Calcul de E 1 E 0 E 0 ( (.,a)) E 0 ( (.,b)) E (.,a) (.,b) F=E a b a a b 6 7 a,b b

13 UMLV 677 Calcul de E 2 E 1 E 1 ( (.,a)) E 1 ( (.,b)) E E 0 E a b a a b 6 7 a,b b

14 UMLV 678 E E 1 E Calcul de E 3 E 2 E 2 ( (.,a)) E 2 ( (.,b)) autant de classes qu'avec E 2 E 2 = E 3 = E congruence syntaxique a b a a b 6 7 a,b b

15 UMLV 679 automate minimal : état = classe d'équivalence E a b b a,b 2 3 4,56,7 a a,b a b a a b 6 7 a,b b

16 UMLV 680 Égalité d automates Tester l'égalité des structures en construisant la bijection a b a a,b 5 8 b b a a b a a b a,b b

17 UMLV 681 a 1 = ( Q 1, A, i 1,T 1, 1 ) a 2 = ( Q 2, A, i 2, T 2, 2 ) Calcul de la bijection f entre Q 1 et Q 2 par la procédure bij bij (p, q) met en bijection p et q début bij (i 1, i 2 ) ; si les états sont en bijection par f et pour tout q 1, q 1 T 1 ssi f(q 1 ) T 2 alors « a 1 et a 2 sont égaux » ; fin Calcul de la bijection

18 UMLV 682 a 1 = ( Q 1, A, i 1,T 1, 1 ) a 2 = ( Q 2, A, i 2, T 2, 2 ) Test de bijection par calcul simultané de la fonction inverse : g = f -1 procédure bij (q 1, q 2 ) ; début si ( un seul de f(q 1 ) et g(q 2 ) défini ) ou ( f(q 1 ) et g(q 2 ) définis et f(q 1 ) q 2 ) alors « a 1 et a 2 non égaux » ; sinon si f(q 1 ) et g(q 2 ) non définis alors { f(q 1 ) q 2 ; g(q 2 ) q 1 ; pour chaque a A faire bij( 1 (q 1, a), 2 (q 2, a) ) ; } fin Calcul de la bijection

19 UMLV 683 Temps d exécution : O(cardA. min{cardQ 1, cardQ 2 }) s'étend à des automates non complets l algorithme précédent ne peut se passer de g ! a a b a,ba f

20 UMLV 684 Équivalence d automates Tester L ( a 1 ) = L( a 2 ) n = card Q 1 + card Q 2 si a 1 et a 2 minimaux L ( a 1 ) = L( a 2 ) ssi a 1 = a 2 par minimisation -- minimiser a 1 et a 2 -- puis tester a 1 = a 2 Temps (avec algorithme de Hopcroft) : O ( card A. n. logn ) test direct utilise la représentation d'ensembles avec opérations UNION / CLASSE Temps : O ( card A. n. (n) ) [ = logstar ]

21 UMLV 685 Exemple a 1 et a 2 équivalents i 1 et i 2 équivalents (dans union disjointe) Construction de l'équivalence : 1|2|3|4|5|6|7 15 | 2 | 3 | 4 | 6 | 7 15 | 2 6 | 3 | 4 | 7 15 | | 4 | 7 15 | | 4 7 a 1 et a 2 équivalents a b a a b a,b b a,ba b

22 UMLV 686 Algorithme procédure Equiv( q 1, q 2 ) ; début siun seul de q 1 et q 2 terminal alors « a 1 et a 2 non équivalents » sinon { C 1 classe(q 1 ) ; C 2 classe(q 2 ) ; si C 1 C 2 alors { remplacer C 1 et C 2 par C 1 C 2 ; /* union disjointe */ pour chaque a A faire Equiv ( 1 ( q 1, a), 2 ( q 2, a) ) ; } Fin Temps O ( card A. n. (n) ) ( n = card Q 1 + card Q 2 ) avec représentation des classes par type « UNION / CLASSE »

23 UMLV 687 Minimisation par équivalence Note Si l'un des automates est minimal, Equiv calcule la congrence syntaxique de l'autre a,ba b a 2 est minimal Équivalence finale : 1 5 | | 4 7 Congruence de a 1 : 1 | 2 3 | a b a a b a,b b

24 UMLV 688 UMLV CLASSE / UNION Gestion dune partition de {1, 2, …, n} avec les opérations principales CLASSE : numéro de classe dun élément UNION : union de classes disjointes Implémentations possibles 1. table simple 2. arbres 3. idem + compression de chemins Exemple n = 7 soit 1 2 ; {1, 2} {3} {4} {5} {6} {7} soit 5 6 ; {1, 2} {3} {4} {5, 6} {7} soit 3 4 ; {1, 2} {3, 4} {5, 6} {7} soit 1 4 ; {1, 2, 3, 4} {5, 6} {7} est-ce que 2 3 ? oui car 2 et 3 dans la même classe

25 UMLV 689 UMLV Par table simple UNION des classes (disjointes) de p et q { x CLASSE [p] ; y CLASSE [q] ; pour k 1 à n faire si CLASSE [k] = y alors CLASSE [k] x ; } Temps CLASSE : constant UNION : O(n) CLASSE représente {1,2} {3,4} {5,6} {7} CLASSE représente {1,2,3,4} {5,6} {7}

26 UMLV 690 UMLV Par arbres partition {1,2,3,4} {5,6} {7} CLASSE,TAILLE 1,4 5,2 7,1 arbres CLASSE( i ){ k i ; tant que P[k] défini faire k P[k] ; retour ( CLASSE [k] ) ; } P Temps CLASSE : O(n) UNION : constant partition {1,2} {3,4} {5,6} {7} CLASSE,TAILLE 1,2 3,2 5,2 7,1 arbres P

27 UMLV 691 UMLV Union des arbres Éviter des arbres filiformes pour réduire le temps de calcul de CLASSE( i ) Stratégie pour UNION : toujours mettre le petit arbre enfant de la racine du gros Temps CLASSE : O(logn) UNION : constant Preuve niveau( i ) augmente de 1 quand union de P et Q, card P card Q et i P i.e., quand la taille de la classe de i double au moins Ceci ne peut arriver que log 2 n fois au plus petite classe grosse classe 1 2 n

28 UMLV 692 UMLV Compression de chemins Idée : réduire le temps de calcul de CLASSE( i ) en « aplatissant » l'arbre à chaque calcul après calcul de CLASSE( 7 ) Temps de n calculs de CLASSE : O(n (n)) où (n) est le plus petit entier k tel que n 2 Preuve [Aho, Hopcroft, Ullman, 1974] 2 2 k fois

29 UMLV 693 UMLV Ackermann fonction A : N x N N définie par A(0, y) = 1y 0 A(1, 0) = 2 A(x, 0) = x + 2x 2 A(x, y) = A(A(x-1, y), y-1)x, y 1 Propriétés y = 0A(x, 0) = x+2x 2 y = 1A(x, 1) = 2.xx 1 carA(1,1) = A(A(0,1),0) = A(1,0) = 2 A(x,1) = A(A(x-1,1),0) = A(x-1,1)+2,... y = 2A(x, 2) = 2 x x 1 carA(1,2) = A(A(0,2),1) = A(1,1) = 2 A(x,2) = A(A(x-1,2),1) = 2.A(x-1,2),...

30 UMLV 694 UMLV y = 3A(x,3) = 2 « tour de 2 en x exemplaires » (n) = plus petit k tel que n A(k, 3) A(4,4) = « tour de 2 en exemplaires » si n raisonnable, (n) 4 2 2


Télécharger ppt "UMLV 665 a = ( Q, A, i, T, Qétatsensemble fini Aalphabetensemble fini i état initiali Q Tétats terminauxT Q fonction de transition : Q x A Q L ( a ) ="

Présentations similaires


Annonces Google