Structures de données avancées : LH (Hachage linéaire) D. E ZEGOUR Institut National d ’Informatique.

Slides:



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

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
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure dInformatique (ESI)
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
Chap. 4 Recherche en Table
Chapitre annexe. Récursivité
D. E ZEGOUR Institut National d ’Informatique
Algorithmes et structures de données avancés
Distributed Compact Trie Hashing Proposé par D.E ZEGOUR.
Chap. 1 Structures séquentielles : listes linéaires
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
Structures de données linéaires
II. Chaînage, SDD séquentielles
Le codage des nombres en informatique
Bases de données lexicales
Gestion de Fichiers Arbres B.
Indexation 1. Concepts de base 2. Arbre B 3. Indexes secondaires.
Sections sélectionnées du Chapitre 11
FICHIERS : Définition : Algorithme général:
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 ARBRES IUP 2 Génie Informatique
Structures de données IFT-2000 Abder Alikacem Standard Template library Édition Septembre 2009 Département dinformatique et de génie logiciel.
Structures de données IFT-10541
8 Organisations unidimentionnelles : indexage et hachage
Gestion de Fichiers Tri Interne Efficace et Tri Externe.
Gestion de Fichiers Hachage Extensible.
326 UMLV Méthodes de classement destinées à de grandes masses de données Applicables à des fichiers séquentiels Complexité : évaluée surtout en nombre.
1 Organisations unidimentionnelles : indexage et hachage  Sélection basée sur une clé d'accès  recherche associative  Ex: Chercher le plant dont le.
Heuristiques C. Recherche de la meilleure branche . Branch And Bound
Diviser pour résoudre A. Principe général B. Applications
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)
David Rivreau Table de hachage David Rivreau
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Programmation linéaire en nombres entiers
Arbres binaires et tables de hachage
STATISTIQUES – PROBABILITÉS
Structures de données avancées : Fichiers uni-dimensionnels Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Gestion de Fichiers Hachage (suite et fin). 2 Plan du cours d’aujourd’hui Utilisation des “buckets” Effacements dans des fichiers hachés Autres méthodes.
Structures de données avancées : MBT ( Multidimensional B-trees )
Structures de données avancées : Concepts du Multidimensionnel D. E ZEGOUR Institut National d ’Informatique.
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
La Gestion des fichiers
Structure de stockage et relations
Cours LCS N°4 Présenté par Mr: LALLALI
Chapitre 1 Nombres relatifs.
1. Spoon Christophe Delagarde, septembre 1998 I.U.T., Université de la Méditerrainée 2.
Structures de données avancées : B arbres
Structures de données avancées : Variantes des B arbres
Système de gestion fichiers
Structures de données avancées TH ( Hachage digital ) D. E ZEGOUR Institut National d ’Informatique.
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.
Architecture et technologie des ordinateurs II
 Chaînage et LSC : motivation et principe Manipuler la LSC : exemples Variantes : LDC, liste circulaire, … Etude de cas : réalisation d’un buffer clavier.
Page: 1-Ali Walid Gestion de fichiers. B-Arbre +.
Transcription de la présentation:

Structures de données avancées : LH (Hachage linéaire) D. E ZEGOUR Institut National d ’Informatique

LH : Hachage linéaire  LH utilise les fonctions h 0, h 1, h 2, … telles que (fonctions de division) - h i : C ----> {0, 1,..., 2 i.N - 1} - h i (c) = h i-1 (c) ou bien - h i (c) = h i-1 (c) + 2 i-1.N  Fonctions couramment utilisées : h i (c) = c Mod 2 i.N

LH : Hachage linéaire  a) construction de la table avec la méthode classique ( fonction h 0 )  L'insertion de 4900 provoque une collision sur la case 0. Au lieu de ranger cette clé en débordement d'une manière classique on procède comme suit : Le fichier fonctionne par la suite avec une nouvelle fonction h définie comme suit : h(c) = h 1 (c) si h 0 (c) = 0 h(c) = h 0 (c) sinon. Le fichier est donc réorganisé selon h.(figure b)  Illustration de l'idée de fonction de division :  h0 = c Mod N ; N = 100, capacité b = 5

LH : Hachage linéaire Idée principale l'application des fonctions de division a résolu la collision - SANS création de débordement et donc - SANS dégradation des performances d'accès. Le fichier est étendu d'une case.

LH : Hachage linéaire Stratégie de division  A chaque collision il y a remplacement de la fonction courante par une fonction de division et la réorganisation correspondante.  Le principe de LH est de diviser les cases dans un ordre prédéfini. Les valeurs successives du pointeur (de la case à éclater) sont : P = 0, 1, 2,...., N-1 0, 1, 2,...., 2N , 1,....., 2 i.N-1

LH : Hachage linéaire Stratégie de division  Une séquence est dite "trip" ou voyage.  Le i-ème voyage utilise la fonction h i.  Le premier voyage remplace de gauche à droite h 0 par h 1 en étendant le fichier de 2N cases.  Le second voyage remplace h 1 par h 2 en étendant le fichier avec 4N cases.  Etc...

LH : Hachage linéaire Stratégie de résolution de collision  L'adresse d'une collision est typiquement aléatoire (m)  La situation P=m est rare. (P prochaine case à éclater)  Règle de division Chaque collision sur m conduit à la division de la case P. ( Faire P  P+1 ou P  0 ) Sauf pour le cas où P=m, la clé est rangée en débordement selon une méthode classique de résolution.

LH : Hachage linéaire Évolution du fichier (Initialement le fichier est vide ; Capacité de la case : b >> 1; Soit mj l'adresse de la j-ième collision ) Première collision  Quelque soit la valeur de m1, il y a division de la case 0.  Sauf pour m1 = 0, la nouvelle clé est rangée en débordement. Deuxième collision  Quelque soit la valeur de m2, il y a division de la case 1.  Sauf pour m2= 1, la nouvelle clé est rangée en débordement. Ce traitement continue jusqu'a N collisions.

LH : Hachage linéaire Évolution du fichier Après N divisions  h 0 est totalement remplacée par h 1.  La situation est donc analogue à la situation initiale sauf que : le fichier contient 2 fois plus de cases Les 2N prochaines divisions utilisent la fonction h 2.

LH : Hachage linéaire Calcul de l'adresse primaire Soit j l'indice ( le niveau ) de la fonction de division courante. Soit C une clé m  h j (c) Si m  M m  h j-1 (c) Fsi M étant le nombre courant de cases primaires.

LH : Hachage linéaire Calcul de l'adresse primaire ou bien : m  h j (c) Si m < P m  h j+1 (c) Fsi P étant l'adresse de la prochaine case à éclater.

LH : Hachage linéaire Performances : résultats de simulation  b : capacité de case ; a : facteur de chargement  s' : recherche avec succès  s" : recherche sans succès

LH contrôlé Principe  Initialement, seulement N cases primaires sont réservées pour le fichier, c'est a dire toute donnée d est rangée par la fonction de hachage h L (d) = d Mod (2 L.N) avec L = 0.  La méthode augmente l'espace des adresses progressivement par l'éclatement des cases dans un ordre prédéfini : d'abord la case 0, puis la case 1,...N-1.  Un pointeur P garde la trace de la prochaine case à éclater.  l'éclatement d'une case implique le partage ( par la fonction h L+1 ) de ses données avec une nouvelle case ajoutée à la fin du fichier.

LH contrôlé Principe  Quand les N cases ont été éclatées et donc le nombre de cases devient égal à 2N, P est remis à 0 et le processus d'éclatement est recommencé de nouveau avec la même fonction h mais avec L incrémenté d'une unité c'est à dire égal à 1.  A ce moment, P variera de 0 à 2N-1, doublant ainsi la taille à 4N. Ect...  L'éclatement d'une case est provoqué quand le facteur de chargement devient supérieur à un seuil s donné.  Dans le cas de non éclatement : utilisation chaînage séparé  Quand une donnée est supprimée, la contraction sera faite quand le facteur de chargement devient inférieur ou égal à un seuil s' donné. ( opération inverse de l'éclatement )

LH contrôlé  Exemples avec les paramètres :  N = 5 ; b = b' = 2; s=0.60, s'=0.50  h i (c) = c Mod 2 i.N  i = 0, au départ

LH contrôlé

 Objectif : fournir un facteur de chargement élevé avec une légère détérioration des performances d'accès.  Quelques résultats : ( b=20)  avec un chargement de 75% recherche avec succès 1.08 recherche sans succès 1.29  avec un chargement de 90% recherche avec succès 1.44 recherche sans succès 2.45

LH contrôlé avec expansion partielle  Dans LH, les cases éclatées sont moins remplies que les cases non encore éclatées  Uniformiser le chargement est un moyen d'améliorer les performances d'accès.  Avec deux expansions partielles, le fichier est d'abord incrémenté par un facteur 1/2 (première expansion), puis il double( deuxième expansion)  Plusieurs éclatements (2 ou 3) de cases peuvent transférer les données à la même adresse.  Un éclatement transfère 1/3 de la case lors de la première expansion et 1/4 lors de la deuxième.

LH contrôlé avec expansion partielle Principe On commence par un fichier de taille 2N.  Il est logiquement divisé en N groupes (j, N+j), j=0, 1,..N-1  On divise d'abord les cases du groupe 1, puis les cases du groupe 2,...  L'éclatement du groupe j déplace à peu près 1/3 des clés des cases j et j+N dans la case nouvellement ajoutée j + 2N.  Quand le dernier groupe est éclaté, le fichier est étendu de 2N à 3N.

LH contrôlé avec expansion partielle Principe  Par la suite, on travaille sur des groupes de 3 pages (j, N+j, 2N + j),j=0, 1, 2...N-1.  L'éclatement du groupe j déplace à peu près 1/4 des clés des cases j, j+N et j+2N dans la case nouvellement ajoutée j + 3N.  Le fichier passe donc de 3N à 4N.  Le processus recommence avec des groupes de deux cases (j, j+2N), j = 0, 1,...N-1.

LH contrôlé avec expansion partielle Illustration de LH avec deux expansions partielles

LH contrôlé avec expansion partielle Quelques résultats : ( b=20)  Avec un chargement de 75% recherche avec succès 1.03 recherche sans succès 1.15  avec un chargement de 90% recherche avec succès 1.18 recherche sans succès 1.94  avec un chargement de 95% recherche avec succès 1.45 recherche sans succès 3.24

LH contrôlé avec essai linéaire  Dans le schéma de base, les débordements sont rangés dans une zone (fichier) à part ( chaînage séparé)  On peut appliquer toute méthode adressage ouvert du hachage classique  LH contrôlé avec essai linéaire : le plus intéressant  Avantages : lectures de plusieurs cases en même temps (Contiguïté) Quelques résultats : ( b=20)  avec un chargement de 75% recherche avec succès 1.01 recherche sans succès 1.13

LH récursif  Gérer les débordements de la même façon que le fichier principal  Généralement on va jusqu'au 3-ième niveau. Quelques résultats : ( b=20)  avec un chargement de 75% recherche avec succès 1.03 recherche sans succès 1.29  avec un chargement de 95% recherche avec succès 1.29 recherche sans succès 3.35

LH : Conclusion  Temps d’accès au voisinage de 1 quelque soit le nombre d’articles insérés  Fichiers dynamiques non ordonnés  Facteurs de chargement contrôlé