Tutorium 23
Grundbegriffe der Informatik (6. Sitzung)
Tutor: Felix Stahlberg
SOFTWARE DESIGN AND QUALITY GROUP
Source: pixelio.de
KIT – The cooperation of Forschungszentrum Karlsruhe GmbH and Universität Karlsruhe (TH)
Agenda - 6. Sitzung
Anmerkungen zu den Übungsblättern
Homomorphismen
Huffman-Codierungen
Graphen
2
02.12.2010
Felix Stahlberg:
www.das-tutorium.de
Tutorium 23 für Grundbegriffe der Informatik
Abschreiben
Sehr gute Idee: Lerngruppen
Halbwegs schlechte Idee: Abschreiben
Geht nicht in der Klausur
Sehr schlechte Idee: gedankenlos Abschreiben
Geht nicht in der Klausur
Kein Lerneffekt
3
02.12.2010
Felix Stahlberg:
www.das-tutorium.de
Tutorium 23 für Grundbegriffe der Informatik
Abschreiben (Neue Policy)
Halbwegs schlechte Idee: Abschreiben
Wenn „offensichtlich“: < die Hälfte der Punkte
Sehr schlechte Idee: gedankenlos Abschreiben
Wenn „offensichtlich“: 0 Punkte
4
02.12.2010
Felix Stahlberg:
www.das-tutorium.de
Tutorium 23 für Grundbegriffe der Informatik
Formulierung der Induktionsvoraussetzung
„Sei π ∈ β0 beliebig aber fest und gelte…“ ist nicht nur
Schikane!
FALSCHE Alternativen aus den Übungsblättern:
„Für alle π ∈ β0 gilt…“
Behauptung im Beweis benutzt.
Negativbeispiel: Zeige per Induktion: Für alle π ∈ β0 gilt: 3n=5n
IA: n=0: 4*0=5*0=0 Korrekt.
IV: Für alle π ∈ β0 gilt: 3n=5n
IS: Zeige Behauptung für n+1.
Sei m:=n+1
IV gilt dann insbesondere für m. Also:
3(n+1)=3m=5m=5(n+1).
5
02.12.2010
Felix Stahlberg:
www.das-tutorium.de
Tutorium 23 für Grundbegriffe der Informatik
Formulierung der Induktionsvoraussetzung
„Sei π ∈ β0 beliebig aber fest und gelte…“ ist nicht nur
Schikane!
FALSCHE Alternativen aus den Übungsblättern:
„Es gibt ein π ∈ β0 für das gilt…“
IV damit zu schwach
Negativbeispiel: Zeige per Induktion: Alle π ∈ β0 sind kleiner als 10.
IA: n=0: 0<10 Korrekt.
IV: Es gibt ein π ∈ β0 , das kleiner als 10 ist
IS: Zeige: n+1 ist kleiner als 10.
Sei z.B. n=5. Dann ist n+1=6<10 und die Behauptung gilt auch für n+1.
6
02.12.2010
Felix Stahlberg:
www.das-tutorium.de
Tutorium 23 für Grundbegriffe der Informatik
Agenda - 6. Sitzung
Anmerkungen zu den Übungsblättern
Homomorphismen
Huffman-Codierungen
Graphen
7
02.12.2010
Felix Stahlberg:
www.das-tutorium.de
Tutorium 23 für Grundbegriffe der Informatik
Homomorphismen (1)
Eine Übersetzung ist eine Abbildung π: πΏπ΄ → πΏπ΅ , die die
„Bedeutung“ erhält (πΏπ΄ , πΏπ΅ seien Sprachen)
Legalität
Lesbarkeit
Verschlüsselung
Kompression
Fehlererkennung/Fehlerkorrektur
Eine injektive Übersetzung heißt Codierung
Die Menge *f(w)|w ∈ πΏπ΄ + (Bildmenge) heißt dann Code
Deren Elemente Codewörter heißen
8
02.12.2010
Felix Stahlberg:
www.das-tutorium.de
Tutorium 23 für Grundbegriffe der Informatik
Homomorphismen (2)
Seien π΄ und π΅ Alphabete und eine π: π΄ → π΅∗ Abbildung.
Definiere zu π die Funktion π∗∗ : π΄∗ → π΅∗ mit
π∗∗ ε = ε
∀π€ ∈ π΄∗ : ∀π₯ ∈ π΄: π∗∗ π€π₯ = π∗∗ π€ π(π₯)
π∗∗ ist dann ein Homomorphismus
π∗∗ heißt π–frei gdw. ∀π₯ ∈ π΄: π(π₯) ≠ ε
π∗∗ heißt präfixfrei gdw.
∀π₯, π¦ ∈ π΄: π π₯ ππ π‘ ππππ ππäπππ₯ π£ππ π(π¦)
Manchmal schreibt man auch einfach π statt π∗∗ (Warum?)
9
02.12.2010
Felix Stahlberg:
www.das-tutorium.de
Tutorium 23 für Grundbegriffe der Informatik
Homomorphismen (Beispiel)
Sei π π = 001, π π = 1101
Berechne π∗∗ (πππ)
π∗∗ ε = ε
∀π€ ∈ π΄∗ : ∀π₯ ∈ π΄: π∗∗ π€π₯ = π∗∗ π€ π(π₯)
10
02.12.2010
Felix Stahlberg:
www.das-tutorium.de
Tutorium 23 für Grundbegriffe der Informatik
Homomorphismen (Beispiel - π–Freiheit)
Sei π π = 001, π π = π
Was ist π€, wenn π π€ = 001001?
Genau zwei a, beliebig viele b an beliebiger Stelle
=> Information geht verloren
π∗∗ ε = ε
∀π€ ∈ π΄∗ : ∀π₯ ∈ π΄: π∗∗ π€π₯ = π∗∗ π€ π(π₯)
π∗∗ heißt π–frei gdw. ∀π₯ ∈ π΄: π(π₯) ≠ ε
11
02.12.2010
Felix Stahlberg:
www.das-tutorium.de
Tutorium 23 für Grundbegriffe der Informatik
Homomorphismen (Beispiel - Präfixfreiheit)
Sei π π = 001, π π = 1101
=> h ist präfixfrei
Sei π π = 01, π π = 011
=> h ist nicht präfixfrei
Ist das ein Problem in diesem Fall? Gibt es eine Umkehrabbildung?
Sei π π = 01, π π = 010, π π = 1
=> h ist nicht präfixfrei
Problem: π ππ = π(ππ) = 0101
=> Information geht verloren
π∗∗ ε = ε
∀π€ ∈ π΄∗ : ∀π₯ ∈ π΄: π∗∗ π€π₯ = π∗∗ π€ π(π₯)
π∗∗ heißt präfixfrei gdw. ∀π₯, π¦ ∈ π΄:
π π₯ ππ π‘ ππππ ππäπππ₯ π£ππ π(π¦)
12
02.12.2010
Felix Stahlberg:
www.das-tutorium.de
Tutorium 23 für Grundbegriffe der Informatik
Homomorphismen (Abschluss)
Formalisiere „Information geht verloren“
π∗∗ nicht injektiv
Präfixfreiheit garantiert, wenn alle Codewörter gleich lang
und π injektiv
Beispiel ASCII
Nicht unbedingt die optimale Herangehensweise
13
02.12.2010
Felix Stahlberg:
www.das-tutorium.de
Tutorium 23 für Grundbegriffe der Informatik
Agenda - 6. Sitzung
Anmerkungen zu den Übungsblättern
Homomorphismen
Huffman-Codierungen
Graphen
14
02.12.2010
Felix Stahlberg:
www.das-tutorium.de
Tutorium 23 für Grundbegriffe der Informatik
Huffman-Codierung (Motivation)
David A. Huffman (August 9, 1925 – October 7, 1999)
Pionier der Informatik
"My products are my students."
Huffman-Kodierung
Anwendung fast in Allem, was mit Kompression zu tun hat
Kompressionsverfahren gzip, bzip2
Fax, Modems, Computer-Netzwerke, HDTV
Optimal für Sequenzen voneinander (statistisch) unabhängiger
Symbole (möglichst kurze Codewörter)
präfixfrei
15
02.12.2010
Felix Stahlberg:
www.das-tutorium.de
Tutorium 23 für Grundbegriffe der Informatik
Huffman-Codierung (Beispiel)
Kodiere w = deedbeef als Wort über {0,1}
Primitiver Ansatz
Zum Beispiel h(b) = 00, h(d) = 01, h(e) = 10, h(f) = 11
=> h(w) = 01 10 10 01 00 10 10 11
=> |h(w)| = 16
16
02.12.2010
Felix Stahlberg:
www.das-tutorium.de
Tutorium 23 für Grundbegriffe der Informatik
Huffman-Codierung (Beispiel)
Kodiere w = deedbeef als Wort über {0,1}
Hufmancodierung
Symbol
8
1
4
0
1
0
2
0
e,4
17
02.12.2010
d,2
b,1
Felix Stahlberg:
www.das-tutorium.de
Tutorium 23 für Grundbegriffe der Informatik
1
f,1
Häufigkeit
b
1
f
1
d
2
e
4
h(b) = 110, h(f) = 111,
h(d) = 10, h(e) = 0
=> h(w) = 10 0 0 10 110 0 0 111
=> |h(w)| = 14
Huffman-Codierung (Beispiel)
Kodiere w = dcaababddabb als Wort über {0,1}
Hufmancodierung
Symbol
12
0
1
8
0
a,4
18
02.12.2010
4
1
b,4
0
c,1
Felix Stahlberg:
www.das-tutorium.de
Tutorium 23 für Grundbegriffe der Informatik
1
d,3
Häufigkeit
a
4
b
4
c
1
d
3
h(a) = 00, h(b) = 01,
h(c) = 10, h(d) = 11
=> h(w) =
111000000100011111000101
=> |h(w)| = 24
( = |w|*2 Warum?)
Huffman-Codierung (Beispiel)
Kodiere w = caabdacdab als Wort über {0,1} mit
Hufmancodierung
19
02.12.2010
Felix Stahlberg:
www.das-tutorium.de
Tutorium 23 für Grundbegriffe der Informatik
Symbol
Häufigkeit
a
4
b
2
c
2
d
2
Agenda - 6. Sitzung
Anmerkungen zu den Übungsblättern
Homomorphismen
Huffman-Codierungen
Graphen
20
02.12.2010
Felix Stahlberg:
www.das-tutorium.de
Tutorium 23 für Grundbegriffe der Informatik
Graphen (Motivation)
Gaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanz wichtig in der
Informatik
Reflex des Informatikers: Modelliere Problem als Graphen
Beispiele von Problemen, die weniger offensichtlich als
Graph modelliert/auf Graphen reduziert werden können
Stundenplanproblem
Färbungszahl von Landkarten
Positionierungsproblem von Geldautomaten
Hochintegrierte Schaltkreise (Planarität)
(letzendlich) Modellierung objektorientierter Software- oder
Prozessentwürfen (UML)
uvm.
21
02.12.2010
Felix Stahlberg:
www.das-tutorium.de
Tutorium 23 für Grundbegriffe der Informatik
Gerichtete Graphen (1)
Eingangsgrad: 1
Ausgangsgrad: 0
Knoten
Eingangsgrad: 2
Ausgangsgrad: 2
0
3
1
2
Schlinge
Kante
Gerichteter Graph ist ein 2-Tupel G = (V,E) mit V ist Knotenmenge und
E ist Kantenmenge
22
02.12.2010
Felix Stahlberg:
www.das-tutorium.de
Tutorium 23 für Grundbegriffe der Informatik
Gerichtete Graphen (2)
0
3
1
2
Pfad (3, 2, 0, 1)
23
02.12.2010
Felix Stahlberg:
www.das-tutorium.de
Tutorium 23 für Grundbegriffe der Informatik
Gerichtete Graphen (3)
0
3
1
2
Pfad (0, 3, 3, 3)
24
02.12.2010
Felix Stahlberg:
www.das-tutorium.de
Tutorium 23 für Grundbegriffe der Informatik
Gerichtete Graphen (4)
0
3
1
2
3-Zyklus (2, 0, 3, 2)
25
02.12.2010
Felix Stahlberg:
www.das-tutorium.de
Tutorium 23 für Grundbegriffe der Informatik
Gerichtete Graphen (Baum)
Wurzel
∃π ∈ π: ∀π£ ∈ π:
∃ πππππ’ πππ ππππ π£ππ π ππππ π£
Innere
Knoten
Blätter
26
02.12.2010
Felix Stahlberg:
www.das-tutorium.de
Tutorium 23 für Grundbegriffe der Informatik
Gerichtete Bäume (Alternative Definitionen?)
∃π ∈ π: ∀π£ ∈ π: ∃ πππππ’ πππ ππππ π£ππ π ππππ π£ ππ πΊ
mit G=(V,E) ist Graph ist äquivalent zu
G ist zyklenfrei?
G ist zyklenfrei und weder transitiv, noch symmetrisch, noch reflexiv?
Die Eingangsgrade aller Knoten in V sind kleiner oder gleich 1
Die Wurzel hat Eingangsgrad 0, alle anderen Eingangsgrad gleich 1
Zusätzlich G noch zyklenfrei? Scheint korrekt zu sein..
27
02.12.2010
Felix Stahlberg:
www.das-tutorium.de
Tutorium 23 für Grundbegriffe der Informatik
Fragen?
28
02.12.2010
Felix Stahlberg:
www.das-tutorium.de
Tutorium 23 für Grundbegriffe der Informatik
http://xkcd.com/197/
29
02.12.2010
Felix Stahlberg:
www.das-tutorium.de
Tutorium 23 für Grundbegriffe der Informatik