Grundbegriffe der Informatik Aufgabenblatt 4

Ähnliche Dokumente
Grundbegriffe der Informatik Aufgabenblatt 2

Grundbegriffe der Informatik Aufgabenblatt 6

Grundbegriffe der Informatik Aufgabenblatt 5

Grundbegriffe der Informatik Aufgabenblatt 1

Grundbegriffe der Informatik Aufgabenblatt 2

Grundbegriffe der Informatik Aufgabenblatt 11

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

Grundbegriffe der Informatik Tutorium 3

Lösungsvorschläge und Erläuterungen Klausur zur Vorlesung Grundbegriffe der Informatik 6. März 2017

Grundbegriffe der Informatik Tutorium 5

Klausur zur Vorlesung Grundbegriffe der Informatik 2. März 2016

Klausur zur Vorlesung Grundbegriffe der Informatik 4. März 2015

Musterlösung (Stand ) zur Klausur zur Vorlesung Grundbegriffe der Informatik 4. März 2015

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

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

Einleitung. Kapitel 1

Informatik II, SS 2016

Grundbegriffe der Informatik Tutorium 12

Brief vom 2. Januar 1697 an den Herzog von Braunschweig-Wolfenbüttel

Lösungsvorschläge zur Klausur zur Vorlesung Grundbegriffe der Informatik 7. September 2010

Grundbegriffe der Informatik

Grundbegriffe der Informatik Aufgabenblatt 6

Grundbegriffe der Informatik Tutorium 3

Probeklausur zur Vorlesung Grundbegriffe der Informatik

Übungsblatt 5 - Musterlösung

Vorlesung 12. Quellencodieren und Entropie

Informatik II, SS 2018

Aufgabe Mögliche Punkte Erreichte Punkte a b c d Σ a b c d Σ x1 12

Übungsblatt 7. Vorlesung Theoretische Grundlagen der Informatik im WS 16/17

Aufgabe: Platz-effiziente Kompression von Textdaten

2.7 Der Shannon-Fano-Elias Code

Grundbegriffe der Informatik

Grundbegriffe der Informatik

Klausur Informationstheorie und Codierung

Klausur zur Vorlesung Grundbegriffe der Informatik 14. September 2015 Lösungsvorschläge

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

Referat zum Thema Huffman-Codes

Tutorium 23 Grundbegriffe der Informatik (6. Sitzung)

Tutoraufgabe 1 (Starke Zusammenhangskomponenten):

Aufgabe Mögliche Punkte Erreichte Punkte a b c d Σ a b c d Σ x1 13

Vorlesung 15a. Quellencodieren und Entropie

Dynamisches Huffman-Verfahren

Übungsblatt 7. Vorlesung Theoretische Grundlagen der Informatik im WS 16/17

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

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

Grundbegriffe der Informatik Tutorium 11

Praktikum BKSPP: Blatt 2

Kapitel 7: Optimalcodierung und Huffman Coding

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

10 Ü 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 von wörtern zu zahlen und zurück

Grundbegriffe der Informatik Tutorium 33

Digitaltechnik I WS 2006/2007. Klaus Kasper

4.9.7 Konstruktion der Suffixbäume

1. Teilklausur zur Vorlesung Grundlagen der Theoretischen Informatik

Nachklausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2013/14

Endliche Körper und Codierung SS Übungsblatt. 9. Bestimmen Sie alle primitiven Elemente (Erzeuger der multiplikativen Gruppe) von

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

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

THIA - Übungsblatt 2.

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

21. Dynamic Programming III

Übung zu Grundbegriffe der Informatik. Simon Wacker. 15. November 2013

16 - Kompressionsverfahren für Texte

Datenstrukturen & Algorithmen Lösungen zu Blatt 4 FS 15

Pumping-Lemma. Beispiel. Betrachte die kontextsensitive Grammatik G mit den Produktionen. S asbc abc CB HB HB HC HC BC ab ab bb bb bc bc cc cc.

Klausur zur Vorlesung Grundbegriffe der Informatik 10. März 2010

Random Walks. Dumbiri Gbenoba Zusammenfassung

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

Diskrete Mathematik 1

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

8 Ü 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. 8.1 von wörtern zu zahlen und zurück

Beispiellösungen zu Blatt 85

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

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

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

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

Mathematik für Information und Kommunikation

Grundbegriffe der Informatik

Eigenschaften von Kompressionsverfahren

Name... Matrikel-Nr... Studiengang...

Effiziente Algorithmen und Komplexitätstheorie

Aufgabe: Summe Punkte (max.): Punkte:

Theoretische Grundlagen der Informatik

Klausur zur Vorlesung Grundbegriffe der Informatik 14. September 2015

Probeklausur Digitale Medien

10. Sortieren III. Untere Schranken für das vergleichsbasierte Sortieren, Radix- und Bucketsort

1. Probeklausur zur Programmierung I

Kompressionsverfahren für Texte

Herzlich Willkommen. Grundbegriffe der Informatik

2. Klausur Datenstrukturen und Algorithmen SS 2014

Perlen der Informatik I Wintersemester 2012 Aufgabenblatt 7

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

13. Algorithmus der Woche Fehlererkennende Codes Was ist eigentlich ISBN?

Logik. Gabriele Kern-Isberner LS 1 Information Engineering. TU Dortmund Wintersemester 2014/15 WS 2014/15

Proseminar WS 2002/2003

Nachklausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2012/13

Grundbegriffe der Informatik

Vorlesung im Sommersemester Informatik IV. Probeklausurtermin: 21. Juni 2016

Transkript:

Matr.nr.: Nachname: Vorname: Grundbegriffe der Informatik Aufgabenblatt 4 Tutorium: Nr. Name des Tutors: Ausgabe: 12. November 2014 Abgabe: 21. November 2014, 12:30 Uhr im GBI-Briefkasten im Untergeschoss von Gebäude 50.34 Lösungen werden nur korrigiert, wenn sie rechtzeitig, in Ihrer eigenen Handschrift, mit dieser Seite als Deckblatt und in der oberen linken Ecke zusammengeheftet abgegeben werden. Vom Tutor auszufüllen: erreichte Punkte Blatt 4: / 17 + 3 Blätter 1 4: / 69 + 13

Aufgabe 4.1 (1 + 1 + 2 + 1 + 2 = 7 Punkte) Es sei w das Wort aababcba über dem Alphabet {a, b, c}. a) Bestimmen Sie die Huffman-Codierung des Wortes w anhand des in der Vorlesung vorgestellten Algorithmus. b) Bestimmen Sie die Block-Codierung des Wortes w für Blöcke der Länge 2. c) Welche Informationen benötigen Sie zur Decodierung eines block-codierten Wortes für Blöcke der Länge n N +? d) Weshalb wählt man bei der Block-Codierung von w als Blocklänge nicht w und codiert w damit als Wort der Länge 1? e) Anstelle von nur zwei Buchstaben zur Codierung stehen Ihnen drei Buchstaben zur Verfügung, nämlich {0, 1, 2}. Überlegen Sie sich wie man das Verfahren aus der Vorlesung zur Bestimmung von Huffman-Codierungen auf diese drei Buchstaben verallgemeinern kann. Wenden Sie dieses Verfahren auf das Wort w an. Lösung 4.1 a) Schritt 1: Vorkommen zählen. 4 3 1 Schritt 2: Baum erstellen und beschriften: 8 4 4,a 1,c 3,b Schritt 3: Codierung einzelner Buchstaben ablesen. 1 01 00 Schritt 4: Wort codieren. 110110100011 b) Schritt 1: Wort in Blöcke der Länge 2 unterteilen. aa ba bc ba aa ba bc Schritt 2: Vorkommen zählen. 1 2 1 Schritt 3: Baum erstellen und beschriften. 4 0 2 2,ba 1,aa 1 1,bc aa ba bc Schritt 4: Codierung einzelner Buchstaben ablesen. 0 01 Schritt 5: Wort codieren. 001011 c) Man benötigt die Zuordnung der im Wort vorkommenden Blöcke der Länge n zu deren Codierungen. d) Da man sich die Zuordnung von w zu 0 (oder 1) merken müsste um decodieren zu können. Dann hätte man aber erst gar nicht codieren müssen.

e) Bei der Erstellung des Baumes verbindet man die drei Knoten mit den kleinsten Beschriftungen (anstatt der zwei Knoten mit den kleinsten Beschriftungen). Beim entstandenen ternären Baum beschriftet man die linken Kanten mit 0, die mittleren mit 1 und die rechten Kanten mit 2. Die Codierung eines Worts liest man ab, indem man dem Pfad von der Wurzel bis zu diesem Wort folgt und die gesehenen Kantenbeschriftungen von links nach rechts notiert. Schritt 1: Vorkommen zählen. 4 3 1 Schritt 2: Baum erstellen und beschriften. 8 2 1,c 3,b 4,a Schritt 3: Codierung einzelner Buchstaben ablesen. Schritt 5: Wort codieren. 00101210 2 Aufgabe 4.2 (3 + 2 = 5 Punkte) Es sei Val = {0, 1} 4, es sei Adr = {0, 1} 4 und es sei Mem = Val Adr. a) Es sei m Mem, es sei a Adr, es sei a Adr, es sei v Val und es sei v Val. Geben Sie memread(memwrite(m, a, v), a), memread(memwrite(memwrite(m, a, v), a, v ), a) und memread(memwrite(memwrite(m, a, v), a, v ), a ) an. b) Es sei m Mem derart, dass m(0001) = 0100 und m(0010) = 0101. Geben Sie an. memread(memwrite(m, Repr 2 (Num 2 (memread(m, 0001)) Lösung 4.2 a) memread(memwrite(m, a, v), a) = v + Num 2 (memread(m, 0010))), 0011), 0011) memread(memwrite(memwrite(m, a, v), a, v ), a) = { v, falls a = a, v, falls a = a. Den Effekt, dass die Variablen a und a obschon sie verschieden sind denselben Speicherort bezeichnen können heißt Aliasing. Dieser Effekt erschwert die Verifikation von Software in Programmiersprachen in denen Aliasing möglich ist. memread(memwrite(memwrite(m, a, v), a, v ), a ) = v

b) Es ist memread(memwrite(m, Repr 2 (Num 2 (memread(m, 0001)) + Num 2 (memread(m, 0010))), 0011), 0011) = memread(memwrite(m, 1001, 0011), 0011) = m(0011). Aufgabe 4.3 (2 + 1 + 2 = 5 Punkte) Es seien A und B zwei Alphabete. Weiter sei die Abbildung map: A (B ) A B im ersten Argument induktiv definiert durch f (B ) A : map(ɛ, f ) = ɛ, f (B ) A a A v A : map(a v, f ) = f (a) map(v, f ). a) Nun sei A = {a, b}, B = {0, 1} und f : A B, a 0, b 1. Geben Sie map(ɛ, f ), map(b, f ), map(ba, f ) und map(baabba, f ) an. b) Jetzt sei A = {a, b, c}, B = {0, 1} und Geben Sie map(aababcba, f ) an. c) Hier sei A = {0, 1}, B = {0, 1} und f : A B, f : A B, a 0, b 10, c 11. x Repr 2 ((num 2 (x) + 1) mod 2). Geben Sie map(01101, f ) und map(map(01101, f ), f ) an. Lösung 4.3 a) map(w, f ) ersetzt jedes Vorkommen von a in w durch 0 und jedes Vorkommen von b in w durch 1. map(ɛ, f ) = ɛ map(b, f ) = 1 map(ba, f ) = 10 map(baabba, f ) = 100110 b) map(w, f ) ist eine Huffman-Codierung von w.

map(aababcba, f ) = 001001011100 c) map(w, f ) dreht jedes bit in w um. Insbesonder gilt map(map(w, f ), f ) = w. map(01101, f ) = 10010 map(map(01101, f ), f ) = map(10010, f ) = 01101 *Aufgabe 4.4 (1 + 2 = 3 Extrapunkte) Fortsetzung von Aufgabe 4.3. Es sei C eine Menge und die Abbildung fold: C B C C B C im zweiten Argument induktiv definiert durch c C g C C B : fold(c, ɛ, g) = c, c C b B v B g C C B : fold(c, b v, g) = fold(g(c, b), v, g). a) Nun sei B = {a, b}, C = {t, f} und g : C B C, (f, a) t, (f, b) f, y B : (t, y) t. Geben Sie fold(f, a, g), fold(f, b, g), fold(f, bbbbb, g) und fold(f, bbbab, g) an. b) Jetzt sei A = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, B = {0, 1}, C = N 0, und f : A B, x Repr 2 (num 10 (x) mod 2), g : C B C, (z, y) z + num 2 (y). Geben Sie map(332897, f ), fold(0, map(332897, f ), g), fold(0, map(26842, f ), g) und fold(0, map(35791, f ), g) an. Lösung 4.4 a) fold(f, w, g) ist t falls in w der Buchstabe a vorkommt und f sonst. fold(f, a, g) = t fold(f, b, g) = f fold(f, bbbbb, g) = f fold(f, bbbab, g) = t b) map(w, f ) ersetzt jedes Vorkommen einer geraden Ziffer in w durch 0 und jedes Vorkommen einer ungeraden Ziffer durch 1. fold(0, w, g) zählt die Vorkommen von 1 in w. map(332897, f ) = 110011

fold(0, map(332897, f ), g) = fold(0, 110011, g) = 4 fold(0, map(26842, f ), g) = fold(0, 00000, g) = 0 fold(0, map(35791, f ), g) = fold(0, 11111, g) = 5