Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Konstruktion sehr großer Suffixbäume

Ähnliche Präsentationen


Präsentation zum Thema: "Konstruktion sehr großer Suffixbäume"—  Präsentation transkript:

1 Konstruktion sehr großer Suffixbäume
Michael Höhndorf Steffen Andre

2 Übersicht Probleme mit Suffixbäumen Lösungsansätze
Verschiedene Algorithmen Hunt Top-Q TDD Vergleich

3 Problem Suffixbaum Hoher Speicherbedarf
Zeitaufwendige Konstruktion bei großen Eingabestrings, da Konstruktion im RAM nicht möglich Häufige Sprünge im Speicher Memory Bottleneck

4 Lösungsansätze Suffixbaumkonstruktionen plattenfreundlich gestalten
Hunt TDD Bufferstrategie ändern Top-Q

5 Hunt/ Atkinson/ Irving
Konstruktion per Platte Vorher nur Suffixbäume kleiner als RAM Tausch von O(n) gegen locality of access Verzichtet auf Suffixlinks O(n2) Durchschnitt: O(n*logn)

6 Top-Q (Bedathur/ Haritsa)
Benutzt Ukkonnen-Algorithmus Neue Pagingstartegie

7 TDD Von Tata/Hankins/Patel Top down disk based
Besonderheit: “locality of reference” Übertrifft alle bisherigen Ansätze Unterteilung in zwei Phasen PWOTD (Konstruktion des Suffixbaumes) Bufferstrategie

8 PWOTD Partition and Write Only Top Down Unterteilung in zwei Schritte
Partitionierung Wotdeager Komplexität: Worst Case: O(n2) Average Case O(n*logn)

9 Repräsentation String: ATTAGTACA

10 Partitionierung Alphabet: Σ Prefixlen: Tiefe der Partitionierung
Suffixe in |Σ|prefixlen Partitionen teilen Für jede Partition Suffixbaum erstellen Suffixbäume zusammenfügen Im Beispiel: T={2,3,6}

11 Wotdeager Benutzt 4 Datenstrukturen Input String Array Suffixes Array
Temp Array Tree Array

12 Algorithmus

13 Bufferstrategie Optimale Ersetzungsstrategie für die vier Datenstrukturen finden verfügbaren RAM zwischen den vier Datenstrukturen aufteilen, um den größtmöglichen Gewinn zu erreichen

14 Bufferstrategie

15 Bufferstrategie String Suffixes-Array Größe: n
Ersetzungsstrategie: LRU Schlechteste „locality of reference“ Suffixes-Array Größe: 4n

16 Bufferstrategie Temp Array Tree-Array Größe: 4n
Ersetzungsstrategie: MRU Tree-Array Größte von allen Größe: 8-12n Ersetzungsstrategie: LRU Hohe „locality of reference“

17 Buffermanagement

18 Bufferstrategie Aufteilung des Hauptspeichers
Suffixes/Temp benötigt mindestens |Σ| Seiten Tree benötigt mindestens 2 Seiten Eingabestring wird wenn möglich komplett in den Speicher übernommen Wenn noch Platz im Hauptspeicher ist wird dieser an Suffixes, Temp, Tree vergeben

19 Bufferstrategie

20 TDD vs. Ukkonen

21 TDD vs. Ukkonen TDD bei größeren Alphabeten zunehmend besser als Ukkonen Bei kleinen Alphabeten (demelano) Faktor 2.5 Bei mittleren Alphabeten (swp20) Faktor 4.5 Bei großen Alphabeten (unif40) Faktor 10 Trotz O(n2) meist besser, da locality of reference Ukkonen’s Algorithmus hat viele cache misses (Bei modernen Rechnern)

22 TDD vs. Hunt

23 TDD vs Hunt TDD in jedem Fall bedeutend besser
Bei kleinen Alphabeten (H Chr1) Faktor 5.5 Bei mittleren Alphabeten (TrEMBL) Faktor 7.4 Bei großen Alphabeten (guten) Faktor 9.9 Hunt viele Sprünge bei Konstruktion TDD berührt jeden Knoten nur einmal

24 TDD vs. TopQ Test mit 50Mbp de Human Chromosom-I
TopQ 78min TDD unetr gleichen Umständen nur 2,1min TDD um Faktor 37 schneller Test auf gesamtem Chromosom TopQ 5800min TDD 18min

25 FRAGEN???


Herunterladen ppt "Konstruktion sehr großer Suffixbäume"

Ähnliche Präsentationen


Google-Anzeigen