Structures de données avancées : Introduction

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
Introduction à l’Algorithmique
Witold Litwin Structures physiques Witold Litwin
Cours 8 Arbres équilibrés
PBST*: une nouvelle variante des SDDS
LOGO Responsable du cours Mlle Amina GHRAB : 1 ère année IAG Institut Supérieur de Gestion de Tunis.
Les structures de données arborescentes
II. Chaînage, SDD séquentielles
Hachage et Indexation 1. Concepts de base 2. Organisations par hachage
Methode de Tri efficace
II. Chaînage, SDD séquentielles
Bases de données lexicales
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
Structures de données IFT-10541
8 Organisations unidimentionnelles : indexage et hachage
Indexes à Arbres et Indexes à Hachage

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.

Structures de données avancées : Arbres AVL & Arbres Rouge et Noir
Structures de données avancées : Hachage dynamique
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Structures de données avancées : Arbres Red-Black
LES PILES ET FILES.
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)
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Arbres binaires et tables de hachage
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)
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Structures de données avancées : Arbres ‘Left Leaning Red-Black’
Structures de données avancées : Concepts du Multidimensionnel D. E ZEGOUR Institut National d ’Informatique.
Structures de données avancées : Arbres AA
Structures de données avancées : Fichiers multidimensionnels Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI) zegour.esi.dz
Interprétation/Génération de code pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
La Gestion des fichiers
Structures de données avancées : LH (Hachage linéaire) D. E ZEGOUR Institut National d ’Informatique.
B.Shishedjiev - Modèle relationnel
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 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 : 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.
Organisation de la mémoire pour le langage minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
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.
Transcription de la présentation:

Structures de données avancées : Introduction Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI) zegour.esi.dz email: d_zegour@esi.dz

Structure de données Structures de données : concept vital en Informatique   Pour un problème donné, quelle structures de données choisir pour l’implémentation de sa solution ?   Les arbres de recherche binaires équilibrés en RAM Les structures de fichiers Unidimensionnelles  (B-arbres, LH, TH,) Dynamique  (AVL, RB, AA) Multidimensionnelles (MB-arbres, MLH, MTH) Statique (DSW) Distribuées (RP*, LH*, TH*) Structures de données spécifiques: Quadtree, Octree : Imagerie R-tree : données spatiales

Arm équilibrés : Arbres 2-3 et 2-4 Les arbres Arbre m-aire Arbre binaire Arbres AVL Arbres RB Arm avec degré < 5 Arm équilibrés : Arbres 2-3 et 2-4 Arbre de recherche m-aire Arbre de recherche binaire

Arbres équilibrés en RAM 1962 AVL B Arbres Arbres 2-3 Arbres 2-4 1972 BB : B-arbres Binaires SBB : B-arbres Binaires Symétriques Arbres équilibrés en RAM 1978 Arbres Red-Black 1993 Arbres AA LLRB 2008

Simple attribut, plusieurs attributs Structures de fichiers : Classification Statique ou dynamique Simple attribut, plusieurs attributs - Organisation directe( hash-code) - Organisation d'arbre ( tables d'index hiérarchisées ) Préservation de l'ordre ou pas Local ou distribué

Structures de fichiers 1955 Hachage 1973 B Arbres Uni-dim LH TH 1980 1981 Structures de fichiers 1983 HI Multi-dim 1985 MLH MTH MBT 1993 LH* 1996 RP* Distribuées 2002 TH* HI*

Généralités Expressions : itérative -récursive Mesure des algorithmes Complexité des algorithmes O-notation Types abstraits et Implémentation Stratégies: files d’attente - piles Méthodologie : ascendante - descendante

Pré-requis : Structures de données en RAM

Structures de données en RAM Tableaux, listes Arbre de recherche binaire Arbre de recherche m-aire d’ordre 3 et 4 Graphes Hachage

Arbres binaires : types de parcours Préordre : n T1 T2 Préordre inverse : n T2 T1 n T2 T1 Inordre inverse : T2 n T1 Inordre : T1 n T2 Postordre inverse : T2 T1 n Postordre : T1 T2 n Parcours en largeur Gauche Droite Parcours en largeur Droite Gauche Etc.

Arbres de recherche binaire Structure d'un nœud : (s1, k, s2) K: donnée et S1, S2 les fils (Éléments dans s1 ) < k (Éléments dans s2) > k L'inordre donne la liste ordonnée de tous les éléments. Opérations: Recherche dichotomique L'élément inséré est toujours une feuille Suppression : plus délicate.

Arbres de recherche binaire : Suppression fg fd Action a) Nil Nil Remplacer n par Nil b) Nil #Nil Remplacer n par Fd(n) c) #Nil Nil Remplacer n par Fg(n) d) #Nil #Nil 1. Rechercher le plus petit descendant du sous-arbre droit, soit p. 2. Remplacer Info(n) par Info(p) 3. Remplacer p par Fd(p)

Pas de relation d’ordre Peut se transformer en un arbre binaire Arbres m-aire Généralisation de l'AB Structure d'un nœud : (k1, s1, s2 .......,sn) Pas de relation d’ordre Peut se transformer en un arbre binaire

Arbres m-aire: Parcours n T2 T1 Tp … Préordre : n T1 T2 .. . Tp ( r a b e f j k g c d h i ) Inordre : T1 n T2 .…Tp ( a r e b j f k g c h d i ) Postordre : T1 T2 ... Tp n ( a e j k f g b c h i d r ) a b c d e f g h i j k r

(s1, k1, s2, .......kn-1,sn) Généralisation de l'ARB Arbres de recherche m-aire Généralisation de l'ARB Structure d'un nœud : (s1, k1, s2, .......kn-1,sn) k1 < k2 ....< kn-1 (Éléments dans s1 ) <= k1 (Éléments dans sj) > kj-1 et ≤ kj (j=2,3, ...n-1) (Éléments dans sn) > kn-1. Arbre de recherche m-aire TOP-DOWN : Tout nœud non rempli doit être une feuille. ( C’ est le plus utilisé ) Arbre de recherche m-aire équilibré : B-arbre

Arbres de recherche m-aire Arbre de recherche TOP-DOWN 45, 68, 80, 25 . 23 . 45 . 68. 80. 12 . 23 . 45 . 68. 80. . 12 . 50, 54 . 23 . 45 . 68. 80. . 12 . . 50 . 54 .

Arbres de recherche m-aire . 12 . . 23 . 45 . 68. 80. . 50 . 54 . 20, 92, 48, 63, 60, 100 . 23 . 45 . 68. 80. . 12 . 20 . . 48. . 50 . 54 .63 . . 92 . 100 . . 60.

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

Arbres de recherche m-aire . 45 . . 12 . 23 . . 50. 54 . 68 . 80 . 20, 92 . 45 . 68 . . 12 . 20 . 23 . . 50. 54 . . 80. 92 . 48, 63, 60 . 45 . 54 . 68 . . 12 . 20 . 23 . . 48 . 50 . . 60. 63 . . 80. 92 .

Rangement des données dans un tableau Hachage Rangement des données dans un tableau Rangement séquentiel( O(n) ) Rangement ordonné ( O(Log(n) ) Rangement aléatoire ou Hachage (Comme une 3ième possibilité avec O(1) Technique : Transformer la donnée K par une fonction f. f(K) est alors l'emplacement où sera rangée la donnée K. Le problème : Impossible de trouver une fonction bijective (paradoxe de l'anniversaire) Existence de techniques de résolution des collisions.

En cas de collision sur la case k, utilisation de la séquence cyclique Hachage : Techniques de résolution des collisions Essai linéaire (L) En cas de collision sur la case k, utilisation de la séquence cyclique K-1, ......, 0, M-1, M-2, ......K+1 Chainage interne (I) : chaîner les groupes de synonymes à l’intérieur de la table Double hachage (D) : généralisation de l’essai linéaire pas calculé par une autre fonction de hachage) Chainage séparé (S) : chaîner les synonymes à l’ extérieur de la table

Insertions contrôlées Hachage : Synthèse Pas d’ordre Insertions contrôlées Données statiques S > C > D > L

Pré-requis : Structures de fichiers

Structure d’un disque

Organisation d’un fichier sur le disque Etendue = clusters contigus Cluster (lecture sans bouger la tête de Lect/Ecrit) Secteur : unité de transfert RAM  Disque Secteur Secteur Secteur Secteur Secteur Secteur Secteur Secteur Secteur Fichier = plusieurs étendus dispersés

Organisation d’un fichier sur le disque Bloc = n secteurs ( un cluster de préférence) Fragmentation interne : Présence de "trous" dans les blocs Fichier = ensemble de blocs Fragmentation externe : Présence de blocs entièrement vides

Organisation interne d’un fichier Bloc = n articles Si format variable : Indicateur de longueur ( nombre d'octets ) Article = Ensemble de champs formant une même entité Chevauchement éventuel des articles sur les blocs Format des articles :fixe ou variable

Méthode d’accès Tableaux, listes Arbre de recherche m-aire Indexes simples Hachage B-arbres

Organisation du fichier : Comment distinguer un article d'un autre Structure d’un fichier Organisation du fichier : Comment distinguer un article d'un autre Méthode d'accès du fichier : Approche utilisée pour localiser un article dans le fichier. Structure du fichier

Réaction de la méthode aux pannes systèmes Mesure d’une structure de fichier Taux d'occupation: 70 % : un bon compromis Nombre d'accès disque : viser un accès Réaction de la méthode aux pannes systèmes Encombrement et complexité des algorithmes

Structure simples de fichiers Tableau Ordonné, format fixe des articles T L O  F V   Liste non ordonné, format variable des articles, chevauchement non permis Etc.

2 fichiers sont utilisés : fichier d'index et fichier de données. Indexes simples 2 fichiers sont utilisés : fichier d'index et fichier de données. En règle générale, le fichier de données n'est pas trié. Fichier de données = Structure simple de fichier non ordonné (tableau ou une liste linéaire chainée). Fichier d'index = Tableau ordonné (selon les clés) en mémoire. (recherche dichotomique en mémoire).

Fichier de données non ordonné. Indexes simples : variante 1 Fichier de données non ordonné. Fichier d'index ordonné chargé en mémoire dans un tableau (contient toutes les clés) 43 15 18 32 … Fichier d’index 43 15 18 32 65 12 22 55 58 35 72 78 99 19 93 Fichier de données

Indexes simples : variante 2 Fichier de données non ordonné. Fichier d’index ordonné maintenu sur le disque (contient toutes les clés) [ Dense index ] Fichier d’index 43 15 18 32 65 12 22 55 58 35 72 78 99 19 93 (12, .) (15,.) (18,.) (19,.) (22, .) (32,.) (35,.) ….. Fichier de données

Indexes simples : variante 3 Fichier de données ordonné. Fichier d’index ordonné maintenu sur le disque (ne contient pas toutes les clés) [ Sparse index ] Fichier d’index 13 15 18 32 35 38 53 55 58 68 72 78 93 96 99 (13,.) (32,.) (53,.) (68,.) (93,.) Fichier de données

Pas de problème de taille Fichier ordonné Arbre de recherche m-aire Avantages: Pas de problème de taille Fichier ordonné Méthode d'accès = ARM avec Ordre > 100. Un nœud = un bloc sur le disque. Bloc= cluster (unité d’entrée/sortie) Inconvénients: - Destinés pour les fichiers statiques - Déséquilibre de l’ ARM (Pas de solution  Réorganisation périodique

Arbre de recherche m-aire Implémentation des ARM : 2 façons de ranger les articles : (i) dans les nœuds avec les clés, (fichier de données = ARM) (S1, (Clé1, Article1), S2, ....... , (Clén-1, Articlen-1),Sn) (ii) séparément. Pointeur additionnel vers l'information. (fichier = index vers un fichier de données ) (S1, (Clé1, Adresse1), S2, ....... , (Clén-1, Adressen-1),Sn) Bloc=4K Clé= 4 octets Adresse= 4 octets Si=4 octets Article=200 octets  Ordre=20  Ordre= 341 Si le fichier est grand : utilisation de (ii)

Hachage But : Accélérer l’accès à l’information Le fichier = tableau de M blocs // Bloc= b articles. Une collision apparaît quand plus de b articles ont la même adresse de bloc. Nécessite une phase d’initialisation de tous les blocs Méthodes intéressantes sur le disque : Essai linéaire (Contiguïté physique des blocs) Chainage séparé (Débordements dans un même cylindre(ou cylindres voisins) Avantages - Pas de mémoire pour l'index. - Facilitent les opérations. - Temps d'accès < inférieur à 2. - Efficaces pour les fichiers statiques. Inconvénients : Ne répondent pas aux fichiers dynamiques Fichiers désordonnés.

….. ….. Hachage Blocs 1 Zone primaire et 2 Essai linéaire 1 2 ….. Blocs Zone primaire et de débordement Essai linéaire M-1 1 2 Zone de débordement (même cylindre) ….. Zone primaire: M blocs Chainage séparé