1 / 23

Curs de Doctorat: Algorismes de cerca

Curs de Doctorat: Algorismes de cerca. Cerca exacta:. Només el text ----> Estructurar el text (suffix tree). Només el/s patró/ns ---> Estructurar el/els patró/ns. 1 patró ---> L’algorisme depèn de la llargada i | |. k patrons ---> L’algorisme depén del nombre k, la llargada i | |.

jesus
Télécharger la présentation

Curs de Doctorat: Algorismes de cerca

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Curs de Doctorat: Algorismes de cerca • Cerca exacta: • Només el text ----> Estructurar el text (suffix tree) • Només el/s patró/ns ---> Estructurar el/els patró/ns • 1 patró ---> L’algorisme depèn de la llargada i || • k patrons ---> L’algorisme depén del nombre k, la llargada i || • Cerca aproximada: • l<w (llargada paraula) ---> Algorisme Myers • l>w (llargada paraula) ---> Programació dinàmica Algorismes de cerca: definició del problema (text,patró) depèn de què coneixem al principi: depèn de la llargada del patró

  2. Alg. Cerca exacta d’un patró (text on-line) Algorismes més eficients (Navarro & Raffinot) BNDM : Backward Nondeterministic Dawg Matching | | BOM : Backward Oracle Matching 64 32 16 Horspool 8 BOM BNDM 4 Long. patró 2 w 2 4 8 16 32 64 128 256

  3. Algorisme de Horspool • Com fa la comparació? Text : Patró : Compara sufixes • Com es determina la següent posició de la finestra? a Text : Patró : Salta fins a la primera aparició de la lletra “a” a partir del segon lloc: a a a a a a Es necessari fer un preprocés que determini el salt per a cada símbol.

  4. Exemple algorisme de Horspool Suposem que el patró és ATGTA A 4 C 5 G 2 T 1 • La taula de salts seria: I la cerca sobre el text : G T A C T A G A G G A C G T A T G T A C T G ... A T G T A A T G T A A T G T A A T G T A A T G T A A T G T A A T G T A

  5. Alg. Cerca exacta d’un patró (text on-line) Algorismes més eficients (Navarro & Raffinot) BNDM : Backward Nondeterministic Dawg Matching | | BOM : Backward Oracle Matching 64 32 16 Horspool 8 BOM BNDM 4 Long. patró 2 w 2 4 8 16 32 64 128 256

  6. Algorisme BNDM • Com fa la comparació? Llegeix anotant sufixos de T que són factors de P Text : Patró : I ho anota de la forma D = 1 0 0 0 1 0 0 I pel següent símbol fa D = D<<1 & B(x) B(x): máscara del símbol següent x al patró P. Si fos B(x) = ( 0 0 1 1 0 0 0) D = (0 0 0 1 0 0 0) & (0 0 1 1 0 0 0 ) = (0 0 0 1 0 0 0 ) El tres ultims simbols de T apareixen a P a la posició indicada • Com es determina la següent posició de la finestra? Si surt un 1 a es fa coincidir el prefix de P amb el sufix de T Si no passa, es que cap prefix de P es sufix de T, llavors es salta tota la finestra.

  7. Exemple algorisme BNDM B(A) = ( 1 0 0 0 1 ) B(C) = ( 0 0 0 0 0 ) B(G) = ( 0 0 1 0 0 ) B(T) = ( 0 1 0 1 0 ) • La màscara de bits per a cada símbol és: • I la cerca sobre el text : G T A C T A G A G G A C G T A T G T A C T G ... A T G T A A T G T A A T G T A A T G T A Suposem que el patró és ATGTA D0 = ( 1 1 1 1 1 ) D1 = ( 1 1 1 1 1 ) & ( 0 1 0 1 0 ) = ( 0 1 0 1 0 ) D2 = ( 1 0 1 0 1 ) & ( 0 0 0 0 0 ) = ( 0 0 0 0 0 ) D0 = ( 1 1 1 1 1 ) D1 = ( 1 1 1 1 1 ) & ( 0 0 1 0 0 ) = ( 0 0 1 0 0 ) D2 = ( 0 1 0 0 0 ) & ( 0 0 1 0 0 ) = ( 0 0 0 0 0 ) D0 = ( 1 1 1 1 1 ) D1 = ( 1 1 1 1 1 ) & ( 1 0 0 0 1 ) = ( 1 0 0 0 1 ) D2 = ( 0 0 0 1 0 ) & ( 0 1 0 1 0 ) = ( 0 0 0 1 0 ) D3 = ( 0 0 1 0 0 ) & ( 0 0 1 0 0) = ( 0 0 1 0 0 ) D4 = ( 0 1 0 0 0 ) & ( 0 0 0 0 0) = ( 0 0 0 0 0 )

  8. Exemple algorisme BNDM B(A) = ( 1 0 0 0 1 ) B(C) = ( 0 0 0 0 0 ) B(G) = ( 0 0 1 0 0 ) B(T) = ( 0 1 0 1 0 ) • El patró és ATGTA • La màscara de bits per a cada símbol és: • I la cerca sobre el text continua: G T A C T A G A G G A C G T A T G T A C T G ... A T G T A A T G T A D0 = ( 1 1 1 1 1 ) D1 = ( 1 1 1 1 1 ) & ( 1 0 0 0 1 ) = ( 1 0 0 0 1 ) D2 = ( 0 0 0 1 0 ) & ( 0 1 0 1 0 ) = ( 0 0 0 1 0 ) D3 = ( 0 0 1 0 0 ) & ( 0 0 1 0 0 ) = ( 0 0 1 0 0 ) D4 = ( 0 1 0 0 0 ) & ( 0 1 0 1 0 ) = ( 0 1 0 0 0 ) D5 = ( 1 0 0 0 0 ) & ( 1 0 0 0 1 ) = ( 1 0 0 0 0 ) D6 = ( 0 0 0 0 0 ) & ( * * * * * ) = ( 0 0 0 0 0 ) Trobat!

  9. Alg. Cerca exacta d’un patró (text on-line) Algorismes més eficients (Navarro & Raffinot) BNDM : Backward Nondeterministic Dawg Matching | | BOM : Backward Oracle Matching 64 32 16 Horspool 8 BOM BNDM 4 Long. patró 2 w 2 4 8 16 32 64 128 256

  10. Algorisme BOM (Backward Oracle Matching) • Com fa la comparació? Text : Patró : Autòmata: Factor Oracle Comproba si el sufix és factor del patró • Com es determina la següent posició de la finestra? a • Si la a no s’ha trobat a • Si arriben a l’estat final de l’autòmat amb la a

  11. Autòmata Factor Oracle: propietats G T A G T T A G T A G T A G T T A G T A L’estat reconeix tots els factors que acaben a la quarta lletra T que no eren reconeguts: GTAT, TAT, AT perque T ja ho era. Reconeix tots els factors de de les primeres 4 lletres Factor Oracle del mot G T A T G T A Tots els estats són finals ==> Reconeix tots els factors …. i més Hip: reconeix tots factors de GTA

  12. Autòmata Factor Oracle: algorisme ? Algorisme: per a i=1 fins p fer Afegir transicions que reconeguin factors acabats a i;

  13. Autòmata Factor Oracle: algorisme T T Que passa si el següent caràcter existeix?

  14. Autòmata Factor Oracle: algorisme T T Que passa si el següent caràcter no existeix?

  15. Autòmata Factor Oracle: exemple d’algorisme G T A G T T A G T A i reconeix mots que no són factors com GTGTA. Però, si no el reconeix ==> no és factor! Es l’estratègia de l’algorisme BOM

  16. Algorisme BOM Compara sufixes Text : Patró : Autòmata invers a • Si la a no s’ha trobat • Si arriben a l’estat final de l’autòmat amb la a • Com fa la comparació? • Com es determina la següent posició de la finestra?

  17. Autòmata Factor Oracle: exemple d’algorisme G T A G T T A G T A • I la cerca sobre el text : G T A C T A G A G G A T G T A G A T A T G A G G T G A... A T G T A T G A T G T A T G A T G T A T G • Com fa la comparació? • Es construeix l’autòmata del patró invers: Suposem que el patró és ATGTATG * * * * * A T G T A T G

  18. Alg. Cerca exacta de molts patrons | | (5 mots) 8 Wu-Manber 4 SBOM Long. mínima 2 5 10 15 20 25 30 35 40 45 8 Wu-Manber (10 mots) 4 SBOM 2 5 10 15 20 25 30 35 40 45 Wu-Manber 8 (100 mots) 4 SBOM 2 5 10 15 20 25 30 35 40 45

  19. Alg. Cerca exacta de molts patrons | | (5 mots) 8 Wu-Manber 4 SBOM Long. mínima 2 5 10 15 20 25 30 35 40 45 8 Wu-Manber (10 mots) 4 SBOM 2 5 10 15 20 25 30 35 40 45 (1000 mots) SBOM 8 (100 mots) 4 2 5 10 15 20 25 30 35 40 45

  20. Autòmata Multi-Factor Oracle G T A G T T G T A G T A G T T A A G T A T A Tenim el Factor Oracle de GTATGTA Com serà el de GTATGT, TAATA

  21. Autòmata Multi-Factor Oracle A A G T A G T T A A G T A T A Multi Factor Oracle de GTATGT, TAATA, TGTAA

  22. Algorisme SBOM • Com fa la comparació? Compara sufixes Text : Patrons: Autòmata invers • Com es determina la següent posició de la finestra? a • Si la a no s’ha trobat • Si arriben a l’estat final de l’autòmat amb la a

  23. Autòmata Factor Oracle: exemple d’algorisme G T A G T T A A G T A T A A A • I la cerca sobre el text : G T A C T A G A G G A T G T A G A T A T G A G G T G A... • Com fa la comparació? • Es construeix l’autòmata dels patrons inversos: TGTATG, ATAAT, AATGT * * * * * * * * * *

More Related