Textkompression: Burrows-Wheeler-Transformation

Größe: px
Ab Seite anzeigen:

Download "Textkompression: Burrows-Wheeler-Transformation"

Transkript

1

2 Textkompression: Burrows-Wheeler-Transformation Proseminar Algorithmen der Bioinformatik Uli Köhler 12. November 2012 Folie 2 von 49

3 Aufbau dieser Präsentation Kompression in der Bioinformatik Die Burrows-Wheeler-Transformation Algorithmus der Hintransformation Algorithmus der Rücktransformation Probleme der BWT Diskussion verschiedener Resultate Burrows & Wheeler Cox & Bauer Eigene Resultate Folie 3 von 49

4 Groÿe Datenmengen in der Bioinformatik I High-Throughput-Sequencing erzeugt durch n-fache Abdeckung groÿe Datenmengen Oft Speicherung der Rohdaten gewünscht Speicherplatz ist teuer, teils langsamer Zugri Folie 4 von 49

5 Groÿe Datenmengen in der Bioinformatik II Lösung: Verlustfreie Datenkompression Daten unter Einsatz von weniger Speicherplatz darstellen Prinzip: Eliminierung von Redundanzen Anforderungen je nach Anwendung: Schnelle Kompression/Dekompression Wenig Speicherplatzverbrauch Folie 5 von 49

6 Ein naiver Kompressionsalgorithmus I Eingabestring S := AAAAAAAAATTT S = 12 Der Algorithmus fasst gleiche aufeinanderfolgende Zeichen (Runs) zusammen Resultat: S = 9A3T S = 4 75% Speicherplatzeinsparung Problem: Viele Strings (z.b. ATATATAT) können nicht komprimiert werden Folie 6 von 49

7 Ein naiver Kompressionsalgorithmus II Aufeinanderfolgende gleiche Zeichen können von diesem Algorithmus besser komprimiert werden Einige reale Kompressionsalgorithmen können davon ebenfalls protieren Ist es möglich, einen String reversibel so umzuordnen, dass möglichst viele, möglichst lange Runs auftreten? Burrows-Wheeler-Transformation Folie 7 von 49

8 BWT - Kompression I Eingabestring S := aabrac Initialisierung einer Matrix M der Dimensionen S S Bildung aller zyklischen Rotationen des Eingabestrings M 0 aabrac 1 abraca 2 bracaa 3 racaab 4 acaabr 5 caabra Folie 8 von 49

9 BWT - Kompression II Lexikographische Sortierung der Rotationen des Eingabestrings M aabrac abraca acaabr bracaa caabra racaab Folie 9 von 49

10 BWT - Kompression III Resultat: Das Tupel (L, I ), wobei L die letzte Spalte der Matrix ist und I der Index des Eingabestrings in der Matrix ist (L, I ) = (caraab, 1) M 0 aabrac 1 abraca 2 acaabr 3 bracaa 4 caabra 5 racaab Folie 10 von 49

11 BWT Rücktransformation I Eingabetupel: (L, I ) Initialisierung einer Matrix M der Dimensionen L L Bereits bekannt: L ist die letzte Spalte von M M c a r a a b Folie 11 von 49

12 BWT Rücktransformation II Die erste Spalte ist immer sortiert Kann durch sortieren von L ausgefüllt werden M a c a a a r b a c a r b Folie 12 von 49

13 BWT Rücktransformation III Die entstandene Matrix wird um ein Zeichen rotiert M ca aa ra ab ac br Folie 13 von 49

14 BWT Rücktransformation IV Die Matrix wird lexikographisch sortiert M aa ab ac br ca ra Folie 14 von 49

15 BWT Rücktransformation V Die Schritte Schreiben von L in die rechteste freie Spalte Lexikographisches Sortieren werden wiederholt bis die Matrix voll ist Folie 15 von 49

16 BWT Rücktransformation VI M caa aab rac abr aca bra Sortieren M aab abr aca bra caa rac Folie 16 von 49

17 BWT Rücktransformation VII M caab aabr raca abra acaa brac Sortieren M aabr abra acaa brac caab raca Folie 17 von 49

18 BWT Rücktransformation VIII M _caabr _aabra _racaa _abrac _acaab _braca Sortieren M _aabra _abrac _acaab _braca _caabr _racaa Folie 18 von 49

19 BWT Rücktransformation IX M caabra aabrac racaab abraca acaabr bracaa Sortieren M aabrac abraca acaabr bracaa caabra racaab Folie 19 von 49

20 BWT Rücktransformation X M wurde vollständig rekonstruiert Zeile I ist der Originaltext M 0 aabrac 1 abraca 2 acaabr 3 bracaa 4 caabra 5 racaab Folie 20 von 49

21 BWT Rücktransformation (Original) Besseres Laufzeitverhalten - keine mehrfache Sortierung notwendig Berechnung von C[ch] := Anzahl der Zeichen in L, die im Alphabet vor ch vorkommen Berechnung von P[i] := Anzahl der Vorkommen von L[i] im Präx von L der Länge i Rekursive Berechnung des Originaltextes S i[ L ] := I (1) i j 1 := P[i j ] + C[L[i j ]] (2) S[j] := L[i j+1 ] (3) Folie 21 von 49

22 Eziente Kompression Die Kompression kann ezient mit Sux Trees implementiert werden Aber: Sux Trees sind auf realer Hardware vergleichsweise langsam Lösung: Sux Arrays Vortrag am Folie 22 von 49

23 Komprimierbarkeit Einige Zeichenkombinationen tauchen häuger in Texten auf als andere, z.b. an in and Alle Zeilen von M, die mit nd beginnen, tauchen nacheinander auf (Sortierung) Durch Rotation ist bei nahezu allen Zeilen, die mit nd beginnen, das letzte Zeichen a L enthält viele aufeinanderfolgende a Folie 23 von 49

24 Skalierbarkeit Komplexität der BWT-Transformation ist O(n 2 ) Anwendung der BWT auf sehr groÿe Datensätze (z.b. Genome) skaliert nicht Zeitverbrauch hauptsächlich durch Sortierung Wahl des Sortieralgorithmus wichtig Burrows und Wheeler stellen einen für englische Texte optimierten Quicksort vor Lösung: Unterteilung des Datensatzes in kleinere Blöcke - Anwendung der BWT auf diese Blöcke Folie 24 von 49

25 Overhead Die Länge des Tupels (L, I ) ist insgesamt gröÿer als S Genauer Längenunterschied hängt von der Repräsentation von (L, I ) ab Lösung: Anwendung eines Kompressionsalgorithmus, z.b. der Human-Kodierung auf (L, I ) Je nach Kompressionsalgorithmus oft vorherige Anwendung einer Codierung wie der Move-To-Front-Codierung (MTF) Folie 25 von 49

26 Vergleich mit anderen Algorithmen Kompression ist meist ein Kompromiss zwischen Geschwindigkeit und Platzeinsparung Einige Algorithmen sind für spezielle Datentypen (z.b. Bilder) besser geeignet Einige Algorithmen (z.b. bzip2) benutzen bereits die BWT Kein Vergleich möglich Folie 26 von 49

27 Resultate von Burrows & Wheeler I 600 Zeitaufwand verschiedener Algorithmen 400 Dauer (s) Typ Dekompression Kompression LZW Deflate BWT+Huffman comp 2 Algorithmus Folie 27 von 49

28 Resultate von Burrows & Wheeler II Größe nach Kompression in Bytes (Calgary Corpus) LZW Deflate BWT+Huffman comp 2 Algorithmus Folie 28 von 49

29 Resultate von Burrows & Wheeler III Größeneinsparung / Zeit verschiedener Algorithmen Größeneinsparung in Bytes pro Sekunde 4e+05 3e+05 2e+05 1e+05 Typ Dekompression/Größe Kompression/Größe 0e+00 LZW Deflate BWT+Huffman comp 2 Algorithmus Folie 29 von 49

30 Diskussion der Resultate von Burrows & Wheeler Zeitdaten sind kritisch zu bewerten - Hardware von 1994 BWT+Human: Gute Kompression, aber dennoch akzeptables Verhältnis Kompression / Zeit Beispiele beziehen sich nicht auf Bioinformatik-Datensätze, sondern auf einen Kompressionstestkorpus Folie 30 von 49

31 Resultate von Cox & Bauer I BWT muss zur Anwendung von Sequenzdaten generalisiert werden Cox & Bauer denieren dafür den BWT-SAP-Algorithmus Ein Algorithmus von Bauer zur Reduktion des BWT-Speicherverbrauches ohne stark erhöhten CPU-Zeitverbrauch wird verwendet Folie 31 von 49

32 Resultate von Cox & Bauer II 2.0 Kompression nach Cox und Bauer 1.5 Bits pro Base 1.0 Kompressionsstufe PPMd(default) Keine BWT BWT SAP Codierungsstufe Folie 32 von 49

33 Resultate von Cox & Bauer III 4000 Kompressionsdauer nach Cox und Bauer Kumulative Kompressionsdauer in Sekunden Kompressionsstufe PPMd(default) 0 Keine BWT BWT SAP Codierungsstufe Folie 33 von 49

34 Resultate von Cox & Bauer IV Kompression / Sekunde nach Cox und Bauer Reduktion in Bits/Base pro Sekunde Kompressionsstufe PPMd(default) Keine BWT BWT SAP Codierungsstufe Folie 34 von 49

35 Resultate von Cox & Bauer V Im Vergleich zu früheren Verfahren konnte die Kompressionsrate um 10% erhöht werden Die Kompressionszeit wurde von 14 Stunden auf 1 Stunde gesenkt (auf schnellerer Hardware) Folie 35 von 49

36 Warum eine eigene Implementierung? Alle vorgestellten Resultate verwenden die BWT zusammen mit anderen Verfahren Oene Fragen: Wie verhält sich die BWT alleine und zusammen mit anderen Verfahren Welche Kombination von anderen Verfahren erzielt für welche Datensätze die besten/schnellsten Resultate? Sind moderne (nicht-bwt-basierte) Kompressionsalgorithmen der BWT für bestimmte Anforderungen überlegen? Welche Blockgröÿen sind für die BWT optimal? Sind Bioinformatikdaten mit den bekannten Kompressionstestkorpora vergleichbar? Folie 36 von 49

37 Methodik Erstellung eines Bioinformatik-Kompressionstestkorpus Software in C++ zur Kompression der Datensätze mit verschiedenen Kombinationen von Algorithmen Teilweise wird auf Speicherung von kleinen Datenmengen verzichtet, um Verzerrung zu vermeiden Messung von: Kompressionszeit Resultierende Dateigröÿe Folie 37 von 49

38 Implementierte Verfahren Verfahren BWT Komprimierend MTF Entropie Huffman- Codierung RLE Dictionary Deflate Snappy LZO... Folie 38 von 49

39 Resultate der Eigenimplementierung I Kompression des Calgary Corpus, book1 (Fiction book) 60 Relative Größe (%) Erste Codierungsstufe BWT(10k) BWT(500) Keine 0 gzip Algorithmus Folie 39 von 49

40 Resultate der Eigenimplementierung II Kompression des C. Elegans Chromosoms III (FASTA) 30 Relative Größe (%) Erste Codierungsstufe BWT(10k) BWT(500) Keine 0 gzip Algorithmus Folie 40 von 49

41 Resultate der Eigenimplementierung III Kompression book1 Calgary Corpus (Fictional text) 1.6 Dateigröße 1.2 Algorithm BWT+MTF+Huffman MTF+Huffman Snappy Blockgröße Folie 41 von 49

42 Resultate der Eigenimplementierung IV Kompression des Chromosoms III aus C. Elegans (FASTA) 1.0 Relative Dateigröße in % Algorithm BWT+MTF+Huffman MTF+Huffman Snappy Blockgröße Folie 42 von 49

43 Resultate der Eigenimplementierung V Kompression des Chromosoms III aus C. Elegans (FASTA) Kompressionszeit (ms) 5000 Algorithm BWT+MTF+Huffman Deflate Snappy Blockgröße Folie 43 von 49

44 Diskussion der eigenen Resultate I Nur ein kleiner Teil der Resultate konnte hier diskutiert werden Verbreitete Dictionary-basierte Verfahren wie Deate erzeugen mit BWT gröÿere Dateien als ohne BWT Kompression von BWT+MTF+Human erzeugt unter den BWT-Verfahren die besten Gröÿeneinsparungen Aber: Langsame Kompression Implementierung langsam? Stark Optimierter Encoder in C++ Folie 44 von 49

45 Diskussion der eigenen Resultate II BWT+MTF+Human erzeugt bei Genomdatensätzen nur unwesentlich kleinere Dateien als MTF+Human Andere Datensätze - auch Bioinformatische - zeigen diesen Eekt nicht Groÿe Blockgröÿen (über etwa 50 kibytes) erhöhen die Laufzeit bei der BWT, erhöhen die Kompressionsrate aber nur unwesentlich Folie 45 von 49

46 Diskussion der eigenen Resultate III Konklusion: Unmodizierte BWT ist oft ungeeignet, wenn die Kompressions- oder Dekompressionszeit eine übergeordnete Rolle spielt BWT-SAP Mögliche Alternative: Asymmetrische Kompressionsalgorithmen Einzelfallentscheidung Folie 46 von 49

47 Zusammenfassung I Datenkompression ist aufgrund der enormen Datenmengen, die durch Methoden wie High-Throughput-Sequencing entstehen, oftmals notwendig Verschiedene Algorithmen erreichen verschiedene Kompressionsraten und benötigen unterschiedlich viel Rechenzeit für Kompression und Dekompression Folie 47 von 49

48 Zusammenfassung II Die Burrows-Wheeler-Transformation ist ein Algorithmus, um Zeichenketten besser komprimierbar zu machen Im Unix-Programm bzip2 wird die BWT eingesetzt BWT-basierte Algorithmen sind nicht für alle Anwendungsfälle Folie 48 von 49

49 Vielen Dank für eure Aufmerksamkeit! Alle Quellen unter Folie 49 von 49

Textkompression: Burrows-Wheeler-Transformation

Textkompression: Burrows-Wheeler-Transformation Proseminar Algorithmen der Bioinformatik Ausarbeitung Textkompression: Burrows-Wheeler-Transformation Uli Köhler 12.11.2012 Inhaltsverzeichnis 1 Einleitung 2 2 Verlustfreie Kompression 2 3 Die Burrows-Wheeler-Transformation

Mehr

Textkompression: Burrows-Wheeler-Transformation

Textkompression: Burrows-Wheeler-Transformation Proseminar Algorithmen der Bioinformatik WS 2010/11 Textkompression: Burrows-Wheeler-Transformation Johann Hawe Johann Hawe, WS 2010/11 1 Gliederung 1. Einleitung 2. BWT Kompressionstransformation 2.1

Mehr

Die Burrows-Wheeler-Transformation

Die Burrows-Wheeler-Transformation Die Burrows-Wheeler-Transformation Martin Knapp Proseminar Datenkompression 11. Dezember 2002 Inhaltsverzeichnis 1. Einleitung 3 2. Funktionsweise 4 2.1 Grundlagen.........................................................

Mehr

Dynamisches Huffman-Verfahren

Dynamisches Huffman-Verfahren Dynamisches Huffman-Verfahren - Adaptive Huffman Coding - von Michael Brückner 1. Einleitung 2. Der Huffman-Algorithmus 3. Übergang zu einem dynamischen Verfahren 4. Der FGK-Algorithmus 5. Überblick über

Mehr

Der LZ77 Algorithmus. von. Stefan Mühlinghaus Matrikelnummer: 11033988 Benutzerkennung: ai495

Der LZ77 Algorithmus. von. Stefan Mühlinghaus Matrikelnummer: 11033988 Benutzerkennung: ai495 Der LZ77 Algorithmus von Stefan Mühlinghaus Matrikelnummer: 11033988 Benutzerkennung: ai495 Über den Algorithmus: Der LZ77 Algorithmus wurde von seinen Erfindern Abraham Lempel und Jacob Ziv erstmalig

Mehr

Kompression.pdf h. völz /17

Kompression.pdf h. völz /17 Kompression.pdf h. völz 23.5.02 1/17 Lauflängen-Codierung CCCCCCAABBBBAAAAEE _ 6C2A4B4A2E Pixel- und Zähl-Byte unterscheiden Pointer-Verfahren ABRABRIKADABRA Ab 4. Buchstaben ABR _ Verweis . total

Mehr

Effiziente Algorithmen und Komplexitätstheorie

Effiziente Algorithmen und Komplexitätstheorie 1 Effiziente Algorithmen und Komplexitätstheorie Vorlesung Thomas Jansen 22.06.2006 2 Ein anderer Ansatz Beobachtung in Dokumenten eines Typs wiederkehrende Muster Idee Muster in Wörterbuch speichern,

Mehr

Algorithmen und Datenstrukturen 2-3. Seminar -

Algorithmen und Datenstrukturen 2-3. Seminar - Algorithmen und Datenstrukturen 2-3. Seminar - Dominic Rose Bioinformatics Group, University of Leipzig Sommersemster 2010 Outline 3. Übungsserie: 3 Aufgaben, insgesamt 30 Punkte A7 Huffmann-Codierung

Mehr

Eigenschaften von Kompressionsverfahren

Eigenschaften von Kompressionsverfahren 6 Textkompression Eigenschaften von Kompressionsverfahren Das Ziel der Datenkompression ist es, eine gegebene Information (Datenquelle) auf eine kompaktere Weise zu repräsentieren. Dies geschieht, indem

Mehr

I. II. I. II. III. IV. I. II. III. I. II. III. IV. I. II. III. IV. V. I. II. III. IV. V. VI. I. II. I. II. III. I. II. I. II. I. II. I. II. III. I. II. III. IV. V. VI. VII. VIII.

Mehr

Kompression: Lempel/Ziv-Algorithmen

Kompression: Lempel/Ziv-Algorithmen Unversität Koblenz-Landau Abteilung Koblenz Fachbereich Informatik Dipl.-Inf. Jörg Müller Proseminar WS 2000/2001 Algorithmen Kompression: Lempel/Ziv-Algorithmen 9. Januar 2001 Tobias Koch

Mehr

Kapitel 2 Quellencodierung

Kapitel 2 Quellencodierung Kapitel 2 Quellencodierung Prof. Dr. Dirk W. Hoffmann Hochschule Karlsruhe w University of Applied Sciences w Fakultät für Informatik Übersicht Quelle Senke Kompression Huffman-, Arithmetische-, Lempel-Ziv

Mehr

16 - Kompressionsverfahren für Texte

16 - Kompressionsverfahren für Texte 16 - Kompressionsverfahren für Texte Prof. Dr. S. Albers Kompressionsverfahren für Texte Verlustfreie Kompression Original kann perfekt rekonstruiert werden Beispiele: Huffman Code, Lauflängencodierung,

Mehr

Kompressionsverfahren

Kompressionsverfahren Kompressionsverfahren Quelle: Steinmetz, Ralf: Multimedia-Technologie: Einführung und Grundlagen, Springer, Verlag Verlustlose Kompressionsalgorithmen RLC Huffman Adaptive Huffman Kodierung Arithmetische

Mehr

Kompression und Datenformate. Grundlagen der Bildspeicherung, Kompressionsverfahren, Datenformate

Kompression und Datenformate. Grundlagen der Bildspeicherung, Kompressionsverfahren, Datenformate Kompression und Datenformate Grundlagen der Bildspeicherung, Kompressionsverfahren, Datenformate Digitale Speicherung von Bildern Digitalisierung Informationsgehalt Speicherbedarf Kompression von Multimediadaten

Mehr

Suffix Arrays Eine Datenstruktur für Stringalgorithmen

Suffix Arrays Eine Datenstruktur für Stringalgorithmen Suffix Arrays Eine Datenstruktur für Stringalgorithmen Karsten Klein Vorlesung Algorithmen und Datenstrukturen WS 08/09 13.November 2008 TU Dortmund, Fakultät Informatik, LS11 Algorithm Engineering Übersicht

Mehr

4.4 Anwendungen von Suffixbäumen und Suffix-Arrays

4.4 Anwendungen von Suffixbäumen und Suffix-Arrays 4.4 Anwendungen von Suffixbäumen und Suffix-Arrays exakte Suche in unveränderlichen Texten (schon besprochen) inexakte Suche in unveränderlichen Texten Finden von Regelmäßigkeiten (z.b. längste Wiederholungen)

Mehr

Datenkompression: Weitere verlustfreie Komprimierungsverfahren. H. Fernau

Datenkompression: Weitere verlustfreie Komprimierungsverfahren. H. Fernau Datenkompression: Weitere verlustfreie Komprimierungsverfahren email: [email protected] SoSe 2013 Universität Trier 1 Weitere verlustfreie Verfahren : Lauängencodierung Facsimile-Übertragung BWT Fortschreitende

Mehr

Seminar Kompressionsalgorithmen Huffman-Codierung, arithmetische Codierung

Seminar Kompressionsalgorithmen Huffman-Codierung, arithmetische Codierung Huffman-Codierung, arithmetische Codierung Theoretische Informatik RWTH-Aachen 4. April 2012 Übersicht 1 Einführung 2 3 4 5 6 Einführung Datenkompression Disziplin,die Kompressionsalgorithmen entwirft

Mehr

Beispiel: Zeigen Sie, dass H(x) = H 0 = I gilt, wenn alle Zeichen gleichwahrscheinlich sind.

Beispiel: Zeigen Sie, dass H(x) = H 0 = I gilt, wenn alle Zeichen gleichwahrscheinlich sind. 1 2 Im ersten Schritt werden wir uns mit dem Begriff und der Definition der Information beschäftigen. Ferner werden die notwendigen math. Grundlagen zur Quellencodierung gelegt. Behandelt werden Huffman,

Mehr

Datenkompression. Theorie

Datenkompression. Theorie Datenkompression Theorie Einleitung Übersicht Wie lassen sich beliebige Daten verdichtet (komprimiert) darstellen? verlustfreie Kompression: Programme Texte verlustbehaftete Kompression: Audio Video Kompressionsfaktor:

Mehr

LZSS und Deflate. Lars Kunert. April 18, Seminar Kompressionsalgorithmen RWTH Aachen

LZSS und Deflate. Lars Kunert. April 18, Seminar Kompressionsalgorithmen RWTH Aachen LZSS und Deflate Lars Kunert Seminar Kompressionsalgorithmen RWTH Aachen April 18, 2012 Übersicht 1 LZ - Storer, Szymanski (LZSS, 1982) 2 Deflate (1996) 3 Anwendung LZSS - 1 Verbesserungen gegenüber LZ77:

Mehr

Proseminar. Thema: Shannon-Fano und Huffman Verfahren

Proseminar. Thema: Shannon-Fano und Huffman Verfahren Proseminar Datenkompression Thema: Shannon-Fano und Huffman Verfahren Gehalten am 27.11.2002 von Lars Donat 1. Huffman Code Bei diesem bereits 1951 von David A. Huffman veröffentlichtem Algorithmus handelt

Mehr

Kompressionsverfahren für Texte

Kompressionsverfahren für Texte Kompressionsverfahren für Texte Prof. Dr. S. Albers Prof. Dr. Th. Ottmann 1 Zeichenkettenverarbeitung Suche in Texten, Textindizes Mustererkennung (Pattern-Matching) Verschlüsseln Komprimiern Analysieren

Mehr

Datenbanken: Datenkompression. Dr. Matthias Uflacker, Stefan Klauck 2. Mai 2018

Datenbanken: Datenkompression. Dr. Matthias Uflacker, Stefan Klauck 2. Mai 2018 Datenbanken: Datenkompression Dr. Matthias Uflacker, Stefan Klauck 2. Mai 2018 Vorlesungsinhalte/-aufbau Phase 1 Einführung zu Unternehmensanwendungen (2 Vorlesungen) Grundlagen von spaltenorientierten

Mehr

Untersuchung von Verfahren zur Messdatenreduktion und kompression für den Einsatz in einer Nanomessmaschine

Untersuchung von Verfahren zur Messdatenreduktion und kompression für den Einsatz in einer Nanomessmaschine Untersuchung von Verfahren zur Messdatenreduktion und kompression für den Einsatz in einer Nanomessmaschine Dipl.-Ing. T. Machleidt PD Dr.-Ing. habil. K.-H. Franke Fachgebiet Graphische Datenverarbeitung

Mehr

Seminar. Codierungstheorie

Seminar. Codierungstheorie Seminar Codierungstheorie Lempel-Ziv-Verfahren Informatik Sommersemester 25 Tim Schweisgut, Juni 25 Inhalt INHALT... 2 WÖRTERBUCHMETHODEN... 3 Statische Wörterbuchmethoden... 3 Beispiel:... 3 Bemerkung:...

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Informationen zur Klausur Termin: 21. Februar 2013,

Mehr

Eine Variante der Burrows-Wheeler Transformation mit Permutationen

Eine Variante der Burrows-Wheeler Transformation mit Permutationen Institut für Formale Methoden der Informatik Universität Stuttgart Universitätsstraße 38 D 70569 Stuttgart Diplomarbeit Nr. 3117 Eine Variante der Burrows-Wheeler Transformation mit Permutationen Philipp

Mehr

Pat Trees und Pat Arrays Datenstrukturen zur effizienten Suche in Texten

Pat Trees und Pat Arrays Datenstrukturen zur effizienten Suche in Texten Pat Trees und Pat Arrays Datenstrukturen zur effizienten Suche in Texten Ruprecht-Karls-Universität Heidelberg HS Information Retrieval Dozentin: Dr. Karin Haenelt Referenten: Doina Gliga und Katja Niemann

Mehr

Textkompression. Komprimierung von Daten. Runlength Komprimierung (2) Runlength Komprimierung (1) Herkömmliche Kodierung. Runlength Komprimierung (3)

Textkompression. Komprimierung von Daten. Runlength Komprimierung (2) Runlength Komprimierung (1) Herkömmliche Kodierung. Runlength Komprimierung (3) Komprimierung von Daten Textkompression Effiziente Algorithmen VU 2.0 WS 2008/09 Bin Hu Ziel: Platz und Zeit sparen Kompression durch - Effiziente Kodierung - Verminderung der Redundanzen (verlustfrei)

Mehr

Kapitel 7: Optimalcodierung und Huffman Coding

Kapitel 7: Optimalcodierung und Huffman Coding Kapitel 7: codierung und Huffman Coding Ziele des Kapitels Auftreten von Fehlern bei zu starker Kompression Konstruktion optimaler Codes Huffman Coding 2 Bisher Theorem (Shannon I): Die mittlere Codewortlänge

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 206 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Organisatorisches Weiterer Ablauf: heute und Donnerstag,

Mehr

Nutzung der Oracle Database InMemory Option für SAP BW

Nutzung der Oracle Database InMemory Option für SAP BW Nutzung der Oracle Database InMemory Option für SAP BW Schlüsselworte Oracle, SAP-BW, InMemory, Star-Schema. Jörn Bartels Oracle München Einleitung In SAP BW wurde bisher ein erweitertes Snow Flake Schema

Mehr

Projekt Systementwicklung

Projekt Systementwicklung Projekt Systementwicklung Effiziente Codierung: Laufzeitoptimierung Prof. Dr. Nikolaus Wulff Effiziente Codierung Der Wunsch effizienten Code zu schreiben entstammt mehreren Quellen: Zielplattformen mit

Mehr

Zeichenketten Benedikt Straßner. Programming Systems Group Martensstr Erlangen Germany

Zeichenketten Benedikt Straßner. Programming Systems Group Martensstr Erlangen Germany Zeichenketten 16.04.2018 Benedikt Straßner Programming Systems Group Martensstr. 3 91058 Erlangen Germany Übersicht String Matching Algorithmen Naive Stringsuche Knuth Morris Pratt (KMP) Algorithmus Boyer-Moore

Mehr

2. Digitale Codierung und Übertragung

2. Digitale Codierung und Übertragung 2. Digitale Codierung und Übertragung 2.1 Informationstheoretische Grundlagen 2.2 Verlustfreie universelle Kompression 2.3 Digitalisierung, Digitale Medien Ludwig-Maximilians-Universität München, Medieninformatik,

Mehr

1 Kompressionsarten Verlustfreie Kompression Verlustbehaftete Kompression... 3

1 Kompressionsarten Verlustfreie Kompression Verlustbehaftete Kompression... 3 Inhaltsverzeichnis 1 Kompressionsarten 3 1.1 Verlustfreie Kompression......................... 3 1.2 Verlustbehaftete Kompression...................... 3 2 Mathematische Modelle 4 2.1 Grundlagen................................

Mehr

Kompression. Tim Kilian

Kompression. Tim Kilian Kompression Tim Kilian Seminar Effiziente Programmierung Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität Hamburg

Mehr

Optimalcodierung. Thema: Optimalcodierung. Ziele

Optimalcodierung. Thema: Optimalcodierung. Ziele Optimalcodierung Ziele Diese rechnerischen und experimentellen Übungen dienen der Vertiefung der Kenntnisse im Bereich der Optimalcodierung, mit der die Zeichen diskreter Quellen codiert werden können.

Mehr

Algorithmen und Datenstrukturen in der Bioinformatik Drittes Übungsblatt WS 05/06 Musterlösung

Algorithmen und Datenstrukturen in der Bioinformatik Drittes Übungsblatt WS 05/06 Musterlösung Konstantin Clemens Johanna Ploog Freie Universität Berlin Institut für Mathematik II Arbeitsgruppe für Mathematik in den Lebenswissenschaften Algorithmen und Datenstrukturen in der Bioinformatik Drittes

Mehr

Suffix Arrays Eine Datenstruktur für Stringalgorithmen

Suffix Arrays Eine Datenstruktur für Stringalgorithmen Suffix Arrays Eine Datenstruktur für Stringalgorithmen Karsten Klein Vorlesung Algorithmen und Datenstrukturen WS 08/09 11.November 2008 TU Dortmund, Fakultät Informatik, LS11 Algorithm Engineering Überblick

Mehr

3.2. Divide-and-Conquer-Methoden

3.2. Divide-and-Conquer-Methoden LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS DATABASE 3.2. Divide-and-Conquer-Methoden Divide-and-Conquer-Methoden Einfache Sortieralgorithmen reduzieren die Größe des noch

Mehr

Programmierung. Rückblick. VWA - Programmierung Winter Algorithmus. Programmiersprache. Variable. Zuweisung. Bedingung.

Programmierung. Rückblick. VWA - Programmierung Winter Algorithmus. Programmiersprache. Variable. Zuweisung. Bedingung. Programmierung 1 Rückblick Algorithmus Programmiersprache Variable Zuweisung Bedingung Schleife (c) Peter Sturm, University of Trier 1 3 Aufgabe: Viele, viele bunte Smarties Rechengeschwindigkeit CPU 5

Mehr

Grundlagen des Burrows-Wheeler-Kompressionsalgorithmus

Grundlagen des Burrows-Wheeler-Kompressionsalgorithmus Grundlagen des Burrows-Wheeler-Kompressionsalgorithmus JÜRGEN ABEL Universität Duisburg-Essen Der Burrows-Wheeler-Kompressionsalgorithmus hat als ein universelles Kompressionsverfahren in den letzten Jahren

Mehr

Interaktive Visualisierung zeitabhängiger Volumendaten

Interaktive Visualisierung zeitabhängiger Volumendaten Interaktive Visualisierung zeitabhängiger Volumendaten Diplomarbeit von Dario Kardas graphische datenverarbeitung, universität erlangen-nürnberg Skalare Volumendaten Volumen besteht aus Schichtbildern

Mehr

Datenkompression. 1 Allgemeines. 2 Verlustlose Kompression. Holger Rauhut

Datenkompression. 1 Allgemeines. 2 Verlustlose Kompression. Holger Rauhut Datenkompression Holger Rauhut 1. September 2010 Skript für die Schülerwoche 2010, 8.-11.9.2010 Hausdorff Center for Mathematics, Bonn 1 Allgemeines Datenkompression hat zum Ziel, Daten in digitaler Form,

Mehr

Übung Datenstrukturen. Sortieren

Übung Datenstrukturen. Sortieren Übung Datenstrukturen Sortieren Aufgabe 1 Gegeben sei nebenstehender Sortieralgorithmus für ein Feld a[] ganzer Zahlen mit N Elementen: a) Um welches Sortierverfahren handelt es sich? b) Geben Sie möglichst

Mehr

5. Übungsblatt zu Algorithmen I im SoSe 2016

5. Übungsblatt zu Algorithmen I im SoSe 2016 Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Dennis Hofheinz Lukas Barth, Lisa Kohl 5. Übungsblatt zu Algorithmen I im SoSe 2016 https://crypto.iti.kit.edu/index.php?id=algo-sose16

Mehr

Vorbesprechung. Proseminar Bioinformatik. Sommersemester Februar 2015

Vorbesprechung. Proseminar Bioinformatik. Sommersemester Februar 2015 Vorbesprechung Proseminar Bioinformatik Sommersemester 2015 5. Februar 2015 0 Zeitplan Proseminar Vorbesprechung (heute) Einführungsveranstaltung (13.04.) 11 Vorträge (ab 20.04.) Abschlussveranstaltung

Mehr

Praktikum BKSPP. Aufgabenblatt Nr. 1. 1 Umrechnung zwischen Stellenwertsystemen

Praktikum BKSPP. Aufgabenblatt Nr. 1. 1 Umrechnung zwischen Stellenwertsystemen Dr. David Sabel Institut für Informatik Fachbereich Informatik und Mathematik Johann Wolfgang Goethe-Universität Frankfurt am Main Praktikum BKSPP Sommersemester 21 Aufgabenblatt Nr. 1 Abgabe: Mittwoch,

Mehr

PPM - Prediction by Partial Matching

PPM - Prediction by Partial Matching PPM - Prediction by Partial Matching 20. September 2012 Zusammenfassung Der PPM-Algorithmus ist eine prinzipiell relativ einfache Möglichkeit, Daten sehr stark zu komprimieren. In dieser Arbeit soll der

Mehr

2.7 Der Shannon-Fano-Elias Code

2.7 Der Shannon-Fano-Elias Code 2.7 Der Shannon-Fano-Elias Code Die Huffman-Codierung ist ein asymptotisch optimales Verfahren. Wir haben auch gesehen, dass sich die Huffman-Codierung gut berechnen und dann auch gut decodieren lassen.

Mehr

Molekulare Bioinformatik

Molekulare Bioinformatik Molekulare Bioinformatik Wintersemester 203/204 Prof. Thomas Martinetz Institut für Neuro- und Bioinformatik Universität zu Luebeck 07.0.204 Molekulare Bioinformatik - Vorlesung 0 Wiederhohlung Die Entropie

Mehr

Fehlererkennung und Fehlerkorrektur in Codes

Fehlererkennung und Fehlerkorrektur in Codes Fehlererkennung und Fehlerkorrektur in Codes Blockcodes und Hamming Abstand Untersuchungen zu Codierungen von Informationen, die über einen Nachrichtenkanal übertragen werden sollen, konzentrieren sich

Mehr

Algorithmen auf Sequenzen

Algorithmen auf Sequenzen Algorithmen auf Sequenzen Fehlertolerante Mustersuche: Distanz- und Ähnlichkeitsmaße Sven Rahmann Genominformatik Universitätsklinikum Essen Universität Duisburg-Essen Universitätsallianz Ruhr Einführung

Mehr

Digitale Medien. Vorlesung: Heinrich Hußmann Übung: Renate Häuslschmid. Übung zur Vorlesung

Digitale Medien. Vorlesung: Heinrich Hußmann Übung: Renate Häuslschmid. Übung zur Vorlesung Übung zur Vorlesung Digitale Medien Vorlesung: Heinrich Hußmann Übung: Renate Häuslschmid Wintersemester 2016/17 LZW-Komprimierung Idee: Nicht einzelne Zeichen werden günstig kodiert, sondern ganze Zeichenketten

Mehr

Farb-Fernsehsignal (Composite FBAS)

Farb-Fernsehsignal (Composite FBAS) Farb-Fernsehsignal (Composite FBAS) Quelle: Ze-Nian Li : Script Multimedia Systems, Simon Fraser University, Canada VIDEO- Digitalisierung Gemeinsame Kodierung FBAS Farbbild- Austast- und Synchronsignal

Mehr

Gierige Algorithmen Interval Scheduling

Gierige Algorithmen Interval Scheduling Gierige Algorithmen Interval Scheduling IntervalScheduling(s,f). n length[s] 2. A {} 3. j 4. for i 2 to n do 5. if s[i] f[j] then 6. A A {i} 7. j i 8. return A Gierige Algorithmen Interval Scheduling Beweisidee:

Mehr

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen

Mehr

Verlustfreie Kompression

Verlustfreie Kompression Verlustfreie Kompression Tim Rolff Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität Hamburg 8. Juni 2016 Tim Rolff

Mehr

Referat zum Thema Huffman-Codes

Referat zum Thema Huffman-Codes Referat zum Thema Huffman-Codes Darko Ostricki Yüksel Kahraman 05.02.2004 1 Huffman-Codes Huffman-Codes ( David A. Huffman, 1951) sind Präfix-Codes und das beste - optimale - Verfahren für die Codierung

Mehr

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen

Mehr

Kompression. Kompression. Beseitigung der unnötigen Daten... Redundanz. Folie 2

Kompression. Kompression. Beseitigung der unnötigen Daten... Redundanz. Folie 2 Kompression Kompression Encoder Decoder Beseitigung der unnötigen Daten... Redundanz Folie 2 1 Inhalte Redundanz Channel Encoding Loss-less Compression Hufmann Coding Runlength Coding Lossy Compression

Mehr

Abschnitt 19: Sortierverfahren

Abschnitt 19: Sortierverfahren Abschnitt 19: Sortierverfahren 19. Sortierverfahren 19.1 Allgemeines 19.2 Einfache Sortierverfahren 19.3 Effizientes Sortieren: Quicksort 19.4 Zusammenfassung 19 Sortierverfahren Informatik 2 (SS 07) 758

Mehr

Basisinformationstechnologie II

Basisinformationstechnologie II Basisinformationstechnologie II Sommersemester 2015 13. Mai 2015 Algorithmen der Bildverarbeitung I: Kompression Universität zu Köln. Historisch-Kulturwissenschaftliche Informationsverarbeitung Dr. Jan

Mehr

Datenkompression. 1. Einleitung. Einfache Techniken. RLE (Text/Bild) Move-to-Front Coding. 1.1 Einteilung der Verfahren.

Datenkompression. 1. Einleitung. Einfache Techniken. RLE (Text/Bild) Move-to-Front Coding. 1.1 Einteilung der Verfahren. Grundlegende Techniken 1. Einleitung Einfache Techniken Was versteht man unter Kompression? Einteilung der Kompressionsverfahren RLE (Text/Bild) Move-to-Front Coding Michael Muth 1999 Michael Muth Folie

Mehr

Kombinatorische Optimierung

Kombinatorische Optimierung Kombinatorische Optimierung Zuweisungsprobleme 2 1 3 5 4 Kombinatorische Optimierung Rucksackpackproblem 1 10 2 4 6 3 5 8 6 Aufspannende Bäume Travelling Salesman VLSI Design C. Kanzow, M. Gerdts Kombinatorische

Mehr

Übungsblatt 1. f(n) = f(n) = O(g(n)) g(n) = O(f(n)) Zeigen oder widerlegen Sie: 3 n = Θ(2 n ) Aufgabe 1.2 Gegeben sei die folgende Funktion:

Übungsblatt 1. f(n) = f(n) = O(g(n)) g(n) = O(f(n)) Zeigen oder widerlegen Sie: 3 n = Θ(2 n ) Aufgabe 1.2 Gegeben sei die folgende Funktion: Übungsblatt 1 Aufgabe 1.1 Beweisen oder widerlegen Sie, dass für die im Folgenden definierte Funktion f(n) die Beziehung f(n) = Θ(n 4 ) gilt. Beachten Sie, dass zu einem vollständigen Beweis gegebenenfalls

Mehr

Klausur Informatik 1 SS 08. Aufgabe 1 2 3 4 Max. Punkte 30 40 40 10 Punkte. Gesamtpunkte:

Klausur Informatik 1 SS 08. Aufgabe 1 2 3 4 Max. Punkte 30 40 40 10 Punkte. Gesamtpunkte: Klausur Informatik 1 SS 08 Aufgabe 1 2 3 4 Max. Punkte 30 40 40 10 Punkte Gesamtpunkte: Note: Bearbeitungszeit 120 Minuten Keine Hilfsmittel Tragen Sie als erstes Ihren vollständigen Namen und Ihre Matrikelnummer

Mehr