Dynamisches Huffman-Verfahren

Größe: px
Ab Seite anzeigen:

Download "Dynamisches Huffman-Verfahren"

Transkript

1 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 weitere Algorithmen 6. Zusammenfassung 7. Quellen 1. Einleitung Das dynamische Huffman-Verfahren basiert auf einem der bekanntesten Kompressionsverfahren, dem Huffman-Algorithmus, welcher 1951 von D. A. Huffman entwickelt wurde. Das Prinzip dieses Verfahrens beruht darauf, dass das Vorkommen unterschiedlicher Zeichen (z.b. Buchstaben, Satzzeichen usw.) verschieden wahrscheinlich ist. Ordnet man demnach dem Zeichen mit der höchsten Wahrscheinlichkeit einen sehr kurzen, und dem Zeichen geringerer Wahrscheinlichkeit einen vergleichsweise langen Code zu, verringert sich die durchschnittliche Anzahl zu speichernder Bits pro Zeichen - der Text wird komprimiert. 1

2 2. Der Huffman-Algorithmus Voraussetzungen: - gegeben ist ein Text mit n unterschiedlichen Zeichen - die Zeichen a 1, a 2,..., a n bilden das Alphabet A des Textes - die Wahrscheinlichkeit des Auftretens eines Zeichens wird mit P i (mit i = 1, 2,..., n) bezeichnet, wobei P 1 + P P n = 1 Algorithmus: - sortieren der Wahrscheinlichkeit P i, so dass P 1 = P 2 =... = P n - ersetzen der letzten beiden Zeichen a n-1 und a n durch a n-1,n, wobei P n-1,n = P n-1 + P n - wiederholen des Algorithmus bis lediglich zwei Zeichen verblieben sind Implementierung: Speichere die k Blätter in einer Liste L; while (L enthält mindestens zwei Elemente) do begin Entferne aus L die Elemente x und y mit der geringsten Wertigkeit; Erzeuge ein neues Element p, wobei p der Vater von x und y ist; Wertigkeit(p) := Wertigkeit(x) + Wertigkeit(y); Füge p in L ein; end; Beispiel: - Sortieren der Zeichen nach deren Wahrscheinlichkeit Zeichen: x 1 x 2 x 3 x 4 x 5 x 6 Wahrscheinlichkeit: Zeichen x 5 und x 6 zusammenfassen zu x 56 mit P 56 = 0.15 Zeichen: x 1 x 2 x 3 x 4 x 56 Wahrscheinlichkeit: Zeichen x 4 und x 56 zusammenfassen zu x 456 mit P 456 = 0.3 Zeichen: x 1 x 456 x 2 x 3 Wahrscheinlichkeit: Zeichen x 2 und x 3 zusammenfassen zu x 23 mit P 23 = 0.4 Zeichen: x 23 x 1 x 456 Wahrscheinlichkeit: Zeichen x 1 und x 456 zusammenfassen zu x 1456 mit P 1456 = 0.6 Zeichen: x 1456 x 23 Wahrscheinlichkeit:

3 Auswertung: Stellt man dies nun als binären Baum dar und interpretiert jeweils den linken Ast einer Verzweigung als 0 (entspricht Zeichen höherer Wahrscheinlichkeit) und den rechten Ast als 1 (entspricht Zeichen geringerer Wahrscheinlichkeit) erhält man beim Durchlaufen des Baumes von der Wurzel zu den Blättern den Code für jedes einzelne Zeichen. Wurzel / \ x 1456 x 23 / \ / \ x 1 x 456 x 2 x 3 / \ x 4 x 56 / \ x 5 x 6 Zeichen Code x 1 00 x 2 10 x 3 11 x x x Übergang zu einem dynamischen Verfahren Die Umsetzung dieses Prinzip wirft jedoch die Frage auf, wie die Wahrscheinlichkeit des Auftretens jedes Zeichens ermittelt werden kann. Die einfachste Lösung kann wie folgt beschrieben werden. 1. Durchlauf: - Zählen des Vorkommens eines jeden Zeichens innerhalb des Textes - Ermittlung der Wahrscheinlichkeitsverteilung - Erzeugen des Huffman-Baumes - Speichern bzw. Übertragen des Huffman-Baumes 2. Durchlauf: - Komprimieren des Textes mittels Huffman-Baum Diese Lösung wird als Statisches Huffman-Verfahren bezeichnet. Sie hat jedoch einen entscheidenden Nachteil: werden die Daten oft verändert oder werden immer neue Daten hinzugefügt (z.b. sequentielle Übertragung von Daten) muss der gesamte oben beschriebene Prozess regelmäßig durchgeführt werden. Die Kompression wird langsam und die Datenmenge erhöht sich (da der erzeugte Baum nach jedem Prozess erneut gespeichert bzw. übertragen werden muss). Ziel musste es somit sein, ein Verfahren zu finden, bei dem der Huffman-Baum dynamisch, bei gleichzeitiger Codierung der Zeichen, erzeugt wird. Dadurch wäre nur ein Durchlauf notwendig und der Algorithmus somit schneller und effektiver. 3

4 Das Problem dabei war: der Empfänger (Decodierer) benötigt den Huffman-Baum zum Dekomprimieren, ohne dass dieser jedoch übertragen bzw. gespeichert wird. In den siebziger Jahren versuchten Faller (1973) und Gallager (1978) eine Lösung für das Problem zu finden. Sie entwickelten unabhängig von einander Schemata für ein dynamisches Verfahren, welche 1985 von Donald E. Knuth aufgegriffen und überarbeitet wurden. Das Ergebnis war der FGK-Algorithmus (Faller-Gallager-Knuth), welcher 1987 von Vitter nochmals verbessert wurde (V-Algorithmus). 4. Der FGK-Algorithmus Eigenschaften des Huffman-Baumes: 1. Die Geschwister eines Huffman-Baumes sind durch Kanten mit ihren gemeinsamen Vorgänger (Vater) verbunden, wobei dem Element mit der höheren Wahrscheinlichkeit (Wertigkeit) 0 und dem geringerer Wahrscheinlichkeit (Wertigkeit) 1 zugeordnet wird (= geordneter Huffman-Baum). 2. Für jede Ebene l = 1 ist die Wahrscheinlichkeit (Wertigkeit) der einzelnen Elemente kleiner bzw. gleich der Wahrscheinlichkeit (Wertigkeit) der Elemente in Ebene l 1 (= lexikografisch geordneter Huffman-Baum). Voraussetzungen: - Leerer Huffman-Baum mit einem Element (Wurzel), dem Null-Element - Blätter des Baumes entsprechen den k verschiedenen Zeichen, welche bereits bekannt sind - Kanten des Baumes entsprechen der Wertigkeit des zugehörigen Elements (Wertigkeit von Blättern = Vorkommen des Zeichens im bereits codierten Text) - Teilbäume/Äste des Huffman-Baumes können vertauscht werden wenn die Wertigkeit der Wurzel-Elemente (dieser Teilbäume/Äste) gleich ist (folgt aus den Eigenschaften des Huffman-Baumes) Algorithmus: - Einlesen des Zeichens a j(t+1) (Nachfolger des Zeichens a j zum Zeitpunkt t+1) - Wenn das Zeichen nicht im Baum enthalten ist - Sende/Speichere Zeichen mittels vorher definierten Code, z.b. ASCII - Gehe zum Null-Element des Baumes und ersetze es durch ein Element mit zwei Söhnen, wobei der linke Sohn das neue Null-Element ist, und der rechte Sohn (Wertigkeit zunächst Null) dem Zeichen a j(t+1) entspricht sonst - Sende/Speichere das (durch den Hufmann-Baum) codierte Zeichen - Erhöhe die Wertigkeit der Elemente vom Blatt (welches a j(t+1) repräsentiert) dem Pfad entlang, bis zur Wurzel um 1 - Verändere den Baum zuvor (wenn nötig) so, dass der, durch die Erhöhung der Wertigkeit einzelner Elemente, neu erzeugte Baum wieder ein Huffman-Baum ist (Aktualisierung des Huffman-Baumes) - Wiederhole den Algorithmus bis alle Zeichen eingelesen worden sind 4

5 Implementierung (Aktualisierung des Huffman-Baumes): Grundlage der Implementierung ist die Nummerierung aller Elemente des Huffman-Baumes von links nach rechts, und von unten nach oben. Dadurch kann jedem Element neben der Wertigkeit auch eine Position innerhalb des Baumes zugeordnet werden. Das Zeichen links außen, in der untersten Ebene, hat somit die Position 1 und die Wurzel somit die zahlenmäßig höchste Position (siehe Beispiel im Anhang). q := Element welches a j(t+1) entspricht; {dieses Element ist immer ein Blatt} if (q = Null-Element) then begin Ersetze q durch ein Element mit zwei Blättern; {zunächst beide Blätter Null-Elemente} q := rechtes {gerade erzeugtes} Blatt; end; if (q = Bruder des Null-Elements) then begin Vertausche q mit dem Blatt zahlenmäßig höchster Position, gleicher Wertigkeit; Erhöhe Wertigkeit(q) um 1; q := Vater von q; end; while (q <> Wurzel des Huffman-Baumes) do begin Vertausche q mit dem Element zahlenmäßig höchster Position, gleicher Wertigkeit; Erhöhe Wertigkeit(q) um 1; q := Vater von q; end; 5. Überblick über weitere Algorithmen Neben den FGK-Algorithmus gibt es zahlreiche weitere Algorithmen, die das dynamische Huffman-Verfahren verwenden. Der am häufigsten verwendete ist der bereits erwähnte V-Algorithmus. Im Unterschied zum FGK-Algorithmus werden beim V-Algorithmus alle Äste des Huffman-Baumes als Blöcke von Elementen, und die Wurzel eines Astes als erstes Element des zugehörigen Blockes betrachtet. In Abhängigkeit von der Wertigkeit des ersten Elementes, können dann die einzelnen Blöcke zu Äquivalenz-Klassen zusammengefasst werden. Innerhalb einer Äquivalenz-Klasse werden die einzelnen Blöcke nach ihrer Tiefe sortiert, d.h. Blöcke, bestehend aus einem Blatt stehen beispielsweise am Anfang, während Blöcke, welche aus einem sehr tiefen Ast hervorgegangen sind, am Ende einer Äquivalenz- Klassen stehen. Bezogen auf den FGK-Algorithmus bedeutet dies, dass beim Tauschen der Teilbäume nicht nur darauf geachtet wird, dass der neu erzeugte Baum ein Huffman-Baum ist, sondern auch darauf, dass der erzeugte Baum eine möglichst geringe Tiefe hat. 5

6 Die Konsequenz dieses Algorithmus ist eine höhere Aktualisierungsrate auf der einen, jedoch eine geringere Baum-Tiefe auf der anderen Seite (was sich mathematisch beweisen lässt). Dies bewirkt eine geringere, durchschnittliche Codewortlänge: FGK-Algorithmus S-n+1 = x = 2S+t-4n+2 V-Algorithmus S-n+1 = x = 2S+t-2n+1 S Performance der statischen Methode n Anzahl verschiedener Zeichen t Länge des Textes x Anzahl benötigter Bits (zum Speichern des komprimierten Textes) Weitere Algorithmen, die das dynamische Huffman-Verfahren verwenden sind der N-Algorithmus, welcher eine sehr geringe Update-Rate hat und somit wesentlich schneller ist (jedoch eine geringere Kompression liefert) und der B-Algorithmus, der sehr leicht zu Implementieren ist, und somit besonders bei Hardware-Codierern zum Einsatz kommt. 6. Zusammenfassung Wie die oben genannten, verschiedenen Algorithmen bereits andeuten, gibt es eine hohe Zahl von Variationen des dynamischen Huffman-Verfahrens. Beispielsweise muss der Huffman-Baum nicht unbedingt nach jedem Zeichen aktualisiert werden, es ist auch eine Aktualisierung nach jedem n-ten Zeichen (wobei n zuvor festgelegt wird) möglich, ohne dass dabei die Performance stark beeinträchtigt wird. Aber auch die Kombination von statischen Verfahren und dem dynamischen Huffman-Verfahren ist möglich. Ein Beispiel hierfür ist gzip. Die Vorteile des dynamischen Verfahrens sind offensichtlich, allerdings gibt es auch Nachteile. Tritt beispielsweise eine konstante Verteilung der Wahrscheinlichkeiten (der einzelnen Zeichen) auf, liefert das statische Huffman-Verfahren weit bessere Ergebnisse; tritt gar eine (nahezu) Gleichverteilung der Wahrscheinlichkeiten auf ist die erzielte Kompressionsrate sowohl mit statischen, als auch mit dynamischen Huffman-Verfahren sehr gering. Ein Beispiel hierfür sind Bilder, bei denen die Wahrscheinlichkeit für die einzelnen Farben in der Regel gleich ist. Die Einsatzmöglichkeiten des dynamischen Huffman-Verfahrens sind somit begrenzt, weshalb heutzutage oftmals auch andere Kompressionstechniken Einsatz finden. 6

7 7. Quellen Huffman- und FGK-Algorithmus: - Diplomarbeit: Universal Lossless Data Compression, D. Nehring, Universität Bielefeld, 1997 V-Algorithmus: - Design and Analysis of Dynamic Huffman Codes, J. S. Vitter, Dynamic Huffman Coding, J. S. Vitter,

8 Anhang Beispiele für den FGK-Algorithmus 12 q 11 5 q 9 7 q 10 2 q 5 3 q 6 3 q 7 4 q 8 2 q 3 2 q 4 0 q 1 2 q 2 Fig. 1: Beispiel eines Huffman-Baumes vor der Aktualisierung 12 q 11 5 q 9 7 q 10 2 q 5 3 q 6 3 q 7 4 q 8 2 q 3 2 q 4 0 q 1 2 q 2 0 q w 0 q 0 Fig. 2: Nach dem ersten Schritt (a j(t+1) nicht im Baum enthalten) 8

9 12 q 11 5 q 9 7 q 10 2 q 5 3 q 6 3 q 7 4 q 8 2 q 3 2 q 4 0 q 1 2 q 2 0 q w 1 q 0 Fig. 3: Wertigkeit von q 0 erhöht, gehe zu q 1 12 q 11 5 q 9 7 q 10 2 q 4 3 q 6 3 q 7 4 q 8 1 q 1 2 q 2 2 q 3 2 q 5 0 q w 1 q 0 Fig. 4: Wertigkeit von q 1 erhöht, q 4 mit q 5 getauscht 9

10 13 q 11 6 q 9 7 q 10 3 q 4 3 q 6 3 q 7 4 q 8 1 q 1 2 q 2 2 q 3 2 q 5 0 q w 1 q 0 Fig. 5: Wertigkeit von q 4, q 9 und q 11 erhöht, Wurzel erreicht 13 q 13 6 q 11 7 q 12 3 q 7 3 q 8 3 q 9 4 q 10 1 q 3 2 q 4 2 q 5 2 q 6 0 q 1 1 q 2 Fig. 6: Nach der Aktualisierung, erneute Nummerierung der Elemente 10

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

Übrigens: um den Algorithmus im Unterricht einzuführen, sind keine Formeln notwendig! Warum reicht die normale ASCII-Codierung nicht aus?

Übrigens: um den Algorithmus im Unterricht einzuführen, sind keine Formeln notwendig! Warum reicht die normale ASCII-Codierung nicht aus? Huffman-Code Dieser Text ist als Hintergrundinformation ausschliesslich für die Lehrperson gedacht. Der Text ist deshalb eher technisch gehalten. Er lehnt sich an das entsprechende Kapitel in "Turing Omnibus"

Mehr

Algorithmus zur komprimierten Übertragung von Textdaten an mobile Endgeräte

Algorithmus zur komprimierten Übertragung von Textdaten an mobile Endgeräte Fachhochschule Wedel Seminararbeit Algorithmus zur komprimierten Übertragung von Textdaten an mobile Endgeräte Sven Reinck 7. Januar 2007 Inhaltsverzeichnis Inhaltsverzeichnis Motivation 2 Wörterbuch 2.

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

Huffman-Kodierung. Fachbereich Medieninformatik. Hochschule Harz. Huffman-Kodierung. Referat. Henner Wöhler. Abgabe:

Huffman-Kodierung. Fachbereich Medieninformatik. Hochschule Harz. Huffman-Kodierung. Referat. Henner Wöhler. Abgabe: Fachbereich Medieninformatik Hochschule Harz Huffman-Kodierung Referat Henner Wöhler 11459 Abgabe: 15.01.2007 Inhaltsverzeichnis Einleitung...I 1. Entropiekodierung...1 1.1 Morse Code...2 1.2 Shannon-Fano-Kodierung...3

Mehr

Seminar über Algorithmen, SS2004. Textkompression. von Christian Grümme und Robert Hartmann

Seminar über Algorithmen, SS2004. Textkompression. von Christian Grümme und Robert Hartmann Seminar über Algorithmen, SS2004 Textkompression von Christian Grümme und Robert Hartmann 1. Einleitung Textkompression wird zur Verringerung des Speicherbedarfs und der Übertragungskapazität von allgemeinen

Mehr

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:

Mehr

Proseminar WS 2002/2003

Proseminar WS 2002/2003 Technische Universität Chemnitz Fakultät für Informatik Professur Theoretische Informatik Proseminar WS 2002/2003 Thema: Datenkompression Dynamisches / Adaptives Huffman-Verfahren Danny Grobe Rainer Kuhn

Mehr

Proseminar Kodierverfahren bei Dr. Ulrich Tamm Sommersemester 2003 Thema: Codierung von Bäumen (Prüfer Codes...)

Proseminar Kodierverfahren bei Dr. Ulrich Tamm Sommersemester 2003 Thema: Codierung von Bäumen (Prüfer Codes...) Proseminar Kodierverfahren bei Dr. Ulrich Tamm Sommersemester 2003 Thema: Codierung von Bäumen (Prüfer Codes...) Inhalt: Einleitung, Begriffe Baumtypen und deren Kodierung Binäre Bäume Mehrwegbäume Prüfer

Mehr

Arithmetisches Codieren

Arithmetisches Codieren Arithmetisches Codieren 1. Motivation: Als Alternative zum arithmetischen Codieren bot sich damals als effizientester Algorithmus das Huffmann-Coding an. Dieses jedoch hatte einen entscheidenden Nachteil:

Mehr

15 Optimales Kodieren

15 Optimales Kodieren 15 Optimales Kodieren Es soll ein optimaler Kodierer C(T ) entworfen werden, welcher eine Information (z.b. Text T ) mit möglichst geringer Bitanzahl eindeutig überträgt. Die Anforderungen an den optimalen

Mehr

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder Programmieren in PASCAL Bäume 1 1. Baumstrukturen Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder 1. die leere Struktur oder 2. ein Knoten vom Typ Element

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

Wie muss der Eingabetext beschaffen sein, damit er sich gut komprimieren lässt?

Wie muss der Eingabetext beschaffen sein, damit er sich gut komprimieren lässt? Lernaufgabe 1a Beim Kofferpacken können wir durch Druck die Luft herauslassen und bringen somit mehr Kleidungsstücke in den Koffer. Im Unterricht haben wir vom Huffman-Code gehört und wissen, dass er nach

Mehr

Einleitung. Kapitel 1

Einleitung. Kapitel 1 Kapitel 1 Einleitung In diesem Abschnitt geben wir einen kurzen Überblick über den Inhalt der Vorlesung. Wir werden kurz die wesentlichen Probleme erläutern, die wir ansprechen wollen. Wir werden auch

Mehr

(a, b)-bäume / 1. Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss.

(a, b)-bäume / 1. Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss. (a, b)-bäume / 1. Szenario: Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss. Konsequenz: Kommunikation zwischen Hauptspeicher und Festplatte - geschieht nicht Byte für Byte,

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 Bruder-Bäume, B-Bäume) Prof. Dr. Susanne Albers Balancierte Bäume Eine Klasse von binären Suchbäumen ist balanciert, wenn jede der drei Wörterbuchoperationen

Mehr

2. Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung

2. Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 2 Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 24/ 44 Zwei Beispiele a 0

Mehr

a) Fügen Sie die Zahlen 39, 38, 37 und 36 in folgenden (2, 3)-Baum ein:

a) Fügen Sie die Zahlen 39, 38, 37 und 36 in folgenden (2, 3)-Baum ein: 1 Aufgabe 8.1 (P) (2, 3)-Baum a) Fügen Sie die Zahlen 39, 38, 37 und 36 in folgenden (2, 3)-Baum ein: Zeichnen Sie, was in jedem Schritt passiert. b) Löschen Sie die Zahlen 65, 70 und 100 aus folgendem

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

11.1 Grundlagen - Denitionen

11.1 Grundlagen - Denitionen 11 Binärbäume 11.1 Grundlagen - Denitionen Denition: Ein Baum ist eine Menge, die durch eine sog. Nachfolgerrelation strukturiert ist. In einem Baum gilt: (I) (II) 1 Knoten w ohne VATER(w), das ist die

Mehr

Algorithmen und Datenstrukturen Heapsort

Algorithmen und Datenstrukturen Heapsort Algorithmen und Datenstrukturen 2 5 Heapsort In diesem Kapitel wird Heapsort, ein weiterer Sortieralgorithmus, vorgestellt. Dieser besitzt wie MERGE-SORT eine Laufzeit von O(n log n), sortiert jedoch das

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Datenstrukturen und Algorithmen VO 708.031 Bäume robert.legenstein@igi.tugraz.at 1 Inhalt der Vorlesung 1. Motivation, Einführung, Grundlagen 2. Algorithmische Grundprinzipien 3. Sortierverfahren 4. Halden

Mehr

Einführung in die Informatik II Aus der Informationstheorie: Datenkompression

Einführung in die Informatik II Aus der Informationstheorie: Datenkompression Einführung in die Informatik II Aus der Informationstheorie: Datenkompression Prof. Bernd Brügge, Ph.D Institut für Informatik Technische Universität München Sommersemester 2 2. Juli 2 Copyright 2 Bernd

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

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

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Heaps Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 469 Prioritätswarteschlange Problem Häufig ist das Prinzip einer einfachen Warteschlangen-Datenstruktur

Mehr

Ziv-Lempel-Kompression von André Lichei

Ziv-Lempel-Kompression von André Lichei Ziv-Lempel-Kompression von André Lichei Einführung: Die wichtigsten Ansprüche,die an einen Komprimierungs-Algorithmus gestellt werden, sind: - eine hohe Komprimierungsrate - für alle Typen von Daten (

Mehr

13 (2-4)-Bäume Implementierbare Funktionen. (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang

13 (2-4)-Bäume Implementierbare Funktionen. (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang 13 (2-4)-Bäume (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang 2. Die Ordnung (maximale Anzahl der Söhne eines Knotens) ist gleich 4 3. Innere Knoten haben 2 Söhne

Mehr

Mathematik für Information und Kommunikation

Mathematik für Information und Kommunikation Mathematik für Information und Kommunikation Am Beispiel des Huffman- Algorithmus Thomas Borys und (Christian Urff) Huffman im Alltag MPEG Telefax JPEG MP3 ZIP avid Huffman avid Huffman [95-999] www.soe.ucsc.edu/people/faculty/huffman.html

Mehr

Datenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen

Datenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen Bäume sind verallgemeinerte Listen Datenstrukturen Teil 2 Bäume Jeder Knoten kann mehrere Nachfolger haben Sie sind weiter spezielle Graphen Graphen bestehen aus Knoten und Kanten Kanten können gerichtet

Mehr

Rotation. y T 3. Abbildung 3.10: Rotation nach rechts (analog links) Doppelrotation y

Rotation. y T 3. Abbildung 3.10: Rotation nach rechts (analog links) Doppelrotation y Die AVL-Eigenschaft soll bei Einfügungen und Streichungen erhalten bleiben. Dafür gibt es zwei mögliche Operationen: -1-2 Rotation Abbildung 3.1: Rotation nach rechts (analog links) -2 +1 z ±1 T 4 Doppelrotation

Mehr

1. Woche Einführung in die Codierungstheorie, Definition Codes, Präfixcode, kompakte Codes

1. Woche Einführung in die Codierungstheorie, Definition Codes, Präfixcode, kompakte Codes 1 Woche Einführung in die Codierungstheorie, Definition Codes, Präfixcode, kompakte Codes 1 Woche: Einführung in die Codierungstheorie, Definition Codes, Präfixcode, kompakte Codes 5/ 44 Unser Modell Shannon

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

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen Vorlesung Informatik 2 Algorithmen und Datenstrukturen (18 Bäume: Grundlagen und natürliche Suchbäume) Prof. Dr. Susanne Albers Bäume (1) Bäume sind verallgemeinerte Listen (jedes Knoten-Element kann mehr

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Elementare Datenstrukturen Rekursionen Bäume 2 1 Datenstruktur Baum Definition eines Baumes

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 - Balancierte Bäume, AVL-Bäume) Prof. Dr. Susanne Albers Balancierte Bäume Eine Klasse von binären Suchbäumen ist balanciert, wenn jede der drei

Mehr

7. Sortieren Lernziele. 7. Sortieren

7. Sortieren Lernziele. 7. Sortieren 7. Sortieren Lernziele 7. Sortieren Lernziele: Die wichtigsten Sortierverfahren kennen und einsetzen können, Aufwand und weitere Eigenschaften der Sortierverfahren kennen, das Problemlösungsparadigma Teile-und-herrsche

Mehr

Technische Informatik - Eine Einführung

Technische Informatik - Eine Einführung Martin-Luther-Universität Halle-Wittenberg Fachbereich Mathematik und Informatik Lehrstuhl für Technische Informatik Prof. P. Molitor Technische Informatik - Eine Einführung Darstellung von Zeichen und

Mehr

Kodierungsalgorithmen

Kodierungsalgorithmen Kodierungsalgorithmen Komprimierung Verschlüsselung Komprimierung Zielsetzung: Reduktion der Speicherkapazität Schnellere Übertragung Prinzipien: Wiederholungen in den Eingabedaten kompakter speichern

Mehr

12 (2-4)-Bäume Implementierbare Funktionen. (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang

12 (2-4)-Bäume Implementierbare Funktionen. (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang 12 (2-4)-Bäume (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang 2. Die Ordnung (maximale Anzahl der Söhne eines Knotens) ist gleich 4 3. Innere Knoten haben 2 Söhne

Mehr

14. Rot-Schwarz-Bäume

14. Rot-Schwarz-Bäume Bislang: Wörterbuchoperationen bei binären Suchbäume effizient durchführbar, falls Höhe des Baums klein. Rot-Schwarz-Bäume spezielle Suchbäume. Rot-Schwarz-Baum mit n Knoten hat Höhe höchstens 2 log(n+1).

Mehr

6. Komprimierung. (Text)komprimierung ist ein Wechsel der Repräsentation von Daten, so daß sie weniger

6. Komprimierung. (Text)komprimierung ist ein Wechsel der Repräsentation von Daten, so daß sie weniger Komprimierung 6. Komprimierung (Text)komprimierung ist ein Wechsel der Repräsentation von Daten, so daß sie weniger Platz brauchen Motivation: beschleunigt Plattenzugriffe oder Datenübertragungen Voraussetzung:

Mehr

3 Quellencodierung. 3.1 Einleitung

3 Quellencodierung. 3.1 Einleitung Source coding is what Alice uses to save money on her telephone bills. It is usually used for data compression, in other words, to make messages shorter. John Gordon 3 Quellencodierung 3. Einleitung Im

Mehr

Algorithmische Bioinformatik 1

Algorithmische Bioinformatik 1 Algorithmische Bioinformatik 1 Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2009 Übersicht Algorithmen

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

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 13 (18.6.2014) Binäre Suchbäume IV (Rot Schwarz Bäume) Algorithmen und Komplexität Rot Schwarz Bäume Ziel: Binäre Suchbäume, welche immer

Mehr

Programmiertechnik II

Programmiertechnik II 2007 Martin v. Löwis Priority Queues and Heapsort 2007 Martin v. Löwis 2 Priority Queue Abstrakter Datentyp Inhalt: Elemente mit Priorität Operationen: Einfügen: Angabe des Elements und seiner Priorität

Mehr

Strings. Stringsuche, Boyer-Moore, Textkompression, Huffman Codes.

Strings. Stringsuche, Boyer-Moore, Textkompression, Huffman Codes. Strings Stringsuche, Boyer-Moore, Textkompression, Huffman Codes. Suche Substring Häufiges Problem Relevante Beispiele: Suche ein Schlagwort in einem Buch Alphabet: A-Za-z0-9 Suche Virussignatur auf der

Mehr

ContainerDatenstrukturen. Große Übung 4

ContainerDatenstrukturen. Große Übung 4 ContainerDatenstrukturen Große Übung 4 Aufgabenstellung Verwalte Kollektion S von n Objekten Grundaufgaben: Iterieren/Auflistung Suche nach Objekt x mit Wert/Schlüssel k Füge ein Objekt x hinzu Entferne

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

Greedy Algorithms - Gierige Algorithmen

Greedy Algorithms - Gierige Algorithmen Greedy Algorithms - Gierige Algorithmen Marius Burfey 23. Juni 2009 Inhaltsverzeichnis 1 Greedy Algorithms 1 2 Interval Scheduling - Ablaufplanung 2 2.1 Problembeschreibung....................... 2 2.2

Mehr

Binäre Suchbäume. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps

Binäre Suchbäume. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps Binäre Suchbäume Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps Mengen n Ziel: Aufrechterhalten einer Menge (hier: ganzer Zahlen) unter folgenden Operationen: Mengen n Ziel: Aufrechterhalten einer

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

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen Wintersemester 2016/17 13. Vorlesung Binäre Suchbäume Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Dynamische Menge verwaltet Elemente einer sich ändernden Menge

Mehr

Effiziente Algorithmen 2

Effiziente Algorithmen 2 Effiziente Algorithmen 2 Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2009 Übersicht Algorithmen

Mehr

Die Digitalisierung von Musik

Die Digitalisierung von Musik Die Digitalisierung von Musik 1 Analoges Speichern Speicherung von Musik auf einer LP Die Daten sind analog gespeichert Analysis 2 Digitale Datenerfassung 1.Sampling Das (akustische) elektrische Signal

Mehr

Übung: Algorithmen und Datenstrukturen SS 2007

Übung: Algorithmen und Datenstrukturen SS 2007 Übung: Algorithmen und Datenstrukturen SS 07 Prof. Lengauer Sven Apel, Michael Claÿen, Christoph Zengler, Christof König Blatt 8 Votierung in der Woche vom 25.06.0729.06.07 Aufgabe 22 AVL-Bäume (a) Geben

Mehr

Informationssysteme SS 2013 Lösungsvorschläge zu Übungsblatt 2. Übungsblatt 2. Für die Übungen in der Woche vom 29. April bis 03.

Informationssysteme SS 2013 Lösungsvorschläge zu Übungsblatt 2. Übungsblatt 2. Für die Übungen in der Woche vom 29. April bis 03. Prof. Dr.-Ing. Stefan Deßloch AG Heterogene Informationssysteme Fachbereich Informatik Technische Universität Kaiserslautern Übungsblatt 2 Für die Übungen in der Woche vom 29. April bis 03. Mai 2013 Aufgabe

Mehr

Übungen zu Programmierung I - Blatt 8

Übungen zu Programmierung I - Blatt 8 Dr. G. Zachmann A. Greß Universität Bonn Institut für Informatik II 1. Dezember 2004 Wintersemester 2004/2005 Übungen zu Programmierung I - Blatt 8 Abgabe am Mittwoch, dem 15.12.2004, 15:00 Uhr per E-Mail

Mehr

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr

Heapsort / 1 A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]

Heapsort / 1 A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] Heapsort / 1 Heap: Ein Array heißt Heap, falls A [i] A [2i] und A[i] A [2i + 1] (für 2i n bzw. 2i + 1 n) gilt. Beispiel: A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] Heapsort / 2 Darstellung eines Heaps als

Mehr

Klausur Informatik-Propädeutikum (Niedermeier/Hartung/Nichterlein, Wintersemester 2012/13)

Klausur Informatik-Propädeutikum (Niedermeier/Hartung/Nichterlein, Wintersemester 2012/13) Berlin, 21. Februar 2013 Name:... Matr.-Nr.:... Klausur Informatik-Propädeutikum (Niedermeier/Hartung/Nichterlein, Wintersemester 2012/13) 1 2 3 4 5 6 7 8 9 Σ Bearbeitungszeit: 90 min. max. Punktezahl:

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 11 (4.6.2014) Binäre Suchbäume II Algorithmen und Komplexität Binäre Suchbäume Binäre Suchbäume müssen nicht immer so schön symmetrisch sein

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Datenstrukturen und Algorithmen VO INF.02031UF (2-4)-Bäume robert.legenstein@igi.tugraz.at 1 7. Bäume Bäume als Datenstruktur Binärbäume Balancierte Bäume (2-4)-Bäume Anwendung: Mischbare Warteschlangen

Mehr

Wiederholung. Datenstrukturen und. Bäume. Wiederholung. Suchen in linearen Feldern VO

Wiederholung. Datenstrukturen und. Bäume. Wiederholung. Suchen in linearen Feldern VO Wiederholung Datenstrukturen und Algorithmen VO 708.031 Suchen in linearen Feldern Ohne Vorsortierung: Sequentielle Suche Speicherung nach Zugriffswahrscheinlichkeit Selbstanordnende Felder Mit Vorsortierung:

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2006 6. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Datenkomprimierung Bei den meisten bisher betrachteten

Mehr

Computer Science Unplugged Algorithmen zur Textkompression

Computer Science Unplugged Algorithmen zur Textkompression Proseminar Computer Science Unplugged Algorithmen zur Textkompression Harald Zauner 12. November 2004 Zusammenfassung Trotz der rasch zunehmenden Speicherkapazität heutiger Speichermedien besteht nach

Mehr

Bäume. 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 1

Bäume. 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 1 Bäume 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 1 Inhalt Grundbegriffe: Baum, Binärbaum Binäre Suchbäume (Definition) Typische Aufgaben Suchaufwand Löschen allgemein, Methode Schlüsseltransfer

Mehr

Algorithmische Graphentheorie

Algorithmische Graphentheorie Algorithmische Graphentheorie Vorlesung 4: Suchstrategien Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca csacarea@cs.ubbcluj.ro 14. April 2017 HALBORDNUNG TOPOLOGISCHE ORDNUNG TOPOLOGISCHES

Mehr

13. Binäre Suchbäume

13. Binäre Suchbäume 1. Binäre Suchbäume Binäre Suchbäume realiesieren Wörterbücher. Sie unterstützen die Operationen 1. Einfügen (Insert) 2. Entfernen (Delete). Suchen (Search) 4. Maximum/Minimum-Suche 5. Vorgänger (Predecessor),

Mehr

368 4 Algorithmen und Datenstrukturen

368 4 Algorithmen und Datenstrukturen Kap04.fm Seite 368 Dienstag, 7. September 2010 1:51 13 368 4 Algorithmen und Datenstrukturen Java-Klassen Die ist die Klasse Object, ein Pfeil von Klasse A nach Klasse B bedeutet Bextends A, d.h. B ist

Mehr

Isomorphie von Bäumen

Isomorphie von Bäumen Isomorphie von Bäumen Alexandra Weinberger 23. Dezember 2011 Inhaltsverzeichnis 1 Einige Grundlagen und Definitionen 2 1.1 Bäume................................. 3 1.2 Isomorphie..............................

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Universität Innsbruck Institut für Informatik Zweite Prüfung 16. Oktober 2008 Algorithmen und Datenstrukturen Name: Matrikelnr: Die Prüfung besteht aus 8 Aufgaben. Die verfügbaren Punkte für jede Aufgabe

Mehr

Run Length Coding und Variable Length Coding

Run Length Coding und Variable Length Coding Fachbereich Medieninformatik Hochschule Harz Run Length Coding und Variable Length Coding Referat Matthias Zittlau 11034 Abgabe: 15.01.2007 Inhaltsverzeichnis 1. RLC...1 2.1 Einführung...1 2.2 Prinzip...1

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 14. Bäume. Bäume 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 14. Bäume. Bäume 1 Kapitel 14 Bäume Bäume 1 Ziele Den Begriff des Baums in der Informatik kennenlernen Bäume als verkettete Datenstruktur repräsentieren können Rekursive Funktionen auf Bäumen verstehen und schreiben können

Mehr

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel 3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel EADS 3.1 Konstruktion von minimalen Spannbäumen 16/36

Mehr

3. Minimale Spannbäume. Definition 99 T heißt minimaler Spannbaum (MSB, MST) von G, falls T Spannbaum von G ist und gilt:

3. Minimale Spannbäume. Definition 99 T heißt minimaler Spannbaum (MSB, MST) von G, falls T Spannbaum von G ist und gilt: 3. Minimale Spannbäume Sei G = (V, E) ein einfacher ungerichteter Graph, der o.b.d.a. zusammenhängend ist. Sei weiter w : E R eine Gewichtsfunktion auf den Kanten von G. Wir setzen E E: w(e ) = e E w(e),

Mehr

Clausthal C G C C G C. Informatik II Bäume. G. Zachmann Clausthal University, Germany Beispiele. Stammbaum.

Clausthal C G C C G C. Informatik II Bäume. G. Zachmann Clausthal University, Germany Beispiele. Stammbaum. lausthal Informatik II Bäume. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Beispiele Stammbaum. Zachmann Informatik - SS 0 Bäume Stammbaum Parse tree, Rekursionsbaum Unix file hierarchy

Mehr

(Prüfungs-)Aufgaben zur Codierungstheorie

(Prüfungs-)Aufgaben zur Codierungstheorie (Prüfungs-)Aufgaben zur Codierungstheorie 1) Gegeben sei die folgende CCITT2-Codierung der Dezimalziffern: Dezimal CCITT2 0 0 1 1 0 1 1 1 1 1 0 1 2 1 1 0 0 1 3 1 0 0 0 0 4 0 1 0 1 0 5 0 0 0 0 1 6 1 0 1

Mehr

3. Binäre Suchbäume. 3.1 Natürliche binäre Suchbäume. EADS 3.1 Natürliche binäre Suchbäume 78/598 ľernst W. Mayr

3. Binäre Suchbäume. 3.1 Natürliche binäre Suchbäume. EADS 3.1 Natürliche binäre Suchbäume 78/598 ľernst W. Mayr 3. Binäre Suchbäume 3.1 Natürliche binäre Suchbäume Definition 18 Ein natürlicher binärer Suchbaum über einem durch total geordneten Universum U ist ein als interner Suchbaum organisierter Binärbaum (also:

Mehr

Kryptographie und Codierung für den Mathematikunterricht

Kryptographie und Codierung für den Mathematikunterricht Kryptographie und Codierung für den Mathematikunterricht Pädagogische Hochschule Karlsruhe University of Education École Supérieure de Pédagogie Institut für Mathematik und Informatik Th. Borys Was verstehst

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

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Teil 10 Suche in Graphen Version vom 13. Dezember 2016 1 / 2 Vorlesung 2016 / 2017 2 /

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

Definition 15 Rot-Schwarz-Bäume sind externe Binärbäume (jeder Knoten hat 0 oder 2 Kinder) mit roten und schwarzen Kanten, so dass gilt:

Definition 15 Rot-Schwarz-Bäume sind externe Binärbäume (jeder Knoten hat 0 oder 2 Kinder) mit roten und schwarzen Kanten, so dass gilt: 2.2 Rot-Schwarz-Bäume Definition 15 Rot-Schwarz-Bäume sind externe Binäräume (jeder Knoten hat 0 oder 2 Kinder) mit roten und schwarzen Kanten, so dass gilt: 1 alle Blätter hängen an schwarzen Kanten (durchgezogene

Mehr

22. Algorithmus der Woche Partnerschaftsvermittlung Drum prüfe, wer sich ewig bindet

22. Algorithmus der Woche Partnerschaftsvermittlung Drum prüfe, wer sich ewig bindet 22. Algorithmus der Woche Partnerschaftsvermittlung Drum prüfe, wer sich ewig bindet Autor Volker Claus, Universität Stuttgart Volker Diekert, Universität Stuttgart Holger Petersen, Universität Stuttgart

Mehr

Kapiteltests zum Leitprogramm Binäre Suchbäume

Kapiteltests zum Leitprogramm Binäre Suchbäume Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm

Mehr

Motivation Binäre Suchbäume

Motivation Binäre Suchbäume Kap..: Binäre Suchbäume Professor Dr. Lehrstuhl für Algorithm Engineering, LS Fakultät für Informatik, TU Dortmund Zusätzliche Lernraumbetreuung Morteza Monemizadeh: Jeden Montag von :00 Uhr-:00 Uhr in

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 Wiederholung: Ziele der Vorlesung Wissen: Algorithmische

Mehr

Häufige Mengen ohne Kandidatengenerierung. FP-Tree: Transaktionen. Konstruktion eines FP-Trees. FP-Tree: Items

Häufige Mengen ohne Kandidatengenerierung. FP-Tree: Transaktionen. Konstruktion eines FP-Trees. FP-Tree: Items Häufige Mengen ohne Kandidatengenerierung Jiawei Han, Micheline Kamber 2006 (2nd ed.)! Ziel 1: Kompression der Datenbank in eine Frequent-Pattern Tree Struktur (FP-Tree)! Stark komprimiert, vollständig

Mehr

Datenstrukturen. einfach verkettete Liste

Datenstrukturen. einfach verkettete Liste einfach verkettete Liste speichert Daten in einer linearen Liste, in der jedes Element auf das nächste Element zeigt Jeder Knoten der Liste enthält beliebige Daten und einen Zeiger auf den nächsten Knoten

Mehr

Untersuchung des Huffman- Algorithmus auf seine Effizienz

Untersuchung des Huffman- Algorithmus auf seine Effizienz Untersuchung des Huffman- Algorithmus auf seine Effizienz :) Wettbewerb "Jugend Forscht" 2004 Markus Kramer (19 Jahre) Arbeitsgemeinschaft "Jugend Forscht" des Christian-Gymnasiums Hermannsburg Leitung:

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 10 (3.6.2014) Binäre Suchbäume I Algorithmen und Komplexität Zusätzliche Dictionary Operationen Dictionary: Zusätzliche mögliche Operationen:

Mehr

8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können.

8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können. 8. A & D - Heapsort Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können. Genauer werden wir immer wieder benötigte Operationen durch Datenstrukturen unterstützen.

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

Datenkompression. Vortrag von Markus Durzinsky Student der Otto-von-Guericke-Universität Magdeburg

Datenkompression. Vortrag von Markus Durzinsky Student der Otto-von-Guericke-Universität Magdeburg Vortrag am 25. Januar 200 Werner von Siemens Gymnasium Magdeburg Zeitansatz: 5h (inklusive Programmieraufgaben) Datenkompression Vortrag von Markus Durzinsky Student der Otto-von-Guericke-Universität Magdeburg

Mehr

Algorithmen und Datenstrukturen I AVL-Bäume

Algorithmen und Datenstrukturen I AVL-Bäume Algorithmen und Datenstrukturen I AVL-Bäume Prof. Dr. Oliver Braun Letzte Änderung: 01.12.2017 14:42 Algorithmen und Datenstrukturen I, AVL-Bäume 1/38 Balancierte Bäume in einem zufällig erzeugten Binärbaum

Mehr

Kapitel Andere dynamische Datenstrukturen

Kapitel Andere dynamische Datenstrukturen Institute of Operating Systems and Computer Networks Algorithms Group Kapitel 4.8-4.11 Andere dynamische Datenstrukturen Algorithmen und Datenstrukturen Wintersemester 2017/2018 Vorlesung#13, 12.12.2017

Mehr

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen Was bisher geschah abstrakter Datentyp : Signatur Σ und Axiome Φ z.b. ADT Menge zur Verwaltung (Finden, Einfügen, Entfernen) mehrerer Elemente desselben Typs Spezifikation einer Schnittstelle Konkreter

Mehr