Projto Anáis d Agoritmos Aua 07 Tris Ediri Soars d Lima <diri@iprj.urj.br>
Tris Originado d "information rtrieva" dvido a apicação m rcupração d informação. Agiizam a busca através do pré-procssamnto do txto. Quando uma séri d consutas é raizada m um txto fixo, o custo inicia d pré-procssar o txto compnsado pa acração das consutas sguints. Prmit a busca por padrõs d txto m tmpo proporciona ao tamanho do padrão buscado.
Tris S = {bar, b, bid, bu, buy, s, stock, stop} b s i u t a d y o r c p Cada nó (xcto o nó raiz) contm um caractr; Os nós fihos são ordnados afabticamnt; Os caminhos ntr o nó raiz um nó foha contm uma das strings S. k
Tris - Anáis S o comprimnto tota do txto é n, o txto possui m paavras d é o tamanho do afabto: Cada nó possui no máximo d fihos; A tri possui m fohas tm atura igua ao comprimnto da maior paavra; O númro d nós é O(n) (n s nnhum par d paavras compartiha um msmo prfixo); b s i u t a d y o r c p k
Tris - Anáis Uma tri utiiza spaço O(n) prmit raizar buscas, insrçõs rmoçõs m tmpo O(dm). n: tamanho tota das strings m S; m: tamanho da string buscada, insrida ou rmovida; d: tamanho do afabto; b s i u t a d y o r c p k
Tris Encontrando Padrõs s a b a r? s s t o c k! 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 s a b u? b u y s t o c k! 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 b i d s t o c k! b i d s t o c k! 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 h a r t h b? s t o p! 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 b h s i u t a d y a o r 6 78 47, 58 30 36 r 69 0, 24 12 c k p 84 17, 40, 51, 62
Tris Comprimidas Em uma tri comprimida: Cada nó intrno dv tr po mnos 2 fihos. Nós qu contm apnas 1 fiho são concatnados, formando um novo nó; a b r s u y t o c k p i d
Tris Comprimidas Em uma tri comprimida: Cada nó intrno dv tr po mnos 2 fihos. Nós qu contm apnas 1 fiho são concatnados, formando um novo nó; b s id u to ar y ck p Mnor númro d nós, porém a informação d cada nó ocupa mais spaço. Soução?
Tris Comprimidas Rprsntação compacta para uma tri comprimida: Armazna intrvaos d indics nos nós m vz d substrings; Utiiza spaço O(s); S[0] = S[1] = S[2] = S[3] = 0 1 2 3 4 s b a r s s t o c k S[4] = S[5] = S[6] = 0 1 2 3 0 1 2 3 S[7] = b u b u y b i d S[8] = S[9] = h a r b s t o p 1, 0, 0 7, 0, 3 0, 0, 0 1, 1, 1 6, 1, 2 4, 1, 1 0, 1, 1 3, 1, 2 1, 2, 3 8, 2, 3 4, 2, 3 5, 2, 2 0, 2, 2 2, 2, 3 3, 3, 4 9, 3, 3
Suffix Tri Uma suffix tri d uma string X é uma tri (comprimida ou não comprimida) d todos os sufixos d X. m i n i m i z 0 1 2 3 4 5 6 7 i mi nimiz z miz nimiz z nimiz z
Suffix Tri Anáis Rprsntação compacta da suffix tri d uma string X d tamanho n usando um afabto d tamanho d. Prmit raizar buscas por padrõs arbitrários m O(dm), ond m é o tamanho do padrão a sr buscado. m i n i m i z 0 1 2 3 4 5 6 7 7, 7 1, 1 0, 1 2, 7 6, 7 4, 7 2, 7 6, 7 2, 7 6, 7
Tris Apicaçõs Motors d busca armaznam o su índic d busca (coção d paavras qu podm sr buscadas) m uma tri comprimida. Cada nó foha da tri é associada a uma paavra a uma ista d páginas wb (URLs) contndo a paavra; A tri é mantida m mmória; A ista d ocorrências é mantida m mmória xtrna pod sr ranquada por rvância; Buscas booanas nvovndo conjuntos d paavras (xmpo: Anais and Agoritmos), corrspondm a conjuntos d opraçõs (xmpo: intrcssão) nas istas d ocorrências; Técnicas xtras também podm sr incuídas (xmpo: iminação d stopwords).
Tris Apicaçõs Bas d Documntos Documnto Txto Lista d ocorrências 1 2 3 4 5 6 Pas porridg hot, pas porridg cod Pas porridg in th pot Nin days cod Som ik it hot, som ik it cod Som ik it in th pot Nin days od No 1 2 3 4 5 6 7 8 9 10 11 12 13 Trmo cod days hot in it ik nin od pas porridg pot som th (Docs; Pos) (1;6), (4;8) (3;2), (6;2) (1;3), (4;4) (2;3), (5;4) (4;3,7), (5;3) (4;2,6), (5;2) (3;1), (6;1) (3;3), (6;3) (1;1,4), (2;1) (1;2,5), (2;2) (2;5), (5;6) (4;1,5), (5;1) (2;4), (5;5) Vocabuário Ocorrências posiçõs
Exrcícios Lista d Exrcícios 07 Tris http://www.inf.puc-rio.br/~ima/paa/
Litura Compmntar Haim Haim. Comptitiv Programming, 3rd Edition, 2003. Capítuo 6: String Procssing