10. Suffixové stromy 1 2014-01-23



Podobné dokumenty
Lineární nerovnice a jejich soustavy

Definice. Necht M = (Q, T, δ, q 0, F ) je konečný automat. Dvojici (q, w) Q T nazveme konfigurací konečného automatu M.

Automaty a gramatiky

Minimalizace automatů. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 28. března / 31

3 Algebraické výrazy. 3.1 Mnohočleny Mnohočleny jsou zvláštním případem výrazů. Mnohočlen (polynom) proměnné je výraz tvaru

Obecně: K dané funkci f hledáme funkci ϕ z dané množiny funkcí M, pro kterou v daných bodech x 0 < x 1 <... < x n. (δ ij... Kroneckerovo delta) (4)

Větu o spojitosti a jejich užití

Konstrukce na základě výpočtu I

Jsou to rovnice, které obsahují neznámou nebo výraz s neznámou jako argument logaritmické funkce.

( ) ( ) Sinová věta II. β je úhel z intervalu ( 0;π ). Jak je vidět z jednotkové kružnice, úhly, pro které platí. Předpoklady:

Automaty a gramatiky. Úvod do formáln. lních gramatik. Roman Barták, KTIML. Příklady gramatik

LINEÁRNÍ DIFERENCIÁLNÍ ROVNICE 2.ŘÁDU

Úlohy krajského kola kategorie A

Hyperbola, jejíž střed S je totožný s počátkem soustavy souřadnic a jejíž hlavní osa je totožná

( a) Okolí bodu

56. ročník Matematické olympiády. b 1,2 = 27 ± c 2 25

x + F F x F (x, f(x)).

4.4.3 Kosinová věta. Předpoklady:

( t) ( t) ( t) Nerovnice pro polorovinu. Předpoklady: 7306

Automaty a gramatiky

Až dosud jsme se zabývali většinou reálnými posloupnostmi, tedy zobrazeními s definičním

Formální jazyky. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 7. března / 46

Je regulární? Pokud ne, na regulární ji upravte. V původní a nové gramatice odvod te řetěz 1111.

2.8.5 Lineární nerovnice s parametrem

Zavedení a vlastnosti reálných čísel PŘIROZENÁ, CELÁ A RACIONÁLNÍ ČÍSLA

Podobnosti trojúhelníků, goniometrické funkce

V předchozích kapitolách byla popsána inverzní operace k derivování. Zatím nebylo jasné, k čemu tento nástroj slouží.

4.4.1 Sinová věta. Předpoklady: Trigonometrie: řešení úloh o trojúhelnících.

6. Zobrazení δ: (a) δ(q 0, x) obsahuje x i, x i Z. (b) δ(x i, y) obsahuje y j, x i y j P 7. Množina F je množinou koncových stavů.

ANALYTICKÁ GEOMETRIE V PROSTORU

Reprezentovatelnost částek ve dvoumincových systémech

Konstrukce na základě výpočtu I

Jak oslabit PC, aby algoritmus: neměl paměťové nároky PC, povede k vyřazení hodnoty z domény proměnné! e f. e f. a b. a b. byl silnější než AC?

Integrály definované za těchto předpokladů nazýváme vlastní integrály.

Automaty a gramatiky. Roman Barták, KTIML. Důkaz věty o isomorfismu reduktů. Věta o isomorfismu reduktů. Pro připomenutí

8. cvičení z Matematiky 2

Spojitost funkce v bodě, spojitost funkce v intervalu

OBECNÝ URČITÝ INTEGRÁL

4. přednáška 22. října Úplné metrické prostory. Metrický prostor (M, d) je úplný, když každá cauchyovská posloupnost bodů v M konverguje.

m n. Matice typu m n má

Jak již bylo uvedeno v předcházející kapitole, můžeme při výpočtu určitých integrálů ze složitějších funkcí postupovat v zásadě dvěma způsoby:

Základy teorie matic

P2 Číselné soustavy, jejich převody a operace v čís. soustavách

NEWTONŮV INTEGRÁL. V předchozích kapitolách byla popsána inverzní operace k derivování. Zatím nebylo jasné, k čemu tento nástroj slouží.

ZÁKLADNÍ POZNATKY. p, kde ČÍSELNÉ MNOŽINY (OBORY) N... množina všech přirozených čísel: 1, 2, 3,, n,

Převody Regulárních Výrazů. Minimalizace Konečných. Regulární jazyky 2 p.1/35

1. LINEÁRNÍ ALGEBRA 1.1. Matice

4.2.1 Goniometrické funkce ostrého úhlu

Logaritmické rovnice I

Seznámíte se s další aplikací určitého integrálu výpočtem objemu rotačního tělesa.

63. ročník matematické olympiády III. kolo kategorie A. Ostrava, března 2014

Teorie jazyků a automatů I

Matice. a B =...,...,...,...,..., prvků z tělesa T (tímto. Definice: Soubor A = ( a. ...,..., ra

Automaty a gramatiky(bi-aag)

Úlohy školní klauzurní části I. kola kategorie C

Půjdu do kina Bude pršet Zajímavý film. Jedině poslední řádek tabulky vyhovuje splnění podmínky úvodního tvrzení.

Úvod do Teoretické Informatiky ( UTI)

2.2.9 Grafické řešení rovnic a nerovnic

13. Exponenciální a logaritmická funkce

( a, { } Intervaly. Předpoklady: , , , Problém zapíšeme snadno i výčtem: { 2;3; 4;5}?

Konstrukce na základě výpočtu II

Petriho sítě PES 2007/2008. Doc. Ing. Tomáš Vojnar, Ph.D.

7.5.8 Středová rovnice elipsy

( ) Mechanická práce II. Předpoklady: 1501

Souhrn základních výpočetních postupů v Excelu probíraných v AVT listopad r r. . b = A

DERIVACE A INTEGRÁLY VE FYZICE

3.2. LOGARITMICKÁ FUNKCE

3.2.1 Shodnost trojúhelníků I

Hledání hyperbol

4. cvičení z Matematiky 2

+ c. n x ( ) ( ) f x dx ln f x c ) a. x x. dx = cotgx + c. A x. A x A arctgx + A x A c

2.1 - ( ) ( ) (020201) [ ] [ ]

8. Elementární funkce

{ } ( ) ( ) Vztahy mezi kořeny a koeficienty kvadratické rovnice. Předpoklady: 2301, 2508, 2507

a i,n+1 Maticový počet základní pojmy Matice je obdélníkové schéma tvaru a 11

Logaritmus. Předpoklady: 2909

PQ-stromy a rozpoznávání intervalových grafů v lineárním čase

M A = M k1 + M k2 = 3M k1 = 2400 Nm. (2)

3. ROVNICE A NEROVNICE Lineární rovnice Kvadratické rovnice Rovnice s absolutní hodnotou Iracionální rovnice 90

3. Kvadratické rovnice

Přednáška 9: Limita a spojitost

Automaty a gramatiky. Organizační záležitosti. Přednáška: na webu ( Proč chodit na přednášku?

Definice limit I

integrovat. Obecně lze ale říct, že pokud existuje určitý integrál funkce podle různých definic, má pro všechny takové definice stejnou hodnotu.

Neurčité výrazy

2. INTEGRÁLNÍ POČET FUNKCE JEDNÉ PROMĚNNÉ

Formální jazyky. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 6. března / 48

Odraz na kulové ploše Duté zrcadlo

3. APLIKACE URČITÉHO INTEGRÁLU

Svazy. Def Svaz je algebra S ( M ;, ) = se dvěma binárními operacemi taková, že pro libovolné prvky c M platí následující podmínky axiomy svazu:

vás seznámí s učivem, které v dané kapitole poznáte a které byste po jejím prostudování měli umět.

Zkoušku snadno provedeme tak, že do soustavy (1), která je ekvivalentní dané soustavě rovnic, dosadíme příslušné hodnoty s a p.

17 Křivky v rovině a prostoru

URČITÝ INTEGRÁL FUNKCE

1.1 Numerické integrování

Komplexní čísla tedy násobíme jako dvojčleny s tím, že použijeme vztah i 2 = 1. = (a 1 + ia 2 )(b 1 ib 2 ) b b2 2.

Obsah rovinného obrazce

7 Analytická geometrie

2.7.7 Obsah rovnoběžníku

KŘIVKOVÉ INTEGRÁLY. Křivka v prostoru je popsána spojitými funkcemi ϕ, ψ, τ : [a, b] R jako množina bodů {(ϕ(t), ψ(t), τ(t)); t

Transkript:

10. Suffixové stromy V této kpitole popíšeme jednu pozoruhodnou dtovou strukturu, pomocí níž dokážeme prolémy týkjící se řetězců převádět n grfové prolémy řešit je tk v lineárním čse. Řetězce, trie suffixové stromy Definice: Σ...konečnáeced množinznků (znky udeme znčit ltinskými písmeny) Σ...množinvšechslovndΣ (slov udeme znčit řeckými písmeny) ε... prázdnéslovo α...délkslov α αβ...zřetězeníslov αβ(αε=εα=α) α R...slovo αnpsnépozpátku αjeprefixem β... γ: β= αγ(βzčínán α) αjesuffixem β... γ: β= γα(βkončín α) αjepodslovem β... γ,δ: β= γαδ(znčíme α β) αjevlstnímprefixem β... jeprefixemα β (nlogicky vlstní suffix podslovo) Pozorování: Prázdné slovo je prefixem, suffixem i podslovem kždého slov včetně see sm. Podslov jsou právě prefixy suffixů tké suffixy prefixů. Definice:Trie(Σ-strom)prokonečnoumnožinuslov X Σ jeorientovnýgrf G=(V,E),kde: V = {α:αjeprefixemnějkého β X}, (α,β) E x Σ:β= αx. Pozorování:Triejestromskořenem ε.jeholistyjsouslovzx,kteránejsouvlstnímiprefixyjinýchslovzx.hrnysimůžemepředstvitpopsnépísmeny,oněž prefixrozšiřují,popiskyhrnncestězkořenedovrcholu αdávjíprávěslovo α. Definice:Komprimovnátrie(Σ + -strom)vznikneztrienhrzenímmximálních nevětvících se cest hrnmi. Hrny jsou tentokrát popsné řetězci místo jednotlivými písmeny, přičemž popisky všech hrn vycházejících z jednoho vrcholu se liší v prvním znku.vrcholům uvnitřhrn (kterépdlyzoěťkompresi)udemeříktskryté vrcholy. Definice:Suffixovýstrom(ST)proslovo σ Σ jekomprimovnátriepro X= {α: αjesuffixem σ}. Pozorování: Vrcholy suffixového stromu(včetně skrytých) odpovídjí prefixům suffixůslov σ,tedyvšemjehopodslovům.listystromujsousuffixy,kterésevσjiž nikde jinde nevyskytují(tkovým suffixům udeme říkt nevnořené). Vnitřní vrcholyodpovídjívětvícímpodslovům,tedypodslovům α σtkovým,že α σi α σpronějkédvrůznéznky,. 1 2014-01-23

Někdy může ýt neprktické, že některé suffixy neodpovídjí listům(protože jsouvnořené),lestímsemůžemesndnovypořádt:přidámenkonecslov σ nějký znk $, který se nikde jinde nevyskytuje. Neprázdné suffixy slov σ$ odpovídjísuffixůmslov σžádnýznichnemůžeýtvnořený.tkovýsuffixovýstrom udeme znčit ST$. Příkld: r r r () r r r $ $ $ r$ $ r$ r$ Suffixyslov r :trie,suffixovýstrom,stsdolrem Nyní jk je to s konstrukcí suffixových stromů: Lemm: Suffixový strom pro slovo σ délky n je reprezentovtelný v prostoru O(n). Důkz:Strommá O(n)listůkždývnitřnívrcholmálespoň2syny,tkževnitřních vrcholů je tké O(n). Hrn je rovněž lineárně. Nálepky n hrnách stčí popst počáteční koncovou pozicí v σ. Vět:Suffixovýstromproslovo σdélky nlzesestrojitvčse O(n). Důkz: Ve zytku této kpitoly předvedeme dvě různé konstrukce v lineárním čse. Aplikce co vše dokážeme v lineárním čse, když umíme lineárně konstruovt ST: 1. Inverzní vyhledávání (tj. předzprcujeme si v lineárním čse text pk umímeproliovolnéslovo αvčse O( α )rozhodnout,zdsevtextuvyskytuje) 1 stčísestrojitstpkjejprocházetodkořene.tkéumíme njít všechny výskyty(odpovídjí suffixům, které mjí jko prefix hledné slovo, tkže stčí vytvořit ST$ vypst všechny listy pod nlezeným vrcholem) neo přímo vrátit jejich počet(předpočítáme si pomocí DFS pro kždý vrchol, kolik pod ním leží listů). 2. Nejdelší opkující se podslovo tkové podslovo je v ST$ nutně větvící, tkže stčí njít vnitřní vrchol s největší písmenkovou hloukou (tj. hloukou měřenou ve zncích místo ve hrnách). 3. Histogrm četností podslov délky k rozřízneme ST$ v písmenkové hlouce kspočítáme,kolikpůvodníchlistůjepodkždýmnovým. 4.Nejdelšíspolečnépodslovoslov αβ postvímestproslovo α$ 1 β$ 2, jeholistyodpovídjísuffixůmslov αβ.tkžestčípomocídfsnjít 1 Čilipřesnýopktoho,coumívyhledávcíutomt tensipředzprcovává dotz. 2 2014-01-23

nejhluší vnitřní vrchol, pod kterým se vyskytují listy pro α i β. Podoně můžemesestrojitst$proliovolnoumnožinuslov. 2 5.Nejdelšíplindromicképodslovo(tj.tkové β α,proněžje β R = β) postvímespolečnýst$proslov αα R.Postupněprocházímepřes všechny možné středy plindromického podslov všimneme si, že tkové slovo je pro kždý střed nejdelším společným prefixem podslov od tohotoodudokoncepodslovodtohotoodupozpátkukzčátku,čili nějkéhosuffixu αnějkéhosuffixu α R.Tytosuffixyovšemodpovídjí listům sestrojeného ST jejich nejdelší společný prefix je nejližším společným předchůdcem ve stromu, tkže stčí pro strom vyudovt dtovou strukturu pro společné předchůdce s její pomocí dokážeme jeden střed prozkoumt v konstntním čse. 6. Burrows-Wheelerov Trnsformce[1] jejím zákldem je lexikogrfické setřídění všech rotcí slov σ, což zvládneme sestrojením ST pro slovo σσ, jeho uříznutím v písmenkové hlouce σ vypsáním nově vzniklých listů vpořdí zlevdoprv. Cvičení: Zkuste vymyslet co nejlepší lgoritmy pro tyto prolémy ez použití ST. Suffixová pole V některých přípdech se hodí místo suffixového stromu používt kompktnější dtové struktury. Notce: Pro slovo σ ude σ[i] znčit jeho i-tý znk(číslujeme od nuly), σ[i: j] pkpodslovo σ[i]σ[i+1]...σ[j 1].Liovolnouzmezímůžemevynecht,proto σ[i:]udesuffixod idokonceσ[:j]prefixodzčátkudo j 1.Pokud j i, definujeme σ[i: j] jko prázdné slovo, tkže prázdný suffix můžeme npříkld zpst jko σ[ σ :]. LCP(α,β)udeznčitdélkunejdelšíhospolečnéhoprefixuslov αβ,čilinejvětší i α, β tkové,že α[:i]=β[:i]. Definice:Suffixovépole(SuffixArry) A σ proslovo σdélky njeposloupnostvšech suffixů slov σ v lexikogrfickém pořdí. Můžeme ho reprezentovt npříkld jko permutci Ačísel0,...,n,proníž σ[a[0]:]<σ[a[1]:]<... < σ[a[n]:]. Definice:Polenejdelšíchspolečnýchprefixů(LongestCommonPrefixArry) L σ pro slovo σjeposloupnost,vníž L σ [i]:=lcp(a σ [i],a σ [i+1]). Vět:Suffixovýstromproslovo σ$dvojici(a σ,l σ )nseelzevlineárnímčse převádět. Důkz:KdyžprojdemeST(σ$)dohlouky,pořdílistůodpovídáposloupnosti A σ písmenkovéhloukyvnitřníchvrcholůvinorderuodpovídjí L σ.nopkst(σ$) získámetk,žesestrojímekrtézskýstrompro L σ (získámevnitřnívrcholyst), doplnímedonějlisty,přiřdímejimsuffixypodle A σ nkonecpodlelistůrekonstruujeme nálepky hrn. 2 Jensimusímedátpozor,ychomsimocnezvětšiliecedu;jkmocsiji můžeme dovolit zvětšit, vyplyne z konkrétních konstrukcí. 3 2014-01-23

Rekurzivní konstrukce Ukážemelgoritmus,kterýproslovo σ Σ délky nsestrojíjehosuffixovépole LCPpolevčse O(n+Sort(n,Σ)),kdeSort(...)ječspotřenýprosetřídění n symolů z ecedy Σ. V kominci s předchozími výsledky tedy dostneme lineární konstrukci ST(σ) pro liovolnou fixní ecedu. Algoritmus:(Konstrukce A L podle Kärkkäinen Snderse[2]) 1.Redukujemeecedun1...n:vevstupnímslovujenejvýšenrůzných znků, tkže je stčí setřídit přečíslovt. 2.Definujemeslov σ 0, σ 1, σ 2 následovně: σ 0 [i]:= σ[3i],σ[3i+1],σ[3i+2] σ 1 [i]:= σ[3i+1],σ[3i+2],σ[3i+3] σ 2 [i]:= σ[3i+2],σ[3i+3],σ[3i+4] Všechn σ k jsouslovdélky n/3ndecedouvelikosti n 3.Dovolímesimírnězneužívtnotcipoužívtsymol σ k ijejichpřepis do ecedy původní. 3.Zvolámelgoritmusrekurzivněnslovo σ 0 σ 1,čímžzískáme A 01 L 01.(Suffixyslov σ 0 σ 1 odpovídjísuffixůmslov σ 0 σ 1.) 4.SpočítámepoleP 0 P 1,kteránámudouříkt,kdesevA 01 vyskytuje kterýsuffixslov σ 0 σ 1.Tedy A 01 [P 0 [i]]=i, A 01 [P 1 [i]]=i+ σ 0. Jinýmislovy, P 0 P 1 udoučástiinverznípermutceka 01.Všimněte si,žepltí P i [x] < P j [y]právětehdy,když σ i [x:]<σ j [y:],tkže suffixyslov σ 0 σ 1 odtétochvíleumímeporovnávtvčse O(1). 5.Vytvoříme A 2 (suffixovépolepro σ 2 ):Jelikož σ 2 [i:]=σ[3i+2:]= σ[3i+2]σ[3i+3:]=σ[3i+2]σ 0 [i+1:],odpovídálexikogrfické pořdísuffixů σ 2 [i:]pořdídvojic(σ[3i+2],p 0 [i+1]).tytodvojice ovšem můžeme setřídit dvěm průchody přihrádkového třídění. 6.Slijeme A 01 A 2 do A:slévámedvěsetříděnéposloupnosti,tkžestčí umět jejich prvky v konstntním čse porovnt: σ 0 [i:]<σ 2 [j:] σ[3i:]<σ[3j+2:] σ[3i]σ 1 [i:]<σ[3j+2]σ 0 [j+1:], σ 1 [i:]<σ 2 [j:] σ[3i+1:]<σ[3j+2:] σ[3i+1]σ[3i+2]σ 0 [i+1:]< σ[3j+2]σ[3j+3]σ 1 [j+1:]. Pokždé tedy porovnáme nejvýše dvě dvojice znků pk dvojici suffixůslov σ 0 σ 1,kčemužnámpomohoupole P 0 P 1. 7. Dopočítáme L: 8. PokudvAsousedísuffixslov σ 0,1 sesuffixemslov σ 0,1,sousedí tytodvsuffixyiva 01,tkžejejichLCPnjdemepřímovL. 4 2014-01-23

9. Setkjí-lisedvsuffixyslov σ 2,všimnemesi,že σ 2 [i:]=σ[3i+ 2:]=σ[3i+2]σ 0 [i+1:].lcp(σ 2 [i:],σ 2 [j:])jetedyuďto0 (pokudσ[3i+2] σ[3j+2]),neo1+3 LCP(σ 0 [i+1:],σ 0 [j+1:]), přípdnětotéžzvýšenéo1neo2,pokudsetrojznkyvσ 0 následujícípolcpzčástishodují.přitomlcp(σ 0 [p:],σ 0 [q:])spočítámepomocí L.JetototižminimumintervluvLmeziindexy P 0 [p]p 0 [q].tozjistímevkonstntnímčsepomocístruktury pro intervlová minim. 10. Pokudsesetkásuffixslov σ 0,1 sesuffixemslov σ 2,stčítytosuffixypřepstpodonějkov6.krokuprolémtímopětpřevést nvýpočetlcpdvousuffixůslov σ 0,1. Anlýz čsové složitosti: Třídění npoprvé trvá Sort(n, Σ), ve všech rekurzivních voláních už je lineární(trojice čísel velikosti O(n) můžeme třídit tříprůchodovým přihrádkovým tříděním s O(n) přihrádkmi). Z toho dostáváme: T(n)=T(2/3 n)+o(n), tedy T(n)=O(n). Ukkonenov inkrementální konstrukce Ukkonen popsl lgoritmus[3] pro konstrukci suffixového stromu ez dolrů, prcující inkrementálně: Zčne se stromem pro prázdné slovo postupně n konec slov přidává dlší znky přepočítává strom. Kždý znk přitom přidá v mortizovně konstntním čse. Pro slovo σ tedy dokáže sestrojit ST v čse O( σ ). Budeme předpokládt, že hrny vedoucí z jednoho vrcholu je možné indexovt jejich prvními písmeny to ezpečně pltí, pokud je eced pevná; není-li, můžeme si pomoci hešováním. Pozorování: Když slovo σ rozšíříme n σ, ST se změní následovně: 1. Všechny stávjící vrcholy stromu(včetně skrytých) odpovídjí podslovům slov σ.tjsouipodslovy σ,tkžeseudouncházetivnovémstromu. 2. Pokud β ylo větvící slovo, zůstne ndále větvící tedy vnitřní vrcholy ve stromu zůstnou. 3. Kždý nový suffix β vznikne prodloužením nějkého původního suffixu β. Přitom: Pokud yl β nevnořený suffix(čili yl reprezentovný listem), ni βneudevnořený.ztohovíme,želistyzůstnoulisty, pouze jim potřeujeme prodloužit nálepky. Ay to netrvlo příliš dlouho, zvedeme otevřené hrny, jejichž nálepk říká odpozice idokonce.listysetkoseepostrjísmy. Pokud βylvnořenýsuffix(tj.vnitřníčiskrytývrchol): Buďseβvyskytujevσ,tímpádemjetovnořený suffix nového slov strom není nutné uprvovt; 5 2014-01-23

neose βvσnevyskytuje tehdypronějmusíme zložit nový list s otevřenou hrnou přípdně inovývnitřnívrchol,podnímžudetentolistpřipojen. Víme tedy, co všechno je při rozšíření slov potře ve stromu uprvit. Zývá vyřešit, jk to udělt efektivně. Vnořené suffixy: Především potřeujeme umět rozpoznt, které suffixy jsou vnořené kterénikoliv.ktomusehodívšimnoutsi,ževnořenésuffixytvořísouvislýúsek: Lemm:Je-li αvnořenýsuffixslov σ βjesuffixslov α,pk βjevσ tké vnořený. Důkz:Veslověsigmsevyskytuje αxαypronějkédvrůznéznky xy.kždýztěchtovýskytůpřitomkončívýskytemslov β,jednou následovným x, podruhé y. Stčí si tedy zpmtovt nejdelší vnořený suffix slov σ. Tomu udeme říkt ktivní suffix udemehoznčit α(σ).liovolnýsuffix β σpkudevnořenýprávě tehdy, když β α(σ). Aktivní suffix tedy tvoří hrnici mezi nevnořenými vnořenými suffixy. Jk se tto hrnice posune, když slovo σ rozšíříme? N to je odpověď sndná: Lemm:Prokždé σ, pltí: α(σ)jesuffixem α(σ). Důkz: α(σ)iα(σ)jsousuffixyslov σ,protostčíporovntjejich délky.slovo β := α(σ)ezkoncového jevnořenýmsuffixemvσ, tkže β α(σ),tedytké α(σ) = β α(σ). Hrnice se tedy může posouvt pouze doprv, přípdně zůstt n místě. Toho lze sndno využít. Idelgoritmu:Udržujemesi α=α(σ)připřidáníznku zkontrolujeme,zd αjestálevnořenýsuffix.pokudno,nicsenemění,pokudne,přidámenovýlist přípdně tké vnitřní vrchol, α zkrátíme zlev o znk testujeme dál. Anlýz: Po přidání jednoho znku n konec slov σ provedeme mortizovně konstntní počet úprv stromu(kždá úprv slovo α zkrátí, po všech úprvách přidáme k α jediný znk). Tudíž stčí ukázt, jk provést kždou úprvu v(mortizovně) konstntním čse. K tomu potřeujeme šikovnou reprezentci slov α, která ude umět efektivně prodlužovt zprv, zkrcovt zlev testovt existenci vrcholu ve stromu. Definice:Referenčnípárproslovo α σjedvojice(π,τ),vníž πjevrcholstromu, τliovolnéslovoπτ= α.nvícvíme,že τ σ,tkžesi τstčípmtovtjko dvojici indexů ve slově σ. Referenční pár je knonický, pokud neexistuje hrn vedoucí z vrcholu π s nálepkou,kteráyylprefixemslov τ.(všimnětesi,žetkováhrnsepoznápodle toho,žeprvníznknálepkyseshodujesprvnímznkemslov τnálepknenídelší než slovo τ. Shodu osttních znků není nutné kontrolovt.) 6 2014-01-23

Pozorování: Ke kždému slovu α σ existuje právě jeden knonický referenční pár, kterýhopopisuje.tojezevšechreferenčníchpárůprototoslovotensnejdelším π (nejhluším vrcholem). Definice: Zpětná hrn ck(π) vede z vrcholu π do vrcholu, který je zkrácením slov π o jeden znk zlev.(nhlédneme, že tkový vrchol musí existovt: pokud je πvnitřnívrchol,pkjeslovo πvětvící,tkžekždýjehosuffixmusítkéýtvětvící, tím pádem musí odpovídt nějkého vrcholu.) Operce s referenčními páry: S referenčním párem(π, τ) popisujícím slovo α potřeujeme provádět následujicí operce: Přidáníznku nkonec:připíšeme nkonecslov τ.tojejistěreferenční pár pro α, le nemusí ýt knonický. Přitom můžeme sndno ověřit, zd se α ve stromu nchází, přípdně operci odmítnout. Oderáníznkuzezčátku:Pokud πneníkořenstromu,položíme π ck(π) zchováme τ. Pokud nopk je π prázdný řetězec, odeeremezτ jehoprvníznk(tolzeuděltvkonstntnímčse,protože τ je reprezentovné dvojicí indexů do σ). Převedení n knonický tvr: Oě předchozí operce mohou vytvořit referenční pár, který není knonický. Pokždé proto knonicitu zkontrolujeme přípdně pár uprvíme. Ověříme, zd hrn z π indexovná písmenem nenídostkrátkánto,yylprefixemslov τ.pokudje,tksepotéto hrně přesuneme dolů, čímž π prodloužíme τ zkrátíme, proces opkujeme. Jelikož tím pokždé τ zkrátíme kdykoliv jindy se τ prodlouží nejvýše o 1, mjí všechny převody n knonický tvr mortizovně konstntní složitost. Nyní již můžeme doplnit detily, získt celý lgoritmus nhlédnout, že prcuje v mortizovně konstntním čse. Algoritmus podroněji: 1.Vstup: α=α(σ)reprezentovnýjkoknonickýreferenčnípár(π,τ), Tsuffixovýstrompro σspolushrnmick,novýznk. 2. Zjistíme, jestli α je přítomen ve stromu, přípdně ho zložíme: 3. Pokud τ= ε:(α=πjevnitřnívrchol) 4. Vede-li z vrcholu π hrn s nálepkou zčínjící znkem, pk je přítomen. 5. Nevede-li, není přítomen, tk přidáme novou otevřenou hrnuvedoucízπdonovéholistu. 6. Pokud τ ε:(αjeskrytývrchol) 7. Njdemehrnu,ponížzπpokrčujeslovo τ (kterátoje, poznáme podle prvního znku slov τ). 8. Pokudvpopiscetétohrnypo τnásledujeznk,pkje α přítomen. 9. Pokud nenásleduje, tk neyl přítomen, čili tuto hrnu rozdělíme: přidáme n ni nový vnitřní vrchol, do nějž povede 7 2014-01-23

hrnspopiskou τznějzytekpůvodníhrnyotevřená hrn do nového listu. 10.Pokud αneylpřítomen,tk αzkrátímevrátímesenkrok2. 11. Nyní víme, že α již yl přítomen, tkže uprvíme referenční pár, y popisovl α. 12. Dopočítáme zpětné hrny(viz níže). 13.Výstup: α=α(σ)jkoknonickýreferenčnípár(π,τ), T suffixový strompro σjehozpětnéhrnyck. Zpětné hrny: Zývá dodt, jk nstvovt novým vrcholům jejich zpětné hrny. To potřeujeme jen pro vnitřní vrcholy(n zpětné hrny z listů se lgoritmus nikdy neodkzuje). Všimneme si, že pokud jsme zložili vrchol, odpovídá tento vrchol vždy součsnému αzpětnáhrnznějpovededozkráceníslov αoznkzlev,cožje přesně vrchol, který zložíme(neo zjistíme, že už existuje) v příští iterci hlvního cyklu. V dlší iterci ještě určitě neudeme tuto hrnu potřeovt, protože π vždy jen zkrcujeme, tk můžeme vznik zpětné hrny o iterci zpozdit. Výro zpětné hrny tedy ude tké trvt jen konstntně dlouho. Litertur [1] M. Burrows nd D. Wheeler. A lock-sorting lossless dt compression lgorithm. Technicl Report 124, Digitl Systems Reserch Center, 1994. [2] J. Kärkkäinen nd P. Snders. Simple liner work suffix rry construction. In Proc. 13th Interntionl Conference on Automt, Lnguges nd Progrmming. Springer Verlg, 2003. [3] E. Ukkonen. On-line construction of suffix trees. Algorithmic, 14(3):249 260, 1995. 8 2014-01-23