Einleitung. Kapitel 1

Größe: px
Ab Seite anzeigen:

Download "Einleitung. Kapitel 1"

Transkript

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 darlegen, wo diese Probleme angewandt werden. Zu Beginn aber wollen wir klarstellen, worum es bei der Codierungstheorie nicht geht. Codierungstheorie ist nicht Kryptographie, es geht nicht um die Sicherung von Daten gegenüber dem Zugriff Unbefugter oder um die Authentisierung von Daten. Die Codierungstheorie beschäftigt sich mit zwei Problemkreisen. Einmal ist das Kompression von Daten zur Speicherung und zur übertragung. Der zweite Problemkreis ist die Sicherung von Daten gegenüber Fehlern bei der Datenübertragung, die hervorgerufen werden durch unvollkommene übertragungsmedien. Beispiele sind Fehler hervorgerufen durch atmosphärische Störungen bei Funk oder Fehler durch zufällige Bitflips auf digitalen Leitungen. In der Algorithmischen Codierungstheorie I beschäftigen wir uns mir der Datenkompression. Fehlerkorrigierende Codes sind das Thema der Vorlesung Algorithmische Codierungstheorie II. Bei der Datenkompression gibt es zwei Möglichkeiten. Man kann einmal Redundanz in der Datenmenge ausnutzen, um diese zu komprimieren. Man kann aber auch eine Häufigkeitsanalyse der in der Datenmenge auftretenden Symbole vornehmen, um diese effizienter durch Folgen anderer Symbole, etwa Folgen von 0, 1 zu codieren. Bekannte Komprimierungsverfahren wie MPEG und AVI bei Video oder JPEG bei einzelnen Bildern benutzen beide Techniken. Wir werden im wesentlichen nur die zweite Technik anhand mehrerer wichtiger Beispiele kennenlernen. Um etwas besser zu verstehen, was die Kompression aufbauend auf einer Häufigkeitsanalyse genauer bedeutet, betrachten wir ein Beispiel. Angenom- 2

2 men wir wollen einen ASCI-Text digital speichern. Das bedeutet, wir müssen jedes ASCI-Zeichen als eine Bitfolge, eine Folge von 0 und 1 also, darstellen. Handelt es sich bei dem ASCI-Text etwa um einen deutschen Text, so werden wir in aller Regel feststellen, dass der Buchstabe e sehr viel häufiger vorkommt als der Buchstabe x. Um den Text durch eine möglichst kurze Bitfolge darzustellen, scheint es daher sinnvoll, den Buchstaben e durch eine sehr viel kürzere Bitfolge zu codieren als den Buchstaben x. Wie werden dieses im Laufe der Vorlesung präzisieren. Wir werden u.a. die Huffmann-Codierung kennenlernen, und wir werden sehen, dass die Huffman-Codierung in einem wohldefinierten Sinn eine optimale Kompression beruhend auf einer Häufigkeitsanalyse erreicht. Die Huffman-Codierung wird in vielen Kompressionsstandards als Unterroutine verwendet. Hierzu gehören JPEG und verschiedene Varianten von MPEG. Neben der Huffman-Codierung werden wir noch zwei weitere Techniken kennenlernen, die Ziv-Lempel-Codierung und die Arithmetische Codierung. Wie wir sehen werden haben beide Vorteile gegenüber der Huffman-Codierung. Insbesondere werden diese beiden Techniken verwendet, wenn keine exakte Häufigkeitsanalyse der zu komprimierende Daten vorliegt und eine solche auch nicht leicht zu erzielen ist. Die Ziv-Lempel-Codierung wird z.b. bei dem Unix-Programm compress benutzt. 3

3 Kapitel 2 Quellcodierung In diesem Kapitel beschäftigen wir uns mit der so genannten Quellcodierung. Dieses ist eine Technik zur Datenkompression. Wir werden zunächst einige grundlegende Begriffe und Sätze über die Quellcodierung kennen lernen. Dann werden die Huffman-Codierung, die Arithmetische-Codierung und die Ziv-Lempel-Codierung kennen lernen. 2.1 Eindeutig entschlüsselbare Codes und Präfix- Codes Unter einer Quelle verstehen wir einen Strom von Symbolen aus einem endlichen Alphabet A = {a 1,..., a n }. Die a i werden auch Worte genannt. Weiter sind Häufigkeiten oder Wahrscheinlichkeiten für die einzelnen Symbole a i gegeben. Wir nehmen in Zukunft in aller Regel an, dass diese Wahrscheinlichkeiten unabhängig voneinander sind. D.h., für jede Position i im Strom gilt Pr(a j ist das i-te Wort des Stroms ) = p j für j = 1,..., N, n unabhängig von der Position i. Es gilt natürlich p j = 1, damit wir eine Wahrscheinlichkeitsverteilung erhalten. Eine Quelle dieser Art nennt man eine erinnerungslose Quelle. Diese ist das einfachste Modell einer Quelle, und wir werden uns im wesentlichen darauf beschränken. Um die Wahrscheinlichkeiten von oben etwas kürzer zu schreiben, führen wir für jede Position i des Stroms eine Variable X i ein. X i kann also Werte aus A annehmen. Die Wahrscheinlichkeiten oder Häufigkeiten von oben können j=1 4

4 dann geschrieben werden als Pr(X i = a j ) = p j, für j = 1,..., n. Unser Ziel wird es nun sein, die Elemente aus A möglichst ökonomisch durch endliche Folgen von Bits, d.h., durch Element aus {0, 1} zu codieren. Ökonomisch soll dabei heißen, dass Elemente mit großer Wahrscheinlichkeit kurze Codierungen erhalten. Später werden wir dieses präzise definieren. Unter einer Codierung des Alphabets A verstehen wir eine injektive Abbildung C : A {0, 1} a i C(a i ) Die Bilder C(a i ) werden wir kürzer auch mit c i bezeichnen. Die c i heißen Codeworte. Die Abbildung C nennen wir auch einen Code. Häufig ist nicht so sehr die Abbildung C als vielmehr nur die Menge der Codeworte {c 1,..., c n } interessant. Insbesondere sind viele kombinatorisch interessante Eigenschaften eines Codes Eigenschaften der Menge der Codeworte und nicht so sehr Eigenschaften der Abbildung C. Die Menge der Codeworte eines Codes C bezeichnen wir ebenfalls mit C. Mit dem Code C kann dann sowohl die Abbildung C als auch die Menge der Codeworte C gemeint sein. Unter einer Nachricht verstehen wir ein Element aus A. Wir können also sagen, dass eine Quelle eine Nachricht ausgibt. Eine Codierung C von A kann nun auf Nachrichten erweitert werden, indem für m = a i1... a il A der Wert C(m) definiert wird als Konkatenation C(m) = C(a i1 )... C(a il ). Um von der Codierung einer Nachricht auf die Nachricht selber schließen zu können, muss ein Code eindeutig entschlüsselbar sein. Dabei heißt ein Code eindeutig entschlüsselbar (kurz: e.e.-code), falls jedes Element aus {0, 1} Bild höchstens einer Nachricht ist. Anders ausgedrückt, die Abbildung C erweitert wie oben erklärt auf A muss injektiv sein. Eine stärkere Eigenschaft besitzt ein Präfix-Code. C heißt Präfix-Code, falls keine Indizes 1 i, j n, i j, existieren, so dass C(a i ) = c i ein Präfix von C(a j ) = c j ist. Wir wollen all diese Begriffe an den Beispielen der folgenden Tabelle erläutern. 5

5 Jeder der vier Spalten entspricht eine Abbildung auf A = {a 1, a 2, a 3, a 4 }. A C 1 C 2 C 3 C 4 a a a a Abbildung C 1 : A {0, 1} ist nicht injektiv, daher ist C 1 kein Code. Die Abbildung C 2 : A {0, 1} ist zwar injektiv, nicht jedoch die Erweiterung C 2 : A {0, 1}. So kann 00 Bild sowohl von a 1 a 1 als auch von a 3 sein. C 2 ist also kein e.e.-code. C 3 ein e.e.-code, aber kein Präfix-Code. C 3 ist kein Präfix-Code, da c 1 = 0 Präfix aller übrigen Codeworte ist. In diesem Beispiel kann eine Codierung C(m) eindeutig zu m decodiert werden, indem man beachtet, dass eine 0 jeweils den Beginn der Codierung eines Wortes bedeutet. Die Codierung f(m) = kann z.b. eindeutig decodiert werden zu m = a 1 a 2 a 1 a 1 a 1 a 2 a 2 a 2. C 4 ist sogar ein Präfix-Code, wie man leicht überprüft, indem alle Präfixe von Codeworten mit allen Codeworten vergleicht. C 4 wird auch als Komma- Code bezeichnet, da 0 jeweils das Ende der Codierung eines Wortes kennzeichnet. Vergleichen wir C 3 und C 4 so stellen wir fest, dass auch C 3 in gewisser Weise ein Komma-Code ist. Leider wurde bei C 3 das Komma an die falsche Stelle, nämlich an den Beginn eines Wortes gesetzt. An den beiden Beispielen C 3, C 4 sehen wir, dass e.e.-code und Präfix-Code nicht äquivalent sind. Präfix-Codes sind leicht zu erkennen. Wir wollen uns auch eine elegante Möglichkeit überlegen, Präfix-Codes zu decodieren. Hierzu konstruieren wir zu einem Präfix-Code C = {c 1,..., c n } einen (unbalancierten) binären Baum. Die aus einem Knoten ausgehenden Kanten labeln wir hierzu mit 0 und 1. Nach links ausgehende Kanten labeln wir mit 0, nach rechts ausgehende Kanten mit 1. Jedes Codewort kann dann als Codierung eines von der Wurzel ausgehenden Pfades in einem Baum aufgefasst werden. Den Knoten am Ende dieses Pfades labeln wir dann mit dem Codewort selber. Ein Code ist genau dann ein Präfix-Code, wenn kein Codewort auf dem Pfad zu einem anderen Codewort liegt. Entfernen wir aus dem Baum dann noch alle Kanten und Knoten, die nicht auf einem Pfad liegen, der durch ein Codewort definiert wird, so erhalten wir einen Baum, dessen Blätter genau den 6

6 Codeworten entsprechen. Für den Code C 4 ist der Baum in Abbildung 2.1 dargestellt. Mit Hilfe des binären Baums für einen Präfix-Code C lässt sich Abbildung 2.1: Der Binärbaum für den Präfix-Code C 4 nun leicht eine Algorithmus zur Decodierung beschreiben. Gegeben eine codierte Nachricht C(m) {0, 1}, fassen wir diese codierte Nachricht auf als die Beschreibung eines Pfades im Binärbaum B C für C. D.h., beginnend in der Wurzel verfolgen wir den Pfad in B C der durch C(m) codiert wird. Gelangen wir dabei zu einem Blatt gelabelt mit dem Codewort c i, geben wir C 1 (c i ) = a i aus, gehen zurück zur Wurzel und machen mit dem nächsten Symbol von C(m) weiter. Um C(m) zu decodieren, wird jedes Zeichen von C(m) genau einmal gelesen und ein Kante in B C verfolgt. Damit gilt Satz Zu jedem Präfix-Code C gibt es einen Decodieralgorithmus, der bei Eingabe C(m), m A in Zeit linear in der Länge von C(m) die Nachricht m berechnet. Zunächst ist es nicht offensichtlich wie man erkennt, ob ein Code ein e.e.- Code ist. Wir wollen jetzt ein einfaches hinreichendes und notwendiges Kriterium für e.e.-codes entwickeln. Hierzu zunächst die folgende Definition. Definition Sei C ein Codes. Eine Folge s {0, 1} ist ein Suffix in C, wenn eine der drei folgenden Bedingungen erfüllt ist. 1. Es existieren Codeworte c i, c j C, so dass c i = c j s. 2. Es existiert ein Codewort c i C und ein Suffix s in C, so dass s = cs. 3. Es existiert ein Codewort c i C und ein Suffix s in C, so dass c = ss. Beispiele: 7

7 1. Im Code C 2 erhalten wir die Suffixe s 1 = 0, s 2 = 1. Denn c 3 = c 1 s 1 und c 4 = c 2 s Im Code C 3 erhalten wir die Suffixe s 1 = 1, s 2 = 11, s 3 = 111. Denn c 2 = c 1 s 1, c 3 = c 1 s 2, c 4 = c 1 s Im Code C 4 gibt es keinerlei Suffixe. Dieses ist nicht überraschend, denn in keinem Präfix-Code kann es Suffixe geben, da die Bedingung 1. aus Definition bei einem Präfix-Code für kein s erfüllt sein kann. 4. Betrachten wir den Code C 5 = {0, 10, 101, 11}. Dieser besitzt die Suffixe s 1 = 1, s 2 = 0, s 3 = 01. Denn c 3 = c 2 s 1, c 2 = s 1 s 2, c 3 = s 1 s Schließlich betrachten wir noch den Code C 6 = {1, 110, 101}. Hier erhalten wir die Suffixe s 1 = 10, s 2 = 01, s 3 = 1, s 4 = 0. Denn c 2 = c 1 s 1, c 3 = c 1 s 2, c 3 = s 1 s 3, s 1 = c 1 s 4. In den Codes C 2, C 5, C 6 gibt es jeweils Suffixe, die auch Codeworte sind. In den Codes C 3, C 4 ist dieses nicht der Fall. Die Codes C 3, C 4 sind e.e.-codes, die Codes C 2, C 5, C 6 sind es nicht. Dieses ist kein Zufall wie der folgende Satz zeigt. Satz Ein Code C ist genau dann ein e.e.-code, wenn kein Suffix in C ein Codewort aus C ist. Statt eines exakten Beweises wollen wir uns anhand von Beispielen von der Korrektheit des Satzes überzeugen. Zunächst wollen wir uns überlegen, dass es in einem Code C, der kein e.e.-code ist, einen Suffix geben muss, das Codewort ist. Ist C kein e.e.-code, so gibt es eine Folge c {0, 1}, die sich auf zwei unterschiedliche Arten als Folge von Codeworten schreiben lässt. Mit Hilfe dieser Aufteilung einer Bitfolge in zwei Codewortfolgen kann nun unter Anwendung der Regeln aus Definition ein Suffix konstruiert werde, das auch Codewort ist. Genauer konstruiert man sukzessive Suffixe, die immer weiter rechts in der Bitfolge c beginnen. Dieser Prozess muss irgendwann stoppen, da die Folge c endliche Länge besitzt. Der letzte erzeugte Suffix ist dann ein Codewort. In Abbildung 2.2 ist eine Bitfolge c und ihre Aufteilung in zwei Folgen von Codeworten d i, e j schematisch dargestellt. In dieser Abbildung haben wir auch die sukzessive Anwendung der Regeln aus Definition dargestellt. Die von links unten nach rechts oben schraffierten Suffixe s wurden dabei durch Anwendung der Regel c i = c j s oder der Regel c = ss erzeugt. Die übrigen Suffixe s wurden durch die Anwendung der Regel s = cs erzeugt. 8

8 Abbildung 2.2: Konstruktion eines Codewortes des Suffix ist Nun müssen wir uns überlegen, dass wir aus einem Suffix in C, das gleichzeitig Codewort in C ist, eine Folge C konstruieren können, die sich auf zwei Arten als Folge von Codeworten schreiben lässt. Denn dann ist C nicht e.e. Ist ein Suffix ein Codewort, so muss dieser Suffix durch die Anwendung der drei Regeln in Definition erzeugt worden sein, wobei mit der Regel c i = c j s begonnen werden muss. Aus diesem Prozess kann nun die gesuchte Folge c konstruiert werden. Betrachten wir als Beispiel den Code C 6 = {1, 110, 101} aus unseren Beispielen oben. Das Codewort c 1 = 1 ist auch ein Suffix in C 6. Die Konstruktion des Suffixes 1 beginnt mit den beiden Codeworten c 1 und c 2, die den Suffix 10 liefern. Wir betrachten nun einmal die Folge, die mit c 1 = 1 beginnt und die Folge, die mit c 2 = 110 beginnt. Der Suffix s 1 = 10 und das Codewort c 3 = 101 liefern unter Anwendung von c i = s s bereits den Suffix s 2 = 1. Da s 1 = 10 ein Suffix des Codewortes c 2 = 110 ist, erweitern wir die Folge, die bislang nur aus c 2 besteht, um den neuen Suffix s 2 = c 1. Die Folge, die bislang nur aus c 1 besteht, wird erweitert um das Codewort c 3, das zur Konstruktion von s 2 = 1 benutzt wurde. Nun gilt aber c 1 c 3 = c 2 c 1. Die gewünschte Folge c, die auf zwei verschiedenen Arten als Folge von Codeworten geschrieben kann, ist konstruiert. 9

9 Wir werden jetzt zeigen, dass die Menge der Suffixe in einem Code effizient berechnet werden kann. Mit Satz folgt dann, dass auch effizient entschieden werden kann, ob ein Code eindeutig entschlüsselbar ist. Um die Menge der Suffixe in einem Code C mit Codeworten c 1,..., c n zu berechnen, benutzen wir folgenden Algorithmus. Eingabe: Code C = {c 1,..., c n }. Algorithmus Suffix-Berechnung (SB) Ausgabe: Die Menge S der Suffixe in C. 1. Setze S :=, T := T. 2. Für alle Paare von Codeworten c i, c j, entscheide, ob es ein s {0, 1} gibt mit c i = c j s oder c j = c i s. Falls ja, setze S := S {s}, T := {s}. 3. Solange T, wiederhole die folgenden Schritte. 3a) Wähle ein s T aus und setze T := T \{ s}. 3b) Für alle Codeworte c i entscheide, ob es ein s {0, 1} gibt, so dass c = ss oder s = c i s. Falls ja, und falls s mit keinem Element in S übereinstimmt, setze S := S {s} und T := T {s}. Nach der Definition von Suffixen in einem Code (Definition 2.1.2) ist klar, dass der Algorithmus SB sämtliche Suffixe eines Codes C berechnet. Hingegen ist nicht ganz so klar, dass der Algorithmus endliche Laufzeit hat. Um dieses zu zeigen, zunächst das folgende Lemma. Lemma Sei C = {c 1,..., c n } ein Code und sei l max := max{ c i i = 1,..., n}. Dann ist die Anzahl der Suffixe in C beschränkt durch nl max. Beweis: Jeder Suffix in C muss Suffix eines Codewortes in C sein. Insgesamt gibt es aber höchstens nl max Suffixe von Codeworten in C. Aus Lemma folgt, dass bei Eingabe des Codes C insgesamt höchstens nl max Elemente jemals in die Menge T eingefügt werden. Denn wird s in T eingefügt, so muss s ein Suffix in C sein. Damit aber werden die Schritte 3a), 3b) höchstens nl max -mal durchlaufen. Schritte 3a), 3b) können nun so implementiert werden, dass ein Durchlauf Zeit polynomiell in n und l max benötigt. Da auch der Schritt 2 in Zeit polynomiell in n, l max durchführbar ist und die Eingabegrösse des Codes C mindestens n + l max ist, erhalten wir 10

10 Satz Es ist in polynomieller Zeit entscheidbar, ob ein Code eindeutig entschlüsselbar ist. 11

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

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

Wann sind Codes eindeutig entschlüsselbar?

Wann sind Codes eindeutig entschlüsselbar? Wann sind Codes eindeutig entschlüsselbar? Definition Suffix Sei C ein Code. Ein Folge s {0, 1} heißt Suffix in C falls 1 c i, c j C : c i = c j s oder 2 c C und einen Suffix s in C: s = cs oder 3 c C

Mehr

Diskrete Mathematik II

Diskrete Mathematik II Diskrete Mathematik II Alexander May Fakultät für Mathematik Ruhr-Universität Bochum Sommersemester 2008 DiMA II - Vorlesung 01-07.04.2008 Einführung in die Codierungstheorie, Definition Codes 1 / 36 Organisatorisches

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

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

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

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

3 Codierung diskreter Quellen. Quelle Quellcodierer Kanalcodierer reduziert die benötigte Datenmenge. fügt Daten zur Fehlerkorrektur ein.

3 Codierung diskreter Quellen. Quelle Quellcodierer Kanalcodierer reduziert die benötigte Datenmenge. fügt Daten zur Fehlerkorrektur ein. 3 Codierung diskreter Quellen 3 Einführung 32 Ungleichmäßige Codierung 33 Präfix-Codes 34 Grenzen der Code-Effizienz 35 Optimal-Codierung 3 Zusammenfassung < 24 / 228 > 3 Codierung diskreter Quellen Quelle

Mehr

21. Dynamic Programming III

21. Dynamic Programming III Approximation 21. Dynamic Programming III FPTAS [Ottman/Widmayer, Kap. 7.2, 7.3, Cormen et al, Kap. 15,35.5] Sei ein ε (, 1) gegeben. Sei I eine bestmögliche Auswahl. Suchen eine gültige Auswahl I mit

Mehr

Übersicht. Aktivitäten-Auswahl-Problem. Greedy Algorithmen. Aktivitäten-Auswahl-Problem. Aktivitäten-Auswahl-Problem. Datenstrukturen & Algorithmen

Übersicht. Aktivitäten-Auswahl-Problem. Greedy Algorithmen. Aktivitäten-Auswahl-Problem. Aktivitäten-Auswahl-Problem. Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Übersicht Greedy Algorithmen Einführung Aktivitäten-Auswahl-Problem Huffman Codierung Matthias Zwicker Universität Bern Frühling 2009 2 Greedy Algorithmen Entwurfsstrategie

Mehr

Informatik II, SS 2016

Informatik II, SS 2016 Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 22 (20.7.2016) Greedy Algorithmen - Datenkompression Algorithmen und Komplexität Greedy Algorithmen Greedy Algorithmen sind eine Algorithmenmethode,

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

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

Informatik II, SS 2018

Informatik II, SS 2018 Informatik II - SS 28 (Algorithmen & Datenstrukturen) Vorlesung 22 (6.7.28) Greedy Algorithmen II (Datenkompression) Algorithmen und Komplexität Datenkompression Reduziert Größen von Files Viele Verfahren

Mehr

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität Datenstrukturen und Algorithmen Christian Sohler FG Algorithmen & Komplexität Gierige Algorithmen: Berechne Lösung schrittweise In jedem Schritt mache lokal optimale Wahl Daumenregel: Wenn optimale Lösung

Mehr

21. Greedy Algorithmen. Aktivitätenauswahl, Fractional Knapsack Problem, Huffman Coding Cormen et al, Kap. 16.1, 16.3

21. Greedy Algorithmen. Aktivitätenauswahl, Fractional Knapsack Problem, Huffman Coding Cormen et al, Kap. 16.1, 16.3 581 21. Greedy Algorithmen Aktivitätenauswahl, Fractional Knapsack Problem, Huffman Coding Cormen et al, Kap. 16.1, 16.3 Aktivitäten Auswahl 582 Koordination von Aktivitäten, die gemeinsame Resource exklusiv

Mehr

6 Ü B E R S E T Z U N G E N U N D C O D I E R U N G E N. 6.1 von wörtern zu zahlen und zurück Dezimaldarstellung von Zahlen Num 10

6 Ü B E R S E T Z U N G E N U N D C O D I E R U N G E N. 6.1 von wörtern zu zahlen und zurück Dezimaldarstellung von Zahlen Num 10 6 Ü B E R S E T Z U N G E N U N D C O D I E R U N G E N 6.1 von wörtern zu zahlen und zurück 6.1.1 Dezimaldarstellung von Zahlen Num 10 Num10(ε) = 0 (6.1) für jedes w Z 10 für jedes x Z 10 Num 10 (wx)

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

Modul Diskrete Mathematik WiSe 2011/12

Modul Diskrete Mathematik WiSe 2011/12 Modul Diskrete Mathematik WiSe / Ergänzungsskript zum Kapitel 3.4. Hinweis: Dieses Manuskript ist nur verständlich und von Nutzen für Personen, die regelmäßig und aktiv die zugehörige Vorlesung besuchen

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

2.2 Der Algorithmus von Knuth, Morris und Pratt

2.2 Der Algorithmus von Knuth, Morris und Pratt Suchen in Texten 2.1 Grundlagen Ein Alphabet ist eine endliche Menge von Symbolen. Bsp.: Σ a, b, c,..., z, Σ 0, 1, Σ A, C, G, T. Wörter über Σ sind endliche Folgen von Symbolen aus Σ. Wörter werden manchmal

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

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

Übungsblatt 5 - Musterlösung

Übungsblatt 5 - Musterlösung Universität Mannheim Lehrstuhl für Praktische Informatik IV Prof. Dr. W. Effelsberg Christoph Kuhmünch, Gerald Kühne Praktische Informatik II SS 2000 Übungsblatt 5 - Musterlösung Aufgabe 1: Huffman-Codierung

Mehr

Praktikum BKSPP: Blatt 2

Praktikum BKSPP: Blatt 2 Praktikum BKSPP: Blatt 2 PD Dr. David Sabel WS 2014/15 Zeichenbasierte Komprimierung Stringersatzverfahren Codebäume Huffman-Kodierung Zeichenbasierte Komprimierung mit Codebäumen Idee: Kodiere jedes Zeichen

Mehr

Aufgabe: Platz-effiziente Kompression von Textdaten

Aufgabe: Platz-effiziente Kompression von Textdaten 7.3 Huffman-Bäume Anwendung von Binärbäumen Aufgabe: Platz-effiziente Kompression von Textdaten Standardcodierungen von Textdaten ISO-8859-1: 8 Bit pro Zeichen UTF-16: 16 Bit pro Zeichen Codierungen mit

Mehr

Effiziente Algorithmen und Komplexitätstheorie

Effiziente Algorithmen und Komplexitätstheorie Fakultät für Informatik Lehrstuhl 2 Vorlesung Effiziente Algorithmen und Komplexitätstheorie Sommersemester 2008 Ingo Wegener; Vertretung: Carsten Witt 7. Juli 2008 Vorlesung am 14.07. (nächste Woche):

Mehr

Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)).

Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)). 8. Untere Schranken für Sortieren Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)). Werden nun gemeinsame Eigenschaften dieser Algorithmen untersuchen. Fassen gemeinsame

Mehr

12. Woche: Verifizierer, nicht-deterministische Turingmaschine, Klasse NP

12. Woche: Verifizierer, nicht-deterministische Turingmaschine, Klasse NP 12 Woche: Verifizierer, nicht-deterministische Turingmaschine, Klasse NP 12 Woche: Verifizierer, nicht-deterministische Turingmaschine, NP 254/ 333 Polynomielle Verifizierer und NP Ḋefinition Polynomieller

Mehr

Algorithmen und Datenstrukturen (für ET/IT) Programm heute. Wintersemester 2012/13. Dr. Tobias Lasser. 7 Fortgeschrittene Datenstrukturen

Algorithmen und Datenstrukturen (für ET/IT) Programm heute. Wintersemester 2012/13. Dr. Tobias Lasser. 7 Fortgeschrittene Datenstrukturen Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 202/3 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 7 Fortgeschrittene Datenstrukturen 8 Such-Algorithmen

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

Definition Information I(p)

Definition Information I(p) Definition Information I(p) Definition I(p) Die Information I(p) eines Symbols mit Quellws p > 0 ist definiert als I(p) = log 1 p. Die Einheit der Information bezeichnet man als Bit. DiMa II - Vorlesung

Mehr

Grundbegriffe der Informatik Tutorium 3

Grundbegriffe der Informatik Tutorium 3 Grundbegriffe der Informatik Tutorium 3 Tutorium Nr. 16 Philipp Oppermann 18. November 2014 KARLSRUHER INSTITUT FÜR TECHNOLOGIE KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum

Mehr

Theoretische Grundlagen der Informatik. Vorlesung am 17. Januar INSTITUT FÜR THEORETISCHE INFORMATIK

Theoretische Grundlagen der Informatik. Vorlesung am 17. Januar INSTITUT FÜR THEORETISCHE INFORMATIK Theoretische Grundlagen der Informatik 0 17.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der Informatik KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Evaluation Ergebnisse

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

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

Vorlesung 15a. Quellencodieren und Entropie

Vorlesung 15a. Quellencodieren und Entropie Vorlesung 15a Quellencodieren und Entropie 1 1. Volle Binärbäume als gerichtete Graphen und die gewöhnliche Irrfahrt von der Wurzel zu den Blättern 2 3 ein (nicht voller) Binärbaum Merkmale eines Binärbaumes:

Mehr

Nachklausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2012/13

Nachklausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2012/13 Institut für Kryptographie und Sicherheit Prof. Dr. Jörn Müller-Quade Nachklausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2012/13 Vorname Nachname Matrikelnummer Hinweise Für

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

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

Informatik II, SS 2018

Informatik II, SS 2018 Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 21 (11.7.2018) String Matching (Textsuche) II Greedy Algorithmen I Algorithmen und Komplexität Textsuche / String Matching Gegeben: Zwei

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

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

2. Klausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2014/2015

2. Klausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2014/2015 2. Klausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2014/2015 Hier Aufkleber mit Name und Matrikelnummer anbringen Vorname: Nachname: Matrikelnummer: Beachten Sie: Bringen Sie

Mehr

3.3 Optimale binäre Suchbäume

3.3 Optimale binäre Suchbäume 3.3 Optimale binäre Suchbäume Problem 3.3.1. Sei S eine Menge von Schlüsseln aus einem endlichen, linear geordneten Universum U, S = {a 1,,...,a n } U und S = n N. Wir wollen S in einem binären Suchbaum

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

Effiziente Algorithmen und Komplexitätstheorie

Effiziente Algorithmen und Komplexitätstheorie 1 Effiziente lgorithmen und Komplexitätstheorie Vorlesung Thomas Jansen 29.06.2006 2 Burrows-Wheeler-Kompression: Verbesserungen dreischrittiges Kompressionsverfahren Burrows- Wheeler- Transformation Globale

Mehr

Vorlesung 12. Quellencodieren und Entropie

Vorlesung 12. Quellencodieren und Entropie Vorlesung 12 Quellencodieren und Entropie 1 S sei eine abzählbare Menge (ein Alphabet ). Die Elemente von S nennen wir Buchstaben. Wir wollen die Buchstaben a, b,... durch (möglichst kurze) 01-Folgen k(a),

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

Notation und Einführung

Notation und Einführung Skriptteil zur Vorlesung: Proinformatik - Funktionale Programmierung Dr. Marco Block-Berlitz 30.Juli 2009 Notation und Einführung Der folgende Abschnitt gibt eine kurze Einführung in die Codierungstheorie.

Mehr

Relationen und DAGs, starker Zusammenhang

Relationen und DAGs, starker Zusammenhang Relationen und DAGs, starker Zusammenhang Anmerkung: Sei D = (V, E). Dann ist A V V eine Relation auf V. Sei andererseits R S S eine Relation auf S. Dann definiert D = (S, R) einen DAG. D.h. DAGs sind

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

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 17. Januar 2012 INSTITUT FÜR THEORETISCHE 0 KIT 18.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der

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

Polynomielle Verifizierer und NP

Polynomielle Verifizierer und NP Polynomielle Verifizierer und NP Definition Polynomieller Verifizierer Sei L Σ eine Sprache. Eine DTM V heißt Verifizierer für L, falls V für alle Eingaben w Σ hält und folgendes gilt: w L c Σ : V akzeptiert

Mehr

Fragen 1. Muss eine DTM ein Wort zu Ende gelesen haben, um es zu akzeptieren? a) Ja! b) Nein!

Fragen 1. Muss eine DTM ein Wort zu Ende gelesen haben, um es zu akzeptieren? a) Ja! b) Nein! 4 Turingmaschinen Eingabeband nicht nur lesen, sondern auch schreiben kann und die zudem mit ihrem Lese-Schreib-Kopf (LSK) nach links und rechts gehen kann. Das Eingabeband ist zudem in beide Richtungen

Mehr

Grundbegriffe der Informatik Tutorium 5

Grundbegriffe der Informatik Tutorium 5 Grundbegriffe der Informatik Tutorium 5 Tutorium Nr. 32 Philipp Oppermann 13. Januar 2015 KARLSRUHER INSTITUT FÜR TECHNOLOGIE KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum

Mehr

Proseminar Datenkompression Suchstrategien und Präfixcodes

Proseminar Datenkompression Suchstrategien und Präfixcodes Proseminar Datenkompression Suchstrategien und Präfixcodes Patrick Sonntag Mittwoch, den 05.02.2003 I. Einführung - Suche elementares Problem in Informatik - hierbei Beschränkung auf binäre Tests nur 2

Mehr

TU München. Hauptseminar: WS 2002 / Einführung in Suffix - Bäume

TU München. Hauptseminar: WS 2002 / Einführung in Suffix - Bäume TU München Hauptseminar: WS 2002 / 2003 Einführung in Suffix - Bäume Bearbeiterin: Shasha Meng Betreuerin: Barbara König Inhalt 1. Einleitung 1.1 Motivation 1.2 Eine kurze Geschichte 2. Tries 2.1 Basisdefinition

Mehr

Grundbegrie der Codierungstheorie

Grundbegrie der Codierungstheorie Grundbegrie der Codierungstheorie Pia Lackamp 12. Juni 2017 Inhaltsverzeichnis 1 Einleitung 2 2 Hauptteil 3 2.1 Blockcodes............................ 3 2.1.1 Beispiele.......................... 3 2.2

Mehr

Graphentheorie. Eulersche Graphen. Eulersche Graphen. Eulersche Graphen. Rainer Schrader. 14. November Gliederung.

Graphentheorie. Eulersche Graphen. Eulersche Graphen. Eulersche Graphen. Rainer Schrader. 14. November Gliederung. Graphentheorie Rainer Schrader Zentrum für Angewandte Informatik Köln 14. November 2007 1 / 22 2 / 22 Gliederung eulersche und semi-eulersche Graphen Charakterisierung eulerscher Graphen Berechnung eines

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

Musterlösung zur Hauptklausur Theoretische Grundlagen der Informatik Wintersemester 2013/14

Musterlösung zur Hauptklausur Theoretische Grundlagen der Informatik Wintersemester 2013/14 Institut für Theoretische Informatik Prof. Dr. Jörn Müller-Quade Musterlösung zur Hauptklausur Theoretische Grundlagen der Informatik Wintersemester 23/4 Vorname Nachname Matrikelnummer Hinweise Für die

Mehr

5.2 Endliche Automaten

5.2 Endliche Automaten 114 5.2 Endliche Automaten Endliche Automaten sind Turingmaschinen, die nur endlichen Speicher besitzen. Wie wir bereits im Zusammenhang mit Turingmaschinen gesehen haben, kann endlicher Speicher durch

Mehr

kontextfreie Grammatiken Theoretische Informatik kontextfreie Grammatiken kontextfreie Grammatiken Rainer Schrader 14. Juli 2009 Gliederung

kontextfreie Grammatiken Theoretische Informatik kontextfreie Grammatiken kontextfreie Grammatiken Rainer Schrader 14. Juli 2009 Gliederung Theoretische Informatik Rainer Schrader Zentrum für Angewandte Informatik Köln 14. Juli 2009 1 / 40 2 / 40 Beispiele: Aus den bisher gemachten Überlegungen ergibt sich: aus der Chomsky-Hierarchie bleiben

Mehr

Digitaltechnik I WS 2006/2007. Klaus Kasper

Digitaltechnik I WS 2006/2007. Klaus Kasper Digitaltechnik I WS 2006/2007 Klaus Kasper Studium 6 Semester 5. Semester: Praxissemester im Anschluss: Bachelorarbeit 6. Semester: WPs Evaluation der Lehre Mentorensystem 2 Organisation des Studiums Selbständigkeit

Mehr

Theoretische Grundlagen der Informatik. Vorlesung am 31. Januar INSTITUT FÜR THEORETISCHE INFORMATIK

Theoretische Grundlagen der Informatik. Vorlesung am 31. Januar INSTITUT FÜR THEORETISCHE INFORMATIK Theoretische Grundlagen der Informatik 3..29 Torsten Ueckerdt - Theoretische Grundlagen der Informatik KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Thema dieses Kapitels Informationstheorie

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

Übungsblatt Nr. 7. Lösungsvorschlag

Übungsblatt Nr. 7. Lösungsvorschlag Institut für Kryptographie und Sicherheit Prof. Dr. Jörn Müller-Quade Nico Döttling Dirk Achenbach Tobias Nilges Vorlesung Theoretische Grundlagen der Informatik Übungsblatt Nr. 7 svorschlag Aufgabe (K)

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

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2 ADS: Algorithmen und Datenstrukturen 2 Teil 6 Prof. Dr. Gerhard Heyer Institut für Informatik Abteilung Automatische Sprachverarbeitung Universität Leipzig 16. Mai 2018 [Letzte Aktualisierung: 18/05/2018,

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

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2 ADS: Algorithmen und Datenstrukturen 2 Teil 4 Prof. Dr. Gerhard Heyer Institut für Informatik Abteilung Automatische Sprachverarbeitung Universität Leipzig 24. April 2019 [Letzte Aktualisierung: 24/04/2019,

Mehr

WS 2013/14. Diskrete Strukturen

WS 2013/14. Diskrete Strukturen WS 2013/14 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws1314

Mehr

Kapitel 8: Bipartite Graphen Gliederung der Vorlesung

Kapitel 8: Bipartite Graphen Gliederung der Vorlesung Gliederung der Vorlesung 1. Grundbegriffe. Elementare Graphalgorithmen und Anwendungen 3. Kürzeste Wege 4. Minimale spannende Bäume 5. Färbungen und Cliquen 6. Traveling Salesman Problem 7. Flüsse in Netzwerken

Mehr

Nachklausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2013/14

Nachklausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2013/14 Institut für Theoretische Informatik Prof. Dr. Jörn Müller-Quade Nachklausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2013/14 Vorname Nachname Matrikelnummer Hinweise Für die

Mehr

3. Woche Information, Entropie. 3. Woche: Information, Entropie 45/ 238

3. Woche Information, Entropie. 3. Woche: Information, Entropie 45/ 238 3 Woche Information, Entropie 3 Woche: Information, Entropie 45/ 238 Informationsgehalt einer Nachricht Intuitiv: Je kleiner die Quellws, desto wichtiger oder strukturierter die Information, bzw höher

Mehr

Beweis: Färbe jede Kante zufällig und unabhängig mit Ws 1 2. Ereignis A i : i-te Clique K (i), i = 1,..., ( n K (i)

Beweis: Färbe jede Kante zufällig und unabhängig mit Ws 1 2. Ereignis A i : i-te Clique K (i), i = 1,..., ( n K (i) Die Probabilistische Methode Beobachtung: Besitzt ein Ereignis Ws > 0, so muss es existieren! Notation: Sei K n der komplette Graph mit n Knoten und ( n 2) Kanten. Satz Falls 2 (k 2) 1 > ( n k), existiert

Mehr

Beliebige Anzahl von Signaturen

Beliebige Anzahl von Signaturen Beliebige Anzahl von Signaturen Algorithmus Signaturketten Sei Π = (Gen, Sign, Vrfy) ein Einwegsignaturverfahren. 1 Gen : (pk 1, sk 1 ) Gen(1 n ) 2 Sign : Signieren der Nachricht m i. Verwende gemerkten

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

Ferien-Übungsblatt 8 Lösungsvorschläge

Ferien-Übungsblatt 8 Lösungsvorschläge Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Ferien-Übungsblatt 8 Lösungsvorschläge Vorlesung Algorithmentechnik im WS 09/10 Problem 1: Probabilistische Komplexitätsklassen [vgl.

Mehr

Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume)

Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume) WS 2016/17 Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume) Hans-Joachim Bungartz Lehrstuhl für wissenschaftliches Rechnen Fakultät für Informatik Technische Universität München http://www5.in.tum.de/wiki/index.php/diskrete_strukturen_-_winter_16

Mehr

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Technische Universität München Fakultät für Informatik Prof. Tobias Nipkow, Ph.D. Dr. Werner Meixner, Dr. Alexander Krauss Sommersemester 2010 Lösungsblatt 11 15. Juli 2010 Einführung in die Theoretische

Mehr

Lösungsvorschläge und Erläuterungen Klausur zur Vorlesung Grundbegriffe der Informatik 15. September 2016

Lösungsvorschläge und Erläuterungen Klausur zur Vorlesung Grundbegriffe der Informatik 15. September 2016 Lösungsvorschläge und Erläuterungen Klausur zur Vorlesung Grundbegriffe der Informatik 15. September 2016 Klausurnummer Nachname: Vorname: Matr.-Nr.: Diese Klausur ist mein 1. Versuch 2. Versuch in GBI

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 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Lerneinheit 3: Greedy Algorithmen Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester 2016 10.5.2016 Einleitung Einleitung Diese Lerneinheit

Mehr

Bernd Borchert. Univ. Tübingen WS 13/14. Vorlesung. Kryptographie. Teil 11. Einwegfunktionen, Geheimnisteilung, Steganographie 7.2.

Bernd Borchert. Univ. Tübingen WS 13/14. Vorlesung. Kryptographie. Teil 11. Einwegfunktionen, Geheimnisteilung, Steganographie 7.2. Bernd Borchert Univ. Tübingen WS 13/14 Vorlesung Kryptographie Teil 11 Einwegfunktionen, Geheimnisteilung, Steganographie 7.2.14 P-Zeit berechenbare Funktionen FP ist die Klasse aller Funktionen f : {0,1}*

Mehr

Theoretische Grundlagen der Informatik. Vorlesung am 8. Januar INSTITUT FÜR THEORETISCHE INFORMATIK

Theoretische Grundlagen der Informatik. Vorlesung am 8. Januar INSTITUT FÜR THEORETISCHE INFORMATIK Theoretische Grundlagen der Informatik 0 08.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der Informatik KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Letzte Vorlesung Eine

Mehr

Digitale Medien. Übung

Digitale Medien. Übung Digitale Medien Übung Übungsbetrieb Informationen zu den Übungen: http://www.medien.ifi.lmu.de/dm http://www.die-informatiker.net Zwei Stunden pro Woche Praktische Anwendungen des theoretischen Vorlesungsstoffs

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Übung 8 Dirk Achenbach 7. Februar 2013 I NSTITUT FÜR K RYPTOGRAPHIE UND S ICHERHEIT KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum

Mehr

Übung zur Vorlesung Diskrete Mathematik (MAT.107) Blatt Beispiellösungen Abgabefrist:

Übung zur Vorlesung Diskrete Mathematik (MAT.107) Blatt Beispiellösungen Abgabefrist: Svenja Hüning, Michael Kerber, Hannah Schreiber WS 2016/2017 Übung zur Vorlesung Diskrete Mathematik (MAT.107) Blatt Beispiellösungen Abgabefrist: Hinweise: Dieses Blatt präsentiert Beispiellösungen zu

Mehr

Informatik III. Christian Schindelhauer Wintersemester 2006/07 8. Vorlesung

Informatik III. Christian Schindelhauer Wintersemester 2006/07 8. Vorlesung Informatik III Christian Schindelhauer Wintersemester 2006/07 8. Vorlesung 17.11.2006 schindel@informatik.uni-freiburg.de 1 Prinzip des Kellerautomats Push-Down-Automaton (PDA) Ein Kellerautomat vereinigt

Mehr

2. Klausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2017/2018

2. Klausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2017/2018 2. Klausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2017/2018 Hier Aufkleber mit Name und Matrikelnummer anbringen Vorname: Nachname: Matrikelnummer: Beachten Sie: Bringen Sie

Mehr

Lösungen zur Vorlesung Berechenbarkeit und Komplexität

Lösungen zur Vorlesung Berechenbarkeit und Komplexität Lehrstuhl für Informatik 1 WS 009/10 Prof. Dr. Berthold Vöcking 0.0.010 Alexander Skopalik Thomas Kesselheim Lösungen zur Vorlesung Berechenbarkeit und Komplexität. Zulassungsklausur Aufgabe 1: (a) Worin

Mehr

Datenstrukturen und Algorithmen (SS 2013)

Datenstrukturen und Algorithmen (SS 2013) Datenstrukturen und Algorithmen (SS 2013) Übungsblatt 10 Abgabe: Montag, 08.07.2013, 14:00 Uhr Die Übungen sollen in Gruppen von zwei bis drei Personen bearbeitet werden. Schreiben Sie die Namen jedes

Mehr

Klausur zur Vorlesung Grundbegriffe der Informatik 5. März 2014

Klausur zur Vorlesung Grundbegriffe der Informatik 5. März 2014 Klausur zur Vorlesung Grundbegriffe der Informatik 5. März 2014 Klausurnummer Nachname: Vorname: Matr.-Nr.: Aufgabe 1 2 3 4 5 6 7 max. Punkte 6 8 4 7 5 6 8 tats. Punkte Gesamtpunktzahl: Note: Punkte Aufgabe

Mehr

Die Nerode-Relation und der Index einer Sprache L

Die Nerode-Relation und der Index einer Sprache L Die Nerode-Relation und der Index einer Sprache L Eine zweite zentrale Idee: Sei A ein vollständiger DFA für die Sprache L. Repäsentiere einen beliebigen Zustand p von A durch die Worte in Σ, die zu p

Mehr