Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "Konstruktion sehr großer Suffixbäume Michael Höhndorf Steffen Andre."—  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 TDD

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(n 2 ) 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(n 2 ) 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 String Größe: n Ersetzungsstrategie: LRU Schlechteste locality of reference Suffixes-Array Größe: 4n Ersetzungsstrategie: LRU

16 Bufferstrategie Temp 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 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(n 2 ) meist besser, da locality of reference Ukkonens 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 Michael Höhndorf Steffen Andre."

Ähnliche Präsentationen


Google-Anzeigen