Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
Prochain SlideShare
Chargement dans…5
×

# La recherche approchée de motifs : théorie et applications

328 vues

Publié le

The approximate string matching is a fundamental and recurrent problem that arises in most computer science fields. This problem can be defined as follows:

\begin{quote}
\textit{Let $D=\{x_1,x_2,\ldots x_d\}$ be a set of $d$ words defined on an alphabet $\Sigma$, let $q$ be a query defined also on $\Sigma$, and let $k$ be a positive integer.\\
We want to build a data structure on $D$ capable of answering the following query: find all words in $D$ that are at most different from the query word $q$ with $k$ errors.}
\end{quote}

In this thesis, we study the approximate string matching methods in dictionaries, texts, and indexes, to propose practical methods that solve this problem efficiently. We explore this problem in three complementary directions:

1) The approximate string matching in the dictionary. We propose two solutions to this problem, the first one uses hash tables for $k \geq 2$, the second uses the Trie and reverse Trie, and it is restricted to (k = 1). The two solutions are adaptable, without loss of performance, to the approximate string matching in a text.

2) The approximate string matching for \textit{autocompletion}, which is, find all suffixes of a given prefix that may contain errors. We give a new solution better in practice than all the previous proposed solutions.

3) The problem of the alignment of biological sequences can be interpreted as an approximate string matching problem. We propose a solution for peers and multiple sequences alignment.

\medskip
All the results obtained showed that our algorithms, give the best performance on sets of practical data (benchmark from the real world). All our methods are proposed as libraries, and they are published online.

Publié dans : Sciences
• Full Name
Comment goes here.

Are you sure you want to Yes No
• Soyez le premier à commenter

• Soyez le premier à aimer ceci

### La recherche approchée de motifs : théorie et applications

1. 1. La recherche approchée de motifs : théorie et applications République Algérienne Démocratique et Populaire Ministère de L'Enseignement Supérieur et de la Recherche Scientifique Université des Sciences et de la Technologie Houari Boumediene Présentée pour l’obtention du diplôme de DOCTORAT En : INFORMATIQUE Par : Chegrane Ibrahim Mme. Aicha Aissani-Mokhtari Prof USTHB/FEI Président Mme. Nacéra Bensaou MCA USTHB/FEI Directrice de thèse M. Thierry Lecroq Prof U. Rouen-Normandie Examinateur M. Riadh BabaAli Prof USTHB/FEI Examinateur M. Abdelmajid Boukra Prof USTHB/FEI Examinateur M. Djamal Belazzougui M.R CERIST Invité Soutenue publiquement, le 07 /12/ 2016 , devant le jury composé de : 1 Ibra_chegrane@hotmail.com , ibra.chegrane@gmail.com
2. 2. Plan Background : la recherche de motifs • La recherche approchée avec hachage • La recherche approchée avec Trie et Trie inversé La recherche approchée L’auto-complétion approchée L’alignement multiple 2
3. 3. La recherche de motifs 3 Exacte ibrahim ibrahim Approchée ibrahim ibrahim brahim abraham ibrahimovich blahim Hors-ligne : indexationEn-ligne
4. 4. La recherche approchée de motifs  𝑆𝑜𝑖𝑡 𝐷 𝑜𝑢 𝑇 = {𝑥1, 𝑥2, … 𝑥 𝑑} 𝑢𝑛 𝑒𝑛𝑠𝑒𝑚𝑏𝑙𝑒 𝑑𝑒 𝑑 𝑚𝑜𝑡𝑠 𝑑é𝑓𝑖𝑛𝑖𝑠 𝑠𝑢𝑟 𝑢𝑛 𝑎𝑙𝑝ℎ𝑎𝑏𝑒𝑡 𝚺,  𝑆𝑜𝑖𝑡 𝒒 𝑢𝑛𝑒 𝑟𝑒𝑞𝑢ê𝑡𝑒 𝑑é𝑓𝑖𝑛𝑖𝑒 𝑎𝑢𝑠𝑠𝑖 𝑠𝑢𝑟 𝚺,  𝑆𝑜𝑖𝑡 𝒌 𝑢𝑛 𝑒𝑛𝑡𝑖𝑒𝑟 𝑝𝑜𝑠𝑖𝑡𝑖𝑓. 𝑂𝑛 𝑣𝑒𝑢𝑡 𝑐𝑜𝑛𝑠𝑡𝑟𝑢𝑖𝑟𝑒 𝑢𝑛𝑒 𝑠𝑡𝑟𝑢𝑐𝑡𝑢𝑟𝑒 𝑑𝑒 𝑑𝑜𝑛𝑛é𝑒𝑠 𝑝𝑜𝑢𝑟 𝑫|𝑻 𝑐𝑎𝑝𝑎𝑏𝑙𝑒 𝑑𝑒 𝑟é𝑝𝑜𝑛𝑑𝑟𝑒 à 𝑙𝑎 𝑟𝑒𝑞𝑢ê𝑡𝑒 𝑠𝑢𝑖𝑣𝑎𝑛𝑡𝑒 ∶ 𝑇𝑟𝑜𝑢𝑣𝑒𝑟 𝑡𝑜𝑢𝑠 𝑙𝑒𝑠 𝑚𝑜𝑡𝑠 𝑑𝑒 𝑫|𝑻 𝑑𝑖𝑠𝑡𝑎𝑛𝑡𝑠 𝑑′𝑎𝑢 𝑝𝑙𝑢𝑠 𝒌 𝑒𝑟𝑟𝑒𝑢𝑟𝑠 𝑑𝑒 𝒒. 4
5. 5. Les fonctions de distance D. Hamming D. Levenshtein D. Levenshtein- Damerau Ibrahim Ibraham Substitution Ibrahim Ibrahimo Insertion Ibrahim brahim Suppression Ibrahim birahim Transposition 5
6. 6. Applications 6
7. 7. Problématique de la recherche approchée 1. Dans quelle position l'erreur se trouve ? xbrahim, ixrahim, ibxahim, …., ibrahix,…..,pos insertion, ……. 2. Quels sont les caractères qui mènent à des solutions possibles dans une position donnée. 3. Les types des erreurs à considérer ? (sub, insert, sup) 4. K>= 2 , combinaison entre les positions et les types. -xyrahim, xbyahim, xbryhim, xbrayim, …. 5. L’espace mémoire de SDD. 6. Combiner 1+2+3+4+5. 7 …. ibrxhim …….. a b . . . z 7 + 8 +7 = 22 Cas K=2 erreurs 20+36+20+….= 228 Cas Trouver des mots contenants des erreurs
8. 8. Méthodes de la recherche approchée Programmation dynamique Méthodes de filtrage Génération de voisinage Indexation HachageBit-parallélisme Parallélisme Méthodes hybrides 8
9. 9. Ma thèse Travaux existants 9 ThéoriePratique Algorithmes Validés en pratique Très performants Compétitifs Bibliothèques Développeurs Chercheurs
10. 10. La recherche approchée pour k >=2 en utilisant les tables de hachage** 10 ** Belazzougui, D. : Faster and space-optimal edit distance "1" dictionary. In : Combinatorial Pattern Matching, 20th Annual Symposium, CPM 2009, Lille, France, June 22-24, 2009, Proceedings. (2009) 154 167. 1ère Contribution
11. 11. La structure de données : Le dictionnaire exact L’index[i] stocke les mots de longueur i+2 Si |mot|< 𝛽. 11 𝒉 𝒙 = 𝒊=𝟏 𝒎 𝒙𝒊 × 𝒕𝒊 𝒎𝒐𝒅 𝑷 L’espace mémoire : 𝑶 𝒏 Donc 𝑶 𝒏 𝐥𝐨𝐠 𝝈 𝒃𝒊𝒕𝒔 Temps de Constr: 𝑶 𝒏 L’ index[𝛽 -2], stocke les mots >= 𝛽. 𝑃 = 232 − 5, 𝑡 ∈ [1, 𝑃 − 1] 𝐿𝐹 < 1 , 𝛽 = 16
12. 12. La structure de données : Dictionnaire des listes de substitution • D={…,ABCDE,…, ABXDE,….} – ℎ(𝜙𝐵𝐶𝐷𝐸) stocke 𝐴 . – ℎ(𝐴𝜙𝐶𝐷𝐸) stocke 𝐵 . – ℎ(𝐴𝐵𝜙𝐷𝐸) stocke 𝐶 ≡ ℎ(𝐴𝐵𝜙𝐷𝐸) stocke 𝑋 – ℎ(𝐴𝐵𝐶𝜙𝐸) stocke 𝐷 . – ℎ(𝐴𝐵𝐶𝐷𝜙) stocke 𝐸 . • C, X sont stockés dans la même position. D E A C X B 12 L’espace mémoire : 𝑶 𝒏 𝐥𝐨𝐠 𝝈 𝒃𝒊𝒕𝒔 Temps de Constr : 𝑶 𝒏
13. 13. La vérification des occurrences • D={…,ABCDE,…, ABXDE,….} • 𝑞 = 𝐴𝐵𝑦𝐷𝐸 • ℎ(𝐴𝐵𝜙𝐷𝐸) • 𝐿 = {𝐶, 𝑋} – ABCDE ℎ(𝐴𝐵𝐶𝐷𝐸) – ABXDE ℎ(𝐴𝐵X𝐷𝐸) D E A C X B vérification 13 Temps de Vérification : 𝑶 𝒎 × 𝒎 𝒍𝒐𝒈 𝝈 𝒘
14. 14. Extension à deux erreurs ou plus D E A C X B . . . . . . . . . . . . . . . . . . . . . . . . 𝑘 = 1 ≡ 𝑢1 𝜙 𝑢2 𝑘 = 2 ≡ 𝑢1 𝜙 𝑢2 𝜙 𝑢3 𝑘 = 𝑃 ≡ 𝑢1 𝜙 … 𝜙 𝑢 𝑝+1 . . . Génération Vérification 14 Pour K=2 erreurs L’espace mémoire : 𝐎 𝐍 𝐥𝐨𝐠 𝝈 𝒃𝒊𝒕𝒔 𝑵 = 𝒊=𝟏 𝒅 𝒏𝒊 𝒏𝒊 − 𝟏 𝟐 Temps de Constr: 𝑶 𝑵 Temps de Vérif : 𝑶 𝒎 𝟐 × 𝒎 𝒍𝒐𝒈 𝝈 𝒘
15. 15. L'application de l’algorithme pour l'indexation d’un texte 15
16. 16. La recherche approchée de motifs basée sur un Trie et un Trie inversé (TRT_CI). 16 2ème Contribution
17. 17. Trie D={ …. ABCDE ABDDE XYADA XYCDE XYDAA XYDDE XYZDZ …. } Recherche exacte Mot requête : XYDDE Recherche approchée k=1 Mot requête : XYqDE A B C D E D D E X Y C D E D A A D E A D A Z D Z Solutions : 1) XYDDE 2) XYCDE 17 L’espace mémoire : 𝜽 𝒏 Temps de Constr : 𝑶 𝒏 Temps Rech exact : 𝑶 𝒎 Temps Rech approchée : 𝑶 𝒌 × 𝒏
18. 18. L’idée de base de cette approche TRT_CI • Soit 𝑃 = 𝑃1 𝜙 𝑃2 mot requête • Soit 𝑃′ = 𝑃1 𝑎 𝑃2 mot solution 𝑃1 𝑎 𝑒1 𝑒2 𝑃2 𝑐1 𝑎 𝑐2𝑎, 𝑒1, 𝑒2 ∩ 𝑐1, 𝑎, 𝑐2 = {𝑎} 𝑃1 𝑎 𝑃2 Trie Trie inversé 18 Temps de Vérif pire cas : 𝑶 𝝈𝒎 𝟐 T de Vérif cas moy : 𝑶(𝒎 𝟐 ) si 𝒎 ≥ 𝒍𝒐𝒈 𝒅 𝒍𝒐𝒈 𝝈 𝑶(𝒎 + 𝒎. 𝒐𝒄𝒄𝒓𝒔) si 𝒎 ≥ 𝒍𝒐𝒈 𝒅 𝒍𝒐𝒈 𝝈 + 𝒍𝒐𝒈 𝒎 𝒍𝒐𝒈 𝝈
19. 19. La Méthode TRT_CI avec exemple D={ …. ABCDE ABDDE XYADA XYCDE XYDAA XYDDE XYZDZ …. } A B C D E D D E X Y C D E D A A D E A D A Z D Z Trie 𝐷={ …. EDCBA EDDBC ADAYX EDCYX AADYX EDDYX ZDZYX …. } A A D Y D A Y E D B A D B C Y X C Y X Trie inversé X X X 3) {A,C,D,Z} ∩ {CD} = {𝑪𝑫} Mot requête : XYqDE 1) Chercher « XY » dans le Trie  {A,C,D,Z} 2) Chercher « ED » dans le Trie inversé {CD} Solutions : XYCDE XYDDE 4) Continuer la recherche dans les branches {𝑪𝑫} 19
20. 20. TRT_C pour k erreurs – 𝑓𝑖𝑙𝑠(𝑃1) ∩ 𝑓𝑖𝑙𝑠(𝑃2) 𝑃1 𝑐𝑖 𝑃2 – 𝑓𝑖𝑙𝑠(𝑃1 𝑐𝑖 𝑃2) ∩ 𝑓𝑖𝑙𝑠(𝑃3) 𝑃1 𝑐𝑖 𝑃2 𝑐𝑗 𝑃3 𝑃′ = 𝑃1 𝑎 𝑃2 𝑏 𝑃3 GSTree inversé 𝑃2 𝑐1 𝑏 𝑐2 𝑃1 𝑎 𝑒1 𝑒2 𝑃3 GSTree GSTree inverséGSTree 𝑃 = 𝑃1 𝜙 𝑃2 𝜙 𝑃3 20
21. 21. L'application de TRT_CI pour l'indexation de texte • La recherche des occurrences des mots : – Ajouter un champ dans chaque feuille du Trie qui pointe vers une liste de toutes les positions des mots dans le texte. • La recherche des facteurs dans un texte : – Utiliser un arbre des suffixes. 21
22. 22. L’auto-complétion approchée AppacoLib Approximate auto-complete Library 22 3ème Contribution
23. 23. Auto-complétion 23
24. 24. Auto complétion approchée Xaut No Results Xaut Autocomplete Autocomplete jquery Automobile Autour Autolib Autisme Tolérer un certain nombre d'erreurs dans le préfixe tapé. Erreur 24
25. 25. Top-k auto complétion Rapporter les k suggestions les plus hautement classées. Aut …… …… …… …… …… …… …… ……. ……. K éléments. 25
26. 26. La structure de données Root B A C D C A D B C B C D D E 5 0 5 0 4 0 5 0 5 0 8 1 0 1 1 1 3 ABCD #50 ADBC #40 AC #10 ABDE #8 BA #11 CD #131) Trie compact avec un système de classement 2) La file de priorité 3) Tableau de hachage 26
27. 27. La méthode de recherche • Étape 1: Trouver les nœuds – Nœud : une solution exacte – Nœuds : des solutions approchées (avec une recherche naïve) • Étape 2: la liste du top-k complétion. Temps Rech approchée (Algo naïf) : 𝑶 𝒏 27
28. 28. Réduire le nombre de branches sortantes testées. Choisir la bonne branche dans l'arbre. 28
29. 29. Réduire le nombre de branches sortantes testées. ABxCDZZZ H(AB?CD)%n =3 x y ……….. AByXY 0 1 2 3 4 5 ......... n Mot requête = ABzCD H(AB?CD)%n=3 , tab[3]=x AB x CD D={… …} Long des préfixes limitée (exemple: 5) 29Temps de Vérification , cas moyenne : 𝑶(𝒎 𝟐)
30. 30. Méthode hybride : Liste de substitutions + méthode naïve 30 Trie Liste de substitutions Naïve
31. 31. Alignement multiple d’ADN DiaWay 4ème Contribution 31
32. 32. Introduction • Alignement : consiste à trouver des similitudes entre deux ou plusieurs séquences et déterminer leurs homologies possibles. - G C T G A T A T A G C T | | | | | | | | | | G G G T G A T - T A G C T 32
33. 33. - G C T G A T A T A G C T | | | | | | | | | | G G G T G A T - T A G C T | | | | | | - G C T - A T - - C G C - | | | | A G C G G A - A C A C C T L’alignement multiple 33
34. 34. L’approche DiaWay Basé sur l’algorithme DiAlign** ** Morgenstren, B., Dress, A., Werner, T. : Multiple DNA and protein sequence alignment based on segment-to-segment comparison. 93(October) (1996) 1209812103 34
35. 35. DiaWay: l'extraction des diagonales • La Matrice Dot plot: • S1 : ATTCCGACT • S2 : AATTCGCGT M [i] [M[i][j]= = 1: Si Match 0: Sinon A T T C C G A C T A 1 0 0 0 0 0 1 0 0 A 1 0 0 0 0 0 1 0 0 T 0 1 1 0 0 0 0 0 1 T 0 1 1 0 0 0 0 0 1 C 0 0 0 1 1 0 0 1 0 G 0 0 0 0 0 1 0 0 0 C 0 0 0 1 1 0 0 1 0 G 0 0 0 0 0 1 0 0 0 T 0 1 1 0 0 0 0 0 1 d1 : TT AA d2 : ATTCCG ATTCGC d3 : CCGA GCGT >Tri des diagonales D={d2, d3, d1} >>Indexation de D. 35
36. 36. DiaWay: l'inconsistance • Inconsistance simple: S1: s2: • Inconsistance complexe: S1: S2: S3: chevauchement NP-complet ** ** Subramanian, A.R., Kaufmann, M., Morgenstern, B. : DIALIGN-TX : greedy and progressive approaches for segment-based multiple sequence alignment. Algorithms for molecular biology : AMB 3 (January 2008) 36
37. 37. DiaWay: la résolution de l’inconsistance 1) Inconsistance chemin 2) Inconsistance Avec chemin Trouvé dans (1) 3) Inconsistance simple 37
38. 38. DiaWay : l'étape finale de l'alignement 1) Mettre les fragments ensemble 2) insérer les gaps (-). Un ensemble consistant de diagonales D'= {} Un ensemble trié D’’={d0, d1, d2, d4, d3, d6, d5} 38
39. 39. Expérimentations 𝒆𝒕 Résultats pratiques 39
40. 40. Les Dictionnaires Mobydick 37 milles mots Town 47 milles mots Anglais 213 milles mots WikiTitle 1,8 millions mots 40
41. 41. R.A. avec Hachage Dictionnaire WikiTitle (Wi) pour une erreurDictionnaire Anglais (En) pour une erreur Dictionnaire WikiTitle (Wi) pour 2 erreursDictionnaire Anglais (En) pour 2 erreurs Le temps d'insertion dans l'index 41
42. 42. TRT_CI 42
43. 43. TRT_CI Aleksander Cislak et Szymon Grabowski Avec la distance de Hamming. TRT_CI : 3 fois plus rapide , et stable Aleksander Cislak et Szymon Grabowski TRT_CI Distance Hamming = 1 Type d’erreur Edit Distance = 3 Types d’erreurs Temps 0< t <1 Temps : 0< t <1 Changement de temps / la taille de Dic Augmente Stable 43 La 2ème méthode TRT_CI La 1ère Méthode RA hachage
44. 44. TRT_CI 𝑇𝑅𝑇_𝐶𝐼 ≈ 167 𝑙𝑎 𝑟𝑒𝑐ℎ𝑒𝑟𝑐ℎ𝑒 𝑒𝑥𝑎𝑐𝑡𝑒 La recherche exacte est l’opération de référence qui donne le temps d'exécution optimal. 44
45. 45. Auto-complétion : Coté serveur, C/C++ Requête + top-k (en millisecondes) sur l'anglais (En) et sur les titres Wiki (Wi). Construction du Trie En : 177 ms , Wi : 980 ms. 45
46. 46. Auto-complétion : Coté serveur, liste de substitutions Les listes de substitutions (SL) augmentent la taille de l’index de 0,7 Mo pour Anglais (En), et de 5 Mo pour Wiki (Wi). Temps de requête avec et sans l'utilisation des listes de substitutions. 46
47. 47. Auto-complétion : Coté serveur, La méthode Hybride. 47
48. 48. Auto-complétion : Coté Client, JavaScript Navigateur Chrome. Construction du Trie En : 2.7 seconds Wi : 13 seconds. Navigateur Internet Explorer. Construction du Trie En : 30 s. Wi : 150 s. 48
49. 49. Les diagonales initiales Le nombre des diagonales consistantes est inférieur à 1% de l'ensemble des diagonales initiales. DiaWay 49 Les diagonales consistantes.
50. 50. Tests avec 10 séquences biologiques DiaWay 50
51. 51. DiaWay Tests avec 2 séquences biologiques de grande taille. 51
52. 52. Conclusion • Chegrane, I., Belazzougui, D. Simple, compact and robust approximate string dictionary. Journal of Discrete Algorithms 28(0) (2014) 49 60 StringMasters 2012 & 2013 Special Issue (Volume 1). • Chegrane, I., Belazzougui, D., Raffinot, M. Jquery ui like approximate autocomplete. International Symposium on Web Algorithms. (2015). • Chegrane, I, c., Athmane, s., Chahrazed, i., Aicha, b. Diagonal consistency problem resolution in dialign algorithm. Bioinformatics (2015) 225 231, Lisbon, Portugal. • Athmane, S., Chegrane, I., Chahrazed, I. DNA multiple alignment problem with the new diaway algorithm. ISPS 2015 (2015). • Beloucif, M , Chegrane, I . State of the art about Approximate Pattern Matching. META’12 Tunis 27-31. • Chegrane, I. Hadj Ameur, M.S. , Bensaou, N. Fast approximate string matching in dictionary using Trie and reverse Trie. in progress. 52 1) Les publications
53. 53. Conclusion • https://github.com/chegrane/compact-approximate-string- dictionary – Langage C Nb ligne code : 5766 • https://github.com/chegrane/TrieRTrie – Langage C Nb ligne code : 4444 • https://github.com/AppacoLib/api.appacoLib – Langage C Nb ligne code : 7593 – JavaScript Nb ligne code : 3884 • https://github.com/chegrane/DiaWay_2.0 – C/C++ (Qt) Nb ligne code : 5453 53 2) Les librairies
54. 54. Perspectives 1. Des solutions efficaces en pratique pour 𝑘 ≥ 2. 2. Utiliser les caractéristiques de chaque langue afin de proposer des solutions spécifiques. 3. Utiliser le parallélisme. 4. Utiliser les techniques de intelligence artificiel. 54
55. 55. Thesis defense 55 Jury Questions IbraMa thèse Les erreurs