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 : Fichiers uni-dimensionnels Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)

Présentations similaires


Présentation au sujet: "Structures de données avancées : Fichiers uni-dimensionnels Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)"— Transcription de la présentation:

1 Structures de données avancées : Fichiers uni-dimensionnels Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI) www.zegour.uuuq.com email: d_zegour@esi.dzd_zegour@esi.dz

2 B-arbres et variantes

3 Définition Technique plus complexe mais garantit l'équilibrage de l'arbre (donc recherche plus rapide) En plus, chaque nœud de l'arbre(sauf la racine) est au moins rempli à moitié (donc peu d'espace perdu). ===> reste encore très utilisée dans les systèmes de fichier actuels. Arbres B

4 Définition Un arbre B d'ordre n est tel que :  la racine a au moins 2 fils  chaque nœud, autre que la racine, a entre n/2 et n fils  tous les nœuds feuilles sont au même niveau Remarque : B pour Bayer / Boeing / Balanced Arbres B

5 Exemple d’un B-arbre d’ordre 3 87 Mécanisme d’insertion Arbres B

6 Suppression Même principe que la suppression physique dans un ARM En plus, si le nœud feuille qui contenait le successeur a moins de (n div 2) clés diverses actions seront entreprises. Arbres B

7 Suppression Examiner les frères à droite et à gauche. Si l'un des frères(gauche ou droit) contient plus de n div 2 clés, EMPRUNT Ordre=5; Max=4 données; Min = 2 données 113 Arbres B

8 Suppression Si les deux frères contiennent exactement n div 2 clés, FUSION Ordre=5; Max=4 données; Min = 2 données 120 Arbres B

9 Suppression Cas où le père contient seulement n div 2 clés et par conséquent il n'a pas de clé à donner.  il peut emprunter de son père et frère. Ordre=5; Max=4 données; Min = 2 données 65 Arbres B

10 Suppression Les frères du père n'ont pas de clés à donner, le père et son frère peuvent aussi être concaténés et une clé est prise du grand père Ordre=5; Max=4 données; Min = 2 données 173 Arbres B

11 Suppression Si tous les antécédents d'un nœud et leurs frères contiennent exactement n div 2 clés, une clé sera prise de la racine (due aux concaténations en cascades). Si la racine avait plus d'une clé, ceci termine le processus. Si la racine contenait une seule clé, elle sera utilisée dans la concaténation. Le nœud racine est libéré. le niveau de l'arbre est réduit d'une unité. Arbres B

12 Utilisation pour le stockage des données Un nœud de l'arbre = un bloc sur le disque. A un moment donné seul un bloc est ramené en mémoire. Nécessite des blocs de très grande taille ( ordre de 200). Deux façons de ranger les articles : (i) dans les nœuds avec les clés, ( Fichier = B-arbre ) (ii) séparément, donc pointeur additionnel vers l'information. ( B-arbre = Index) Si le fichier est grand on préfère de loin utiliser (ii). Arbres B

13 Clé= 4 octets; Adresse=4 octets; Pteur=4 octets; Information=100 octets Bloc = 4K car Nœud = (cle + Pteur+ Info) Nœud = (cle + Pteur + Adresse) Ordre = 38 Ordre = 341 38 3 = 54 872 341 3 = 39 651 821 341 4 = 13 521 270 961 38 3 = 2 085 136 B-arbre (II)B-arbre (I)

14 Résultats Facteur de chargement de 70% pour les insertions aléatoires 2 à 3 accès disque pour retrouver des articles parmi des centaines de millions. Fichiers dynamiques ( Sans réorganisation ) Fichiers ordonnés Arbres B

15 Variante : Arbres B* Retarder la division quand un nœud est plein  Redistribution équitable des clés contenues dans le nœud en question et l'un de ses frères. Si le nœud et son frère sont tous les deux pleins, les deux nœuds sont divisés en 3. Ceci garantit un minimum de chargement à 67% et un chargement moyen de 81%. Arbres B*

16 Variante : Arbres B + La plus utilisée : offre le séquentiel indexé Toutes les clés sont maintenues au niveau des feuilles Les clés sont dupliquées dans les nœuds non feuilles. Les articles(ou les pointeurs vers les articles) sont au niveau des feuilles. Les nœuds feuilles sont chaînés (ensemble des séquences) Arbres B +

17 Définition C’est un B-arbre d’ordre M Les feuilles contiennent les articles Chaque feuille a entre  L/2  et L articles (généralement L << M en pratique) Les noeuds internes contiennent les clés de recherche Chaque noeud interne a entre  M/2  et M fils (Donc chaque noeud interne a entre  (M/2)-1  et (M-1) clés de recherche) Arbres B +

18 . 23. 45. 68. 80.. 12. 23. 45. 45. 45, 68, 80, 25 12 50, 54. 68. 80.. 12. 23. 45. 45.. 50. 54. 68. 80. B+-arbre (ordre=5) Min=2 données; Max=4 données Arbres B +

19 . 12. 23. 45. 45.. 50. 54. 68. 80. 20, 92. 12. 20. 23. 45. 45. 68.. 50. 54. 68. 80. 92. 48, 63, 60. 12. 20. 23. 45. 45. 54. 68.. 60. 63.68. 80. 92.. 48. 50. 54 Arbres B +

20 . 12. 20. 23. 45. 45. 54. 68.. 60. 63.68. 80. 92.. 48. 50. 54 10 10. 12. 20 20. 45. 54. 68.. 60. 63.68. 80. 92.. 48. 50. 5423. 45 Arbres B + Eclatement des nœuds internes comme un B-arbre ordinaire Les feuilles sont chaînées ( Séquentiel indexé) Les nœuds feuilles contiennent les articles ou les adresses vers les articles

21 Arbres B Clé= 4 octets; Adresse=4 octets; Pteur=4 octets; Information=100 octets Bloc = 4K Nœud = (cle + Pteur+ Info) Nœud = (cle + Pteur + Adresse) Ordre = 38 Ordre = 341 38 3 = 54872 341 3 = 39 651 821 341 4 = 13521270961 38 3 = 2085136 B-arbre (II)B-arbre (I) Nœud = (cle + Pteur ) Ordre = 512 512 3 = 134 217 728 512 4 = 68 719 476 736 B+-arbre

22 Variante : B + Arbres avec expansion partielle Arbre B+ avec amélioration du facteur de chargement Utilise le concept d’élasticité des nœuds : incrémenter graduellement la taille de la case surchargée au lieu de la diviser immédiatement. La division se fait quand une taille maximale est atteinte. Exige une gestion plus délicate de l'espace disque (que celle de l'arbre B) car il faut gérer des cases de tailles différentes. Garantit un chargement moyen de 83%. Arbres B + avec expansion

23 Hachage dynamique

24 Hachage classique limité aux fichiers statiques Introduction La plupart des applications utilisent les fichiers dynamiques Maintenir un bon accès et un bon chargement du fichier quand le fichier se développe ou se rétrécie. domaines d’utilisation restreints. Hachage dynamique

25 Arbres B et ses variantes. (2 à 3 accès disque, Facteur de chargement aux environs de 70%, Fichier dynamique et ordonné) Ces propriétés font des arbres B l'une des structures de fichiers les plus populaires. Les possibilités de cette approche sont étonnantes car incapable de les croire avant les années 80 ( 55 à 80 ). Hachage dynamique Avant les années 80 A partir des années 80 Les fichiers dynamiques peuvent être construits avec le hachage La nouvelle approche d'utilisation du hachage est appelée hachage dynamique ( hachage extensible ou hachage virtuel)

26 Le hachage classique (au sens de KNUTH) suppose que la fonction de hachage est statique. Du hachage classique au hachage Hachage dynamique Nombre d'adresses possibles : constant. Toute collision crée un débordement  dégradation de performances d'accès. Les débordements = Fonction croissante du nombre d'insertions. Objectif de tout algorithme apparu : minimiser cette dégradation.

27 hachage dynamique : bouleverse les idées du hachage classique Du hachage classique au hachage Hachage dynamique L'idée principal : changement dynamique de la fonction d'accès Une insertion ou une suppression peut commencer par une fonction de hachage et terminer par une autre. L'espace des adresses possibles n'est plus limité. Le hachage dynamique fournit de bonnes performances de recherche et un facteur de chargement élevé indépendamment de la taille du fichier et sans réorganisation périodique.

28 Hachage dynamique Hachage classiqueHachage dynamique Fonction de hachageConstanteVariable Espace des adressesLimitéNon limité CollisionAjoute toujours un débordement Peut éliminer un débordement DébordementsProportionnels au nombre de données Constants Du hachage classique au hachage

29 Hachage dynamique Quelques résultats remarquables LH : Hachage linéaire LH : Hachage linéaire contrôlé IH : Hachage par interpolation TH : Hachage digital Hachage digital multi- niveaux Quelque soit le nombre d'insertions, Recherche = 1 accès Quelque soit le nombre d'insertions, Recherche = 1 à 2 accès Facteur de chargement=95 % Fichiers dynamiques ordonnés et de fichiers multidimensionnels sans index et une recherche prend 1 accès Très grands fichiers dynamiques et ordonnés dans lesquels une recherche prend au plus 2 accès. Grands fichiers dynamiques et ordonnés dans lesquels une recherche prend au plus 1 accès.

30 Hachage linéaire

31 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 Hachage linéaire Fonctions couramment utilisées : h i (c) = c Mod 2 i.N

32 Construction de la table avec la méthode classique L'insertion de 4900 provoque une collision sur la case 0. Pour le chainage séparé, la clé est rangée en débordement h = c Mod N ; N = 100, capacité b = 5 4900 Hachage linéaire

33 Construction de la table avec la méthode classique ( fonction h 0 ) L'insertion de 4900 provoque une collision sur la case 0. Le fichier est donc réorganisé selon la nouvelle fonction h. h(c) = h 1 (c) si h 0 (c) = 0 h(c) = h 0 (c) sinon. h0 = c Mod N ; N = 100, capacité b = 5 4900 h1 Hachage linéaire

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

35 Stratégie de division A chaque collision il y a - Remplacement de la fonction courante - Réorganisation correspondante. Le principe de LH est de diviser les cases dans un ordre prédéfini. P = 0, 1, 2,...., N-1 0, 1, 2,...., 2N-1.... 0, 1,....., 2 i.N-1 P : Prochaine case à éclater Hachage linéaire

36 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... 0, 1, 2,...., N-1 0, 1, 2,...., 2N-1 0, 1,....., 2 i.N-1.... Hachage linéaire

37 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. Hachage linéaire

38 Évolution du fichier 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. Initialement le fichier est vide Capacité de la case : b >> 1 Soit mj l'adresse de la j-ième collision ) Hachage linéaire

39 Évolution du fichier Après N divisions h0 est totalement remplacée par h1. 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. P reprend la valeur 0 Hachage linéaire

40 Calcul de l'adresse primaire m  h j (c) Si m < P m  h j+1 (c) Fsi P étant l'adresse de la prochaine case à éclater. Soit j l'indice ( le niveau ) de la fonction de division courante. Soit c une clé Hachage linéaire

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

42 Performances b : capacité de case a : facteur de chargement s' : recherche avec succès s" : recherche sans succès Hachage linéaire

43 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 du chaînage séparé Quand une donnée est supprimée, la contraction ( opération inverse de l'éclatement )sera faite quand le facteur de chargement devient inférieur ou égal à un seuil s' donné. Hachage linéaire LH contrôlé / Principe

44 Exemple 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 Insertion 11, 0, 5, 6, 16, 31, 34, 51 Hachage linéaire LH contrôlé / Principe

45 Exemple 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 Insertion de 12 Facteur de chargement = 64% Hachage linéaire LH contrôlé / Principe

46 Exemple 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 Insertion de 7 Facteur de chargement = 63% Hachage linéaire LH contrôlé / Principe

47 Exemple 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 Suppression de 6, 31 Hachage linéaire LH contrôlé / Principe

48 Exemple 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 Suppression de 5 Facteur de chargement = 50% Hachage linéaire LH contrôlé / Principe

49 Exemple 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 Suppression de 16 Facteur de chargement = 50% Hachage linéaire LH contrôlé / Principe

50 Synthèse : 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 Quelques résultats : ( b=20) Avec un chargement de 90% recherche avec succès 1.44 recherche sans succès 2.45 Hachage linéaire LH contrôlé / Principe

51 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, Première expansion: une moitié est rajoutée Deuxième expansion: il double Première expansion : éclater 2 cases. (Une nouvelle case est créée) Deuxième expansion : éclater 3 cases. (Une nouvelle case est créée) Première expansion : transférer 1/3 de la case. Deuxième expansion: transférer ¼ de la case. Hachage linéaire LH contrôlé avec expansion partielle/ Concept

52 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. Hachage linéaire LH contrôlé avec expansion partielle/ Principe

53 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 2 cases (j, 2N +j ) j= 0, 1,...N-1. Hachage linéaire LH contrôlé avec expansion partielle/ Principe

54 Première expansion Deuxième expansion Première expansion... Hachage linéaire LH contrôlé avec expansion partielle/ illustration avec 2 expansions partielles

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

56 Concept 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 autre méthode du hachage classique LH contrôlé avec essai linéaire : le plus intéressant ( 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 Hachage linéaire LH contrôlé avec essai linéaire

57 Concept 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 Quelques résultats : ( b=20) Avec un chargement de 95% recherche avec succès 1.29 recherche sans succès 3.35 Hachage linéaire LH récursif

58 Nombre d’accès disque au voisinage de 1 quelque soit le nombre d’articles insérés. Fichiers dynamiques non ordonnés Facteur de chargement contrôlé Hachage linéaire Conclusion

59 Hachage digital

60 Environnement du hachage digital Chaque article est identifié par une clé primaire. 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. C = d 0 d 1....d i....d k-1 d k d i : 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. Hachage digital

61 Illustration par un exemple ( 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) Hachage digital

62 Illustration and, of, the, to a a, and, of, the, to C’ f(clé) = 0 si clé <= 'o::... :‘ = 1 si clé > 'o::... :' Sélectionner la plus petite séquence de digits dans C' telle que C' < C'‘ : ‘0’ a and of the, to 0 1 Hachage digital

63 Illustration 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. f(clé) = 0 si clé <= 'o::... :‘ = 1 si clé > 'o::... :' a and in of the, that, to 0 1 Hachage digital

64 Illustration a and in of is a, and, in, is, of C’ f(clé) = 0 si clé <= 'i::... :' = 2 si 'i::. :' < clé <= 'o::... :' = 3 si clé > 'o::... :' Sélectionner la plus petite séquence de digits dans C' telle que C' < C'‘ : ‘i’ a and in is of 0 1 the, to 2 Hachage digital

65 Illustration a and in is i a, and, i, in, is C’ f(clé)= 0 si clé <= 'i_::... :' = 3 si 'i_::... :' < clé <= 'i::... :' = 2 si 'i::... :' < clé <= 'o::... :' = 1 si clé > 'o::... :' Sélectionner la plus petite séquence de digits dans C' telle que C' < C'‘ : ‘i_’ a and i of 0 1 the, to 2 in is 3 Hachage digital

66 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 Hachage digital

67 Illustration Hachage digital

68 Illustration mat mile monk mut meet mat meet mile monk mut C’ f(clé) = 0 si clé <= ‘mi::... :‘ = 1 si ‘mi::. :' < clé <= ‘m::... :' = indéfini si clé > ‘m::... :' Sélectionner la plus petite séquence de digits dans C' telle que C' < C'‘ : ‘mi’ mat meet mile monk mut 0 1 Hachage digital

69 Propriétés Le graphe généré par la méthode est appelé 'trie' ou arbre digital. 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. Hachage digital

70 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. Hachage digital

71 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. Hachage digital

72 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 Hachage digital

73 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. Hachage digital

74 Structure d'un noeud Table représentant l'arbre digital Représentation mémoire Hachage digital

75 Encombrement 6 octets par nœud. ( si fichier de l'ordre de 2 15 cases ) Quelques raffinements : Optimisation sur DV et DN oSi 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 oSi digit numérique : 4 bits suffisent pour DV et DN chacun. Donc, chaque élément occupe 5 octets. Optimisation sur les pointeurs oSi fichier ne dépasse pas 2 l cases alors l+1 bits suffisent pour chaque pointeur. oSi fichier n'excède pas 2K cases (K = 1024 ), trois octets suffisent pour représenter à la fois LP et UP. Hachage digital

76 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. Hachage digital

77 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… Hachage digital

78 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 35 000 articles si on prend b=100. Pour des mémoires de 12 et 64K, on peut construire des fichiers de 140000 et de 760000 articles respectivement pour la même valeur de b. Hachage digital

79 Analyse des performances 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. Hachage digital

80 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 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. Hachage digital


Télécharger ppt "Structures de données avancées : Fichiers uni-dimensionnels Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)"

Présentations similaires


Annonces Google