UMLV 1 a = (Q, A, i, T, Q états ensemble fini A alphabet ensemble fini i état initial i Q T états terminaux T 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 0 1 2 4 1 1 1 1 1 3
30
Embed
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 ) =
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
UMLV
1
a = (Q, A, i, T,
Q états ensemble finiA alphabet ensemble fini i état initial i QT états terminaux T 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
0 1 2 4
1
1
1
1
1
3
UMLV
2
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
si un seul de q1 et q2 terminal alors« a1 et a2 non équivalents »
sinon {C1 classe(q1) ; C2 classe(q2) ;
si C1 C2 alors {
remplacer C1 et C2 par C1 C2 ; /* union disjointe */ pour chaque a A faire
Equiv( 1( q1, a), 2( q2, a)) ;}
}Fin
Temps O(card A . n . (n)) ( n = card Q1 + card Q2 )avec représentation des classes par type « UNION / CLASSE »
UMLV
23
Minimisation par équivalence
NoteSi l'un des automates est minimal, Equiv calcule la congrence syntaxique de l'autre.
5 6 7 a,b a
b a,b
a2 est minimalÉquivalence finale : 1 5 | 2 3 6 | 4 7
Congruence de a1 : 1 | 2 3 | 4
2 4
3
1
a
ba
a
b
a,b
b
24
UMLV
24
UMLV CLASSE / UNIONCLASSE / UNION
Gestion d’une partition de {1, 2, …, n} avec les opérations principales
CLASSE : numéro de classe d’un élémentUNION : 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
25
UMLV Par table simple
UNION des classes (disjointes) de p et q{ xCLASSE [p] ; y CLASSE [q] ;
pour k 1 à n fairesi CLASSE [k] = y alors
CLASSE [k] x ;}
TempsCLASSE : constantUNION : O(n)
CLASSE
1 2 3 4 5 6 7
1 1 3 3 5 5 7 représente {1,2} {3,4} {5,6} {7}
CLASSE
1 2 3 4 5 6 7
1 1 1 1 5 5 7 représente {1,2,3,4} {5,6} {7}
26
UMLV
26
UMLV Par arbres
partition {1,2,3,4} {5,6} {7}
CLASSE,TAILLE 1,4 5,2 7,1
arbres
CLASSE(i ){ki ; tant que P[k] défini faire k P[k] ;retour ( CLASSE[k] ) ;
}
71
2 3
4
5
6 P
1 2 3 4 5 6 7- 1 1 3 - 5 -
TempsCLASSE : O(n)UNION : constant
partition {1,2} {3,4} {5,6} {7}
CLASSE,TAILLE 1,2 3,2 5,2 7,1
arbres 71
2
3
4
5
6 P
1 2 3 4 5 6 7- 1 - 3 - 5 -
27
UMLV
27
UMLV Union des arbres
Éviter des arbres filiformes pour réduirele temps de calcul de CLASSE(i )
Stratégie pour UNION : toujours mettrele petit arbre enfant de la racine du gros
TempsCLASSE : O(logn)UNION : constant
Preuveniveau( i ) augmente de 1 quandunion de P et Q, card Pcard Q et iPi.e., quand la taille de la classe de i double au moinsCeci ne peut arriver que log2n fois au plus
petite classegrosse classe
1
2
n
28
UMLV
28
UMLV Compression de chemins
Idée : réduire le temps de calcul de CLASSE(i ) en « aplatissant » l'arbre à chaque calcul
après calculde CLASSE(7)
1
2 3
4 5
6 7 8
9 0
1
2 3
4
5
6
7
8 9 0
Temps de n calculs de CLASSE : O(n(n)) où (n) est le plus petit entier k tel que n2
Preuve [Aho, Hopcroft, Ullman, 1974]
2
2k fois
29
UMLV
29
UMLV Ackermann
fonction A : N x N N définie parA(0, y) = 1 y0A(1, 0) = 2A(x, 0) = x + 2 x 2A(x, y) = A(A(x-1, y), y-1) x, y 1
Propriétésy = 0 A(x, 0) = x+2 x 2
y = 1 A(x, 1) = 2.x x 1car A(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 = 2 A(x, 2) = 2x x 1car A(1,2) = A(A(0,2),1) = A(1,1) = 2