1 Grundlagen - TUMMengen in der Informatik 7. Reihenfolge der Objekte, mehrfache Nennung von...

32
1 Grundlagen ¨ Uberblick 2 1. Mengen 2. Relationen 3. Funktionen 4. Kardinalit¨ at von Mengen 1.1 Einf¨ uhrung Ziel und Motivation 3 Grundvokabular“ der Mathematik lernen. Nat¨ urliche Sprache oft zweideutig Mathematische Sprache erlaubt die pr¨ azise Definition von mathematischen Objekten und die pr¨ azise Formulierung von S¨ atzen und Resultaten. Ziele und Motivation 4 . In der Informatik: Mengen, Relationen, Funktionen etc. Grundlage f¨ ur 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, B¨ aume, Hash-Tabelle, . . . ) Beispiel: Mengen, Tupel und W¨ orter 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

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