Le problème de recherche Entrée: n clefs distinctes k 1, k 2, …, k n et un ensemble T de n enregistrements de la forme (k 1, I 1 ), (k 2, I 2 ), …, (k.

Slides:



Advertisements
Présentations similaires
Le positionnement
Advertisements

Maison des Aînés – Maison de Qualité Qualité déclinée sur toutes les formes Qualité déclinée sur toutes les formes Qualité visible partout Qualité visible.
AG 2008 : Compte-rendu Financier 2007
Base de Données / MCD Introduction en utilisant un SGBD simple (Access) Quinio Université Paris Ouest2010 Quinio.
STATUT DE LAFFCE Assemblée générale extraordinaire du
Limportance économique et sociale de la protection des IG Frédéric Brand, Service romand de vulgarisation agricole (SRVA), Lausanne.
Chapitre 6: Les procédures et les fonctions
Approche organisationnelle Analyse détaillée des traitements Lopération modélise un ensemble de traitements homogènes quil sagit maintenant dorganiser:
Algèbre de Boole.
Relations avec les adhérents Informer, mobiliser, recruter Laccent est mis depuis 2 ans sur linformation et la communication : Mails et/ou courriers Lettre.
Le traitement dun clip Par Virtual Dub. Chargement dun clip Recherche du fichier Vérification du format.
I CRYPTOLOGIE traditionnelle Sommaire 1.Les fondements p. 9 2.Confusion & Diffusion p Cryptages composés p. 39.
Référence directe non sécurisée à un objet
Un enseigne, l’autre observe
Loral dHistoire des Arts 1.Les dates à retenir 2.Organisation générale avant lépreuve 3.Préparation de lépreuve 4.Lépreuve 5.Lévaluation de loral : grille.
Nature, numération, code
Les bases de donnÉes I DÉFINITION Ensemble structuré d’informations
Master 2 MIAGE spécialité ACSI
Structures de données IFT-2000
5 avril 2005É c o l e m i l i t a i r e RÉFORME DE LA LOI RÉSERVE.
Modélisation de la topologie avec le Graphe Génératif Gaussien
Projet région Thématique prioritaire n°10 Calculs Scientifiques Logiciels Rhône-Alpes : Grille pour le Traitement dInformations Médicales (RAGTIME ?)
École dété Introduction générale. Déroulement Présentation et explication du syllabus Le contexte arabo-musulman: éléments synthétiques Les concepts clefs.
La synchronie neuronale :
Initiation aux bases de données et à la programmation événementielle
Bilan du groupe de travail « Templates » 09/03/200009/03/2000.
1 Le fichier séquentiel Suite finie déléments dun même type Exemples : – fichier des livres dune bibliothèque – enregistrements sur un magnétophone – ensemble.
vkproject.com Qui sommes nous ? V&K-Project, est une structure associative à vocation culturelle et artistique. Son ambition est de promouvoir les musiques.
L’Etude du Compte de Résultat
Structures de données IFT-2000
I. Exercice 2: analyse socio- technique AST première présentation.
ANALYSE METHODE & OUTILS
Article 3 Ensemble des opérations = caractère complet de la comptabilité Exemple d’une filiale oubliée Principe de l’importance relative.
Centres de référence Centres de compétence mieux comprendre leur organisation IX e Forum des Associations Vendredi 13 juin 2008 Dr Ioana Caron.
PGCSS/REGA 1 Session 11 1 Constitution du groupe.
Description du contenu. Bibliothèque et Archives nationales du Québec ▪ 2 Description du contenu  Attributs du contenu enregistrés dans la zone 300 du.
Restitution des ateliers sur l’implication des habitants dans l’appropriation des espaces collectifs en PRU Maison Régionale de l’Innovation.
1 REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE MINISTERE DE L’ENSEIGNEMENT SUPERIEURE ET DE LA RECHERCHE SCIENTIFIQUE UNIVERSITE ABDELHAMID IBN BADIS.
Bio-agresseurs émergents : la complexité JF Proust, ForumPhyto, Assemblée Nationale, 14 décembre 2011.
Bases de données : modèlisation et SGBD
Exercices sur OCL et les RdP
Information génétique et fécondation
LA CRÉATION D’ENTREPRISE EN 2010 TERRITOIRE DE LA MAISON DE L’EMPLOI LYS - TOURCOING Exploitation des données INSEE - SIRENE AVEC LA PARTICIPATION DE.
LA CRÉATION D’ENTREPRISE EN 2010 TERRITOIRE DE LA MAISON DE L’EMPLOI DE LILLE LOMME HELLEMMES Exploitation des données INSEE - SIRENE AVEC LA PARTICIPATION.
LA CRÉATION D’ENTREPRISE EN 2011 TERRITOIRE DES WEPPES ET DE L’ARMENTIEROIS Exploitation des données INSEE - SIRENE AVEC LA PARTICIPATION DE.
Noms de domaine, noms commerciaux, enseignes et marques Principes de droit civil et commercial appliqués aux technologies de l’information.
LA CRÉATION D’ENTREPRISE EN 2011 TERRITOIRE DE LA MAISON DE L’EMPLOI DU ROUBAISIS Exploitation des données INSEE - SIRENE AVEC LA PARTICIPATION DE.
© Alliance suisse des samaritains ASS – Transparent 1 Alfred Vogt Mise en réseau des associations cantonales.
Permet de simplifier la maintenance d’un site
 L’information est conservée sous forme de tables  Contient: ◦ Un nom ◦ Une clé primaire ◦ Une liste de colonnes ◦ Les informations/données (sous forme.
La documentation à l ’université : le cadre législatif et réglementaire - la loi de 1984 sur l ’enseignement supérieur, dite loi Savary, propose la création.
MATHS - PHYSIQUE INFORMATIQUE ÉLECTRONIQUE - OPTIQUE Sites spécialisés 4 Septembre 2014.
CONSTRUCTION D’UN ÉQUIPEMENT POUR LES ANS, D’UNE SALLE POLYVALENTE DE QUARTIER ET DE LOCAUX COMMERCIAUX VALIDATION DU PROGRAMME / LANCEMENT DU CONCOURS.
Initiation aux bases de données et à la programmation événementielle
Article III.83 Ensemble des opérations = caractère complet de la comptabilité Exemple d’une filiale oubliée Principe de l’importance relative.
Organisation de la mémoire pour le langage minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Différencier Différencier: Verbe: “marquer comme différent; devenir différent pendant son développement; se développer d’une manière mieux adaptée à son.
Norme et Classement des informations
Module 2 de la série Thème: Axe 1 - Définir et Suivre les Objectifs Sociaux Co-animé par Amelia GREENBERG (SPTF) et Sylvestre HONVOU (AFMIN) Conférencier.
Les fronts.
Association d’astronomie de Saverne.
Cours de Mme Dominique Meganck - ICC - IFC MICROSOFT ACCESS Un système de gestion de bases de données...
Les bases de données Séance 4 Construction du Modèle Physique (la BDD)
Réforme du collège 3 parcours identifiés dans la loi, pour l’élève :
TWITTER ET PEARL TREES C’EST QUOI ? Twitter est un réseau social, un outil de mise en relation qui permet de partager des informations et interagir avec.
ENSEMBLE DE BRIDAGE : créer le socle 1 à l ’aide du dessin de définition - Ouvrir un nouveau document pièce. - Enregistrer ce document dans votre dossier.
Dispositif Atouts Normandie « sport »
Le plugin que les conducteurs voulaient…
Dispositif Atouts Normandie
26 Mercredi.
Transcription de la présentation:

Le problème de recherche Entrée: n clefs distinctes k 1, k 2, …, k n et un ensemble T de n enregistrements de la forme (k 1, I 1 ), (k 2, I 2 ), …, (k n, I n ) où I j est linformation associée à la clef k j pour 1 <= j <= n. Problème: Pour une clef K, trouver lenregistrement (k j, I j ) dans T tel que k j = K. Recherche: algorithme pour trouver un enregistrement à partir dune clef k j = K.

Succès vs. Échec Succès: Un enregistrement avec clef k j = K est trouvé. Échec: Aucun enregistrement avec clef k j = K nest trouvé (sans doute quun tel enregistrement nexiste pas).

Les différentes approches 1. Méthodes séquentielle (listes, tableaux). 2. Adressage dispersé (hashing) 3. Méthodes dindexation par arbres.

Recherche dans un tableau ordonné Recherche séquentielle Recherche dychotomique Méthode du dictionnaire

Listes ordonnées par fréquence daccès Listes ordonnées par la fréquence (espérée) daccès. Exécuter une recherche séquentielle Coût daccès à lenregistrement 1: 1 Coût daccès à lenregistrement 2: 2 Coût daccès moyen:

Exemple(1) (1) Tous les enregistrements ont la même fréquence daccès.

Exemple(2) (2) Fréquence exponentielle

Distribution de Zipf Applications: –Utilisation des mots dans les langues naturelles. –Taille des populations des villes. où

Règle 80/20 Phénomène courant dans des applications cormerciales: –80% des accès vont à 20% des enregistrements. –La même règle sapplique aux 20% des enregistrements les plus fréquents. –Etc.

Listes auto-organisées Listes auto-organisées: La position dun enregistrement dans la liste peut être modifiée après un accès. Une heuristique est utilisé pour déterminer comment réordonner la liste.

Heuristique Ordonner par la fréquence daccès observée. 1.Lorsquun enregistrement est trouvé, le déplacer au début de la liste. 2.Lorsquun enregistrement est trouvé, léchanger avec lenregistrement précédent.

Exemple: compression de texte Compression dun message à transmettre: Conserver une liste des mots rencontrés (heuristique: déplacer au début). Envoyer directement les mots nouveaux. Envoyer la position dans la liste des mots déjà rencontrés. The car on the left hit the car I left. The car on 3 left hit 3 5 I 5.

Recherche dans un ensemble Lorsque le domaine nest pas trop grand: On peut utiliser les opérateurs de bits. Exemple: Pour trouver les nombre premiers impairs: &

Adressage dispersé (1) Adressage dispersé (hashing): On associe chaque clef à une position dans une table. Une fonction de hachage transforme la valeur dune clef en une position. Nous la dénoterons h. Une table de hachage est un tableau contenant les enregistrements. Nous la dénoterons par HT. HT possède M cases indexées de 0 à M-1.

Adressage dispersé (2) Pour toute valeur de clef K, h(K) = i, 0 <= i < M, tel que HT[i].clef = K. Répond à la question: Quel enregistrement, sil existe, possède la valeur de clef K? Bon pour mémoire et disque.

Exemples simples (1) Stocker n enregistrements (clefs entre 0 et n-1) –Mettre lenregistrement avec clef i dans la case i. –Fonction de hachage h(K) = K. (2) Autre exemple: –Stocker 1000 enregistrements (clefs entre 0 et 16383). –On ne peut conserver en mémoire une table de cases. –On doit trouver une fonction de hachage nous permettant dutiliser une plus petite table.

Collisions (1) Entrée: fonction de hachage h et clefs k 1 et k 2. est lindice dune case dans la table de hachage. Si h(k 1 ) = = h(k 2 ), alors on dit quil y a collision. Recherche de lenregistrement avec clef K: 1.Calculer lindice de la table h(K). 2.Partant de h(K), trouver lenregistrement contenant la clef K en utilisant (si nécessaire) une politique de résolution des collisions.

Collisions (2) Dans la plupart des applications, les collisions sont inévitables. –Exemple: Il y a plus de 56% de probabilité quau moins deux personnes parmi un groupe de 25 aient la même date danniversaire..

Fonctions de hachage (1) Une fonction de hachage doit retourner une valeur entre 0 et M-1, où M est la taille de la table de hachage. Une fonction de hachage doit idéalement distribuer les enregistrements uniformément dans la table. En pratique, lefficacité dépend de la distribution des enregistrements..

Exemples (1) int h(int x) { return(x % 16); } Cette fonction dépend entièrement des derniers 4 bits de la clef. Méthode des carrés moyens: Mettre la clef au carré et prendre les r bits du millieu. Pour une table de hachage de 2 r cases.

Exemples (2) Pour les mots: Additionner (modulo M) la valeur ASCII des lettres. int h(char* x) { int i, sum; for (sum=0, i=0; x[i] != '\0'; i++) sum += (int) x[i]; return(sum % M); } Bon si la somme est grande par rapport à M. A=65 et Z=90 pour des mots de 10 caractères, sum est entre 650 et 900.

Exemples (3) ELF Hash: Executable and Linking Format (ELF), UNIX System V Release 4. int ELFhash(char* key) { unsigned long h = 0; while(*key) { h = (h << 4) + *key++; unsigned long g = h & 0xF L; if (g) h ^= g >> 24; h &= ~g; } return h % M; }

Adressage ouvert Comment résoudre les collisions? Adressage ouvert: utilisation de listes. Meilleur lorsque la table est conservé en mémoire

Adressage par section Divise la table en section. –Exemple: 8 cases/section. Inclut une section suplémentaire pour les surcharges. On ajoute les enregistrements à partir de la première case de sa section. Si elle est pleine, on ajoute lenregitrement dans la section suplémentaire.

Adressage fermé Tous les enregistrement sont stocker directement dans la table. Chaque enregistrement i a une case maîson h(k i ). Si un autre enregistrement occupe la case maîson de is alors une autre position doit être trouvée. La nouvelle case dépend de la politique de résolution des conflits. Les recherche doit utiliser la même politique de résolution des conflits.

Résolution des conflits Pendant une insertion, le but dune politique de résolution est de trouver une nouvelle case dans la table. Séquence de recherche: La série de cases visitées au cours dune opération insertion/recherche en suivant une politique de résolution des collision. Soit 0 = h(K). Soit ( 0, 1, …) la séquence de recherche.

Fonction séquentielle On suppose lexistence dune fonction p(k,i) qui retourne le i-ième élément de la séquence de recherche.

Insertion // Insère e dans la table HT bool hashInsert(const Elem& e){ int home; int pos = home = h(e.clef)); for (int i=1; HT[pos]!=VIDE; i++) { pos=(home + p(e.clef, i) if (e == HT[pos]) return false; } HT[pos] = e; return true; }

Recherche // Recherche lenregistrement avec clef K bool hashSearch(const Key& K, Elem& e){ int home; int pos = home = h(K); for (int i = 1; (K != HT[pos].clef) && (HT[pos]!= VIDE); i++) pos = (home + p(K, i)) % M; if (K== HT[pos].clef){ e = HT[pos]; return true; } else return false; }

Séquence linéaire La fonction séquentielle la plus simple est la suivante: p(K, i) = i % M Après la fin, on revient au début. Pour éviter de boucler à linfini, une des case de la séquence est toujour VIDE.

Exemple Amas primaire: Les enregistrement tendent à former des amas. Chaque case na pas la même probabilité de recevoir un nouvel élément

Idée damélioration On incrémente la position par une constante c>1 –On doit alors choisir M et c minutieusement. La séquence de recherche doit pouvoir visiter TOUTES les cases de la table. –Prendre c relativement premier à M. Les amas existent toujours –Ex: c=2, h(k 1 ) = 3; h(k 2 ) = 5. –Les séquences pour k 1 et k 2 sont liées.

Séquence pseudo-aléatoire(1) La fonction séquentielle idéale choisirait la prochaine case de façon aléatoire. Cela causerait cependant un problème sérieux (lequel?)

Séquence pseudo-aléatoire(2) Choisir une permutation aléatoire des nombres entre 1 et M-1: r 1, r 2, …, r M-1 Toutes les insertions et recherche utilise la même permutation. Exemple: Table de taille M = 101 –r 1 =2, r 2 =5, r 3 =32. –h(k 1 )=30, h(k 2 )=28. –Séquence pour k 1 : , 35, 62 –Séquence pour k 2 : 28, 30, 32, 60

Séquence quadratique Prendre: p(K, i) = i 2 ; Exemple: M=101 –h(k 1 )=30, h(k 2 ) = 29. –Séquence pour k 1 is: 30, 31, 34, 39 –Séquence pour k 2 is: 29, 30, 33, 38

Amas secondaire Les séquence pseudo-aléatoires et quadratiques éliminent les amas primaires. Si h(x)=h(y), alors ils suivent la même séquence. Cela est appelé amas secondaires. Pour éviter les amas secondaires, on a besoin dune fonction séquentielle p(K,i) qui utilise ses deux paramètres. position.

Hachage double p(K,i)=i*h 2 (K) Exemple: Table de taille M=101 –h(k 1 )=30, h(k 2 )=28, h(k 3 )=30. –h 2 (k 1 )=2, h 2 (k 2 )=5, h 2 (k 3 )=5. –Séquence pour k 1 : 30, 32, 34, 36 –Séquence pour k 2 : 28, 33, 38, 43 –Séquence pour k 3 : 30, 35, 40, 45

Enlever un enregistrement Ne doit pas nuire aux recherches futures. On ne veut pas rendre une position inutilisable.

Marqueur (1) Utilisation dun marqueur. Narrête pas une recherche mais indique quune case est vide.

Marqueur (2) Ajoute à la longueur des séquences de recherches. Solutions: 1.Réorganisation locale 2.Refaire la table de façon périodique.