1 Grundlagen - TUMMengen in der Informatik 7. Reihenfolge der Objekte, mehrfache Nennung von...
Transcript of 1 Grundlagen - TUMMengen in der Informatik 7. Reihenfolge der Objekte, mehrfache Nennung von...
1 Grundlagen
Uberblick 2
1. Mengen
2. Relationen
3. Funktionen
4. Kardinalitat von Mengen
1.1 Einfuhrung
Ziel und Motivation 3
•”Grundvokabular“ der Mathematik lernen.
• Naturliche Sprache oft zweideutig
• Mathematische Sprache erlaubt die prazise Definition von mathematischen Objekten und dieprazise Formulierung von Satzen und Resultaten.
Ziele und Motivation 4
. In der Informatik: Mengen, Relationen, Funktionen etc. Grundlage fur die
– Beschreibung von Algorithmen,
– Definition, was ein Programm”tut“ (Semantik),
– Definition, welche Zeichenketten Programme sind (Syntax)
– Definition, was ein Programm”tun soll“ (Spezifikation)
– Datenstrukturen (Arrays, Listen, Baume, Hash-Tabelle, . . . )
Beispiel: Mengen, Tupel und Worter in Python 5
ein_tupel = (’a’,’b’,’c’)noch_ein_tupel = (’b’,’a’,’c’)ein_wort = ’a’’b’’c’eine_menge = frozenset(ein_tupel)noch_eine_menge = frozenset(noch_ein_tupel)noch_eine_andere_menge = frozenset(ein_wort)eine_sequenz_von_komplizierteren_objekten = [ein_tupel,noch_ein_tupel,ein_wort,eine_menge,
noch_eine_menge,noch_eine_andere_menge]for x in eine_sequenz_von_komplizierteren_objekten:
for y in eine_sequenz_von_komplizierteren_objekten:print("%s identisch zu %s? %s" % (x,y,x==y))pass
pass
. Ausprobieren unter [python.org/shell]
1.2 Mengen
1.2.1 Basisvokabular und -konzepte
Mengenlehre 6
1
[Quelle]
Unter einer”Menge“ verstehen wir jede Zusammenfassung M von bestimmten wohlunter-
schiedenen Objekten m unserer Anschauung oder unseres Denkens (welche die”Elemente“
von M genannt werden) zu einem Ganzen (Georg Cantor)
Mengen in der Informatik 7
. Reihenfolge der Objekte, mehrfache Nennung von Objekten, etc. spielen keine Rolle.
So kennt eine Menge kein erstes, zweites, usw. Objekt.
. Daneben sind noch die Basisoperationen wichtig, um aus zwei oder mehr Mengen eine neue Mengezu
”konstruieren“: Vereinigung, Schnitt, Differenz.
. Im Folgenden Wiederholung dieser Begriffe und deren Abkurzungen (”Schulwissen“).
Mengen: Basisvokabular 8
• Ein gegebenes Objekt x ist entweder in einer gegebenen Menge M enthalten oder nicht.
.”x ∈M“ kurz fur
”Objekt x ist in Menge M (d.h. mindestens einmal) enthalten“.
.”x 6∈M“ kurz fur
”Objekt x ist nicht (d.h. keinmal) in der Menge M enthalten“.
• Die Objekte x mit x ∈M nennt man die Elemente von M .
. Entsprechend liest man”x ∈ M” auch als
”x (ist) Element von M“ und x 6∈ M als
”x (ist) kein
Element von M“.
• Um Mengen zu definieren, kann man entweder alle Elemente der Menge explizit aufzahlen oderman definiert die Menge implizit durch Angabe einer charaktisierenden Eigenschaft der Elemente.
. Dabei verwendet man nach Konvention die Zeichen und zum Einleiten bzw. Beenden einerMengendefinition.
Mengen: Basisvokabular 9
. Beispiel: explizie (auch: extensionale) Definition
M := a, 2, $
d.h. M enthalt genau die drei Objekte”a“,
”2“,
”$“
. Beispiel: implizite (auch: intensionale) Definition
x |”x ist Burger der BRD mit Wohnsitz in Munchen“
. Abkurzungen fur Mengen, die sehr oft vorkommen:
– N = 1, 2, 3, . . . Menge der naturlichen/positiven ganzen Zahlen;
2
– N0 = 0, 1, 2, . . . naturliche Zahlen inkl. 0;
– Z = . . . ,−2,−1, 0, 1, 2, . . . ganze Zahlen;
– Q = p/q | p ∈ Z, q ∈ N rationale Zahlen;
– R reelle Zahlen.
Mengen: Basisvokabular 10
• Die leere Menge ist durch definiert, wofur man haufig auch ∅ schreibt. D.h. es gibt kein Objektx mit x ∈ ∅, oder i.a.W. fur jedes Objekt x gilt x 6∈ ∅.
• Mengen sind auch Objekte und konnen damit selbst Elemente von Mengen sein, z.B.
1, 1, 2, 1, , 1, 2, 3
. Das kann allerdings auch zu Problemen bei impliziten Definitionen fuhren, siehe Russelsche Anti-nomie:
R := x |”x ist Menge mit der Eigeschaft x 6∈ x“
Weder R ∈ R noch R 6∈ R”macht Sinn“. Losung: Typentheorie.
Beispiel 11
class PrettyPrintSet(frozenset):def __str__(self):
if len(self) == 0:return ’∅’
s = ’’ + ’,’.join([str(x) for x in self]) + ’’return s
pass
def successor(x):return PrettyPrintSet([x, PrettyPrintSet([x])]) # x, x
x = PrettyPrintSet() # x = ∅
for i in range(0, 10):print(x)x = successor(x)pass
. Ausprobieren unter [python.org/shell]
1.2.2 Vergleiche von Mengen
Mengen: Vergleiche von Mengen 12
• M1 ist eine Teilmenge von M2 (kurz: M1 ⊆M2), falls jedes Element von M1 auch Element von M2
ist.
. Entsprechend schreibt man kurz”M1 6⊆ M2“, falls M1 keine Teilmenge von M2 ist, d.h. falls
mindestens ein Element x von M1 kein Element von M2 ist.
• Fur die Menge der Objekte, die nur Elemente von M2, aber nicht von M1 sind, schreibt man kurzM2 \M1 (oder auch: M2 −M1).
. Man schreibt M1 (M2, falls zwar M1 ⊆M2, jedoch auch M2 \M1 mindestens ein Element besitzt.
. Beispiele:
– Fur jede beliebge Menge M gilt stets ∅ ⊆M .
3
– Fur eine Menge M gilt M ⊆ ∅ nur und nur dann, wenn M = ∅.
– Es gilt M1 ⊆M2 genau dann, wenn M1 \M2 = ∅.
Mengen: Vergleiche von Mengen 13
• M1 und M2 werden genau dann als gleich (identisch) angesehen (kurz:”M1 = M2“), wenn jedes
Element von M1 auch Element von M2 ist, und jedes Element von M2 auch Element von M1 ist.
. Kurz: M1 = M2 genau dann, wenn sowohl M1 ⊆M2 als auch M2 ⊆M1.
. Mit anderen Worten, um zu zeigen, dass zwei Mengen verschieden sind (kurz:”M1 6= M2“) muss
man ein Objekt x finden, das Element genau einer der beiden Mengen ist.
• Man schreibt kurz M1∆M2 fur die Menge, welche genau die Objekte zusammenfasst, welche Ele-ment genau einer der beiden Mengen M1,M2 (aber nicht beider) sind.
. M2 \M1 nennt man die Differenz von M2 und M1,
M1∆M2 nennt man die symmetrische Differenz von M1,M2.
. Beachte:
Im Allgemeinen M2 \M1 6= M1 \M2, aber stets M1∆M2 = M2∆M1.
Mengen: Vergleiche von Mengen 14
• Als Machtigkeit/Kardinalitat (kurz: |M |) einer Menge M bezeichnet man die Zahl der (unterschied-lichen) Elemente in M .
• Eine Menge M ist endlich (kurz: |M | < ∞), falls es eine naturliche Zahl k gibt und eine entspre-chende Anzahl von verschiedenen Objekten x1, x2, . . . , xk, so dass M = x1, x2, . . . , xk gilt.
. Ansonsten bezeichnet man M als unendlich (kurz: |M | =∞).
– Weitere Einteilung von unendlichen Mengen folgt spater:
P(M) ist stets”machtiger“ als M .
1.2.3 Operationen auf Mengen
Mengen: Operationen auf Mengen 15
• Standardoperationen fur zwei Mengen M1,M2:
Schnitt und Vereinigung
. Man schreibt kurz M1 ∩M2 fur die Menge mit der Eigenschaft:
”Ist x ein Objekt, dann ist x ein Element von M1 ∩M2 genau dann, wenn x sowohl Element vonM1 als auch von M2 ist.“
M1 ∩M2 wird der Schnitt von M1 und M2 genannt. ßpause
. Entsprechend schreibt man kurz M1 ∪M2 fur die Menge mit der Eigenschaft
”Ist x ein Objekt, dann ist x ein Element von M1∪M2 genau dann, wenn x Element von mindestens
einer der beiden Mengen M1,M2 ist.“
M1 ∪M2 wird die Vereinigung von M1 und M2 genannt.
4
Mengen: Operationen auf Mengen 16
• Haufig benotigt man auch den Schnitt und die Vereinigung von mehreren Mengen.
• Fur eine Menge S, deren Elemente selbst Mengen sind, definiert man:
∩S :=⋂
M∈S M:= x |
”fur jedes M ∈ S gilt x ∈M“
∪S :=⋃
M∈S M:= x |
”es gibt mindestens ein M ∈ S mit x ∈M“
. Damit M1 ∩M2 = ∩M1,M2 und M1 ∪M2 = ∪M1,M2
• Gilt S = M1, . . . ,Mk fur ein k ∈ N, dann schreibt man auch
k⋃i=1
Mi := ∪Sk⋂
i=1
Mi := ∩S
Mengen: Operationen auf Mengen 17
• Ist eine Menge Ω fest vorgegeben (fixiert) und betrachtet man ausschließlich Teilmengen von Ω, soschreibt man fur eine Menge A ⊆ Ω statt Ω \A kurz A.
. Ω nennt man dann das Universum oder die Grundmenge und
A das Komplement von A (bzgl. Ω).
. Wichtig: Ohne Angabe, welches Universum gewahlt wurde, macht A keinen Sinn.
1.2.4 Potenzmenge und Partitionen
Mengen: Potenzmenge 18
• Bezeichnet M eine Menge, so schreibt man 2M oder P(M) fur die Potenzmenge von M :
P(M) := 2M := A | A ⊆M
Die Potenzmenge von M hat genau alle alle Teilmengen von M als Elemente.
. Beispiele:
P(1, 2) = ∅, 1, 2, 1, 2
P(1, 2, 3) = ∅, 1, 2, 3,1, 2, 1, 3, 2, 3, 1, 2, 3
P(∅) = ∅
P(∅, ∅) = ∅, ∅, ∅, ∅, ∅
• Eine Menge mit k Elementen hat Kardinalitat . . . 2k.
. Intuitiv: um eine Teilmenge zu konstruieren muss fur jedes Element entschieden werden, obes zur Teilmenge gehort oder nicht
. damit k ja/nein (binare) Entscheidungen
. also 2k mogliche Teilmengen (“richtiger” Beweis spater).
5
Mengen: Partitionen 19
• Eine Partition einer Menge M ist eine Menge P ⊆ P(M) von disjunkten, nicht leeren Teilmengenvon M , deren Vereinigung gerade M ergibt.
Etwas formaler:
– M = ∪P , d.h. die Elemente von P uberdecken M .
– Fur jede beliebige A,B ∈ P gilt entweder A = B oder A ∩B = ∅
– Fur jede beliebiges A ∈ P gilt A 6= ∅.
. Beispiel: Die moglichen Partitionen von 1, 2, 3 sind:
1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 3, 2, 1, 2, 3
. Einige mogliche Partitionen von N0:
2N0, 2N0 + 1, x | x ∈ N0, N0 . . .
1.2.5 Visualisierung von Mengen: Venn- und KV-Diagramme
Mengen: Veranschaulichung 20
• Die Beziehungen zwischen mehreren Mengen veranschaulicht man z.B. mittels Venn-Diagrammenoder Karnaugh-Veitch-Diagramme.
AB
Ω
A
B
A
B C
Ω
A
B
C
. Wichtig: Allgemeine Lage aller Mengen. (Bildquelle: [wikipedia]
Mengen: Veranschaulichung 21
• Venn-Diagramme und KV-Diagramme fur 4 allgemeine Mengen
(Bildquelle: [wikipedia])
6
A
B
C
D
A
B
C
D
A
B
C
D
A
B
C
D
A
B
C
D
Mengen: Veranschaulichung 22
• Venn-Diagramme und KV-Diagramme fur 5 allgemeine Mengen
(Bildquelle: [wikipedia])
A A
B
C
D
E
1.2.6 Mengenterme
Mengenausdrucke/-terme 23
• Stehen A,B,C, . . . fur beliebige Mengen, d.h. sind Variablenbezeichner von”Typ Menge“, dann
konnen wir mittels ∩,∪,P(·), \,∆ Mengenterme/-ausdrucke aufstellen, die die Konstruktion vonweiteren, komplexeren Mengen beschreiben.
. Ist ein Universum Ω definiert, dann steht auch das Komplement A einer Menge A ⊆ Ω zurVerfugung.
• Werten sich zwei Mengenterme fur jede konkrete Wahl von Mengen A,B,C, . . . stets zur selbenMenge aus, dannn nennt man die Mengenterme aquivalent.
Mengenausdrucke/-terme 24
• Die Aquivalenz von Mengenterme lasst sich entweder mittels KV-Diagrammen uberprufen (fur biszu ca. 5 Variablen) oder mittels Aquivalenzumformungen unter Verwendung von Standardaquivalenzen/-identitaten.
. Fur jetzt: alles entsprechend zur Umformung von arithmetischen Ausdrucken/Termen, spater for-male Definition fur logische Formeln.
7
• Standardaquivalenzen fur A,B,C Mengenvariablen.
A = A ∪AA = A ∩AA = A ∪ ∅∅ = A ∩ ∅
A ∪B = B ∪AA ∩B = B ∩A
A ∪ (B ∪ C) = (A ∪B) ∪ CA ∩ (B ∩ C) = (A ∩B) ∩ C
Mengenausdrucke/-terme 25
• Noch mehr Standardaquivalenzen fur A,B,C Mengenvariablen.
A ∩ (B ∪ C) = (A ∩B) ∪ (A ∩ C)A ∪ (B ∩ C) = (A ∪B) ∩ (A ∪ C)
A \ (B ∪ C) = (A \B) ∩ (A \ C)A \ (B ∩ C) = (A \B) ∪ (A \ C)
A = A ∪ (A ∩B)A = A ∩ (A ∪B)
A∆B = (A \B) ∪ (B \A)
. Mit definiertem Universum Ω:
A ∩A = ∅A ∪A = ΩA \B = A ∩B
A = A
A ∪B = A ∩BA ∩B = A ∪B
Mengenausdrucke/-terme 26
• Uberprufen/Beweisen z.B. durch Aufstellen des KV-Diagramms einmal fur die linke und einmalfur die rechte Seite einer Aquivalenz.
. Beispiel: A \ (B ∩ C) = (A \B) ∪ (A \ C)
. Linke Seite: v.l.n.r. A, B ∩ C, A \ (B ∩ C)
A
B
C
A
B
C
A
B
C
. Rechte Seite: v.l.n.r. A \B, A \ C, (A \B) ∪ (A \ C)
A
B
C
A
B
C
A
B
C
1.2.7 Tupel, Sequenzen, Folgen und Worter
Tupel, Sequenzen, Folgen und Worter 27
• Mengen: Zusammenfassung von Objekten ohne Beachtung von Anordnung oder Vielfachheiten vonbeliebig vielen Objekten
a, b, ∅, b, a, a = ∅, a, b, a, b
8
. Tupel: Zusammenfassung einer festen, endlichen Anzahl von Objekten unter Beachtung der An-ordnung/Auflistung der Objekte und Beachtung von Vielfachheiten.
(a, b, ∅, b, a, a) 6= (∅, a, b, a, b)
. Definitionen von Tupeln durch ( und ) eingeleitet bzw. beendet.
Tupel, Sequenzen, Folgen und Worter 28
• Sequenz/Folge: Ist fur jede naturliche Zahl i ∈ N (oder auch i ∈ N0) ein Objekt ai gegeben, dannbezeichnet man die unendliche Auflistung (a1, a2, . . .) (bzw. (a0, a1, . . .)), die die Objekte nachanwachsendem Index auflistet/zusammenfasst, als Sequenz/Folge.
Kurzschreibweise: (ai)i∈N (bzw. (ai)i∈N0)
. Beispiel: (i)i∈N0 = (0, 1, 2, 3, . . .), (1/i)i∈N = (1, 1/2, 1/3, 1/4, . . .)
• Haufig sagt man statt Tupel auch endliche Sequenz oder Folge und fasst die Definitionen zusammen:
Gilt I ⊆ N0 und ist fur jedes i ∈ I ein Objekt ai gegegeben, so schreibt (ai)i∈I fur das Tupel,welches die Objekte ai nach anwachsendem Index auflistet.
. Notation: Fur k ∈ N definiert man [k] := 1, 2, . . . , k mit [0] = ∅.
. Dann gilt (ai)i∈[k] = (a1, a2, . . . , ak) mit (ai)i∈[0] = ().
Tupel, Sequenzen, Folgen und Worter 29
• Lange |t| eines Tupels t oder auch Anzahl #t der Komponenten/Eintrage eines Tuples ist geradeAnzahl der Objekte (einschließlich Vielfachheiten) der zusammengefassten Objekte.
. Beispiele: |(a, (b, c))| = 2
|(a, a, a, a, a, a)| = 6
|( a, b, b, a, ∅, (a, (b, ∅)) )| = 4
. Synonyme: k-Tupel fur Tupel der Lange k, Paar fur 2-Tupel
. Zwei Tupel sind identisch, wenn sie dieselbe Lange haben und sie an jeder Position denselbenEintrag besitzen.
. Beispiele:
(a, (b, c)) 6= (a, (c, b))
(a, b, c) = (a, c, b) 6= (c, b, a) 6= () 6= (a, b, c)
Tupel, Sequenzen, Folgen und Worter 30
• Sind A,B Mengen, so schreibt man A× B fur das kartesisches Produkt von A und B: die Mengealler Paare, deren erste Komponente ein Element aus A und deren zweite Komponente ein Elementaus B ist:
A×B = (a, b) | a ∈ A, b ∈ B
. Entsprechend definiert man
– A1 ×A2 × . . .×Ak = (a1, a2, . . . , ak) | a1 ∈ A1, a2 ∈ A2, . . . , ak ∈ Ak
(fur k = 0 ist das Produkt die Menge () ).
• Beachte: (A×B)× C 6= A×B × C 6= A× (B × C) da
– A×B × C = (a, b, c) | a ∈ A, b ∈ B, c ∈ C
– (A×B)× C = ((a, b), c) | a ∈ A, b ∈ B, c ∈ C
9
– A× (B × C) = (a, (b, c)) | a ∈ A, b ∈ B, c ∈ C
Tupel, Sequenzen, Folgen und Worter 31
ein_tupel = (’a’,’b’,’c’)noch_ein_tupel = ((’a’,’b’),’c’)und_noch_eins = (’a’,(’b’,’c’))menge_von_zeugs = frozenset([ein_tupel,noch_ein_tupel,und_noch_eins])for x in menge_von_zeugs:
for y in menge_von_zeugs:print("%s aequivalent zu %s? %s" % (x,y,x==y))
• Programmiersprachen machen auch diese Unterschiede, da Klammerstruktur z.B. auch vorgibt, wieetwas abgespeichert wird.
. Ausprobieren unter [python.org/shell]
Tupel, Sequenzen, Folgen und Worter 32
• Graphisch veranschaulicht (entspricht Speicherstruktur):
(a, b, c) entspricht
a b c
((a, b), c) entspricht
a b
c
(a, (b, c)) entspricht
a
b c
Tupel, Sequenzen, Folgen und Worter 33
• Man schreibt Ak fur alle k-Tupel mit Komponenten nur aus A:
Ak = (a1, . . . , ak) | a1 ∈ A, a2 ∈ A, . . . , ak ∈ A
. Beachte: A0 := () und A1 := (a) | a ∈ A 6= A
. Programmiersprachen machen auch diesen Unterschied z.B. Python:
[′a′] ist die Liste, die das Zeichen a enthalt, und nicht einfach das Zeichen a; entsprechend ist [] dieleere Liste.
• Tupel konnen prinzipiell durch Mengen”simuliert“ werden z.B. (a, b) durch 0, a, 1, b oder
(ohne Zahlen aber umstandlicher) durch ∅, a, ∅, b.
10
Worter und Sprachen 34
• Fur die Informatik bilden Tupel die konzeptuelle Grundlage fur Zeichenketten (strings).
• Ublicherweise ist eine Menge von Grundzeichen (Alphabet) vorgegeben
– z.B. ASCII, UTF-8, alphanumerisch a, . . . , z, A, . . . , Z, 0, . . . , 9
. Haufig wird ein Alphabet mit Σ oder Γ bezeichnet.
und man betrachtet nur Tupel mit Eintragen aus diesem Alphabet.
. Fur die Menge aller (endlichen) Tupel mit Eintragen aus einem Alphabet Σ schreibt man kurzΣ∗ :=
⋃k∈N0
Σk = ∪Σk | k ∈ N0.
. Man nennt Σ∗ auch die Menge aller endlichen Worter uber Σ, und bezeichnet die Elemente vonΣ∗ als (endliche) Worter (uber Σ).
Worter und Sprachen 35
• Solange keine Missverstandnisse entstehen konnen, schreibt man fur ein Wort (a1, a2, . . . , ak) ein-fach kurz a1a2 . . . ak.
. Fur das leere Tupel () benotigt man dann ein spezielles Symbol, meistens ε (empty word) oder λ(leeres Wort), das man dann das leere Wort nennt.
• Ist Σ ein Alphabet, so bezeichnet man eine Teilmenge L ⊆ Σ∗ als Sprache (uber Σ).
• Fur Worter und Tupel definiert man noch die Konkatenation (”Verkettung“):
– Die Konkatenation uv zweier Worter u = u1 . . . uk und v = v1 . . . vl (ui, vj ∈ Σ) ist geradeuv := u1 . . . ukv1 . . . vl.
. Beachte: uε = εu = u und |uv| = |u|+ |v|.
– Entsprechend ist die Konkatenation zweier Tupel (u1, . . . , uk) und (v1, . . . , vl) das neue Tupel(u1, . . . , uk, v1, . . . , vk).
1.3 Relationen
1.3.1 Basisvokabular und -konzepte
Relationen 36
• Gegeben Mengen A1, A2, . . . , Ak, so nennt man R ⊆ A1 × A2 × . . .× Ak eine (k-stellige) Relationoder eine Relation der Stelligkeit/Aritat k.
. Gilt (a1, a2, . . . , ak) ∈ R, dann sagt man, dass die Objekte a1, a2, . . . , ak bzgl. R in Relation stehen.
• Relationen bilden die Grundlage fur Datenbanken: Vereinfacht gesprochen ist eine (klassische)Datenbank eine Menge von Datenbanktabellen, wobei jede Tabelle eine Relation abspeichert z.B.
AId ANachname AVorname
1 Man Spider2 Brot Bernd3 Woman Wonder4 Gaga Lady
AId AMatrikelnummer
1 31412 2718283 17014 3694
AId AGeschlecht
1 m2 b3 w4 w
R S T
11
Relationen: Join und Projektion 37
• Die wichtigste Datenbankoperation sind Join und Projektion.
• Der Join R ./i=j S konkateniert (”verkettet“) jedes Tupel (r1, . . . , rk) ∈ R mit jedem Tupel
(s1, . . . , sl) ∈ S, soweit ri = sj gilt:
R ./i=j S =
(r1, . . . , rk, s1, . . . , sl) |(r1, . . . , rk) ∈ R,(s1, . . . , sl) ∈ S,
ri = sj
• Die Projektion πi1,i2,...,ij reduziert jedes Tupel (r1, . . . , rk) ∈ R auf die Eintrage an den Positionen
1 ≤ i1 < i2 < . . . < ij ≤ k:
πi1,i2,...,ik(R) = (ri1 , ri2 , . . . , rij ) | (r1, . . . , rk, . . .) ∈ R
. Hiermit lassen sich die Datenbanktabellen verknupfen und filtern, um damit Datenbankanfragenzu beantworten.
. Mehr dazu in Datenbanken.
Relationen 38
• Beispiel: Relationen/Tabellen R,S, T
AId ANachname AVorname
1 Man Spider2 Brot Bernd3 Woman Wonder4 Gaga Lady
AId AMatrikelnummer
1 31412 2718283 20174 3694
AId AGeschlecht
1 m2 b3 w4 w
R S T
. Datenbankanfragen entsprechen Verknupfen der Tabellen mittels Join und Projektion z.B. Anfrage
”Vornamen aller weiblichen Personen“:
π3(R ./1=1 (T ./2=1 (w)))
(Selbst auswerten mit R,S, T von oben.)
1.3.2 Binare Relationen und Graphen
Binare Relationen 39
• Im Weiteren: binare, d.h. 2-stellige Relationen R ⊆ A×B
. Grundlage fur alle verzeigerten Datenstrukturen in der Informatik (z.B. Listen, Baume, Gra-phen).
. Binare Relationen auf Zahlen aus der Schule bekannt:
”kleiner-gleich“ ≤,
”kleiner“ <,
”gleich“ =,
”ungleich“ 6=, usw.
Notationsproblem: = = (x, x) | x ∈ R ⊆ R× R (?!)
. Daher ≤R bzw. =N usw. fur bessere Unterscheidbarkeit.
. Infixnotation: aR b fur (a, b) ∈ R
– Vgl.: 3 ≤N 5 statt (3, 5) ∈≤N
. Fur spater: inverse Relation R−1 := (b, a) | (a, b) ∈ R.
. Z.B. ≤−1R =≥R.
12
Binare Relationen: Graphen 40
. Veranschaulichung von binaren Relationen mittels Graphen.
• Ein gerichterter Graph (kurz: Digraph) G = (V,E) besteht aus
– einer Menge V – genannt Knotenmenge, Elemente von V entsprechend Knoten von G.
– einer binaren Relation E ⊆ V × V – genannt Kantenrelation/-menge, Elemente von E ent-sprechend Kanten von G.
. Ein Digraph G ist endlich, falls V endlich; ansonsten ist G unendlich.
. Ein Digraph G ist bipartit, falls V = A ∪ B mit A ∩ B = ∅ und E ⊆ A × B ∪ B × A (nurKanten zwischen A und B).
• Visualisierung eines (endlichen) Digraphen G = (V,E):
– Fur jeden Knoten v ∈ V”male“ einen
”Knubbel“ mit Namen
”v“
– Fur jede Kante (s, t)”male“ einen
”Pfeil“ vom
”Knubbel“ fur s zum
”Knubbel“ fur t (s fur
”source“, t fur
”target“).
Falls s = t, dann”male Schleife“.
Falls G unendlich, eben nur schematische Skizze moglich i.A.
Binare Relationen: Graphen 41
• Beispiel: G = (V,E) mit
V = 1, 2, a, b [0.2cm] E = (1, b), (2, b), (2, a), (1, 2), (b, b), (b, 2), (a, 1)
1
2
a
b
alternativ
1
2
a
b
Nicht bipartit.
Binare Relationen: Graphen 42
• Beispiel: G = (V,E) mit
V = 1, 2, a, b [0.2cm] E = (1, b), (2, b), (2, a), (b, 2), (a, 1)
1
2
a
b
alternativ
1
2
a
b
Bipartit.
Binare Relationen: Graphen 43
• Visualisierung von R ⊆ A×B als Digraph GR := ((A ∪B), R).
. Beispiel: Visualisierung von (x, y) | x, y ∈ 0, 1, 2, 3, x ≤N0 y
13
0 1 2 3
. Beispiel: Skizze zu ≤N0⊆ N0 × N0
0 1 2 3 . . .
Binare Relationen: Graphen 44
• Eine Folge v0, v1, . . . , vl von Knoten vi ∈ V heißt Weg/Pfad, falls (vi−1, vi) ∈ E fur jedes i ∈ [l]gilt, d.h. wenn je zwei aufeinanderfolgende Knoten durch eine Kante aus E verbunden sind.
– Die Lange eines Pfades (v0, v1, . . . , vl) ist l, d.h. die Anzahl der Kanten (”Schritte“), von v0
bis vl.
. Ein Pfad heißt einfach, falls kein Knoten mehrmals in dem Pfad vorkommt (”besucht“ wird).
. Fakt: In einem endlichen Digraphen hat ein einfacher Pfad maximal Lange |V | − 1.
• Beispiel:
v0 v1 v2 v3
Einige Pfade:v0 v0, v0 v0, v1 v0, v1, v0 v0, v1, v2, v3, v1
1.3.3 Relationales Produkt
Relationales Produkt 45
• Sind R ⊆ A×B sowie S ⊆ C ×D binare Relationen, dann ist das relationale Produkt von R undS die binare Relation RS ⊆ A×D gegeben durch
RS = (a, d) | es gibt x ∈ B ∩ C mit (a, x) ∈ R und (x, d) ∈ S
oder kurz: RS = π1,4(R ./2=1 S).
• Wenn B ∩ C = ∅, dann gilt also RS = ∅.
• Man nennt RS auch die Verkettung von R und S.
• Visualisierung des relationalen Produkts:
Der Graph zu RS enthalt eine Kante (u, v) gdw. es einen”Verbindungsknoten w“ und eine R-Kante
(u,w) und eine S-Kante (w, v) gibt.
Relationales Produkt 46
14
R S RR
1
2
a
b
1
2
a
b
1
2
a
b
RS SR SS
1
2
a
b
1
2
a
b
1
2
a
b
1.3.4 Binare Relationen auf einer Menge
Binare Relationen auf einer Menge 47
• Weiterer wichtiger Spezialfall:
Binare Relationen R ⊆ A×A, die auf einer Menge A definiert sind.
. Konnen mit sich selbst mittels relationalem Produkt mehrfach verknupft werden:”Zusammenziehen
der k-Schritt-Pfade“
– R0 := IdA := (a, a) | a ∈ A
– R1 := R = R0R
– R2 := RR = R1R
– Rk+1 = RkR = RRk = RR . . . R︸ ︷︷ ︸k + 1 Kopien
fur beliebiges k ∈ N0.
. Bemerkung: Obige Definition wird als induktive Definition bezeichnet.
Die Definition ist (fast) ein Algorithmus, wie man Rk+1 mittels R und Rk rekursiv”berechnen“
kann.
Binare Relationen auf einer Menge 48
• Sei R gegeben durch:
1
2
3
4
. v.l.n.r. R0, R2, R3:
1
2
3
4
1
2
3
4
1
2
3
4
15
Binare Relationen auf einer Menge 49
• Sei R gegeben durch:
1
2
3
4
. v.l.n.r. R0 ∪R1 ∪R2, R0 ∪R1 ∪ · · · ∪R3, R0 ∪R1 ∪ · · · ∪R4:
1
2
3
4
1
2
3
4
1
2
3
4
Binare Relationen auf einer Menge 50
• Mit das fundamentalste Problem der Informatik:
”Zusammenziehen aller endlichen Pfade“
aka. Erreichbarkeit in endlich vielen Schritten
aka. Terminierungsproblem
• Transitive Hulle einer binaren Relation R ⊆ A×A:
R+ :=⋃
k∈N Rk (”alle Pfade, die mindestens einen Schritt machen“)
• Reflexiv-transitive Hulle einer binaren Relation R ⊆ A×A:
R∗ :=⋃
k∈N0Rk = R0 ∪R+
. v ist von u”erreichbar“, falls uR∗v.
. Weitere Notation:
R≤k :=⋃k
i=0Ri (
”Erreichbarkeit in hochstens k Schritten“)
• Hinweis: Bedeutung von ∗ uberladen, unterscheide von z.B. Menge aller endlichen Worter Σ∗.
Binare Relationen auf einer Menge 51
• Sei R gegeben durch:
1
2
3
4
. v.l.n.r. R+, R∗:
1
2
3
4
1
2
3
4
16
Binare Relationen auf einer Menge 52
• Beachte: Ist n = |R| endlich, dann gilt R∗ = R≤n−1:
Beweisskizze: Wir zeigen fur alle s, t ∈ A
(s, t) ∈ R∗ gdw. (s, t) ∈ R≤n−1
Gilt s = t, dann bereits (s, t) ∈ IdA = R0.
Gilt s 6= t, dann:
(s, t) ∈ R+
gdw es gibt einen endlichen Pfad von s nach t in Digraph GR
gdw es gibt einen einfachen (da s 6= t) Pfad von s nach t in Digraph GR
gdw (s, t) ∈ R≤n−1.
. Weitere Eigenschaften (siehe Ubungen):
– (R∗)∗ = (R+)∗ = (R∗)+ = R∗
– (R+)+ = R+
Binare Relationen auf einer Menge 53
• Eine binare Relationen R ⊆ A×A auf einer Menge A ist
– reflexiv falls: IdA ⊆ R
”Jeder Knoten hat eine Schleife“
– symmetrisch falls: Wann immer (s, t) ∈ R, dann auch (t, s) ∈ R
”Zwischen je zwei Knoten entweder beide Kanten oder gar keine Kante“
– asymmetrisch falls: Wann immer (s, t) ∈ R, dann immer (t, s) 6∈ R
”Keine Schleifen und zwischen je zwei verschiedenen Knoten hochstens eine Kante“
– antisymmetrisch falls: Wann immer (s, t) ∈ R und auch (t, s) ∈ R, dann gilt immer s = t
”Zwischen zwei verschiedenen Knoten existiert hochstens eine Kante“
– transitiv falls: Wann immer (s, t) ∈ R und auch (t, u) ∈ R, dann auch (s, u) ∈ R
”Kommt man mit genau zwei Schritten von s nach u, dann auch mit genau einem.“
Binare Relationen auf einer Menge 54
• Eigenschaften der folgenden Relationen?
1
2
3
4
1
2
3
4
1
2
3
4
1
2
3
4
1
2
3
4
1
2
3
4
17
Binare Relationen auf einer Menge 55
• Weitere Beispiele:
. =Z: reflexiv; symmetrisch; transitiv
. ≤Z: reflexiv; antisymmetrisch; transitiv
. <Z: nicht reflexiv; asymmetrisch; transitiv
. 6=Z: nicht reflexiv; symmetrisch; nicht transitiv
. |Z ⊆ Z× Z mit”a|b“ definiert durch
”ba ∈ Z“ (sprich
”a teilt b“)
nicht reflexiv; nicht symmetrisch; nicht asymmetrisch; nicht antisymmetrisch; transitiv
. |N ⊆ N× N (Einschrankung von”teilt“ auf positive ganze Zahlen)
reflexiv; antisymmetrisch; transitiv
. ≡m⊆ Z× Z mit”a ≡m b“ definiert durch
”m|(a− b)“ fur festes m ∈ N
reflexiv; symmetrisch; transitiv
. ⊆ auf P(Z): reflexiv; antisymmetrisch; transitiv
. Kongruenzbegriff auf Dreiecken: reflexiv; symmetrisch; transitiv
Binare Relationen auf einer Menge 56
• Noch mehr Beispiele fur Worter u, v ∈ Σ∗
. u ist ein Prafix von v (kurz: u p v),
falls es ein w ∈ Σ∗ mit uw = v gibt.
p: reflexiv; antisymmetrisch; transitiv
. u ist ein Suffix von v (kurz: u s v),
falls es ein w ∈ Σ∗ mit wu = v gibt.
s: reflexiv; antisymmetrisch; transitiv
. u ist ein Infix (Faktor) von v (kurz: u i v),
falls es w,w′ ∈ Σ∗ mit wuw′ = v gibt.
f : reflexiv; antisymmetrisch; transitiv
. u und v sind konjugiert (kurz: u ∼=c v),
falls es w,w′ ∈ Σ∗ mit u = ww′ und v = w′w gibt.
∼=c: reflexiv; symmetrisch; transitiv
Binare Relationen auf einer Menge 57
• Klassifikation:
– ≤Z, |N,⊆,p,s,i werden als partielle Ordnungen bezeichnet:
reflexiv, antisymmetrisch, transitiv
– =Z,≡m,∼=c, ”Kongruenz von Dreiecken“ werden als Aquivalenzrelationen bezeichnet:
reflexiv, symmetrisch, transitiv
18
1.3.5 Aquivalenzrelationen
Aquivalenzrelationen 58
• Betrachte die Relationen =Z, ≡k (Kongruenz modulo k),∼=c
. Gemeinsamkeiten: reflexiv, symmetrisch, transitiv
Unterteilen/partitionieren die Objekte des Universums nach verschiedenen”Aquivalenzbegriffen“
– a =Z b: ”a und b dieselbe/identische Zahl“
”Feinste“ Partitionierung: x | x ∈ Z
– a ≡m b:”a und b derselbe Rest bei Division durch m“
Partitionierung: Menge der Restklassen mZ,mZ + 1, . . . ,mZ + (m − 1) mit mZ = mz |z ∈ Z
”Grobste“ Partitionierung fur m = 1: Z (
”alles gleich“)
Aquivalenzrelationen 59
• Allgemeine Definition: Eine binare Relation R ⊆ A×A uber einer Menge A heißt Aquivalenzrelation(auf A), falls:
– R reflexiv und symmetrisch und transitiv.
. Fur R ⊆ A×A eine Aquivalenzrelation definiert man:
– Aquivalenzklasse eines Objekts a bzgl. R:
[a]R = b ∈ A | aRb
Bsp.: [1]=Z = 1, [−5]≡3= 3Z + 1
. Fakt: Es gilt a ∈ [a]R und [a]R = [b]R fur aRb und [a]R ∩ [b]R = ∅ fur (a, b) 6∈ R
– Den Quotienten von A bzgl. R:
A/R = [a]R | a ∈ A
Bsp.: Z/=Z= x | x ∈ Z, Z/ ≡3= 3Z, 3Z + 1, 3Z + 2
. Fakt: A/R ist eine Partition von A
Aquivalenzrelationen 60
• Weitere wichtige Aquivalenzrelationen:
Aquivalenzen auf Termen/Formeln/Programmen
. (x + y)2 und x2 + 2xy + y2 verschiedene Zeichenketten/arithmetische Terme, aber werten sichfur alle reellen Zahlen x, y ∈ R stets zu demselben Wert aus, weswegen man (ungenau) einfach(x+ y)2 = x2 + 2xy + y2 schreibt.
. Entsprechend (A ∩ C) \ B und (A ∩ (B ∪ C)) im mengentheoretischen Sinn aquivalent, aber ver-schiedene Terme.
. Wichtig fur die Informatik: Entscheiden, ob zwei (als Zeichenkette) verschiedene Programme das-selbe tun.
Z.B. prototypische Implementierung vs. optimierte Implementierung.
. Ausblick: Im Allgemeinen kann man kein Programm schreiben, das die Aquivalenz von zwei anderenProgrammen entscheidet.
Siehe Einfuhrung in die theoretische Informatik.
19
Aquivalenzrelationen 61
a = "Ein String"b = "Ein String"c = "%s" % a
tuple_of_strings = (a,b,c)
for i in range(0,len(tuple_of_strings)):x = tuple_of_strings[i]for j in range(i,len(tuple_of_strings)):
y = tuple_of_strings[j]print("’%s’ selbe Zeichenkette wie ’%s’? %s" % (x,y,x==y))print("’%s’ selbes Objekt wie ’%s’? %s" % (x,y,x is y))
• Die meisten Programmiersprachen haben fur Strings zumindest die Aquivalenzen”selbes Objekt
(im Speicher)“ und”selbe Zeichenkette“.
• Haufig ist”==“ uberladen (Python, C++) und testet zwei Objekte auf Aquivalenz im
”naturlichen
Sinn“ (z.B.”selbe Zeichenkette“).
. Java testet mit”==“ jedoch
”selbes Objekt“
• [ausprobieren]
1.3.6 Ordnungsrelationen
Ordnungsrelationen 62
• Beispiele: ≤Z, |N,⊆,p,s,i
. Gemeinsamkeiten: reflexiv, antisymmetrisch, transitiv
Ordnen Objekte zumindest teilweise (partiell) an.
. Unterschiede:
– Fur zwei beliebige a, b ∈ Z gilt mindestens a ≤Z b oder b ≤Z a,
d.h. bzgl. ≤Z sind alle ganzen Zahlen vergleichbar.
– Fur zwei beliebige a, b ∈ N kann weder a|Nb noch b|Na gelten,
d.h. bzgl. |N gibt es unvergleichbare positive ganze Zahlen, z.B. die Primzahlen.
Ordnungsrelationen 63
• Man definiert daher:
. R ⊆ A×A ist eine partielle Ordnung (Halbordnung) auf A, falls
– R reflexiv und antisymmetrisch und transitiv.
. R ⊆ A×A ist eine totale Ordnung (Totalordnung) auf A, falls
– R eine partielle Ordnung auf A ist, und
– je zwei beliebige a, b stets bzgl. R in Relation stehen, d.h. mindestens aRb oder bRa gilt.
• Man definiert entsprechend noch strikte/strenge Varianten, indem man die Reflexivitat durch dieIrreflexivitat ersetzt, womit die Antisymmetrie zur Asymmetrie wird.
– R ist irreflexiv, falls (a, a) 6∈ R fur jedes a ∈ A, d.h. R ∩ IdA = ∅.
. Bsp.: <Z =≤Z \IdZ
20
Ordnungsrelationen 64
• Visualisierung einer (partiellen) Ordnung R ⊆ A×A:
Statt R bzw. den zugehorigen Digraphen GR,
stellt man nur eine moglichst”kleine“ Relation S ⊆ R dar,
fur die S∗ = R gilt. GS wird dann Hasse-Diagramm von R genannt.
. Beispiel: ≤N0
Statt
0 1 2 3 . . .
nur
0 1 2 3 . . .
Ordnungsrelationen 65
. Beispiel: Hasse-Diagramm zu |N ∩ ([10]× [10])
1
2 3 5 7
4 6 9 10
8
. Beispiel: Hasse-Diagram zu ⊆ auf P([3])
∅
1 2 3
1, 2 1, 3 2, 3
1, 2, 3
Ordnungsrelationen 66
. Beispiel: Hasse-Diagramm zu Ordnung auf Aquivalenzrelationen uber 1, 2, 3:
≡1 ≡2 falls:
– wann immer a ≡1 b, dann bereits a ≡2 b,
– oder aquivalent ≡1⊆≡2
21
1, 2, 3
1, 2, 3 1, 3, 2 1, 2, 3
1, 2, 3
Ordnungsrelationen 67
• Noch ein paar Standardbegriffe bzgl. einer Ordnung R ⊆ A×A:
• m ∈ A ist ein maximales Element bzgl. R, falls:
Gilt mRa fur ein a ∈ A, dann auch aRm und damit a = m.
.”Keine Kanten zu einem anderen Element“
. Erinnerung: bzgl. partieller Ordnungen kann es auch unvergleichbare Objekte geben.
• m ∈ A ist das großte Element bzgl. R, falls aRm fur jedes a ∈ A gilt.
–”Keine Kanten zu einem anderen Element, aber von jedem anderen Element eine Kante.“
. Ist R total, dann ist ein maximales Element sofort auch das großte Element.
• Entsprechend definiert man ein minimales und das kleinste Element bzgl. R.
Ordnungsrelationen 68
• Erinnerung: Fur eine binare Relation R ⊆ A × A haben wir die transitive Hulle R+ :=⋃
k∈NRk
und die reflexiv-transitive Hulle R∗ =⋃
k∈N0Rk definiert.
• Die Teilmengenrelation ⊆ ist eine Halbordnung auf der Menge aller binaren Relationen auf A.
• Bzgl. ⊆ lassen sich R∗ und R+ auch wie folgt charakterisiern:
– R+ ist das kleinste Element bzgl. ⊆ in
S ⊆ A×A | R ⊆ S und S ist transitiv
d.h. ist S transitiv mit R ⊆ S, dann gilt R+ ⊆ S.
– R∗ ist das kleinste Element bzgl. ⊆ in
S ⊆ A×A | R ⊆ S und S ist reflexiv und transitiv
d.h. ist S reflexiv und transitiv mit R ⊆ S, dann gilt R∗ ⊆ S.
. Siehe Ubungen.
Ordnungsrelationen 69
• Fakt: Mit R ist auch R−1 eine Ordnung. (”Pfeile umdrehen“)
– Begriffe”minimal“ und
”maximal“ bzw.
”kleinstes“ und
”großtes“ dual, d.h. beim Wechsel
von R zu R−1 vertauschen sie sich.
• Beispiele:
22
– Bzgl. |N ist 1 das kleinste Element, es gibt keine maximalen Elemente.
– Bzgl. |−1N (
”ist Vielfaches“) ist 1 das großte Element.
– Bzgl. |N\1 sind die Primzahlen die minimalen Elemente.
– Bzgl. ≤Z gibt es keine minimalen/maximalen Elemente
– Bzgl. ≤N0ist 0 das kleinste Element
– Bzgl. ≥N0 ist 0 das großtes Element
1.4 Funktionen
1.4.1 Basisvokabular und -konzepte
Funktionen 70
• Eine Relation R ⊆ A×B ist eine Funktion (Abbildung), falls:
Fur jedes a ∈ A gibt es genau ein b ∈ B mit (a, b) ∈ R
– D.h. es gibt mindestens ein b ∈ B mit aRb UND
– wann immer auch aRb′, dann gilt b = b′.
. Konventionen/Anmerkungen (wie in Schule):
– f, g, h, . . . als Funktionenbezeichner.
–”f : A→ B“ um zu sagen, dass f ⊆ A×B eine Funktion von A nach B ist.
–”f(a)“ steht fur das eindeutige b ∈ B mit (a, b) ∈ f .
Beachte: Schreibrichtung dreht sich damit um”afb“ vs.
”b = f(a)“
In manchen Fallen”af“ statt
”f(a)“ auch praktischer.
– Definition von Funktionen mittels”7→“ z.B.: f : R→ R : x 7→ x2 + 1
Funktionen 71
• Weitere Konventionen/Anmerkungen:
– Fur die Menge aller Funktionen von A nach B schreibt man BA := f : A→ B.
– Gilt A =×k
i=1Ai, dann schreibt man einfach f(a1, . . . , ak) statt f((a1, . . . , ak)).
. k bezeichnet man dann als Stelligkeit oder Aritat von f .
. Entsprechend bezeichnet man f :×k
i=1Ai → B auch als k-are Funktion z.B. nullar, unar,
binar, tertiar usw.
. Spezialfall nullare Funktion: f : () → B
Ist nur fur das leere Tupel (=”kein Argument“) definiert und ordnet diesem immer denselben
Wert zu.
Funktionen 72
• Weitere Konventionen/Anmerkungen:
– Die Urbildmenge Dom(f) einer Funktion f : A→ B ist die Menge A.
Die Bildmenge Rng(f) von f ist die Menge f(a) | a ∈ A.
Allgemeiner definiert man fur X ⊆ A und Y ⊆ B:
23
∗ f−1(Y ) = a ∈ A | f(a) ∈ Y ⊆ Dom(f) (Urbilder von Y )
∗ f(X) = f(a) | a ∈ X ⊆ Rng(f) (Bilder von X)
. Nach unserer Definition muss eine Funktion f : A → B jedem a ∈ A ein Bild f(a) zuweisen.Solche Funktionen werden auch als total bezeichnet.
– Als partielle Funktion bezeichnet man entsprechend eine Relation f ⊆ A× B bzgl. der jedesa ∈ A mit hochstens einem b ∈ B in Relation steht.
. Kurz”f : A → B“, um daraufhinzuweisen, dass f nur partiell ist.
∗ f : A→ B (totale) Funktion: Dom(f) = A
∗ f : A → B partielle Funktion: Dom(f) ⊆ A
. Partielle Funktionen in der Informatik recht gewohnlich zur Beschreibung von u.U. nichtterminierenden Programmen.
1.4.2 Visualisierung
Funktionen: Visualisierung 73
• Visualisierung einer Funktion f : A→ B (wie in Schule):
Bipartiter Graph (A ]B, f) mit”Knubbel“ fur A links und
”Knubbel“ fur B rechts.
–”A ] B“ bedeutet:
”mach notfalls disjunkt“, d.h. jeweils separate
”Knubbel“ fur A und B,
selbst wenn A ∩B 6= ∅.
. Beispiel: f = (a, 1), (b, 2), (c, 3) ⊆ A×B fur A = a, b, c und B = [3]
Als Funktion: Als Relation:
a
b
c
1
2
3
a
b
c
1
2
3
. Da A ∩B = ∅ kein Unterschied.
Funktionen: Visualisierung 74
• Visualisierung einer Funktion f : A→ B (wie in Schule):
Bipartiter Graph (A ]B, f) mit”Knubbel“ fur A links und
”Knubbel“ fur B rechts.
–”A ] B“ bedeutet:
”mach notfalls disjunkt“, d.h. jeweils separate
”Knubbel“ fur A und B,
selbst wenn A ∩B 6= ∅.
. Beispiel: f = (a, a), (b, a), (c, b) ⊆ A×A fur A = a, b, c
Als Funktion: Als Relation:
a
b
c
a
b
c
a b c
. Fur A = B Darstellungen unterschiedlich; Darstellung als Relation nutzlich, falls man an der Bahnx, f(x), f(f(x)), . . . interessiert ist (siehe Permutationen).
24
1.4.3 Operationen auf Funktionen
Funktionen: Operationen 75
• Abbildungen der Form f : Ak → A (d.h. f ⊆ Ak+1) werden auch als k-stellige Operationen auf Abezeichnet.
– Beispiele: Addition und Multiplikation +R, ·R : R× R→ R auf R
– Fur binare Operationen verwendet man ublicherweise die Infixnotation:
(x+R y) statt +R(x, y); (x ·R y) statt ·R(x, y)
. Haufig verwendet man ⊕,,⊗, u.a. Symbole als Bezeichner fur binare Operationen.
. Meistens lasst man auch die außersten Klammern weg, falls keine Missverstandnisse entstehenkonnen, also z.B. nur a b statt (a b)
• Eine binare Operation : A×A→ A ist
– assoziativ falls (a b) c = a (b c) fur alle a, b, c ∈ A.
– kommutativ falls a b = b a fur alle a, b ∈ A.
– idempotent falls a a = a fur alle a ∈ A.
Funktionen: Komposition 76
• Komposition (Nacheinanderausfuhrung) (g f)(a) := g(f(a)) von Funktionen f : A → B undg : B → C
(g f) : A→ C : a 7→ g(f(a))
. Anmerkungen:
– Lies”g f“ als
”g nach f“
– Komposition ist assoziativ (als Operation auf die Menge der Funktionen), aber nicht kommu-tativ:
(h (g f))(a) = h((g f)(a))
= h(g(f(a)))
= (h g)(f(a)) = ((h g) f)(a)
Funktionen: Komposition 77
• Komposition (Nacheinanderausfuhrung) (g f)(a) := g(f(a)) von Funktionen f : A → B undg : B → C
(g f) : A→ C : a 7→ g(f(a))
. Beachte umgekehrte Lese/Schreibrichtung im Vergleich zu Relationen:
Relationales Produkt Komposition
fg = (a, g(f(a))) | a ∈ A = (g f)
a
b
c
1
2
3
α
β
γ
f
f
f
g
g
g
a
b
c
α
β
γ
(g f)
(g f)
(g f)
25
1.4.4 Eigenschaften von Funktionen
Injektive, surjektive und bijektive Funktionen 78
• Erinnerung:
Fur f : A → B und Y ⊆ B bezeichnet f−1(Y ) = a ∈ A | f(a) ∈ Y die Menge der Urbilder vonY .
• Eine Funktion f : A→ B ist
– injektiv, falls aus f(a) = f(a′) stets a = a′ folgt.
Aquivalent:∣∣f−1(b)
∣∣ ≤ 1 fur jedes b ∈ B
– surjektiv, falls fur jedes b ∈ B ein a ∈ A mit f(a) = b gibt.
Aquivalent: f(A) = B, Rng(f) = B,∣∣f−1(b)
∣∣ ≥ 1 fur jedes b ∈ B.
– bijektiv, falls sowohl injektiv als auch surjektiv.
Aquivalent:∣∣f−1(b)
∣∣ = 1 fur jedes b ∈ B.
Funktionen: Eigenschaften 79
• Beispiele:
a
b
c
d
e
1
2
3
4
5
a
b
c
d
e
1
2
3
4
5
a
b
c
d
e
1
2
3
4
5
a
b
c
d
e
1
2
3
4
a
b
c
d
1
2
3
4
5
a
b
c
d
e
1
2
3
4
5
Funktionen: Umkehrfunktion 80
• Ist f bijektiv, dann ist auch (b, a) | b ∈ B, a ∈ f−1(b) ∈ AB eine Funktion, die man alsUmkehrfunktion/Inverse von f bezeichnet, und fur die man ebenfalls die Notation
”f−1“ verwendet.
. Beweis, dass R := (b, a) | b ∈ B, a ∈ f−1(b) ∈ AB :
– Jedes b ∈ B hat ein Bild, da:
Fixiere ein beliebiges b ∈ B
Da f surjektiv, gibt es ein a ∈ A mit f(a) = b bzw. a ∈ f−1(b).
Also (b, a) ∈ R.
26
– Falls (b, a) ∈ R und (b, a′) ∈ R, dann a = a′, da:
Nach Definition von R: a, a′ ∈ f−1(b), also f(a) = b = f(a′).
Da f injektiv: Folgt aus f(a) = b = f(a′) bereits a = a′.
. Also steht jedes b ∈ B mit genau einem a ∈ A bzgl. R in Relation, damit ist R eine Abbildung.
Funktionen: Eigenschaften 81
• Einige Eigenschaften und erste Beweise:
– Ist f : A→ B bijektiv, dann auch f−1.
. Beweis:
. f−1 ist injektiv, da:
Fur beliebige b, b′ ∈ B gilt mit f−1(b) = f−1(b′) =: a sofort f(a) = b und f(a) = b′, alsob = b′ (sonst ware f keine Funktion).
. f−1 ist surjektiv, da:
Sei a ∈ A beliebig. Setze b := f(a). Dann gilt bereits f−1(b) = a.
Funktionen: Eigenschaften 82
• Einige Eigenschaften und erste Beweise:
– Sei f : A → B bijektiv. Dann ist f−1 die einzige Funktion g aus AB mit der Eigenschaft(g f) = IdA und (f g) = IdB .
. Beweis:
∗ Es gilt (f−1 f) = IdA, da:
Sei a ∈ A beliebig fixiert. Sei b = f(a). Dann gilt a ∈ f−1(b), also a = f−1(b) =f−1(f(a))
∗ Hat g : B → A die Eigenschaft (g f) = IdA, dann gilt g = f−1, da:
f−1 = IdA f−1 = (g f) f−1 = g (f f−1) = g IdB = g
∗ Es gilt (f f−1) = IdB , da: selber machen
∗ Hat g : B → A die Eigenschaft (f g) = IdB , dann gilt g = f−1, da: selber machen
Funktionen: Eigenschaften 83
• Einige Eigenschaften und erste Beweise:
– Fur f : A→ B und g : B → A gelte (g f) = IdA und (f g) = IdB .
Dann sind f, g bijektiv mit f−1 = g, g−1 = f .
. Beweis:
∗ f ist injektiv, da fur a, a′ ∈ A mit f(a) = f(a′) gilt:
a = IdA(a) = (g f)(a) = g(f(a)) = g(f(a′)) = (g f)(a′) = IdA(a′) = a′
∗ f ist surjektiv, da g(b) ein Urbild fur b ∈ B bzgl. f ist:
b = IdB(b) = (f g)(b) = f(g(b))
∗ Entsprechend folgt, dass g bijektiv ist.
∗ Da f−1, g−1 eindeutig, folgt f = g−1 und g = f−1.
27
– Konsequenz: Ist f bijektiv, dann gilt f = (f−1)−1.
Funktionen: Eigenschaften 84
• Einige Eigenschaften und erste Beweise:
– Sind f : A → B und g : B → C bijektiv, dann auch (g f) : A → C und es gilt (g f)−1 =(f−1 g−1).
. Beweis:
∗ Bereits gezeigt: Da f und g bijektiv, existieren f−1, g−1.
∗ Es gilt: (g f) (f−1 g−1) = IdC und (f−1 g−1) (g f) = IdA.
(g f) (f−1 g−1) = g f f−1 g−1 = g IdB g−1 = g g−1 = IdC
Entsprechend: (f−1 g−1) (g f) = IdA
∗ Wie auf letzter Folie gezeigt:
Damit sind (g f), (f−1 g−1) bijektiv mit (g f)−1 = (f−1 g−1).
Funktionen: Eigenschaften 85
• Einige Eigenschaften und erste Beweise:
– Ist (g f) : A→ C bijektiv, dann ist f : A→ B injektiv und g : B → C surjektiv.
. Beweis:
∗ Setze h := (g f). Da h bijektiv, existiert h−1.
(Das bedeutet nicht, dass f−1 : B → A, g−1 : C → B existieren.)
∗ f ist injektiv, da:
Mit f(a) = f(a′) ergibt sich h(a) = h(a) =: c und daher auch a = h−1(c) = a′.
∗ g ist surjektiv, da b = f(h−1(c)) ein Urbild von fur c ∈ C.
Funktionen: Eigenschaften 86
• Weitere Eigenschaften (Beweise zur Ubung):
– Ist f injektiv, dann ist g : A→ f(A) : a 7→ f(a) bijektiv.
– Ist f : A→ A injektiv und A endlich, dann ist f bijektiv.
– Ist f : A→ A surjektiv und A endlich, dann ist f bijektiv.
– Sind f : A→ B und g : B → C injektiv/surjektiv, dann auch (g f).
– Ist (g f) sujrektiv, dann auch g.
– Ist (g f) injektiv, dann auch f .
– Fur f : A→ B ist ≡f= (a, a′) ∈ A | f(a) = f(a′) eine Aquivalenzrelation auf A.
f : A/ ≡f→ B : a 7→ f([a]≡f) ist bijektiv, falls f surjektiv.
– f−1(X ∪ Y ) = f−1(X) ∪ f−1(Y ) und f−1(X ∩ Y ) = f−1(X) ∩ f−1(Y ).
– f(X ∪ Y ) = f(X) ∪ f(Y ), aber f(X ∩ Y ) ⊆ f(X) ∩ f(Y ).
f ist genau dann injektiv, wenn stets f(X ∩ Y ) = f(X) ∩ f(Y ).
28
1.5 Kardinalitat: Vergleiche von unendlichen Mengen
Kardinalitat von Mengen 87
. Grundlage fur den Vergleich von unendlichen Mengen:
– Eine Injektion f : A → B erlaubt es jedes Element aus a ∈ A eindeutig mit f(a) ∈ B zuidentifizieren. B hat damit anschaulich “mindestens so viele Elemente” wie A.
– Eine Bijektion f : A→ B erlaubt es, die Elemente von A und B eindeutig zu “paaren”. B hatdamit anschaulich “genau so viele” Elemente wie A.
. Man definiert daher:
–”|A| ≤ |B| (lies: B mindestens so machtig wie A)“ durch
”es gibt eine injektive Funktion f : A→ B“
–”|A| = |B| (lies: A,B gleichmachtig)“ durch
”es gibt eine bijektive Funktion f : A→ B“
– Entsprechend bedeutet”|A| < |B| (echt machtiger)“, dass es zwar eine Injektion f : A → B,
aber keine Bijektion g : A→ B gibt.
Kardinalitat von Mengen 88
. Gefahr: Machen diese Definitionen uberhaupt Sinn?
• Wenn |A| ≤ |B| und |B| ≤ |C|, gilt auch |A| ≤ |C| ?
Ja, da die Komposition injektiver Funktionen wieder injektiv ist.
• Gilt fur beliebige Mengen: wenn |A| ≤ |B| und |A| ≥ |B|, dann |A| = |B| ?
Ohne Beweis: Satz von Cantor-Bernstein-Schroder
Sind f : A→ B und g : B → A injektiv, dann gibt es h : A→ B bijektiv.
• Es folgt: |A| = |B| wenn es injektive Fuktionen f : A→ B und g : B → A gibt.
• Es folgt: |A| < |B| wenn es eine injektive Funktion f : A → B aber keine injektive Funktiong : B → A gibt.
Kardinalitat von Mengen 89
• Beispiele:
– |N| = |2N| mittels der Injektionen N→ 2N : n 7→ 2n und 2N→ N : n 7→ n, oder der Bijektion2N→ N : n 7→ n/2
– |N| = |Z| mittels der Bijektion
f : Z→ N : z 7→
2z + 1 falls z ≥ 0−2z sonst
– |N| ≤ |N0| ≤ |Z| ≤ |N|, also N,N0,Z gleichmachtig.
– |N| = |N× N| mittels der Bijektion
f : N× N→ N : (n,m) 7→ 1
2(m+ n− 1)(m+ n− 2) +m
. Damit auch: |Q| = |N|
• Man nennt eine Menge A abzahlbar, falls |A| ≤ |N|; ansonsten nennt man A uberabzahlbar.
29
Kardinalitat von Mengen 90
Bemerkungen:
• Man bezeichnet |A| als Kardinalzahl (fur A eine Menge).
• Der Satz von Cantor-Bernstein-Schroder sagt gerade, dass ≤ auf den Kardinalzahlen antisymme-trisch ist.
• Intuition: A ist abzahlbar wenn es moglich ist, jedes Element von A mit einer eindeutigen Identi-fikationsnummer (aus N) zu versehen.
• Aquivalente Intuitition: A ist abzahlbar wenn es eine (endliche order unendliche) Liste gibt, diealle Elemente von A (vielleicht mehrmals) enthalt.
Kardinalitat von Mengen: Uberabzahlbare Mengen 91
• Es gilt stets |A| < |P(A)| (Satz von Cantor).
– Mit f : A→ P(A) : a 7→ a folgt |A| ≤ |P(A)|.
Es muss noch gezeigt werden, dass es keine Bijektion f : A→ P(A) gibt.
. Beweis mittels Diagonalisierung:
Wir nehmen an, dass g : A→ P(A) bijektiv ist.
Setze M = a ∈ A | a 6∈ g(a) ∈ P(A). (*)
Da g angeblich bijektiv, gibt es ein m ∈ A mit g(m) = M .
Aber: m ∈ M genau dann, wenn m 6∈ g(m) = M , was nicht mit unseren Annahmen uberMengen vereinbar ist.
Kardinalitat von Mengen 92
• Noch mehr Beispiele:
– |0, 1∗| = |N| wegen Bijektion 0, 1∗ → N : w 7→ (1w)2, wobei (w)2 die Zahl mit binareDarstellung w bezeichnet.
– |A∗| = |N| fur jede endliche Menge A.
– Die Menge der C/Java/Python-Programme ist abzahlbar.
– |N| < |[0, 1]| wegen |N| < |P(N)| =∣∣0, 1N∣∣ = |[0, 1]|
– |(0, 1]| = |[1,∞)| wegen Bijektion [1,∞)→ (0, 1] : x→ 1/x
– |(0, 1]| = |R|
– |R| < |P(R)| ≤∣∣RR
∣∣– |N| < |P(N)| = |R| < |P(P(N))| < . . .
Kardinalitat von Mengen: Beweistechniken 93
• Fur |A| = |B|:
– Direkt: gebe eine Bijektion A→ B oder B → A an.
– Mit Hilfe des Satzes von Cantor-Bernstein-Schroder: gebe Injektionen A→ B und B → A an.(I.d.R. viel einfacher!)
30
• Fur |A| < |B|: bilde eine Kette
|A| ≤ |C1| ≤ · · · ≤ |Cn| ≤ |B|
wobei mindestens ein Glied nicht nur ≤ sondern auch < erfullt.
– Fur |Ci| ≤ |Ci+1| gebe eine Injektion an (Spezialfall: Ci ⊆ Ci+1).
– Fur |Ci| < |Ci+1| benutze den Satz von Cantor.
1.5.1 Multimengen
Multimengen 94
• Menge”=“ Zusammenfassung von Objekten ohne Beachtung von Vielfachheiten und Reihenfolge
• Multimenge”=“ Zusammenfassung von Objekten ohne Beachtung der Reihenfolge, aber unter
Beachtung von Vielfachheiten.
. In Datenbanken werden Multimengen auch als”Bags“ bezeichnet: eine Tasche beachtet die Viel-
fachheit eines Objekts, aber eben nicht die Reihenfolge (”set semantics“ vs.
”bag semantics“)
. Haufig verwendet man auch”“ zur Notation von Multimengen, wenn klar ist, dass eine Multi-
menge gemeint ist.
Im Folgenden jedoch”M“ fur Multimengen:
. Beispiel:a, b, c, aM = b, c, a, aM 6= b, a, cM
= a, b, c = a, b, b, c 6= a, b, b, cM
Multimengen 95
• Fur ein festes Universum (Grundmenge) Ω lassen sich Multimengen mittels Zahlfunktionen m ∈ NΩ0
darstellen
. Z.B. fur Ω = a, b, c, d:a, b, c, aM = (a, 2), (b, 1), (c, 1), (d, 0)
. Eine Menge A ⊆ Ω lasst sich entsprechend als Funktion 0, 1Ω auffassen; diese Funktion nenntman die charakteristische Funktion von A (aus diesem Grund schreibt man auch haufig 2Ω furP(Ω)).
• Die Vereinigung zweier Multimengen ist dann einfach die punktweise Addition der Zahlfunktionen.
. Der Schnitt zweier Multimengen kann z.B. als das punktweise Minimum der Zahlfunktionen defi-niert werden.
1.6 Zusammenfassung
Grundlagen – Zusammenfassung 96
• Zusammenfassung von Objekten:
– ohne Beachtung von Reihenfolge&Vielfachheiten:
Mengen
– unter Beachtung von Reihenfolge&Vielfachheiten:
Tupel, Worter, Sequenzen, Folgen, Funktionen f ∈ AN ∪⋃
k∈N0A[k]
31
– ohne Beachtung von Reihenfolge, unter Beachtung von Vielfachheiten:
Multimengen, Zahlfunktionen f : A→ N0
– unter Beachtung der Reihenfolge, ohne Beachtung von Vielfachheiten:
inkjetkive Funktionen f ∈ AN ∪⋃
k∈N0A[k]
• Mengen:
– Grundlage fur alle anderen Zusammenfassungen, Relationen, Funktionen
– Operationen: Schnitt, Vereinigung, Differenz, sym. Differenz, Komplement (bzgl. Grundmen-ge), Potenzmenge
– Visualisierung: Venn-Diagramme, KV-Diagramme
• Relationen: R ⊆ A1 ×A2 × . . .×Ak
– Grundlage fur relationale Datenbanken, Funktionen, Ordnungen
– Operationen (neben Mengenoperationen): Join, Projektion, Konkatenation, relationales Pro-dukt, (reflexive-)transitive Hulle
– Visualierung: Digraph
• Ordnungen: R ⊆ A×A
– R reflexiv, antisymmetrisch und transitiv
– Grundlage fur Optimierung/Maximierung/Minimierung, Anordnung von Suchergebnissen, etc.
– Visualisierung: Hasse-Diagramm
• Aquivalenzrelationen: R ⊆ A×A
– R reflexiv, symmetrisch und transitiv
– Grundlage fur Abstraktion
– Visualisierung: Digraph, Aquivalenzklassen
• Funktionen: f : A→ B = BA ⊆ A×B
– Grundlage fur Beschreibung von Eingabe-Ausgabe-Verhalten von Programmen
– Visualisierung: Funktionsgraph (manchmal Digraph als Relation)
• Kardinalitat:
– Vergleich von Mengen bzgl. der Anzahl der zusammengefassten Objekte
– |A| ≤ |B|, falls f : Ainjektiv−−−−−→ B existiert.
– |A| = |B|, falls |A| ≤ |B| und |B| ≤ |A|,
oder falls f : Abijektiv−−−−−→ B existiert.
32