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

Structures de données avancées : Concepts du Multidimensionnel D. E ZEGOUR Institut National d ’Informatique.

Présentations similaires


Présentation au sujet: "Structures de données avancées : Concepts du Multidimensionnel D. E ZEGOUR Institut National d ’Informatique."— Transcription de la présentation:

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


Télécharger ppt "Structures de données avancées : Concepts du Multidimensionnel D. E ZEGOUR Institut National d ’Informatique."

Présentations similaires


Annonces Google