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

Slides:



Advertisements
Présentations similaires
Structures de données avancées : MLH (Multidimensional linear hashing)
Advertisements

Eléments d'algèbre linéaire
Module Systèmes d’exploitation
Structures de données avancées : Principales structures de fichiers
Structures de données avancées : B arbres
Structures de données avancées : Principales structures de données
Structures de données avancées : MBT ( Multidimensional B-trees )
Structures de données avancées : MTH ( Multidimensional trie hashing )
Structures de données avancées : Introduction
Les matrices.
Chap. 4 Recherche en Table
Cours 5-b Problèmes spatio-temporels d’ordre 1 en temps
GEF 243B Programmation informatique appliquée Types dérivés, structures et tableaux §
1 Révisions. 2 Tableaux non contraints Déclaration du type : type Tvecteur = tableau ( intervalle dentiers) de entiers type Tvecteur is array (integer.
Algorithme et programmation
Microsoft Excel Avancé
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
Structures de données linéaires
Rappel... Sous-espaces de Rn: Définition;
Cours DÉTERMINANT. Au dernier cours nous avons vus Linverse dune matrice. Quelques théorèmes qui encadrent son existence. Les matrices élémentaires.
ASI 3 Méthodes numériques pour l’ingénieur
II. Chaînage, SDD séquentielles
Systèmes d’équations linéaires
IFT-2000: Structures de Données Listes chaînées Dominic Genest, 2009.
Les fichiers indexés (Les B-arbres)
LA STRUCTURE D'ARBRE-B Institut National des Sciences Appliquées – Rouen Département Architecture des Systèmes d’Information.
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
Structures de données IFT-10541
Une nouvelle structure de données : les tableaux
5.1 SYSTÈME DÉQUATIONS LINÉAIRES Cours 13. Au dernier cours nous avons vus Léquations vectoriel et léquation normale dun plan. Lintersection de deux plans.
Les concepts et les méthodes des bases de données
Calcul des groupes d'homologie d’objets discrets
Tableaux Introduction aux tableaux à une dimension. Déclaration, stockage, initialisation et accès en lecture ou en écriture aux composantes d’un tableau.
Plan cours La notion de pointeur et d’adresse mémoire.
1 Organisations unidimentionnelles : indexage et hachage  Sélection basée sur une clé d'accès  recherche associative  Ex: Chercher le plant dont le.
Exploration systématique de graphes
Le langage C Structures de données
Structures de données avancées : Hachage dynamique
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
01/09/2009 CalculmatricielCalculmatriciel. I. Matrices.
Specifications de Systemes Logiciels المواصفات الشكلية Software Specifications Chapitre 7.
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Programmation linéaire en nombres entiers
Tables de compilation pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
II. Chaînage, SDD séquentielles
Structures de données avancées : Fichiers uni-dimensionnels Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Structures de données avancées : MBT ( Multidimensional B-trees )
Structures simples et tableaux Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Structures de données avancées : Fichiers multidimensionnels Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI) zegour.esi.dz
LES PRINCIPES DE LA THERMODYNAMIQUE
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Cours LCS N°4 Présenté par Mr: LALLALI
MATHÉMATIQUES DISCRÈTES Chapitre 1 (Sections 6, 7, 8)
Structures de données avancées : LH (Hachage linéaire) D. E ZEGOUR Institut National d ’Informatique.
Structures de données avancées : B arbres
Structures de données avancées : Principales structures de fichiers
Structures de données avancées : LH* D. E ZEGOUR Institut National d ’Informatique.
Structures de données avancées : Arbres B+ avec expansion partielle D. E ZEGOUR Institut National d ’Informatique.
Structures de données avancées : MLH (Multidimensional linear hashing) D. E ZEGOUR Institut National d ’Informatique.
Structures de données avancées : Introduction D. E ZEGOUR Institut National d ’Informatique.
Structures de données avancées : Principales structures de données
Structures de données avancées : Hachage dynamique
Structures de données avancées : MTH ( Multidimensional trie hashing ) D. E ZEGOUR Institut National d ’Informatique.
 Chaînage et LSC : motivation et principe Manipuler la LSC : exemples Variantes : LDC, liste circulaire, … Etude de cas : réalisation d’un buffer clavier.
CHAPITRE 6 Les tableaux 1. Suite de composantes de même type Donc de même longueur Contiguë en mémoire Possédant un nom Donc une adresse Où chaque composante.
Organisation de la mémoire pour le langage minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Introduction Module 1.
Raison d'être de la structure de fichiers : Les premiers travaux : Début des années 1960 : En 1963 : Près de 10 ans plus tard... (à peu près 1973) : Durant.
1. Tri rapide ou Quicksort Principe : La méthode du Quicksort due au C.A. Hoare (1962) utilise les principes généraux de division et équilibrage. 2.
Transcription de la présentation:

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

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

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

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.

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, *, *,..., *)

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.

Concept du multidimensionnel Exemple pour un tableau A(3, 2, 3)

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

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 )

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].

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

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.

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)

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

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

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 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.

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 )

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 : : B2: 1 : :

Concept du multidimensionnel Exemple 2 k=3; E=1, 2, 3, 1, 2, 3, 1, 2, 3  Contenu des tables : B1: 1 : : : B2: 1 : : :  B3: 1 : : :

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

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