KIT PPT Master

Werbung
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
Herunterladen