1 / 25

Konstruktion sehr großer Suffixbäume

Michael Höhndorf Steffen Andre. Konstruktion sehr großer Suffixbäume. Übersicht. Probleme mit Suffixbäumen Lösungsansätze Verschiedene Algorithmen Hunt Top-Q TDD Vergleich. Problem Suffixbaum. Hoher Speicherbedarf

benoit
Download Presentation

Konstruktion sehr großer Suffixbäume

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  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(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 • 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 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???

More Related