Algorithmes rapides de recherche exacte de mot



Documents pareils
Théorie et codage de l information

Limitations of the Playstation 3 for High Performance Cluster Computing

Outils pour les réseaux de neurones et contenu du CD-Rom

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

Comment reproduire les résultats de l article : POP-Java : Parallélisme et distribution orienté objet

ARBRES BINAIRES DE RECHERCHE

WINSCOP GESTION DES COOPERATIVES D ACTIVITES ET D EMPLOI

Algorithmique et Programmation, IMA

d algorithmique D. Beauquier, J. Berstel, Ph. Chrétienne

Mode d emploi pour lire des livres numériques

Rappels d architecture

FAQ Mobiclic/ Toboclic

Differential Synchronization

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Programmation Linéaire - Cours 1

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Informatique Générale

Quelques Algorithmes simples

Algorithmes sur les mots (séquences)

I Stabilité, Commandabilité et Observabilité Introduction Un exemple emprunté à la robotique Le plan Problème...

UN EXEMPLE DE CYBERENSEIGNEMENT EN CHIMIE

Logiciel Libre Cours 3 Fondements: Génie Logiciel

nexus Timestamp Server

1 Recherche en table par balayage

Bases de programmation. Cours 5. Structurer les données

Spécifications d'impression Jusqu'à 12 ppm

Parallels Transporter Lisez-moi


Sécuristation du Cloud

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Définitions. Numéro à préciser. (Durée : )

Application de K-means à la définition du nombre de VM optimal dans un cloud

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Objets Combinatoires élementaires

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril / 15

Plus courts chemins, programmation dynamique

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : hivert

Comme chaque ligne de cache a 1024 bits. Le nombre de lignes de cache contenu dans chaque ensemble est:

introduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives

Guide pratique de CSPM, l'outil de suivi des performances du système Version française du Complete System Performance Monitor HOWTO

Chapitre 2 : Abstraction et Virtualisation

Vérification de programmes et de preuves Première partie. décrire des algorithmes

chapitre 4 Nombres de Catalan

UE C avancé cours 1: introduction et révisions

Évaluation et implémentation des langages

Chapitre 10. Les interfaces Comparable et Comparator 1

Organigramme / Algorigramme Dossier élève 1 SI

Chp. 4. Minimisation d une fonction d une variable

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Feuille TD n 1 Exercices d algorithmique éléments de correction

Les Biolangages. Thierry Lecroq. Université de Rouen FRANCE. university-logo. Thierry Lecroq (Univ. Rouen) MB / 16

Solutions du chapitre 4

Big data et sciences du Vivant L'exemple du séquençage haut débit

Compression de Données - Algorithme de Huffman Document de Conception

Perl Orienté Objet BioPerl There is more than one way to do it

FICHE UE Licence/Master Sciences, Technologies, Santé Mention Informatique

Le Langage SQL version Oracle

Reproductibilité des expériences de l article "Analyse et réduction du chemin critique dans l exécution d une application"

Exigences système Edition & Imprimeries de labeur

Nouvelles propositions pour la résolution exacte du problème de sac à dos bi-objectif unidimensionnel en variables binaires

Systèmes de transmission

Cryptographie RSA. Introduction Opérations Attaques. Cryptographie RSA NGUYEN Tuong Lan - LIU Yi 1

SUGARCRM Sugar Open Source Guide d Installation de French SugarCRM Open Source Version 4.2

Système de contrôle du trafic d une ligne de métro Dossier de tests

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

WHITE PAPER. Quels avantages la déduplication offre-t-elle aux entreprises? Livre blanc Acronis

R-ICP : une nouvelle approche d appariement 3D orientée régions pour la reconnaissance faciale

Logiciels RH. Les organisations fortes sont portées par des collaborateurs forts

Gouvernance open source : retour d'expérience. Céline Fontaine juriste 12 octobre 2012, EOLE «FOSS: Standing on the shoulders of law», Paris

Équations non linéaires

Modèles et algorithmes pour le conseil et la gestion des préférences en configuration de produit

Spécifications Techniques Générales. Techno Pole Internet. Lycée Djignabo / Ziguinchor

Exemple PLS avec SAS

MIGRER VERS LA DERNIERE VERSION DE L'ANTIVIRUS FIREWALL

Calculabilité Cours 3 : Problèmes non-calculables.

ERP Service Negoce. Pré-requis CEGID Business version sur Plate-forme Windows. Mise à jour Novembre 2009

«Clustering» et «Load balancing» avec Zope et ZEO

CA ARCserve r16 devance Veeam Backup and Replication 6.5 dans le domaine de la protection virtuelle

Valorisez vos actifs logiciels avec Rational Asset Manager. Jean-Michel Athané, Certified IT Specialist IBM Rational Software

Système binaire. Algèbre booléenne

Bases de Données Avancées

Programmation linéaire

Programmation C. Apprendre à développer des programmes simples dans le langage C

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

CA ARCserve r16 devance Symantec Backup Exec 2012

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Installation Client (licence réseau) de IBM SPSS Modeler 14.2

SERVEUR LYNX CALLEO DATACENTER 2460

Représentation d un entier en base b

Etude comparative de différents motifs utilisés pour le lancé de rayon

Boîte à outils OfficeScan

La révolution SaaS au service de la valorisation de la recherche

Red Hat Enterprise Virtualization 3.0 Instructions d'installation et informations importantes

Introduction à l Informatique licence 1 ère année Notes de Cours

TP Bases de données réparties

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

Cours Informatique 1. Monsieur SADOUNI Salheddine

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Transcription:

Algorithmes rapides de recherche exacte de mot Thierry Lecroq Thierry.Lecroq@univ-rouen.fr Laboratoire d Informatique, du Traitement de l Information et des Systèmes. Une partie de ce travail a été effectuée en collaboration avec Maxime Crochemore (IGM, université de Marne-la-Vallée) Séminaire Combinatoire & Algorithmique Université de Rouen 12 avril 2007

Plan 1 Introduction 2 Meilleur décalage 3 Hachage de q-grams 4 Résultats expérimentaux Thierry Lecroq Recherche exacte de mot 2/41

Plan 1 Introduction 2 Meilleur décalage 3 Hachage de q-grams 4 Résultats expérimentaux Thierry Lecroq Recherche exacte de mot 3/41

Recherche exacte de mot Problème Trouver une ou plus généralement toutes les occurrences d un mot x de longueur m dans un texte y de longueur n. Les deux mots x and y sont construits sur un alphabet A de cardinalité s. Thierry Lecroq Recherche exacte de mot 4/41

Recherche exacte de mot Solutions Beaucoup!!! Voir http://monge.univ-mlv.fr/~lecroq/string Thierry Lecroq Recherche exacte de mot 5/41

Recherche exacte de mot 1 Brute force algorithm 2 Search with an automaton 3 Karp-Rabin algorithm 4 Shift Or algorithm 5 Morris-Pratt algorithm 6 Knuth-Morris-Pratt algorithm 7 Simon algorithm 8 Colussi algorithm 9 Galil-Giancarlo algorithm 10 Apostolico-Crochemore algorithm 11 Not So Naive algorithm 12 Forward Dawg Matching algorithm 13 Boyer-Moore algorithm 14 Galil algorithm 15 Smyth algorithm 16 Turbo-BM algorithm 17 Apostolico-Giancarlo algorithm 18 Reverse Colussi algorithm 19 Horspool algorithm 20 Fast Search algorithm 21 Quick Search algorithm 22 Turbo Search algorithm 23 Tuned Boyer-Moore algorithm 24 Zhu-Takaoka algorithm 25 Berry-Ravindran algorithm 26 Smith algorithm 27 Raita algorithm 28 Reverse Factor algorithm 29 Turbo Reverse Factor algorithm 30 Backward Oracle Matching algorithm 31 Backward Nondeterministic Dawg Matching algorithm 32 Galil-Seiferas algorithm 33 Two Way algorithm 34 String Matching on Ordered Alphabets 35 Optimal Mismatch algorithm 36 Maximal Shift algorithm 37 Skip Search algorithm 38 KmpSkip Search algorithm 39 Alpha Skip Search algorithm Thierry Lecroq Recherche exacte de mot 6/41

Recherche exacte de mot Les plus connues Knuth Morris Pratt et Boyer Moore, 1977 Thierry Lecroq Recherche exacte de mot 7/41

Recherche exacte de mot Mécanisme de «fenêtre glissante» KMP : de gauche à droite ( ) BM : de droite à gauche ( ) Thierry Lecroq Recherche exacte de mot 8/41

Boyer-Moore Situation générale y x b = a Un suffixe u du mot x est détecté et une inégalité intervient entre une lettre a de x et une lettre b du texte y. u = u Thierry Lecroq Recherche exacte de mot 9/41

Décalage de «bon suffixe» y x b = a Le décalage de bon suffixe consiste à aligner le facteur u = x[i + 1..m 1] = y[i + j + 1..j + m 1] avec une des ses réoccurrences dans x. u = u Thierry Lecroq Recherche exacte de mot 10/41

Trois décalages de bon suffixe (I) Décalage faible y x x b = a c Aucune condition sur la lettre c précédant u : il est alors possible que c = a. u = u = u shift Thierry Lecroq Recherche exacte de mot 11/41

Trois décalages de bon suffixe (II) Décalage fort y b u = = x a u shift = = x c u La lettre c doit être différente de la lettre a. Thierry Lecroq Recherche exacte de mot 12/41

Trois décalages de bon suffixe (III) Meilleur décalage y c doit être égale à b. x x b = a c u = u = u shift Thierry Lecroq Recherche exacte de mot 13/41

Trois décalages de bon suffixe Les décalages faible et fort ne dépendent que de x. Le meilleur décalage dépend de x et de l alphabet. Thierry Lecroq Recherche exacte de mot 14/41

Complexité Theorem (Cole, 1994) Lors de la recherche de la première occurrence d un mot x non-périodique dans un texte de longueur n, l algorithme de Boyer-Moore effectue moins de 3n comparaisons entre des lettres de x et des lettres de y. Thierry Lecroq Recherche exacte de mot 15/41

Principales améliorations Galil, 1980 : mémorisation de préfixe, 14n Smyth, 2003 : mémorisation de préfixe, 4n Turbo BM, 1994 : mémorisation de suffixe, 2n Apostolico Giancarlo, 1986 : mémorisation de suffixes, 3 2 n Thierry Lecroq Recherche exacte de mot 16/41

Amélioration récente S. Lu, F. Cao et Y. Lu Pama : a Fast String Matching Algorithm International Journal on Foundations of Computer Science 17(2) (2006) 357 358 Meilleur décalage en espace quadratique et stratégie à la Turbo BM Thierry Lecroq Recherche exacte de mot 17/41

Plan 1 Introduction 2 Meilleur décalage 3 Hachage de q-grams 4 Résultats expérimentaux Thierry Lecroq Recherche exacte de mot 18/41

Calcul du meilleur décalage Pour 0 i m 1 : suff [i] = longueur du plus long suffixe de x se terminant à la position i sur x. x a = u = x c u bmatch[m 1 suff[i],c] i suff[i] Thierry Lecroq Recherche exacte de mot 19/41

Calcul linéaire de suff x 0 g i f b u a u m 1 suff[f] Invariant g = f suff [f] est minimal Thierry Lecroq Recherche exacte de mot 20/41

Calcul linéaire de suff Trois cas b i x 0 g i f m 1 f+i b u a u m 1 suff[f] suff[m 1 f+i]? Thierry Lecroq Recherche exacte de mot 21/41

Calcul du meilleur décalage Examiner les valeurs de la table suff de gauche à droite. Une autre preuve de linéarité. Thierry Lecroq Recherche exacte de mot 22/41

Calcul du meilleur décalage Exemple 0 1 2 3 4 5 6 7 8 9 10 11 a c g t i 0 1 2 3 4 5 6 7 8 9 10 11 x[i] c a t a c a t a a a t a suff [i] 0 1 0 3 0 1 0 3 1 1 0 12 Thierry Lecroq Recherche exacte de mot 23/41

Calcul du meilleur décalage Exemple a c g t 0 1 2 3 4 5 6 7 8 9 10 11 11 i 0 1 2 3 4 5 6 7 8 9 10 11 x[i] c a t a c a t a a a t a suff [i] 0 1 0 3 0 1 0 3 1 1 0 12 Thierry Lecroq Recherche exacte de mot 23/41

Calcul du meilleur décalage Exemple a c g t 0 1 2 3 4 5 6 7 8 9 10 10 11 11 i 0 1 2 3 4 5 6 7 8 9 10 11 x[i] c a t a c a t a a a t a suff [i] 0 1 0 3 0 1 0 3 1 1 0 12 Thierry Lecroq Recherche exacte de mot 23/41

Calcul du meilleur décalage Exemple a c g t 0 1 2 3 4 5 6 7 8 9 10 10 11 11 9 i 0 1 2 3 4 5 6 7 8 9 10 11 x[i] c a t a c a t a a a t a suff [i] 0 1 0 3 0 1 0 3 1 1 0 12 Thierry Lecroq Recherche exacte de mot 23/41

Calcul du meilleur décalage Exemple a c g t 0 1 2 3 4 5 6 7 8 8 9 10 10 11 11 9 i 0 1 2 3 4 5 6 7 8 9 10 11 x[i] c a t a c a t a a a t a suff [i] 0 1 0 3 0 1 0 3 1 1 0 12 Thierry Lecroq Recherche exacte de mot 23/41

Calcul du meilleur décalage Exemple a c g t 0 1 2 3 4 5 6 7 8 8 9 10 10 11 7 9 i 0 1 2 3 4 5 6 7 8 9 10 11 x[i] c a t a c a t a a a t a suff [i] 0 1 0 3 0 1 0 3 1 1 0 12 Thierry Lecroq Recherche exacte de mot 23/41

Calcul du meilleur décalage Exemple a c g t 0 1 2 3 4 5 6 7 8 8 9 10 6 11 7 9 i 0 1 2 3 4 5 6 7 8 9 10 11 x[i] c a t a c a t a a a t a suff [i] 0 1 0 3 0 1 0 3 1 1 0 12 Thierry Lecroq Recherche exacte de mot 23/41

Calcul du meilleur décalage Exemple a c g t 0 1 2 3 4 5 6 7 8 8 9 10 6 11 7 5 i 0 1 2 3 4 5 6 7 8 9 10 11 x[i] c a t a c a t a a a t a suff [i] 0 1 0 3 0 1 0 3 1 1 0 12 Thierry Lecroq Recherche exacte de mot 23/41

Calcul du meilleur décalage Exemple a c g t 0 1 2 3 4 5 6 7 8 4 9 10 6 11 7 5 i 0 1 2 3 4 5 6 7 8 9 10 11 x[i] c a t a c a t a a a t a suff [i] 0 1 0 3 0 1 0 3 1 1 0 12 Thierry Lecroq Recherche exacte de mot 23/41

Calcul du meilleur décalage Exemple a c g t 0 1 2 3 4 5 6 7 8 4 9 10 3 6 11 7 5 i 0 1 2 3 4 5 6 7 8 9 10 11 x[i] c a t a c a t a a a t a suff [i] 0 1 0 3 0 1 0 3 1 1 0 12 Thierry Lecroq Recherche exacte de mot 23/41

Calcul du meilleur décalage Exemple a c g t 0 1 2 3 4 5 6 7 8 4 9 10 2 6 11 7 5 i 0 1 2 3 4 5 6 7 8 9 10 11 x[i] c a t a c a t a a a t a suff [i] 0 1 0 3 0 1 0 3 1 1 0 12 Thierry Lecroq Recherche exacte de mot 23/41

Calcul du meilleur décalage Exemple a c g t 0 1 2 3 4 5 6 7 8 4 9 10 2 6 11 7 1 i 0 1 2 3 4 5 6 7 8 9 10 11 x[i] c a t a c a t a a a t a suff [i] 0 1 0 3 0 1 0 3 1 1 0 12 Thierry Lecroq Recherche exacte de mot 23/41

Meilleur décalage Cas dégénéré y x b = a x u = u = v u ne réapparait pas dans x v est le plus long préfixe de x suffixe de u (qui est un suffixe de x) v est un bord qui peut être détecté lorsque suff [i] = i + 1 shift Thierry Lecroq Recherche exacte de mot 24/41

Calcul du meilleur décalage Exemple a c g t 0 12 12 12 12 1 12 12 12 12 2 12 12 12 12 3 12 12 12 12 4 12 12 12 12 5 12 12 12 12 6 12 12 12 12 7 12 12 12 12 8 12 12 12 12 9 12 12 12 12 10 12 12 12 12 11 12 12 12 12 i 0 1 2 3 4 5 6 7 8 9 10 11 x[i] c a t a c a t a a a t a suff [i] 0 1 0 3 0 1 0 3 1 1 0 12 Thierry Lecroq Recherche exacte de mot 25/41

Calcul du meilleur décalage Exemple a c g t 0 12 12 12 12 1 12 12 12 12 2 12 12 12 12 3 12 12 12 12 4 12 12 12 12 5 12 12 12 12 6 12 12 12 12 7 12 12 12 12 8 4 12 12 12 9 12 12 12 12 10 2 6 12 12 11 12 7 12 1 i 0 1 2 3 4 5 6 7 8 9 10 11 x[i] c a t a c a t a a a t a suff [i] 0 1 0 3 0 1 0 3 1 1 0 12 Thierry Lecroq Recherche exacte de mot 25/41

Plan 1 Introduction 2 Meilleur décalage 3 Hachage de q-grams 4 Résultats expérimentaux Thierry Lecroq Recherche exacte de mot 26/41

Hachage de q-grams Definition q-gram : facteur de longueur q Méthode Calcul d une valeur de hachage dans [0, 255] pour chaque q-grams du mot x Calcul d une longueur de décalage pour chaque valeur de hachage Déboucler tant que possible Thierry Lecroq Recherche exacte de mot 27/41

Hachage de q-grams Exemple i 0 1 2 3 4 5 6 7 8 9 10 11 x[i] c a t a c a t a a a t a shift[i] 10 i [0; 255] Thierry Lecroq Recherche exacte de mot 28/41

Hachage de q-grams Exemple i 0 1 2 3 4 5 6 7 8 9 10 11 x[i] c a t a c a t a a a t a h(cat) = ((rank(c) 2 + rank(a)) 2 + rank(t) = 194 shift[194] = 10 shift[194] 9 Thierry Lecroq Recherche exacte de mot 28/41

Hachage de q-grams Exemple i 0 1 2 3 4 5 6 7 8 9 10 11 x[i] c a t a c a t a a a t a h(ata) = ((rank(a) 2 + rank(a)) 2 + rank(a) = 205 shift[205] = 10 shift[205] 8 Thierry Lecroq Recherche exacte de mot 28/41

Hachage de q-grams Exemple i 0 1 2 3 4 5 6 7 8 9 10 11 x[i] c a t a c a t a a a t a h(tac) = ((rank(t) 2 + rank(a)) 2 + rank(c) = 245 shift[245] = 10 shift[245] 7 Thierry Lecroq Recherche exacte de mot 28/41

Hachage de q-grams Exemple i 0 1 2 3 4 5 6 7 8 9 10 11 x[i] c a t a c a t a a a t a h(aca) = ((rank(a) 2 + rank(c)) 2 + rank(a) = 171 shift[171] = 10 shift[171] 6 Thierry Lecroq Recherche exacte de mot 28/41

Hachage de q-grams Exemple i 0 1 2 3 4 5 6 7 8 9 10 11 x[i] c a t a c a t a a a t a h(cat) = ((rank(c) 2 + rank(a)) 2 + rank(t) = 194 shift[194] = 9 shift[194] 5 Thierry Lecroq Recherche exacte de mot 28/41

Hachage de q-grams Exemple i 0 1 2 3 4 5 6 7 8 9 10 11 x[i] c a t a c a t a a a t a h(ata) = ((rank(a) 2 + rank(t)) 2 + rank(a) = 205 shift[205] = 8 shift[205] 4 Thierry Lecroq Recherche exacte de mot 28/41

Hachage de q-grams Exemple i 0 1 2 3 4 5 6 7 8 9 10 11 x[i] c a t a c a t a a a t a h(taa) = ((rank(t) 2 + rank(a)) 2 + rank(a) = 243 shift[243] = 10 shift[243] 3 Thierry Lecroq Recherche exacte de mot 28/41

Hachage de q-grams Exemple i 0 1 2 3 4 5 6 7 8 9 10 11 x[i] c a t a c a t a a a t a h(aaa) = ((rank(a) 2 + rank(a)) 2 + rank(a) = 167 shift[167] = 10 shift[167] 2 Thierry Lecroq Recherche exacte de mot 28/41

Hachage de q-grams Exemple i 0 1 2 3 4 5 6 7 8 9 10 11 x[i] c a t a c a t a a a t a h(aat) = ((rank(a) 2 + rank(a)) 2 + rank(t) = 186 shift[186] = 10 shift[186] 1 Thierry Lecroq Recherche exacte de mot 28/41

Hachage de q-grams Exemple i 0 1 2 3 4 5 6 7 8 9 10 11 x[i] c a t a c a t a a a t a h(ata) = ((rank(a) 2 + rank(t)) 2 + rank(a) = 205 shift[205] = 4 = sh1 4 shift[205] 0 Thierry Lecroq Recherche exacte de mot 28/41

Hashing q-grams Algorithme Newq(x, m, y, n) pour q = 3 Prétraitement pour i 0 à 255 faire shift[i] m 2 pour i 2 à m 2 faire h ((x[i 2] 2 + x[i 1]) 2) + x[i] shift[h mod 256] m 1 i h ((x[m 3] 2 + x[m 2]) 2) + x[m 1] sh1 shift[h mod 256] shift[h mod 256] 0 Thierry Lecroq Recherche exacte de mot 29/41

Hachage de q-grams Algorithme Newq(x, m, y, n) pour q = 3 Recherche y[n..n + m 1] x Sentinelle j m 1 tantque Vrai faire sh 1 tantque sh 0 faire h ((y[j 2] 2 + y[j 1]) 2) + y[j] sh shift[h mod 256] j j + sh si j < n alors si x = y[j m + 1..j] alors Reporter(j m + 1) j j + sh1 sinon Retourner Thierry Lecroq Recherche exacte de mot 30/41

Plan 1 Introduction 2 Meilleur décalage 3 Hachage de q-grams 4 Résultats expérimentaux Thierry Lecroq Recherche exacte de mot 31/41

Résultats expérimentaux Conditions Processeur Intel Pentium à 1300MHz Linux Red Hat version 2.4.20-8 gcc avec l option d optimisation -O3 fonction clock 100 mots choisis pseudo-aléatoirement dans les textes Textes Alphabet binaire, pseudo-aléatoire (distribution uniforme), 4 Mo E.coli du Large Canterbury Corpus, 4,6 Mo Alphabet de cardinalité 8, pseudo-aléatoire (distribution uniforme), 4 Mo world192.txt du Large Canterbury Corpus, 4,3 Mo Thierry Lecroq Recherche exacte de mot 32/41

Résultats expérimentaux Algorithmes BM2fast Boyer Moore meilleur décalage et boucle rapide NEWq pour q [3, 8] TBM Tuned Boyer Moore (Hume & Sunday, 1991) SSABS (Sheik, Aggarwal, Poddar, Balakrishnan & Sekar, 2004) SBNDM2 (Holub & Durian, 2005) Thierry Lecroq Recherche exacte de mot 33/41

Résultats expérimentaux Alphabet binaire Thierry Lecroq Recherche exacte de mot 34/41

Résultats expérimentaux E.coli du Large Canterbury corpus Thierry Lecroq Recherche exacte de mot 35/41

Résultats expérimentaux Alphabet de cardinalité 8 Thierry Lecroq Recherche exacte de mot 36/41

Résultats expérimentaux Langage naturel Thierry Lecroq Recherche exacte de mot 37/41

Conclusions Alphabet bianire : NEW5-8 for m [9; 256] Alphabet de cardinalité 4 : NEW3-5 for m [7; 128] Alphabet de cardinalité 8 : NEW3-5 for m [13; 64] Langage naturel : BM2fast for m [7; 15] Thierry Lecroq Recherche exacte de mot 38/41

Perspectives Utiliser une meilleure fonction de hachage Thierry Lecroq Recherche exacte de mot 39/41

Références À paraître bientôt... Meilleur décalage et bien d autres choses encore plus intéressantes Thierry Lecroq Recherche exacte de mot 40/41

Références M. Crochemore et T. Lecroq A fast implementation of the Boyer Moore string matching algorithm Soumis T. Lecroq Fast string matching algorithms Information Processing Letters À paraître Thierry Lecroq Recherche exacte de mot 41/41