Zobecněný příponový strom - Generalized suffix tree
v počítačová věda, a generalizovaný příponový strom je příponový strom pro sadu struny. Vzhledem k sadě řetězců celkové délky , to je Patricia strom obsahující vše přípony strun. Většinou se používá v bioinformatika.[1]
Funkčnost
Může být zabudován čas a prostor a lze je použít k vyhledání všech výskyty řetězce délky v čas, který je asymptoticky optimální (za předpokladu, že velikost abecedy je konstantní[2]:119).
Při konstrukci takového stromu by měl být každý řetězec vyplněn jedinečným symbolem (nebo řetězcem) značky mimo abecedu, aby se zajistilo, že žádná přípona není podřetězcem jiného, což zaručuje, že každá přípona je reprezentována jedinečným uzlem listu.
Algoritmy pro konstrukci GST zahrnují Ukkonenův algoritmus (1995) a McCreightův algoritmus (1976).
Příklad
Strom přípon pro řetězce ABAB
a BABA
je zobrazen na obrázku výše. Jsou polstrovány jedinečnými ukončovacími řetězci $0
a $1
. Čísla v uzlech listu jsou číslo řetězce a počáteční pozice. Všimněte si, jak přechod zleva doprava uzlů listu odpovídá seřazenému pořadí přípon. Terminátory mohou být řetězce nebo jedinečné jednotlivé symboly. Hrany zapnuté $
z kořene jsou v tomto příkladu vynechány.
Alternativy
Alternativou k vytvoření stromu generalizovaných přípon je zřetězení řetězců a sestavení regulárního příponový strom nebo pole přípon pro výsledný řetězec. Když se po hledání vyhodnotí zásahy, globální pozice se mapují na dokumenty a místní pozice pomocí nějakého algoritmu a / nebo datové struktury, jako je binární vyhledávání v počátečních / koncových pozicích dokumentů.
Reference
- ^ Paul Bieganski; John Riedl; John Carlis; Ernest F. Retzel (1994). "Generalizované stromy přípon pro data biologické sekvence". Biotechnology Computing, Sborník příspěvků z dvacáté sedmé mezinárodní konference na Havaji dne. str. 35–44. doi:10.1109 / HICSS.1994.323593.
- ^ Gusfield, Dan (1999) [1997]. Algoritmy řetězců, stromů a sekvencí: Počítačová věda a výpočetní biologie. USA: Cambridge University Press. ISBN 978-0-521-58519-4.
externí odkazy
- Média související s Zobecněný příponový strom na Wikimedia Commons
- C implementace stromu Generalized Suffix Tree pro dva řetězce