Stand der Vorlesung Kapitel 2: Mathematische Grundlagen

Werbung
Technische Universität München
Stand der Vorlesung
Kapitel 2: Mathematische Grundlagen
• Wiederholung einiger wichtiger Grundlagen
• Mengen,
• Relationen (Odnungsrelation, Äquivalenzrelation)
• Funktionen: injektiv, surjektiv, bijektiv
• Modul-Rechnung (wird häufig benötigt),
• Polynom-Darstellungen. Permutation
• Boolesche Algebra: (M, +, ., -),
wobei +,., - hier nur als ‚Platzhalter‘ für Operatoren stehen,
eine konkrete Algebra definiert die jeweiligen Operatoren
z.B. Aussagenlogik: mit den konkreten Operatoren ∧, ∨, ¬
AuD, Kapitel 2 Mathematische Grundlagen, WS10/11, C. Eckert
1
Technische Universität München
Beispiel: Aussagenlogik
• M = {falsch, wahr} (oder M = {0, 1})
• mit Operationen ∧, ∨, ¬
⇒ kleinstmögliche Boolesche Algebra.
UND – Verknüpfung
ODER – Verknüpfung
a
b
a∧b
a
b
a∨b
0
0
0
0
0
0
a
¬a
0
1
0
0
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
AuD, Kapitel 2 Mathematische Grundlagen, WS10/11, C. Eckert
NEGATION
2
Technische Universität München
Axiome: für alle a,b,c ∈ M gilt
• Kommutativität: a ⋅ b = b ⋅ a
a+b = b+a
• Assoziativität:
(a ⋅ b) ⋅ c = a ⋅ (b ⋅ c)
(a+b)+c = a+(b+c)
• Absorption:
a + (a ⋅ b) = a
a ⋅ (a+b) = a
• Distributivität:
a + (b ⋅ c) = (a+b) ⋅ (a+c)
a ⋅ (b+c) = (a ⋅ b) + (a ⋅ c)
• Neutrales Element n,e ∈ M , n=0, e =1
a+n=a
a⋅ e=a
• Komplementäres Element: ∀ a ∈ M, ∃ a‘ mit
a + a‘ = e
AuD, Kapitel 2 Mathematische Grundlagen, WS10/11, C. Eckert
a ⋅ a‘ = n
3
Technische Universität München
Rechengesetze der Booleschen Algebra
0-1-Gesetze
∀ a ∈ M: a ⋅ 1 = a,
a ⋅0=0
∀ a ∈ M: a + 1 = 1,
a+0=a
Idempotenzgesetze:
∀ a ∈ M: a ⋅ a = a
∀ a ∈ M: a + a = a
De Morgansche Regeln:
∀ a, b ∈ M:
(a ⋅ b)‘ = a‘ + b‘
∀ a, b ∈ M:
(a + b)‘ = a‘ ⋅ b‘
Doppeltes Boolesches Komplement:
∀ a ∈ M: a‘‘ = a
AuD, Kapitel 2 Mathematische Grundlagen, WS10/11, C. Eckert
4
Technische Universität München
Rechengesetze der Booleschen Algebra (Forts.)
Komplementarität der neutralen Elemente:
0‘ = 1
1‘ = 0
Folgerung: Eindeutigkeit der neutralen Elemente
Beispiel:
0‘ + 1 ⋅ 0 = (0‘) + (1 ⋅ 0)
=1+0
=1
AuD, Kapitel 2 Mathematische Grundlagen, WS10/11, C. Eckert
5
Technische Universität München
2.4 Boolesche Funktionen
Eine n-stellige Boolesche Funktion f ist gegeben durch:
f : { 0,1 }n → { 0,1 }
Abbildung eines n-Tupels
(x1, x2, ..., xn) mit xi ∈ { 0, 1 } auf eine Zahl f (x1, x2, ..., xn) ∈ { 0,1 }
Es gibt
2n
2 verschiedene n-stellige Boolesche Funktionen
Die Menge {0,1}n besteht aus 2n Elementen.
• Für eine Boolesche Funktion muss für jedes Element der
Funktionswert festgelegt werden.
• Für jedes Element gibt es genau 2 Möglichkeiten, 0 oder 1.
AuD, Kapitel 2 Mathematische Grundlagen, WS10/11, C. Eckert
6
Technische Universität München
2 – stellige Boolesche Funktionen
y
f0
f1 f2 f3 f4 f5
f6
f7 f8
f9
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
UND (AND)
Inhibition
Identität
Inhibition
Identität
Exklusiv ODER
ODER (OR)
NOR
Äquivalenz
Negation
Implikation
Negation
Implikation
NAND
AuD, Kapitel 2 Mathematische Grundlagen, WS10/11, C. Eckert
f10 f11 f12 f13 f14 f15
Einsfunktion
x
Nullfunktion
Für n = 2 gibt es 16 verschiedene 2-stellige Boolesche Funktionen
7
Technische Universität München
2.5 Alphabete, Wörter
Definitionen: A sei eine endliche, nichtleere Menge.
|A| := Anzahl der Elemente von A,
A heißt Zeichenvorrat oder Alphabet,
Das Paar (A, <) heißt geordnetes Alphabet, wenn ′< ′ eine totale
Ordnung auf A ist.
Beispiele
• Menge der Dezimalziffern ID = {0, ..., 9}
• Lat. Großbuchstaben {A, B, ..., Z} mit der natürlichen
Ordnung A < B < ... < Z
• Geordnete binäre Zeichenvorräte IB = {0, 1} mit 0 < 1,
oder {true, false} mit false < true
AuD, Kapitel 2 Mathematische Grundlagen, WS10/11, C. Eckert
8
Technische Universität München
Definitionen: A sei Alphabet mit Ordnung <.
• Wort über A: endliche Folge w = a1a2 ... ak (ai ∈ A, k ∈ IN0)
Bem.: wir schreiben w = a1a2 ... ak statt w = a1, a2, ..., ak
• Länge des Wortes w: |w| = k
leeres Wort: ε, |ε| = 0
•
Ak := {w | w ist ein Wort über A, |w| = k}, für k ∈ IN0
oder rekursiv: A0 := {ε},
Ak := {ua | u ∈ Ak-1, a ∈ A}
•
w = uv, dann heißen u, v Teilworte von w.
•
A*
∞
:= {w | w Wort über A} = ∪ Ak
k=0
∞
k
A+ := {w | w nichtleeres Wort über A} =k ∪
A
=1
AuD, Kapitel 2 Mathematische Grundlagen, WS10/11, C. Eckert
9
Technische Universität München
•
Lexikographische Ordnung auf A* ist die von < induzierte totale
Ordnung auf A*
(analog zur Reihenfolge im Lexikon), d.h. für w, v ∈ A*:
w < v: ⇔ entweder:
oder:
v=wv‘, mit v‘ ∈ A*,
w = uaw‘, v = ubv‘, mit
a, b ∈ A, u,w‘,v‘ ∈ A* und a < b, a ≠ b.
Beispiel:
• Lexikographische Ordnung auf der Menge der Dezimalzahlen:
z.B. 13 < 132 < 1324 < 2 < 29 < 8
(entspricht nicht der numerischen Ordnung!)
AuD, Kapitel 2 Mathematische Grundlagen, WS10/11, C. Eckert
10
Technische Universität München
2.6 Summenformeln und Eigenschaften
Gegeben sei eine Zahlenfolge a1, .., an. Die endliche Summe
n
a1 + a2 + .. + an schreiben wir auch in der Form ∑ ai
i =1
n
Die Summe ∑ k = 1+2+ … +n ist eine arithmetische Reihe.
k= 1
n
Sie hat die Werte ∑ k = ½ *n(n+1)
κ=1
Es gelten die Summenformeln:
AuD, Kapitel 2 Mathematische Grundlagen, WS10/11, C. Eckert
11
Technische Universität München
Geometrische Reihe
Harmonische Reihe
AuD, Kapitel 2 Mathematische Grundlagen, WS10/11, C. Eckert
12
Technische Universität München
2.7 Logarithmus
Definition des Logarithmus zur Basis b
x= logb a ⇔ a= bx
Beispiel: log2 16 = x ⇔ 2x = 16, d.h. x=4
Logarithmus-Gesetze
1. Produkt:
logb (x*y) = logbx + logb y
2. Quotient:
logb (x/y) = logbx - logby
3. Potenzen: sei r eine reelle Zahl
logb(xr) = rlogbx
für r=-1: logb(1/x) = -logbx
AuD, Kapitel 2 Mathematische Grundlagen, WS10/11, C. Eckert
13
Technische Universität München
2.8 Wahrscheinlichkeiten
• Ein Ereignisraum S ist Menge, deren Elemente als
Elementarereignisse bezeichnet werden.
• Ein Elementarereignis
kann als Ausgang eines Experiments interpretiert werden.
• Beispiel:
• Werfen zweier unterscheidbarer Münzen, wobei jeder
Münzwurf in Kopf(Ko) oder Zahl(Za) endet.
• S = {KoKo,KoZa,ZaKo,KoKo}
• Ein Ereignis ist eine Teilmenge des Ereignisraums S.
Beispiel
AuD, Kapitel 2 Mathematische Grundlagen, WS10/11, C. Eckert
14
Technische Universität München
2.8 Wahrscheinlichkeiten
• Ein Ereignisraum S ist Menge, deren Elemente als
Elementarereignisse bezeichnet werden.
• Ein Elementarereignis
kann als Ausgang eines Experiments interpretiert werden.
• Beispiel:
• Werfen zweier unterscheidbarer Münzen, wobei jeder
Münzwurf in Kopf(Ko) oder Zahl(Za) endet.
• S = {KoKo,KoZa,ZaKo,KoKo}
• Ein Ereignis ist eine Teilmenge des Ereignisraums S.
Ein Elementarereignis s ∈S bezeichnet das Ereignis {s}.
• Ereignis S wird sicheres Ereignis genannt,
• Ereignis Ø als unmögliches Ereignis.
AuD, Kapitel 2 Mathematische Grundlagen, WS10/11, C. Eckert
15
Technische Universität München
• Wahrscheinlichkeitsverteilung Pr{} über einem Ereignisraum S
ist eine Funktion von einer Menge von Ereignissen aus S in
das Intervall [0,1] der reellen Zahlen,
Pr : 2S → [0,1],
wobei folgende Axiome erfüllt sind:
• Pr{A} ≥ 0, für jedes Ereignis A
• Pr{S} = 1
• Pr{A∪ B} = Pr{A} + Pr{B} für zwei sich gegenseitig
ausschließende Ereignisse A und B
Beispiel
AuD, Kapitel 2 Mathematische Grundlagen, WS10/11, C. Eckert
16
Technische Universität München
• Wahrscheinlichkeitsverteilung Pr{} über einem Ereignisraum S
ist eine Funktion von einer Menge von Ereignissen aus S in
das Intervall [0,1] der reellen Zahlen,
Pr : 2S → [0,1],
wobei folgende Axiome erfüllt sind:
• Pr{A} ≥ 0, für jedes Ereignis A
• Pr{S} = 1
• Pr{A∪ B} = Pr{A} + Pr{B} für zwei sich gegenseitig
ausschließende Ereignisse A und B
• Für unmögliches Ereignis Ø gilt: Pr{Ø} = 0.
• Aus A⊆ B folgt Pr{A} ≤ Pr{B}
• Komplement eines Ereignisses A wird als Ā bezeichnet.
Es gilt Pr{Ā} = 1-Pr{A}
AuD, Kapitel 2 Mathematische Grundlagen, WS10/11, C. Eckert
17
Technische Universität München
•
•
•
•
Eine (diskrete) Zufallsvariable X ist eine Funktion von
einem endlichen oder abzählbar unendlichen Ereignisraum
S in die Menge der reellen Zahlen.
Sie ordnet jedem möglichen Ausgang eines Experiments
eine reelle Zahl zu.
Für eine Zufallsvariable X und eine reelle Zahl x definieren
wir das Ereignis X=x als
{ s ∈ S : X(s) = x }, so dass gilt: Pr{X = x} = ∑ Pr{ s}
s∈S : X ( s ) = x
Funktion f(x) = Pr{X=x} ist die
Wahrscheinlichkeitsdichtefunktion der Zufallsvariable X.
Aus den Wahrscheinlichkeitsaxiomen folgt
Pr{X = x} ≥ 0, ∑ Pr{ X = x} = 1
x
AuD, Kapitel 2 Mathematische Grundlagen, WS10/11, C. Eckert
18
Technische Universität München
Beispiel: 2 Würfel
AuD, Kapitel 2 Mathematische Grundlagen, WS10/11, C. Eckert
19
Technische Universität München
Erwartungswert:
Gegeben sei eine diskrete Zufallsvariable X.
Der Erwartungswert (oder Mittelwert) von X ist:
E[X] = ∑ x Pr{ X = x}
x
AuD, Kapitel 2 Mathematische Grundlagen, WS10/11, C. Eckert
20
Technische Universität München
Beispiel:
Das Experiment sei das Werfen eines Butterbrots.
Der Ereignisraum S ist gegeben durch:
S = {Butterseite oben, Butterseite unten}.
Wir nehmen an, dass wir:
• 2 Euro erhalten, wenn die Butterseite nach oben zeigt und
• 1 Euro verlieren, wenn die Brutterseite nach unten zeigt.
• Die Wahrscheinlichkeiten für die Elementarereignisse aus
S seien: Pr{Butterseite oben} = 1/4 und
Pr{Butterseite unten} = 3/4.
Frage: Wie ist der Erwartungswert der Zufallsvariable X, die
einen Gewinn darstellt?
AuD, Kapitel 2 Mathematische Grundlagen, WS10/11, C. Eckert
21
Technische Universität München
Kapitel 3 Zur Korrektheit und Effizienz von Algorithmen
Ziel:
• Kurze Einführung in den Pseudocode zur Beschreibung von
Algorithmen
• Induktionsbeweise als wichtiges Hilfsmittel, um die Korrektheit
eines Algorithmus nachzuweisen
• Komplexität/Effizienz von Algorithmen: wie misst man das, wie ist
dazu das ganz allgemeine Vorgehen
3.1. Einführung in den verwendeten Pseudocode
Bem.: Hier werden nur die wichtigsten Konzepte kurz vorgestellt.
Eine ausführlichere Erläuterung finden Sie unter
https://www.sec.in.tum.de/assets/lehre/ws1011/aud/pseudocode.pdf
AuD, Kapitel 3 Effizienz, WS010/11, C. Eckert
22
Technische Universität München
Pseudocode umfasst Anweisungen/Befehle
Beispiel
• Einrücken
Kennzeichnet die Blockstruktur
Beispiel:
• //
Rest der Zeile ist Kommentar.
Kommentare werden nicht ausgeführt!
for j = 2 to länge(A) do
key = A[ j ]
// Füge A[ j ] in die
// sortierte Liste
j - 1] ein.
i = 0 A[1..
// Kommentar…
i=j–1
// Auch Kommentar
while i > 0 und A[ i ] > key do
A[i + 1] = A[ i ]
i=i–1
// Ausgabe: i = 7
A[i + 1] = key
• print
Gibt etwas aus. Zeichenketten in Anführungszeichen werden
unverändert ausgegeben. Z.B.
print X gibt den Wert der Variablen X aus.
AuD, Kapitel 3 Effizienz, WS010/11, C. Eckert
23
Technische Universität München
Pseudocode Fortsetzung:
• Zuweisung: z.B.
X=5
Weist der Variable X den
Wert 5 zu
for j = 2 to länge(A) do
key = A[ j ]
// Füge A[ j ] in die
// sortierte Liste A[1.. j - 1] ein.
i=j–1
while i > 0 und A[ i ] > key do
A[i + 1] = A[ i ]
i=i–1
A[i + 1] = key
• Feld A[Wert1 .. Wert2]
Ein Feld ist eine Folge von Werten. Auf den Wert an
Position i des Feldes A[i], wird mit einem Indexwert i
zugegriffen.
A[1..j] bezeichnet die Elemente A[1], A[2], …, A[j].
AuD, Kapitel 3 Effizienz, WS010/11, C. Eckert
24
Technische Universität München
Pseudocode Fortsetzung:
• for i = Wert1 to Wert2
Variable i nimmt schrittweise die
for j = 2 to länge(A) do
Werte von Wert1 bis Wert2 an.
key = A[ j ]
// Füge A[ j ] in die
Jedes Mal werden die Anweisung
// sortierte Liste A[1.. j - 1] ein.
des For-Schleifenkörpers ausgeführt.
i=j–1
while i > 0 und A[ i ] > key do
Nach Beendigung der ganzen
A[i + 1] = A[ i ]
Schleife hat die Variable i den Wert
i=i–1
A[i + 1] = key
Wert2+1
• while Bedingung do
Führt einen While-Schleifenkörper aus, solange die Bedingung
erfüllt ist.
Problem?
AuD, Kapitel 3 Effizienz, WS010/11, C. Eckert
25
Technische Universität München
Beispiel
Pseudocode Fortsetzung:
i=3
• if Bedingung
if i == 0
Anweisungsblock // Bedingung erfüllt
X= 0
else
else
Anweisungsblock
X= 2
Verzweigung im Code anhand der
Bedingung. else kennzeichnet den
Zweig, der gewählt wird,falls die Bedingung nicht erfüllt ist.
• <obj>.<attr>
Per „.“ wird auf das Attribut <attr> des
Objekts <obj> zugegriffen.
AuD, Kapitel 3 Effizienz, WS010/11, C. Eckert
// A: Feld, 5 Elemente
i = A.länge
// i hat den Wert 5
26
Technische Universität München
3.2. Einführendes Beispiel: Sortieren
• Sortieren ist eine wichtige Basis-Operation für komplexe
Algorithmen
Sortierproblem
• Eingabe: Folge von n natürlichen Zahlen a1, a2, …, an,
die Folge ist nicht sortiert
• Ausgabe: Permutation der Eingabefolge
Sortieren der Eingabewerte:
a‘1 ≤ a‘2 ≤ a‘3 ≤ … ≤ a‘n
Beispiel
Eingabe:
Ausgabe:
41, 31, 26, 59, 58
26, 31, 41, 58, 59 sortierte Liste
AuD, Kapitel 3 Effizienz, WS010/11, C. Eckert
27
Technische Universität München
3.2.1 Konkreter Sortieralgorithmus: Sortieren durch Einfügen,
Algorithmus in Pseudo-Code Insertion Sort
A[1 ..n] ist die Eingabe, ein Feld von natürlichen Zahlen
key ist der bei jeder Iteration der Schleife einzusortierende Wert
Insertion_Sort (A)
Beispiel:
Beispiel
for j = 2 to länge(A) do
Eingabe A[1 .. 6] = 5, 2, 4, 6, 1, 3
key = A[ j ]
Prinzipieller Ablauf:
// Füge A[ j ] in die
// sortierte Liste A[1.. j - 1] ein.
i=j–1
while (i > 0 und A[ i ] > key) do
A[i + 1] = A[ i ]
i=i–1
A[i + 1] = key
AuD, Kapitelder
3 Effizienz,
WS09/10, C.
WS010/11,
C.Eckert
Eckert
// Ende
For-Schleife
28
Herunterladen