Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parEmma Thiery Modifié depuis plus de 9 années
1
Structures de données avancées : Concepts du Multidimensionnel D. E ZEGOUR Institut National d ’Informatique
2
Concept du multidimensionnel Les méthodes traditionnelles Utilisent les listes inversées Autant d'indexes secondaires que d'attributs Coûteuses pour les grands fichiers Les méthodes modernes N'utilisent pratiquement pas d'index Utilisent le concept des tableaux extensibles Visent un accès disque
3
Concept du multidimensionnel Terminologie Article = ( k 1, k 2,...k d ) d attributs A 1, A 2,......, A d, d est la dimension Généralement, une clé primaire (k 1 ) et d-1 clés secondaires (k 2, K 3,...K d ) K i appartient à un domaine D i Article = point de l'espace d-dimensionnel D 1 X D 2 X....XD d
4
Concept du multidimensionnel Terminologie Requête exacte (Exact match query ) Tous les attributs sont spécifiés ( Articles avec A 1 =k 1, A 2 =k 2,....A d =K d ) Requête partielle (Partial match query ) Quelques attributs sont spécifiés Requête par intervalle ( Region query ) Un intervalle est spécifié pour chaque attribut.
5
Concept du multidimensionnel Représentation d'un tableau statique Déclaration : A(a 1 :b 1 ; a 2 :b 2 ;......a n :b n ) Ordre de rangement des sous tableaux A(i, *, *,..., *) : A(a 1, *, *,..., *), A(a 1 +1, *, *,..., *), A(a 1 +2, *, *,..., *),........., A(b 1, *, *,..., *)
6
Concept du multidimensionnel Représentation d'un tableau statique A l'intérieur de chaque sous tableau A(i, *, *,...., *), l'ordre suivant des sous sous-tableaux est considéré : A(i, a 2, *, *,..., *), A(i, a 2 +1, *, *,..., *), A(i, a 2 +2, *, *,..., *),......, A(i, b 2, *, *,..., *) Et ainsi de suite... Donc rangement de la matrice ligne par ligne. Ce sont les derniers indices qui varient le plus rapidement.
7
Concept du multidimensionnel Exemple pour un tableau A(3, 2, 3)
8
Concept du multidimensionnel Adresse d'un élément A(i 1, i 2.., i n ) ? Posons d i = b i - a i + 1 Adr de A(i 1, *, *,....) : AD 1 = Base + (i 1 -a 1 ) d 2 d 2...d n Adr de A(i 1, i 2, *,...., *) : AD 2 = AD 1 + (i 2 -a 2 )d 3 d 4...d n Adr de A(i 1, i 2,...i n ) : AD n = Base + (i 1 -a 1 )d 2 d 3..d n + (i 2 -a 2 )d 3 d 4...d n +....+(i n-1 -a n-1 )d n + (i n -a n ) Partie constante : Base -(a 1 i=2,n d i + a 2 i=3,n d i +...+a n-1 d n + a n ) Partie variable : i n i=2,n d i + i 2 i=3,n d i +...+ i n-1 d n + i n
9
Concept du multidimensionnel Adresse d'un élément A(i 1, i 2.., i n ) ? Si a 1 = a 2 =...... = a n = 0, l‘adresse de A(i 1, i 2,...i n ) est i 1 d 2 d 3..d n + i 2 d 3 d 4...d n +....+i n-1 d n + i n Ou bien : j=1,n ( i j. i=j+1,n d i )
10
Concept du multidimensionnel Tableaux extensibles : définition, notations Tableau A[0:U 1, 0:U 2,....,0:U k ], U i variable A[j 1, j 2,...j k ] représente un élément du tableau. Chaque j i est dans l'intervalle [0..U i ] Le tableau est représenté en mémoire de manière contiguë M[0..V] V = i=1,k [ ( U i + 1) ] - 1 L'état initial U i est 0 pour tout i dans {1, 2,...,k) A[0, 0,...] a comme image M[0].
11
Concept du multidimensionnel Tableaux extensibles : fonction d’allocation Un schéma d'allocation du tableau A est une fonction bijective Loc : N k ---> N telle que (i) Loc( ) = 0 (ii) Loc( ) ) ssi pour i k, a t = b t pour 1 t < i et a i < b i sinon
12
Concept du multidimensionnel Représentation d’un tableau extensible à K dimensions (KDEA : K-Dimensional Extensible Array ) Utilisation d’un tableau d'index : IXA[0:X, 1..K, 1..K) Première dimension : évolution des indices Deuxième dimension : 1 tableau par dimension Troisième dimension : base et facteur multiplicatif pour chaque dimension X = Max (U 1, U 2,....,U k ) Remarque : IXA peut être vu comme K distinct 2-dimensionnel tableaux B i [0..U i, 1..k] avec i=1, k.
13
Concept du multidimensionnel Exemple Mécanisme d'expansion dans le cas d'un 2DEA a travers les changements d'état suivants: ( U 1, U 2 ) = (0, 0), (0, 1), (0, 2), (1, 2), (2, 2), (2, 3), (3, 3), (3, 4)
14
Concept du multidimensionnel Illustration du principe d'expansion : Ajouter une colonne au tableau qui occupe 4 X 5 = 20 éléments, adressé de 0 à 19. La nouvelle colonne doit occuper 4 éléments à partir de l'Adresse 20. L‘adresse d'un élément A(i, j) de cette colonne est calculée en ajoutant l'indice ligne (i) à 20 cad A(i, j) = 20 + i (Ex:A(2, 5) = 22 ) Nous devons donc enregistrer le fait que l'Adresse début de chaque élément de la colonne 5 est 20. On range donc 20 dans B2[5,2]. De la même façon, si nous ajoutons la 5ième ligne, nous enregistrons l'Adresse début 24 dans B1[4, 1]. B1 B2
15
Concept du multidimensionnel Comment calculer l‘adresse d'un élément arbitraire soit A (1, 5) ? Est-ce que A(1, 5) appartient à une ligne ou une colonne? Si A(1, 5) a été ajouté à la ligne 1, B2 (5,2) devrait avoir une valeur inférieure à l‘adresse début de la ligne 1 qui est B1 (1, 1). Donc il suffit de prendre le Max entre B2(5,2) et B1 (1,1). B1 B2
16
Concept du multidimensionnel Procédure d'allocation Étendre(t) : t index, t =1, k 1. Étendre B t [0:U t, 1..K] à B t [0:U t + 1, 1..K ] 2. U t <--- U t + 1 3. B t [U t +1,t] := (U t +1)* r=1, k et r # t. (U r + 1) [base] B t (U t +1, q] := r=q+1,..., k et r # t ( U r + 1) [facteurs multiplicatifs] q=1, K et q <> t.
17
Concept du multidimensionnel Fonction d'accès: Adresse de A(j 1, j 2,..., j k ) ? 1. Déterminer l'indice t tel que B t [j t, t] := Max { B i [j i, i], i=1,..,K } 2. Adresse :=B t [j t,t]+ r = 1,...,K et r # t ( B t [j t, r] * j r )
18
Concept du multidimensionnel Calcul des adresses Adr(0,0)=0Adr(0,1)=3 Adr(0,2)=6 Adr(0,3)=12 Adr(0,4)=24 Adr(1,0)=1 Adr(1,1)=4Adr(1,2)=7 Adr(1,3)=13Adr(1,4)=25 Adr(2,0)=2Adr(2,1)=5 Adr(2,2)=8Adr(2,3)=14 Adr(2,4)=26Adr(3,0)=9 Adr(3,1)=10Adr(3,2)=11 Adr(3,3)=15Adr(3,4)=27 Adr(4,0)=16Adr(4,1)=17 Adr(4,2)=18Adr(4,3)=19 Adr(4,4)=28Adr(5,0)=20 Adr(5,1)=21Adr(5,2)=22 Adr(5,3)=23Adr(5,4)=29 Exemple 1 : k=2 ; E= 1, 1, 2, 2, 1, 2, 1, 1, 2 Contenu des tables : B1: 1 : 0 1 2 9 16 20 2 : 1 1 1 1 1 1 B2: 1 : 1 1 1 1 1 2 : 0 3 6 12 24
19
Concept du multidimensionnel Exemple 2 k=3; E=1, 2, 3, 1, 2, 3, 1, 2, 3 Contenu des tables : B1: 1 : 0 1 8 27 2 : 1 1 2 3 3 : 1 1 1 1 B2: 1 : 1 1 2 3 2 : 0 2 12 36 3 : 1 1 1 1 B3: 1 : 1 2 3 4 2 : 1 1 1 1 3 : 0 4 18 48
20
Concept du multidimensionnel Calcul des adresses Adr(0,0,0)=0Adr(0,0,1)=4Adr(0,0,2)=18 Adr(0,0,3)=48Adr(0,1,0)=2Adr(0,1,1)=5 Adr(0,1,2)=19Adr(0,1,3)=49Adr(0,2,0)=12 Adr(0,2,1)=13Adr(0,2,2)=20Adr(0,2,3)=50 Adr(0,3,0)=36Adr(0,3,1)=37Adr(0,3,2)=38 Adr(0,3,3)=51Adr(1,0,0)=1Adr(1,0,1)=6 Adr(1,0,2)=21Adr(1,0,3)=52Adr(1,1,0)=3 Adr(1,1,1)=7Adr(1,1,2)=22Adr(1,1,3)=53 Adr(1,2,0)=14Adr(1,2,1)=15Adr(1,2,2)=23 Adr(1,2,3)=54Adr(1,3,0)=39Adr(1,3,1)=40 Adr(1,3,2)=41Adr(1,3,3)=55Adr(2,0,0)=8 Adr(2,0,1)=9Adr(2,0,2)=24Adr(2,0,3)=56
21
Concept du multidimensionnel Adr(2,1,0)=10Adr(2,1,1)=11Adr(2,1,2)=25 Adr(2,1,3)=57Adr(2,2,0)=16Adr(2,2,1)=17 Adr(2,2,2)=26Adr(2,2,3)=58Adr(2,3,0)=42 Adr(2,3,1)=43Adr(2,3,2)=44Adr(2,3,3)=59 Adr(3,0,0)=27Adr(3,0,1)=28Adr(3,0,2)=29 Adr(3,0,3)=60Adr(3,1,0)=30Adr(3,1,1)=31 Adr(3,1,2)=32Adr(3,1,3)=61Adr(3,2,0)=33 Adr(3,2,1)=34Adr(3,2,2)=35Adr(3,2,3)=62 Adr(3,3,0)=45Adr(3,3,1)=46Adr(3,3,2)=47 Adr(3,3,3)=63
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.