Structures de données avancées TH ( Hachage digital ) 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
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
Traitement Co-Séquentiel: Appariment et Fusion de Plusieurs Listes
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
Structures de données linéaires
Les structures de données arborescentes
Leçon 6 : Structures de données dynamiques IUP 2 Génie Informatique Méthode et Outils pour la Programmation Françoise Greffier.
Bibliothèque standard du C++
Arbre Rouge Noir.
IFT-2000: Structures de Données Listes chaînées Dominic Genest, 2009.
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
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
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-2000 Abder Alikacem Standard Template library Édition Septembre 2009 Département dinformatique et de génie logiciel.
Présentation Structures de Données et TDA
Les listes chaînées par Frédérick Henri.
IFT Complexité et NP-complétude
Gestion de Fichiers Indexes basés sur les structures d’arbres binaires et indexes à niveaux multiples.
Gestion de Fichiers Tri Interne Efficace et Tri Externe.
Gestion de Fichiers Hachage Extensible.
Algorithmes d ’approximation
Gestion de Fichiers GF-10: Traitement Co-Sequentiel: Appariment et Fusion de Plusieures Listes (Base sur les sections de Folk, Zoellick & Riccardi,
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)
Graphes 1. Introduction 2. Définition 3. Représentation mémoire
Vers un nouvel empirisme: l’ancien et le nouvel empirisme John Goldsmith Université de Chicago CNRS MoDyCo.
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Arbres binaires et tables de hachage
Structures de données avancées : Fichiers uni-dimensionnels Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Exploration systématique de graphes
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
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 : Variantes des B arbres
1 UMLV  FICHIERS Mémoire de masse découpée en blocs Fichier :liste chaînée de blocs, ou arbre de blocs (répertoires - fichiers)‏ Bloc d’éléments Bloc.
Structures de données avancées : Range Partionning: RP*
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.
4/25/2017 4:30 PM Arbres (2,4) CSI2510 CSI2510.
CSI25101 Tri Plus efficace. CSI25102 Tri récursif Le tri récursif divise les données de grande taille en deux presque moitiés et est appelé récursivement.
Memoire.
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.
. Le B-Arbre.
Transcription de la présentation:

Structures de données avancées TH ( Hachage digital ) D. E ZEGOUR Institut National d ’Informatique

HD : Hachage digital Environnement du hachage digital  Chaque article est identifié par une clé primaire  Toutes les clés ont la forme suivante : C = d 0 d 1....d i....d k-1 d k où d i sont les digits d'un alphabet donné. k+1 étant la longueur de la clé. i est appelé le numéro (niveau) du digit ':' désigne la valeur maximale du digit. '_' représenté la valeur minimale du digit.  le fichier est constitué de cases numérotées 0, 1, 2,.. N.  Chaque case contient au maximum b articles ( b : capacité )  Case : unité de transfert entre la RAM et le disque

HD : Hachage digital Exemple 1 ( b = 4 )  Séquence des clés à insérer ( empruntée de KNUTH ) : the, of, and, to, a, in, that, is, i, it, for, as, with, has, his, he, be, not, by, but, have, you, which, are, on, or, her, had, at, from, this  Le fichier est supposé créé avec seulement la case 0.  Au départ, f(clé) = 0 quelque soit la clé.  Donc, les 4 premières clés vont dans la case 0  Case 0 : (and, of, the, to)

HD : Hachage digital Insertion de a  collision sur la case 0.  Modifier la fonction de hachage de telle sorte qu'il n'y ait plus de collision.  Principe : Considérer la séquence ordonnée des b+1 clés de la case supportant la collision : a, and, of, the, to La clé du milieu est C' = of; la clé maximale est C'' = to Sélectionner la plus petite séquence dans C' telle que C' < C''. ( Dans l'exemple, le digit o suffit ) Toutes les clés  'o::....' restent dans la case 0. Toutes les clés > 'o::....:' vont dans une nouvelle case, la case 1.  La fonction devient alors : f(clé) = 0 si clé <= 'o::....:‘ = 1 si clé > 'o::....:'

HD : Hachage digital  Le fichier est étendu d'une case.  Les cases :  Case 0 : (a, and, of)  Case 1 : (the, to)

HD : Hachage digital  Par la suite, toutes les clés seront 'hachées' par la nouvelle fonction.  la clé in est insérée dans la case 0,  la clé that dans la case 1.  L'insertion de la clé is provoque une collision sur la case 0.  Résolution de la collision : Séquence des b+1 clés est : a, and, in, is, of. C' est in et C'' est of. f(clé) = 0 si clé <= 'i::....:' = 2 si 'i::....:' < clé <= 'o::....:' = 3 si clé > 'o::....:'  Contenus des cases : Case 0 : (a, and, in, is) Case 1 : (of) Case 2 : (the, to)

HD : Hachage digital  Insertion de i : collision sur la case 0.  Séquence : a, and, i, in, is  La séquence de digits 'i_' est choisie pour distinguer C'=i et C''= is  f(clé) = 0 si clé <= 'i_::....:' = 3 si 'i_::....:' < clé <= 'i::....:' = 2 si 'i::....:' < clé <= 'o::....:' = 1 si clé > 'o::....:'  Etat du fichier : Case 0 : (a, and, i) Case 1 : (of) Case 2 : (the, to) Case 3 : (in, is)

HD : Hachage digital Transformation : clé ---> adresse ( Clé = c 0 c 1 c 2 …..) si c 0 > 'o' : m = 1 sinon si c 0 > 'i' : m = 2 sinon si c 0 c 1 > 'i_' : m = 3 sinon m = 0 finsi

HD : Hachage digital

Exemple 2  On peut sélectionner plusieurs digits au lieu d'un seul.  Supposons que le fichier contient seulement la case 0 avec les clés suivantes: mat,mile,monk, mut  Clé à insérer :meet  collision sur 0  C' = mile et C'' = mut.  Séquence de division : 'mi'  Contenu des cases Case 0 : (meel, met, mile) Case 1 : (monk, mut)

HD : Hachage digital Propriétés  Le graphe généré par la méthode est appelé 'trie' ou arbre digital.  L'utilisation de cet arbre nous permet de 'fendre' certains aspects de la clé et d'utiliser cette information de base pour la recherche ( définition du hachage )  l'arbre digital représente une fonction de hachage qui est modifiée dynamiquement.  l'appellation 'trie hashing' (hachage digital )  Fichier trié en ordre ascendant des clés.  Le fichier s'étend linéairement avec l'arbre à raison d'un nœud interne par case.  Pas de débordements.  Toute recherche de clé avec ou sans succès coûte au plus un accès disque.

HD : Hachage digital Opérations  Recherche : A chaque comparaison, choisir soit la branche gauche, soit la branche droite. Le parcours s'arrête quand une feuille est trouvée.  Considérations :  Soit Cle la clé à rechercher. Soit (Cle) i les i+1 premiers digits de Cle.  Soient C' et C'' des chaînes de caractères initialisées à ':'.  C' i dénote le i+1-ème digit de C'.  Soit (d,i) le nœud visité si le nœud est interne, autrement soit A la feuille visitée.  (C) -1 désigne la chaîne vide

HD : Hachage digital  Opérations  n=(d, i) ; (C) i : i+1 premiers digits de C  Algorithme : C’, C ’’  ‘’ TANTQUE interne (n) : C'  (C’’) i-1 d SI (Cle) i  C' : C’’  C' n  fg(n) SINON n  fd(n) FINSI FINTANTQUE Retourner la feuille ( adresse de case )

HD : Hachage digital Opérations  Insertion ( En cas d’éclatement ) Constituer la suite ordonnée des (b+1) clés composée des b clés de la case surchargée et de la nouvelle clé. Soit C' la clé du milieu de la séquence des (b+1) clés, C'' la clé maximale. Sélectionner la plus petite séquence de digits dans C' telle que C' < C''. Soit c' 0 c' 1... c' k cette séquence. Retrouver le nombre i de digits qui existent déjà dans L'arbre digital. Générer (k-i-1) nœuds Nil avec les digits c' i+1, c' i+2,... c' k-1 Générer le nœud correspondant au digit c' k. Diviser la suite des (b+1) clés entre la case qui a subit la collision et la prochaine case à allouer.

HD : Hachage digital Opérations  Suppression Peut entraîner une fusion de cases dans les cas suivants : (i) La case sœur existe. (ii) Le nombre des articles dans les deux cases sœurs est au plus égal à b. la fusion consiste à grouper tous les articles dans la case de gauche. La case droite est libérée et les articles de la dernière case N sont alors transférés vers cette case. (Éliminer les trous) Une façon de retrouver le parent de la case N est de rechercher un élément quelconque se trouvant dans la case N.

HD : Hachage digital Opérations  Suppression ( suite) Le test des conditions (i) et (ii) se fait uniquement quand la case subissant la division aura un nombre d'articles proche de b/2. L'opération de suppression est une opération inverse à l'opération d'insertion. Elle permet de contracter l'arbre digital. Si une case devient vide avant qu'une case sœur apparaisse, alors cette case est remplacée par Nil. possibilité de fusions en cascade

HD : Hachage digital Opérations  Requête par intervalle un fichier construit par la technique du hachage digital est ordonné. Dans l'arbre digital, les cases sont ordonnées de la gauche vers la droite. Une requête par intervalle consiste à trouver toutes les clés comprises entre 2 clés a et b données (a < b). Une façon simple consiste à parcourir l'arbre digital en inordre, préordre ou postordre. Une autre façon de réaliser cette opération est de chaîner les cases. On peut aussi examiner les clés en ordre décroissant. dans ce cas, on utilisera l'inordre inverse( preordre inverse ou postordre inverse) ou chaîner les cases en sens inverse.

HD : Hachage digital Représentation mémoire Associer à un nœud interne un quadruplé (UP, LP, DV, DN) LP : pointeur gauche; UP : pointeur droit DV : valeur du digit ; DN : numéro du digit Ainsi, l'arbre est représenté comme une table de quadruplés. Si LP (ou UP) est négatif, sa valeur absolue désigne un autre quadruplé. S'il est positif sa valeur désigne une case du fichier. Chaque collision ajoute un ou plusieurs quadruplés en fin de table. Structure d'un noeud Table représentant l'arbre digital

HD : Hachage digital Encombrement  6 octets par nœud. ( fichier de l'ordre de 2 15 cases )  Quelques raffinements : Optimisation sur DV et DN o Si le digit est un bit, le champ DV n'est pas nécessaire. Comme une clé ne dépasse pas 16 digits quatre bits suffisent pour DN. Donc, au total 4,5 ou 5 octets o Si digit numérique : 4 bits suffisent pour DV et DN chacun. Donc, chaque élément occupe 5 octets. Optimisation sur les pointeurs o Si fichier ne dépasse pas 2 l cases alors l+1 bits suffisent pour chaque pointeur. o Si fichier n'excède pas 2K cases (K = 1024 ), trois octets suffisent pour représenter à la fois LP et UP.

HD : Hachage digital Autres représentations  Utiliser des représentations mémoire beaucoup plus compactes appelées représentations séquentielles.  Les nœuds internes suivent un ordre prédéfini.  Éviter la représentations des pointeurs internes, donc on peut gagner beaucoup d'espace mémoire.  En contrepartie, l'algorithmique est plus complexe.

HD : Hachage digital Exemple de représentation  a r b f h e i _ o t  <= ‘ar:…’ c’est 0  > ‘ar:’ et <= ‘a:’ c’est 9  > ‘a:’ et < ‘b:’ c’est 4  Etc…

HD : Hachage digital Analyse des performances  Facteur de chargement Similaire à celui des arbres-B. 70% : insertions aléatoires 50% : insertions en ordre ascendant.  Taille de la fonction d'accès. Le nombre de cases est pratiquement égal au nombre de nœuds internes Si M désigne le nombre d'octets nécessaires pour l'arbre digital on aura M=6n dans le cas des digits alphabétiques Donc pour M=3K, on peut avoir un fichier de articles si on prend b=100. Pour des mémoires de 12 et 64K, on peut construire des fichiers de et de articles respectivement pour la même valeur de b.

HD : Hachage digital Analyse des performances  Accès Avec l'hypothèse que l'arbre digital peut résider en mémoire, toute recherche de clé est exécuté en un accès disque au plus.  Une insertion coûte 2 accès s'il elle n'entraîne pas une collision et 3 accès si elle l'entraîne.  pour b=100, une insertion coûte en moyenne 2,03 accès.

HD : Hachage digital Conclusion  Le hachage digital est une technique d'accès aux fichiers conçue en 1981  La technique est aussi bien consacrée aux fichiers statiques qu'aux fichiers dynamiques  Contrairement aux autres techniques de hash_code, le fichier est ordonné.  Son facteur de chargement est de 70% pour des insertions aléatoires  On peut construire des fichiers de quelques millions d'articles et dans lesquels toute recherche de clé est exécutée en un accès disque au plus.