Pttern Mtching Medinte utomi ho-corsick Espressioni Regolri dde Simonett Cmroto lessio Tni lice dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 1
Sommrio Introduzione Nozioni Preliminri utomi Pttern Mtching Multiplo ho - Corsick Bidimensionle Espressioni Regolri Conclusioni dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 2
Introduzione Introduzione Nozioni Preliminri utomi Pttern Mtching Multiplo ho - Corsick Bidimensionle Espressioni Regolri Conclusioni dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 3
Introduzione L iologi computzionle h come tem centrle l ricerc di sequenze molecolri ll interno di sequenze più lunghe, llo scopo di ricostruire un sequenz di DN di singoli pezzi ottenuti d esperimenti ricercre delle specifiche crtteristiche nelle sequenze di DN determinre qunto sono differenti due sequenze di codice genetico ricercre motivi, strutturti e non, che occorrono frequentemente nel DN dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 4
Il prolem Qundo si ottiene un nuov sequenz, le possiili domnde d porsi sono 1. l sequenz present somiglinze con qulche ltr sequenz già memorizzt in un nc dti? 2. l sequenz è già presente nell nc dti? dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 5
Pttern Mtching 1. L sequenz present somiglinze con qulche ltr sequenz già memorizzt in un nc dti? Bisogn risolvere un prolem di pttern mtching pprossimto Dt un string pttern P e un string testo T, voglimo cercre occorrenze di sequenze simili P in T dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 6
Pttern Mtching 2. L sequenz è già presente nell nc dti? Bisogn risolvere un prolem di pttern mtching estto Dt un string pttern P di lunghezz m e un string testo T di lunghezz n, entrme definite sull lfeto Σ,, voglimo stilire se P occorre in T dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 7
pprocci lgoritmici imo visto vri pprocci lgoritmici l prolem Forz Brut Morris - Prtt Knuth - Morris - Prtt Krp - Rin Suffix Tree dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 8
pprocci lgoritmici Noi vedremo un pproccio sto su utomi per risolvere il prolem del pttern mtching estto nel cso multiplo: ho-corsick estto: Espressioni Regolri dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 9
Nozioni Preliminri: utomi Introduzione Nozioni Preliminri utomi Pttern Mtching Multiplo ho - Corsick Bidimensionle Espressioni Regolri Conclusioni dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 10 10
utomi (Q, Σ, Un utom stti finiti è un quintupl (Q, δ,, q 0, F) Q è un insieme finito di stti Σ è un lfeto finito di crtteri di input q 0 Q è lo stto inizile F Q è l insieme degli stti finli δ è l funzione di trnsizione Q Σ Q d ogni coppi (stto, crttere) ssoci un insieme di stti successivi, Q dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 11 11
δ: Esempio Due modlità di rppresentzione q 0 q 1 q 2 q 1 q 0 {q 1 } / q 2 / {q 1, q 2 } / / Rppresentzione Grfic Rppresentzione Tellre q 0 Stto Inizile q 2 Stto Finle dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 12 12
utomi Deterministici (DF) Un DF è un utom tle che per ogni stto s e ogni crttere di ingresso x, c è l più un trnsizione dllo stto s l cui etichett contiene x c c c q 0 {q 1 } / / q 0 q 1 q 2 q 1 q 2 / / {q 2 } / {q 1 } {q 2 } Rppresentzione Grfic Rppresentzione Tellre dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 13 13
utomi Non Deterministici (NF) Un NF è un utom tle che può vere (m non necessrimente) due o più trnsizioni, prtire dllo stesso stto, che contengono lo stesso simolo q 0 q 1 q 2 q 1 q 0 {q 1 } / q 2 / / {q 1, q 2 } / Rppresentzione Grfic Rppresentzione Tellre dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 14 14
cos servono gli utomi? Un utom definisce un linguggio L, ossi un insieme di stringhe su un lfeto Σ riconosce se un dt string, dett input, pprtiene d L dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 15 15
Riconoscimento Stringhe Riconoscimento T =... δ(q i,) = q j q i q j Non Riconoscimento T =... δ(q i,) = {} q i q j T =... δ(q i,) = q j q i q j dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 16 16
Pttern Mtching Multiplo Introduzione Nozioni Preliminri utomi Pttern Mtching Multiplo ho - Corsick Bidimensionle Espressioni Regolri Conclusioni dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 17 17
Pttern Mtching Multiplo Ricerc simultne di più pttern P 1,, P k in un testo T pprocci possiili Eseguire k ricerche indipendenti, un per ciscun pttern P i d trovre nel testo T => O(k*costo singol ricerc) ho-corsick Corsick: : utilizz l similrità tr i pttern d ricercre => O( P 1 + + P + P k + T ) dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 18 18
ho-corsick Introduzione Nozioni Preliminri utomi Pttern Mtching Multiplo ho - Corsick Bidimensionle Espressioni Regolri Conclusioni dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 19 19
Definizione L utom di ho-corsick è un utom deterministico esteso, definito d due funzioni 1. l funzione di trnsizione δ: l funzione di fllimento φ: Q Q 2. l funzione di fllimento δ: Q Σ Q dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 20 20
Funzione di trnsizione δ 1. L funzione di trnsizione δ dto uno stto i e il crttere del testo c, δ(i,c) restituisce il prossimo stto dell utom se esiste (mtch( mtch) un vlore vuoto (mismtch( mismtch) dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 21 21
Mtch vs. Mismtch Mtch T =... δ(q i,) = q j q i q j Mismtch T =... δ(q i,) = {} q i q j dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 22 22
Funzione di fllimento φ 2. L funzione di fllimento φ φ(i) restituisce il prossimo stto dell utom, in cso di mismtch con il crttere corrente c nello stto i, ossi nel cso in cui δ(i,c) fornisc un vlore vuoto il vlore di φ(i) è determinto sfruttndo un vrinte del concetto di ordo di un string già visto in KMP dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 23 23
Modific del concetto di Bordo In KMP, il ordo di un string s è definito come ordo(s) = l più lung sottostring propri di s che ne è si suffisso che prefisso In ho-corsick Corsick,, il ordo di un string s è definito come ordo(s) = il più lungo suffisso proprio di s che è nche prefisso di lmeno uno dei pttern P 1,...,P k d ricercre nel testo T dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 24 24
Costruzione utom Complessità: O( P 1 + + P + P k ) L costruzione dell'utom vviene in 2 fsi fse 1: costruzione dello scheletro dell'utom che riconosce i pttern P 1...P.P k definizione dell funzione δ fse 2: definizione dell funzione φ dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 25 25
Costruzione utom Fse 1: costruzione dello scheletro dell utom per i pttern P 1,,P k 1. Costruimo l utom l che riconosce il pttern P 1 dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 26 26
Esempio P 1 = NNS q 0 N q 1 q 2 q 3 N q 4 q 5 S q 6 dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 27 27
Costruzione utom 2. Per 1 1 i < k. clcolimo il più lungo prefisso in comune, lcp,, tr P i+1 e tutti i pttern già inseriti nell utom dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 28 28
Esempio P 1 = NNS, NS, P 2 = NTR lcp = N q 0 N q 1 q 2 q 3 N q 4 q 5 S q 6 dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 29 29
Costruzione utom. Usimo l funzione δ per visitre l utom l prtire dllo stto inizile fino llo stto q p in cui termin l lcpl lcp clcolto l punto. Se l lcpl lcp è l string vuot, $, si colleg l utom l che riconosce l intero l pttern P i+1 llo stto inizile dell utom di ho-corsick diverso dll string vuot, si colleg l utom l che riconosce i rimnenti {P i+1 lcp} crtteri del pttern P i+1, llo stto q p dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 30 30
Esempio P 1 = NNS, NS, P 2 = NTR q p = q 3 q 0 N q 1 q 2 q 3 N q 4 q 5 S q 6 T q 7 R q 8 q 9 {P 2 lcp} } = TR dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 31 31
Esempio P 1 = $NNS,, P 2 = $NTR P 3 = $BCIO lcp = $ q 0 N q 1 q 2 q 3 N q 4 q 5 S q 6 T q 7 R q 8 q 9 dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 32 32
Esempio P 1 = $NNS,, P 2 = $NTR P 3 = $BCIO q p = q 0 q 0 N q 1 q 2 q 3 N q 4 q 5 S q 6 T B q 7 R q 8 q 9 {P 3 lcp} } = BCIO q 10 C q 11 q 12 I q 13 O q 14 dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 33 33
Esempio P 1 = $NNS,, P 2 = $NTR P 3 = $BCIO, P 4 = $NN lcp = $ q 0 N q 1 q 2 q 3 N q 4 q 5 S q 6 T B q 7 R q 8 q 9 q 10 C q 11 q 12 I q 13 O q 14 dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 34 34
Esempio q p = q 0 q 0 N q 1 q 2 q 3 N q 4 q 5 S q 6 T B q 7 R q 8 q 9 N q 10 C q 11 q 12 I q 13 O q 14 q 15 N q 16 q 17 {P 4 lcp} } = NN dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 35 35
Esempio q 0 N q 1 q 2 q 3 N q 4 q 5 S q 6 T B q 7 R q 8 q 9 N q 10 C q 11 q 12 I q 13 O q 14 q 15 N q 16 q 17 dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 36 36
Costruzione utom Fse 2: definizione dell funzione φ per ogni stto i dell'utom Si L(qi qi) il prefisso ssocito llo stto qi,, ossi l string ottenut visitndo l'utom prtire dllo stto inizile q 0 fino q i N q 0 q 1 q 2 L(q 2 )= N dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 37 37
Costruzione utom φ(i) è clcolt nel seguente modo φ(q 0 ) = -1 per i > 0, 1. si clcol il ordo di L(q i ) come definito in precedenz 2. si pone φ(q i ) = stto in cui termin tle ordo dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 38 38
φ: Esempio i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 φ(i) -1 0 15 16 17 3 0 0 0 1 0 1 0 0 0 0 1 2 q 0 N q 1 q 2 B N q 10 q 11 L(q 2 ) = N Bordo(L(q 2 )) = N P1 = NNS P2 = NTR P3 = BCIO P4 = NN φ(q 2 ) = q 15 q 15 q 16 dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 39 39
φ: Esempio i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 φ(i) -1 0 15 16 17 3 0 0 0 1 0 1 0 0 0 0 1 2 q 0 N q 1 q 2 B N q 10 q 11 L(q 2 ) = N Bordo(L(q 2 )) = N P1 = NNS P2 = NTR P3 = BCIO P4 = NN φ(q 2 ) = q 15 q 15 q 16 dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 40 40
φ: Esempio i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 φ(i) -1 0 15 16 17 3 0 0 0 1 0 1 0 0 0 0 1 2 q 0 N q 1 q 2 q 3 L(q 3 ) = N Bordo(L(q 3 )) = N B N q 10 q 11 P1 = NNS P2 = NTR P3 = BCIO P4 = NN φ(q 3 ) = q 16 q 15 q 16 dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 41 41
φ: Esempio i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 φ(i) -1 0 15 16 17 3 0 0 0 1 0 1 0 0 0 0 1 2 q 0 N q 1 q 2 q 3 L(q 3 ) = N Bordo(L(q 3 )) = N B N q 10 q 11 P1 = NNS P2 = NTR P3 = BCIO P4 = NN φ(q 3 ) = q 16 q 15 q 16 dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 42 42
Esempio q 0 N q 1 q 2 q 3 N q 4 q 5 S q 6 T B q 7 R q 8 q 9 N q 10 C q 11 q 12 I q 13 O q 14 q 15 N q 16 q 17 Not: per questioni di leggiilità, imo omesso gli rchi uscenti dgli stti q i con Bordo(L(q i )) = vuoto che puntno llo stto q 0 dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 43 43
Costruzione utom Se lo stto φ(i) è uno stto finle llor lo è nche lo stto i Se un pttern viene riconosciuto nello stto φ(i), llor lo stesso pttern viene riconosciuto nche nello stto i dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 44 44
Esempio q 0 N q 1 q 2 q 3 N q 4 q 5 S q 6 T B q 7 R q 8 q 9 N q 10 C q 11 q 12 I q 13 O q 14 q 15 N q 16 q 17 dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 45 45
Esempio Finle q 0 N q 1 q 2 q 3 N q 4 q 5 S q 6 T B q 7 R q 8 q 9 N q 10 C q 11 q 12 I q 13 O q 14 q 15 N q 16 q 17 dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 46 46
Ricerc nell utom Complessità: O( T ) Si utilizzno le funzioni δ e φ per l ricerc dei pttern P 1,,P k ll interno del testo T Ci sono due possiili vrinti 1. Ricerc dell prim occorrenz di un P i 2. Ricerc di tutte le occorrenze dei pttern P 1,,P k dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 47 47
Ricerc nell utom L ricerc prte dllo stto inizile dell'utom d ogni psso 1. nello stto corrente q i, si legge il prossimo crttere c del testo 2. si clcol q j = δ(q i,c) se q j diverso d vuoto (mtch), si pss nello stto q j e si torn l punto 1 se q j = vuoto (mismtch( mismtch), si pss nello stto q i = φ(q i ) e si torn l punto 2 3. se lo stto corrente q i è uno stto finle, si restituisce l'occorrenz del pttern trovt dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 48 48
Ricerc nell utom Se si verific un mismtch nello stto inizile q 0? Nessuno dei pttern inizi con il crttere corrente c Si forz l lettur del crttere successivo del testo T dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 49 49
Qul è il significto dell funzione φ? Se durnte il riconoscimento di un pttern P i si verific un mismtch con il crttere corrente c del testo nello stto i, è possiile che lcuni crtteri riconosciuti fino quel momento corrispondno l prefisso di un ltro pttern P j dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 50 50
Qul è il significto dell funzione φ? Il vlore di φ(i) indic proprio lo stto d cui è possiile continure l ricerc di tle pttern P j prtire dl crttere immeditmente successivo quello del prefisso trovto, senz dover ricomincire il riconoscimento dll'inizio dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 51 51
Ricerc: esempio q 0 N q 1 q 2 q 3 N q 4 q 5 S q 6 T B q 7 R q 8 q 9 N q 10 C q 11 q 12 I q 13 O q 14 q 15 N q 16 q 17 T = BNNSST dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 52 52
Ricerc: esempio q 0 N q 1 q 2 q 3 N q 4 q 5 S q 6 T B q 7 R q 8 q 9 N q 10 C q 11 q 12 I q 13 O q 14 q 15 N q 16 q 17 T = BNNSST dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 53 53
Ricerc: esempio q 0 N q 1 q 2 q 3 N q 4 q 5 S q 6 T B q 7 R q 8 q 9 N q 10 C q 11 q 12 I q 13 O q 14 q 15 N q 16 q 17 T = BNNSST dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 54 54
Ricerc: esempio q 0 N q 1 q 2 q 3 N q 4 q 5 S q 6 T B q 7 R q 8 q 9 N q 10 C I q 11 q 12 q 13 O q 14 q 15 N q 16 q 17 T = BNNSST dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 55 55
Ricerc: esempio q 0 N q 1 q 2 q 3 N q 4 q 5 S q 6 T B q 7 R q 8 q 9 N q 10 C q 11 q 12 I q 13 O q 14 q 15 N q 16 q 17 T = BNNSST dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 56 56
Ricerc: esempio q 0 N q 1 q 2 q 3 N q 4 q 5 S q 6 T B q 7 R q 8 q 9 N q 10 C q 11 q 12 I q 13 O q 14 q 15 N q 16 q 17 T = BNNSST dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 57 57
Ricerc: esempio q 0 N q 1 q 2 q 3 N q 4 q 5 S q 6 T B q 7 R q 8 q 9 N q 10 C q 11 q 12 I q 13 O q 14 q 15 N q 16 q 17 T = BNNSST dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 58 58
Ricerc: esempio q 0 N q 1 q 2 q 3 N q 4 q 5 S q 6 T B q 7 R q 8 q 9 N q 10 C q 11 q 12 I q 13 O q 14 q 15 N q 16 q 17 T = BNNSST dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 59 59
Ricerc: esempio q 0 N q 1 q 2 q 3 N q 4 q 5 S q 6 T B q 7 R q 8 q 9 N q 10 C q 11 q 12 I q 13 O q 14 q 15 N q 16 q 17 T = BNNSST imo trovto l occorrenz del pttern P 4 = NN dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 60 60
Ricerc: esempio q 0 N q 1 q 2 q 3 N q 4 q 5 S q 6 T B q 7 R q 8 q 9 N q 10 C q 11 q 12 I q 13 O q 14 q 15 N q 16 q 17 T = BNNSST dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 61 61
Ricerc: esempio q 0 N q 1 q 2 q 3 N q 4 q 5 S q 6 T B q 7 R q 8 q 9 N q 10 C q 11 q 12 I q 13 O q 14 q 15 N q 16 q 17 T = BNNSST dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 62 62
Ricerc: esempio q 0 N q 1 q 2 q 3 N q 4 q 5 S q 6 T B q 7 R q 8 q 9 N q 10 C q 11 q 12 I q 13 O q 14 q 15 N q 16 q 17 T = BNNSST imo trovto l occorrenz del pttern P 1 = NNS dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 63 63
Ricerc: esempio q 0 N q 1 q 2 q 3 N q 4 q 5 S q 6 T B q 7 R q 8 q 9 N q 10 C q 11 q 12 I q 13 O q 14 q 15 N q 16 q 17 T = BNNSST dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 64 64
Ricerc: esempio q 0 N q 1 q 2 q 3 N q 4 q 5 S q 6 T B q 7 R q 8 q 9 N q 10 C q 11 q 12 I q 13 O q 14 q 15 N q 16 q 17 T = BNNSST Forztur sullo stto q 0 per il crttere S dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 65 65
Ricerc: esempio q 0 N q 1 q 2 q 3 N q 4 q 5 S q 6 T B q 7 R q 8 q 9 N q 10 C q 11 q 12 I q 13 O q 14 q 15 N q 16 q 17 T = BNNSST dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 66 66
Ricerc: esempio q 0 N q 1 q 2 q 3 N q 4 q 5 S q 6 T B q 7 R q 8 q 9 N q 10 C q 11 q 12 I q 13 O q 14 q 15 N q 16 q 17 T = BNNSST dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 67 67
Ricerc: esempio q 0 N q 1 q 2 q 3 N q 4 q 5 S q 6 T B q 7 R q 8 q 9 N q 10 C q 11 q 12 I q 13 O q 14 q 15 N q 16 q 17 T = BNNSST Forztur sullo stto q 0 per il crttere T dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 68 68
Ricerc: esempio q 0 N q 1 q 2 q 3 N q 4 q 5 S q 6 T B q 7 R q 8 q 9 N q 10 C q 11 q 12 I q 13 O q 14 q 15 N q 16 q 17 T = BNNSST dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 69 69
Ricerc: esempio q 0 N q 1 q 2 q 3 N q 4 q 5 S q 6 T B q 7 R q 8 q 9 N q 10 C q 11 q 12 I q 13 O q 14 q 15 N q 16 q 17 T = BNNSST STOP dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 70 70
Estensione l cso idimensionle Introduzione Nozioni Preliminri utomi Pttern Mtching Multiplo ho - Corsick Bidimensionle Espressioni Regolri Conclusioni dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 71 71
Estensione l cso idimensionle Gli utomi di ho-corsick hnno un interessnte ppliczione l cso del pttern mtching idimensionle Nturle generlizzzione del pttern mtching singolo dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 72 72
Il Prolem Input: Pttern P, mtrice qudrt nxn Testo T, mtrice qudrt mxm Output: Determinre se P occorre come sottomtrice di T P T dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 73 73
L Ide Si utilizz ho-corsick per l ricerc simultne di più pttern nel testo Si consider ogni rig j di P come un singolo pttern p j Si costruisce l utom di ho-corsick che riconosce i pttern p 1,,p n dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 74 74
lgoritmo L lgoritmo mntiene un vettore [], lungo m, tle che [k] = i se l psso corrente è stt trovt nel testo l sottomtrice di P formt dlle righe p 1,,p i-1 k rig p 1 j rig p i-1 dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 75 75
lgoritmo Inizilizzzione: [k] = 1, 1 k m posizione corrente = T[1,1] d ogni psso: Si esmin l posizione corrente T[j,k] Se nessun rig del pttern termin in T[j,k], si pss d esminre l prossim posizione T[j,k+1] se k < m T[j+1,1] ltrimenti (k = m) ltrimenti, se si trov un occorrenz dell rig i del pttern che termin in T[j,k] dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 76 76
lgoritmo Se [k] = i, l rig del pttern trovt è quell ttes si pone [k] = [k] +1 ltrimenti, se [k] i, l rig del pttern trovt non è quell ttes, perciò eventuli sottomtrici di P trovte fino questo momento non formno un occorrenz vlid Se i =1, l occorrenz del pttern trovt è di nuovo l prim e si può ricomincire l ricerc di P prtire dll second rig: si pone [k] = 2 ltrimenti (i 1), si deve ricomincire d cpo l ricerc perciò [k] = 1 dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 77 77
lgoritmo Se [k] = n + 1 P occorre come sottomtrice di T llinet con il suo ngolo in sso destr P[n,n] in T[j,k], perciò si restituisce l posizione (j,k) n k n P T j dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 78 78
Esempio 1 P T p1 p2 p3 p4 p5 p1 = p2 = p3 = p4 = p5 = [k] 1 2 3 4 5 6 7 8 1 1 1 1 1 1 1 1 dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 79 79
Esempio 1 utom di ho-corsick per P q 0 q 1 q 2 q 3 q 4 q 5 q 6 q 7 q 8 q 9 q 10 q 11 q 12 dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 80 80
Esempio 1 P T p1 no mtch p2 p3 p4 p5 p1 = p2 = p3 = p4 = p5 = [k] 1 2 3 4 5 6 7 8 1 1 1 1 1 1 1 1 dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 81 81
Esempio 1 P T p1 p2 p3 p4 p5 p1 = p2 = p3 = p4 = p5 = [k] 1 2 3 4 5 6 7 8 1 1 1 1 1 1 1 1 dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 82 82
Esempio 1 P T p1 p2 mtch p3 p4 p5 p1 = p2 = p3 = p4 = p5 = [k] 1 2 3 4 5 6 7 8 1 1 1 1 1 2 1 1 dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 83 83
Esempio 1 p1 p2 p3 p4 p5 P T p1 = p2 = p3 = p4 = p5 = [k] 1 2 3 4 5 6 7 8 1 1 1 1 1 2 1 1 dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 84 84
Esempio 1 P T p1 p2 p3 mtch p4 p5 p1 = p2 = p3 = p4 = p5 = [k] 1 2 3 4 5 6 7 8 1 1 1 1 1 3 1 1 dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 85 85
Esempio 1 P T p1 p2 p3 p4 p5 p1 = p2 = p3 = p4 = p5 = [k] 1 2 3 4 5 6 7 8 1 1 1 1 1 3 1 1 dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 86 86
Esempio 1 P T p1 p2 p3 p4 p5 mtch p1 = p2 = p3 = p4 = p5 = [k] 1 2 3 4 5 6 7 8 1 1 1 1 1 4 1 1 dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 87 87
Esempio 1 p1 p2 p3 p4 p5 P T p1 = p2 = p3 = p4 = p5 = [k] 1 2 3 4 5 6 7 8 1 1 1 1 1 4 1 1 dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 88 88
Esempio 1 P T p1 p2 p3 p4 p5 mtch p1 = p2 = p3 = p4 = p5 = [k] 1 2 3 4 5 6 7 8 1 1 1 1 1 5 1 1 dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 89 89
Esempio 1 p1 p2 p3 p4 p5 P T p1 = p2 = p3 = p4 = p5 = [k] 1 2 3 4 5 6 7 8 1 1 1 1 1 5 1 1 dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 90 90
Esempio 1 p1 p2 p3 p4 p5 P T mtch p1 = p2 = p3 = p4 = p5 = [k] 1 2 3 4 5 6 7 8 1 1 1 1 1 6 1 1 dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 91 91
Esempio 1 p1 p2 p3 p4 p5 P T p1 = p2 = p3 = p4 = p5 = [k] 1 2 3 4 5 6 7 8 1 1 1 1 1 6 1 1 Un occorrenz del pttern P trovt nel testo T dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 92 92
Esempio 1 P T k p1 p2 p3 p4 p5 j p1 = p2 = p3 = p4 = p5 = [k] 1 2 3 4 5 6 7 8 1 1 1 1 1 6 1 1 Restituisco l posizione (j,k) dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 93 93
Esempio 2 P T p1 p2 p3 p4 p5 p1 = p2 = p3 = p4 = p5 = [k] 1 2 3 4 5 6 7 8 1 1 1 1 1 1 1 1 dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 94 94
Esempio 2 utom di ho-corsick per P q 0 q 1 q 2 q 3 q 4 q 5 q 6 q 7 q 8 q 9 q 10 q 11 q 12 dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 95 95
Esempio 2 p1 p2 p3 p4 p5 P T p1 = p2 = p3 = p4 = p5 = [k] 1 2 3 4 5 6 7 8 1 1 1 1 1 5 1 1 dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 96 96
Esempio 2 p1 p2 p3 p4 p5 P T no mtch p1 = p2 = p3 = p4 = p5 = [k] 1 2 3 4 5 6 7 8 1 1 1 1 1 1 1 1 dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 97 97
Esempio 2 p1 p2 p3 p4 p5 P p1 = p2 = p3 = T no mtch p4 = p5 = [k] 1 2 3 4 5 6 7 8 1 1 1 1 1 1 1 1 dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 98 98
Esempio 2 P T p1 p2 p3 p4 p5 p1 = p2 = no mtch p3 = p4 = p5 = [k] 1 2 3 4 5 6 7 8 1 1 1 1 1 1 1 1 dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 99 99
Esempio 2 p1 p2 p3 p4 p5 P T p1 = p2 = p3 = p4 = p5 = [k] 1 2 3 4 5 6 7 8 1 1 1 1 1 1 1 1 Nessun occorrenz del pttern P trovt nel testo T dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 100 100
Espressioni Regolri Introduzione Nozioni Preliminri utomi Pttern Mtching Multiplo ho - Corsick Bidimensionle Espressioni Regolri Conclusioni dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 101 101
Espressioni Regolri Insieme di semplici regole per rppresentre insiemi di stringhe Possono essere generte e riconosciute d utomi stti finiti dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 102 102
Come si possono utilizzre Metodo conciso per definire insiemi di stringhe nche infiniti ricerche più o meno estte di un pttern ricerche di stringhe con lcune posizioni non specificte dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 103 103
Semplici Regole Espressioni Regolri, E, definite Σ sull lfeto Σ 1. E Σ, l string vuot 2. E Σ per ogni Σ,, singolo crttere in Σ 3. e 1 e 2 E Σ per ogni e 1, e 2 E Σ, conctenzione 4. e 1 e 2 E Σ per ogni e 1, e 2 E Σ, lterntiv 5. e* E Σ per ogni e Ee Σ, sequenz (stell di Kleene) dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 104 104
Costruzione utom Metodo di Thompson: tecnic per costruire un utom stti finiti prtendo d un espressione regolre Complessità: O( r ),, con r l lunghezz dell espressione espressione regolre Come funzion l tecnic? dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 105 105
Costruzione utom Dt un espressione regolre 1. Si decompone nelle sue sottoespressioni, le quli sono loro volt decomposte e così vi, fino d rrivre i csi se String Vuot Singolo Crttere 2. Si costruisce un utom per ciscun cso se dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 106 106
String Vuot e Singolo Crttere 1. E Σ q 0 2. E Σ, per ogni Σ q 0 q 1 dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 107 107
Esempio: Csi Bse r = (T)*(C G) con Σ = {, T, C,G} q 1 q 2 q 6 C q 7 q 3 T q 4 q 8 G q 9 dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 108 108
Costruzione utom Dt un espressione regolre 3. Si vvi un sequenz di pssi in cui d ogni psso, si comin un coppi di utomi ottenuti l psso precedente, pplicndo un delle regole di Thompson Conctenzione lterntiv Sequenz l psso finle, si ottiene l utom completo che riconosce l espressione regolre dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 109 109
Conctenzione 3. e 1 e 2 E Σ per ogni e 1, e 2 E Σ q 0 e 1 qn e 1 e q 0 qn 2 qm q 0 q 0 e 2 qm dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 110 110
Esempio: Conctenzione r = (T) * (C G) con Σ = {, T, C,G} q 1 q 3 q 2 q 4 T dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 111 111
lterntiv 4. e 1 e 2 E Σ per ogni e 1, e 2 E Σ q 0 e 1 qn q 0 e 1 qn q i q f q 0 e 2 qm q 0 e 2 qm dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 112 112
Esempio: lterntiv r = (T) * (C G) con Σ = {, T, C,G} q 6 C q 7 q 5 q 10 q 8 G q 9 dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 113 113
Sequenz (Stell di Kleene) 5. e* E Σ per ogni e Ee Σ e q n q 0 q i q f q 0 e q n dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 114 114
Esempio: Sequenz r = (T) * (C G) con Σ = {, T, C,G} q 0 q 1 T q 4 q 2 q 3 q 5 (T)* = {,{ T,, TT, TTT, TTTT, } dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 115 115
Esempio: utom Finle T q 0 q 1 q 4 q 2 q 3 q 5 q 8 C q 7 q 11 q 6 q 10 G q 9 dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 116 116
-trnsizioni utomi non deterministici -trnsizione, è un trnsizione di un rco dell utom senz dover leggere lcun crttere del testo T q 1 q 4 q 2 q 3 q 5 T = T dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 117 117
-trnsizioni utomi non deterministici -trnsizione, è un trnsizione di un rco dell utom senz dover leggere lcun crttere del testo T q 1 q 4 q 2 q 3 q 5 T = T dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 118 118
Ricerc nell utom Complessità: O( r * T ) Trnsizione Σ sullo stto inizile permette l ricerc del pttern, in qulsisi posizione, ll interno del testo T Visit dell utom medinte l funzione δ, Q = = Q U Q Q è l insieme degli stti rggiunti medinte trnsizioni dll insieme di stti restituito dll funzione δ,, Q dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 119 119
δ : Esempio Visit dell utom medinte l funzione δ, Q = = Q U Q Q è l insieme degli stti rggiunti medinte trnsizioni dll insieme di stti restituito dll funzione δ,, Q T q 1 q 4 q 2 q 3 q 5 T = T dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 120 120
δ : Esempio Visit dell utom medinte l funzione δ, Q = = Q U Q Q è l insieme degli stti rggiunti medinte trnsizioni dll insieme di stti restituito dll funzione δ,, Q T q 1 q 4 q 2 q 3 q 5 T = T Q = {q 4 } dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 121 121
δ : Esempio Visit dell utom medinte l funzione δ, Q = = Q U Q Q è l insieme degli stti rggiunti medinte trnsizioni dll insieme di stti restituito dll funzione δ,, Q T q 1 q 4 q 2 q 3 q 5 T = T Q = {q 4 } Q = {q 5, q 1 } Q = {q 4, q 5, q 1 } dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 122 122
Esempio 1 T q 0 q 1 q 4 q 2 q 3 q 5 r = (T)*(C G) T = TG q 8 C q 7 q 11 q 6 q 10 G q 9 dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 123 123
Esempio 1 T q 0 q 1 q 4 q 2 q 3 q 5 Σ r = (T)*(C G) T = TG q 8 C q 7 q 11 q 6 q 10 G q 9 dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 124 124
Esempio 1 T q 0 q 1 q 4 q 2 q 3 q 5 Σ r = (T)*(C G) T = TG q 8 C q 7 q 11 q 6 q 10 G q 9 dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 125 125
Esempio 1 T q 0 q 1 q 4 q 2 q 3 q 5 Σ r = (T)*(C G) T = TG q 8 C q 7 q 11 q 6 q 10 G q 9 dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 126 126
Esempio 1 T q 0 q 1 q 4 q 2 q 3 q 5 Σ r = (T)*(C G) T = TG q 8 C q 7 q 11 q 6 String riconosciut q 10 G q 9 dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 127 127
Esempio 2 T q 0 q 1 q 4 q 2 q 3 q 5 r = (T)*(C G) T = T q 8 C q 7 q 11 q 6 q 10 G q 9 dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 128 128
Esempio 2 T q 0 q 1 q 4 q 2 q 3 q 5 Σ r = (T)*(C G) T = T q 8 C q 7 q 11 q 6 q 10 G q 9 dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 129 129
Esempio 2 T q 0 q 1 q 4 q 2 q 3 q 5 Σ r = (T)*(C G) T = T q 8 C q 7 q 11 q 6 String non riconosciut q 10 G q 9 dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 130 130
Conclusioni Introduzione Nozioni Preliminri utomi Pttern Mtching Multiplo ho - Corsick Bidimensionle Espressioni Regolri Conclusioni dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 131 131
Conclusioni Le sequenze di proteine e di DN possono essere viste come lunghi testi costruiti su specifici lfeti esempio: Σ DN = {, C, G, T} L ricerc di sequenze specifiche di simoli in questi testi è un operzione fondmentle per prolemi come ricostruire un sequenz di DN di singoli pezzi ottenuti d esperimenti dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 132 132
Conclusioni ricercre delle specifiche crtteristiche nelle sequenze di DN determinre qunto sono differenti due sequenze di codice genetico Tutti questi prolemi possono essere modellti come ricerche di un o più stringhe ll interno di un testo dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 133 133
Conclusioni Noi imo visto come si possono utilizzre gli utomi per ffrontre prolemi di pttern mtching multiplo pttern mtching medinte espressioni regolri In reltà, l ricerc estt è poco idone risolvere i prolemi reli di pttern mtching nell mito dell iologi, in qunto l struttur del DN risult essere molto compless dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 134 134
Conclusioni L ttenzione degli studiosi si è dunque rivolt ll ricerc pprossimt, che h prodotto soluzioni lgoritmiche più efficienti ed ffidili Tuttvi il pttern mtching pprossimto risult ncor oggi un cmpo in pieno sviluppo dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 135 135
Biliogrfi R. S. Bird, Two Dimensionl Pttern Mtching, Deprtment of Computer Science, University of Reding, Whiteknights Prk, Reding, Berkshire, U. K. R. Grossi, lgoritmi per Internet e We: Ricerc e Indicizzzione dei Testi, Versione 1.3, nno ccdemico 2002-2003 http://www.di.unis.it/~ds/bioinformtic/pttern Mtching2006/PtternMrtching.htm dde, Cmroto, Tni Pttern Mtching Medinte utomi 13/11/2007 136 136