Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.

Ähnliche Präsentationen


Präsentation zum Thema: "1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische."—  Präsentation transkript:

1 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische Begriffe (u.a. Menge, Funktion) und die dazugehörenden formale Notationen in Erinnerung. Themen Mengen Relationen Funktionen Quantoren und logische Opertoren Ordnungen induktiv definierte Mengen Maßeinheiten

2 Wofür braucht man eine Formelsprache? Viele Jahrhunderte betreib man Mathematik ohne eine spezielle Formelsprache. Aufgaben wie 3*27 +x² = 106 wurden verbal formuliert. Lösungen wurden häufig durch Ausprobieren und schrittweise Näherungen ermittelt. Doppelter falscher Ansatz (Regula falsi): Rate für x zwei Werte und setze diese ein. Mache abhängig von den Abweichungen neue Schätzungen. (Iterationsverfahren!!) Heute: Formelsprache verständlicher Formelmanipulation möglich Mathematik: folgt noch Musik: Noten Chemie: Formeln Tanzen:Tanzschritte Schach:Schachnotation … Adam Ries: Rechenbüchlein La Cachucha, F. A. Zorn: Wikimedia Commons

3 Mengen x  M x  M x 1,..., x n  M x 1  M und... und x n  M Definition: Menge Eine Menge ist eine Zusammenfassung von (endlich oder unendlich vielen) verschiedenen Dingen, welche Elemente dieser Menge genannt werden. Definition: Menge Eine Menge ist eine Zusammenfassung von (endlich oder unendlich vielen) verschiedenen Dingen, welche Elemente dieser Menge genannt werden. das Ding x ist Element der Menge M x ist Element von M x ist in M M enthält x x ist kein Element von M x ist nicht in M M enthält x nicht

4 Notation von Mengen M = { x 1,..., x n } falls die Menge M genau die Elemente x 1,..., x n enthält. M = { x | p(x) } Das heißt, M ist die Menge, die all diejenigen Objekte x enthält, welche die Bedingung p(x) erfüllen. Beispiele:  = { } die leere Menge Bool = { T, F } Menge der Wahrheitswerte Nat =  = { 1, 2, 3,... }Menge aller natürlichen Zahlen UInt =  0 = { 0,1, 2, 3,... }( unsigned int )Menge aller natürlichen Zahlen mit 0 Int =  = {..., -3, -2, -1, 0, 1, 2, 3,... }Menge der ganzen Zahlen Rational =  = { }Menge aller rationalen Zahlen Real =  = { }Menge aller reellen Zahlen Even = { x | x   und x gerade } = { 2  x | x   } Odd = { x | x   und x ungerade } = { 2  x + 1 | x   }

5 Mengenoperationen M 1  M 2 = { x | x  M 1 oder x  M 2 } M 1  M 2 = { x | x  M 1 und x  M 2 } Vereinigung Durchschnitt M 1 \ M 2 = { x | x  M 1 und x  M 2 } Differenz Beispiele Even  Odd = Int Even  Odd = { } Nat = UInt \ { 0 } { 2,3,5,7 }  { 2,4,6,8 } = { 2,3,4,5,6,7,8 } { 2,3,5,7 }  { 2,4,6,8 } = { 2 } M1M1 M2M2 M 1  M 2 M 1  M 2 M 1 \ M 2 M 2 \ M 1

6 Teilmengen und Gleichheit Definition: Teilmenge / Obermenge Eine Menge M ist eine Teilmenge einer Menge N, wenn jedes Element von M auch zu N gehört. Notation: M  N   M ist eine Teilmenge von N, N ist Obermenge von M. Definition: Teilmenge / Obermenge Eine Menge M ist eine Teilmenge einer Menge N, wenn jedes Element von M auch zu N gehört. Notation: M  N   M ist eine Teilmenge von N, N ist Obermenge von M. Definition: Gleichheit von Mengen Zwei Mengen M und N sind gleich, geschrieben M = N, wenn sowohl M  N als auch N  M gilt. Definition: Gleichheit von Mengen Zwei Mengen M und N sind gleich, geschrieben M = N, wenn sowohl M  N als auch N  M gilt. Anmerkung Um nachzuweisen, dass zwei Mengen M und N gleich sind, zeigt man: i) N  M (d.h., jedes Element aus N ist auch in M enthalten) und ii) M  N (d.h., jedes Element aus M ist auch in N enthalten)

7 Teilmengen und Gleichheit Beispiele : Für k  Nat, k  0, sei kNat = { x  Nat | k teilt x } 2Nat= { 2, 4, 6, 8,.... } 3Nat= { 3, 6, 9, 12.... } 6Nat= { 6, 12, 18, 24,.... } Dann gilt: 6Nat  3Nat 6Nat  2Nat und somit 6Nat  3Nat  2Nat es gilt aber auch: 3Nat  2Nat  6Nat und somit 6Nat = 3Nat  2Nat x ist Vielfaches von k.

8 Kartesische Produkte Definition: n-Tupel (Array, Liste mit n Elementen) Sind x 1  M 1,..., x n  M n Elemente von Mengen M 1,...,M n, so lässt sich ein neuartiges zusammengesetztes Element (x 1,...,x n ) bilden, ein n-Tupel. Im Fall n = 2 heißt das aus x und y gebildete Paar (x,y) Tupel oder geordnetes Paar. Im Fall n = 3 sagt man Tripel, im Fall n=4 von Quatrupel, im Fall n=5 Quintupel. Definition: n-Tupel (Array, Liste mit n Elementen) Sind x 1  M 1,..., x n  M n Elemente von Mengen M 1,...,M n, so lässt sich ein neuartiges zusammengesetztes Element (x 1,...,x n ) bilden, ein n-Tupel. Im Fall n = 2 heißt das aus x und y gebildete Paar (x,y) Tupel oder geordnetes Paar. Im Fall n = 3 sagt man Tripel, im Fall n=4 von Quatrupel, im Fall n=5 Quintupel. Beispiel : UInt  Bool = { (0,T), (0,F), (1,T), (1,F), (2,T), (2,F),... } Definition: Kartesisches Produkt (Produktmenge) Sind M 1,...,M n Mengen, so heißt die Menge: M 1 ...  M n = { (x 1,...,x n ) | x 1  M 1,..., x n  M n } das kartesische Produkt von M 1,...,M n Definition: Kartesisches Produkt (Produktmenge) Sind M 1,...,M n Mengen, so heißt die Menge: M 1 ...  M n = { (x 1,...,x n ) | x 1  M 1,..., x n  M n } das kartesische Produkt von M 1,...,M n Definition: Gleichheit zwischen n-Tupel (x 1,...,x n ) = (y 1,...,y m ) genau dann, wenn n = m und x 1 = y 1 und x 2 = y 2 und... und x n = y m Definition: Gleichheit zwischen n-Tupel (x 1,...,x n ) = (y 1,...,y m ) genau dann, wenn n = m und x 1 = y 1 und x 2 = y 2 und... und x n = y m

9 Mengenpotenzen Definition: Mengenpotenz Ist M 1 = M 2 =... = M n = M, so heißt die Menge M n mit M  M ...  M = M n n-mal die n-te Potenz von M. Die Elemente von M n heißen auch Folgen der Länge n über M. Beispiele: M 0 ist eine einelementige Menge, die nur das 0-Tupel () enthält, also ist M 0 = { ( ) } für jede Menge M. Bool 3 = { (F,F,F), (F,F,T), (F,T,F), (F,T,T), (T,F,F), (T,F,T), (T,T,F), (T,T,T) }  2 = 2-dimensionaler Raum,  3 = 3-dimensionaler Raum  2 = { (1,1), (1,2), (1,3),... (2,1), (2,2), (2,3),... … }

10 Potenzmenge Definition: Potenzmenge Ist M eine Menge, so ist die Menge aller Teilmengen von M die Potenzmenge  (M) von M, also:  (M) := { N | N  M }. Definition: Potenzmenge Ist M eine Menge, so ist die Menge aller Teilmengen von M die Potenzmenge  (M) von M, also:  (M) := { N | N  M }. Beispiele –  ( {1,2,3} ) = {  {1}  {2}  {3}  {1,2}  {1,3}, {2,3}, {1,2,3} } –  (Bool) = { { }  { T }, { F }, { T, F } } Achtung: Potenzmenge ist nicht zu verwechseln mit Mengenpotenz !!!

11 Mächtigkeit von Mengen Fall 1: M hat nur endlich viele Elemente. Dann kann man M eine natürliche Zahl n zuordnen, wobei n die Anzahl der Elemente von M angibt. Schreibweise: |M| = n. Fall 2: M hat unendlich viele Elemente. Dann gibt es keine natürliche Zahl n, die die Anzahl der Elemente von M angibt. Aber: Oft kann man durch Angabe einer 1:1-Zuordnung die Menge M mit der Menge der natürlichen Zahlen  oder der Menge reellen Zahlen  vergleichen. Findet man z.B. eine derartige Abbildung zwischen M und , dann hat M genauso viele Elemente wie , d.h.: gilt |M| = |  |. Wenn |M| = |  | heißt M abzählbar, wenn |M| = |  | heißt M überabzählbar. Definition: Mächtigkeit einer Menge Die Mächtigkeit oder Kardinalität einer Menge ist M ein Maß für deren Größe. Sie gibt an wie viele Elemente M besitzt. Definition: Mächtigkeit einer Menge Die Mächtigkeit oder Kardinalität einer Menge ist M ein Maß für deren Größe. Sie gibt an wie viele Elemente M besitzt.

12 Mächtigkeit von Mengen Beispiele – |{a,b,c}| = 3 – |  – |Bool| = |{T,F}|= 2, |SQLBool| = |{T,F,U}| = 3 (U=Unknown, 3-wertige Logik) – |  | ist abzählbar – |  | = |  | – |  | ist überabzählbar, |  |  |  | – |  ({1,2,3}) | = 8 = 2 3 ;;; Mächtigkeit der Potenzmenge  ({1,2,3})

13 Relationen Definition: k-stellige Relation Eine k-stellige Relation R ist eine Teilmenge eines kartesischen Produktes M 1  M 2 ...  M k. Ist R  M k, so heißt R eine k-stellige Relation auf M. Definition: k-stellige Relation Eine k-stellige Relation R ist eine Teilmenge eines kartesischen Produktes M 1  M 2 ...  M k. Ist R  M k, so heißt R eine k-stellige Relation auf M. Beispiel: R  {1,2,3} x {a,b,c,d} mit R = {(1,a), (1,d), (2, b), (2,d), (4,b), (4,d)} M 1 Beziehung zwischen Elementen 1 M2M2 2 4 a b c d 3

14 Relationen Definition: Charakteristisches Prädikat Ist R  M 1  M 2 ...  M k eine Relation, so können wir das charakteristische Prädikat  R dieser Relation definieren:  R (m 1,..., m k ) = { Ist umgekehrt  ein Prädikat auf  M 1  M 2...  M k, dann können wir eine zu diesem Prädikat gehörende Relation R P definieren: R  = { (m 1,..., m k ) |  (m 1,..., m k ) = T } Definition: Charakteristisches Prädikat Ist R  M 1  M 2 ...  M k eine Relation, so können wir das charakteristische Prädikat  R dieser Relation definieren:  R (m 1,..., m k ) = { Ist umgekehrt  ein Prädikat auf  M 1  M 2...  M k, dann können wir eine zu diesem Prädikat gehörende Relation R P definieren: R  = { (m 1,..., m k ) |  (m 1,..., m k ) = T } T falls (m 1,..., m k )  R F sonst Beispiel R  {1,2,3} x {a,b,c,d}, mit R = {(1,a), (1,d), (2, b), (2,d), (3,b), (3,d)} dann gilt u.a.:  R (1,a) = T aber  R (1,c) = F

15 Definition: Funktion (auch „eindeutige Abbildung“ oder Operation) Es seien A und B Mengen. Eine Funktion f von A nach B ordnet jedem Element x aus A genau ein Element y aus B zu. A heißt Definitionsbereich (oder Urbildbereich) von f und B heißt Wertebereich (oder Bildbereich) von f. Notation und Sprechweise: Definition: Funktion (auch „eindeutige Abbildung“ oder Operation) Es seien A und B Mengen. Eine Funktion f von A nach B ordnet jedem Element x aus A genau ein Element y aus B zu. A heißt Definitionsbereich (oder Urbildbereich) von f und B heißt Wertebereich (oder Bildbereich) von f. Notation und Sprechweise: Funktionen Beispiel 1 Es seien A=Nat und B=Nat: succ : Nat  Nat succ(x) = x+1 bzw. x  x+1 T, falls n gerade F, falls n ungerade Beispiel 2 even : Nat  Bool even(n) = { f : A  B „f ist eine Funktion von A nach B“ f(x) = y „ f angewandt auf x liefert den Wert y“ x  y „x wird auf y abgebildet“

16 Funktionen Bemerkung Eine Funktion ist eine spezielle Relation, das heißt eine Menge von Paaren: – f  D f  W f – Für jedes Element aus D f enthält f genau ein Element aus D f  W f. Beispiel f:   , f(x) = x² Das heißt: f = {(1,1), (2,4), (3,9), (4,16), (5, 25), …}    .

17 Eigenschaften von Funktionen Definition: surjektive Funktion Eine Funktion f : A  B ist surjektiv, (oder f ist eine Surjektion) genau dann, wenn gilt: Für jedes y  B gibt es stets ein x  A mit f(x) = y. Definition: surjektive Funktion Eine Funktion f : A  B ist surjektiv, (oder f ist eine Surjektion) genau dann, wenn gilt: Für jedes y  B gibt es stets ein x  A mit f(x) = y. Beispiele abs: Int  UInt, abs(x) = x>0 ? x : -x mod2 : Int  {0, 1}, mod2(x) = 0, falls x gerade 1, falls x ungerade x x x x x A B f Jedes Element aus B bekommt mindestens einen Pfeil ab.

18 Eigenschaften von Funktionen Beispiel nachfolger : UInt  UInt, mit nachfolger(x) = x + 1 0 bekommt keinen Pfeil ab! Wenn f injektiv ist, ist f ist umkehrbar: f -1 : f(A)  A, f(A) := {f(a): a  A}, d.h., man kann die Pfeile umdrehen. Der Wertebereich ist die Menge der blauen Kästchen. Wichtig z.B. für Codes: Nur injektive Codes können dekodiert werden. x x x x x AB f Jedes Element aus B bekommt höchstens einen Pfeil ab. Definition: injektive Funktion Eine Funktion f : A  B ist injektiv, (oder f ist eine Injektion) genau dann, wenn gilt: für x 1, x 2  A gilt: ist f(x 1 ) = f(x 2 ), dann ist auch x 1 = x 2. Definition: injektive Funktion Eine Funktion f : A  B ist injektiv, (oder f ist eine Injektion) genau dann, wenn gilt: für x 1, x 2  A gilt: ist f(x 1 ) = f(x 2 ), dann ist auch x 1 = x 2. x x

19 Eigenschaften von Funktionen Definition: bijektive Funktion Eine Funktion f : A  B ist bijektiv (oder f ist eine Bijektion) genau dann, wenn gilt: f ist surjektiv und f ist injektiv Definition: bijektive Funktion Eine Funktion f : A  B ist bijektiv (oder f ist eine Bijektion) genau dann, wenn gilt: f ist surjektiv und f ist injektiv x x x x x AB f Alle Elemente aus B werden von genau einem Pfeil getroffen. Eigenschaften bijektiver Funktionen: Ist f : A  B bijektiv, dann: lässt sich zu f eine Umkehrfunktion f -1 : B  A angeben (d.h., man kann die Pfeile auch umdrehen); der Wertebereich ist B. müssen die Mengen A und B gleich viele Elemente umfassen.

20 Mächtigkeit von Mengen Frage: Wie überprüft man, ob eine Menge M genauso viele Elemente hat wie Nat? Antwort: Man prüft, ob eine Bijektion f : M   existiert. Falls es solch eine Bijektion gibt, dann gilt: |M| = |  | d.h., M hat genauso viele Elemente wie , d.h. M ist abzählbar. Beispiel Behauptung: Die Menge der geraden natürlichen Zahlen GNat ist ebenso mächtig wie die Menge der natürlichen Zahlen Nat. Die Behauptung ist richtig, da es eine Bijektion gibt: f : GNat  Nat: f(x) =  ½ * x 2  1 = ½ * 2 4  2 = ½ * 4 6  3 = ½ * 6 8  4 = ½ * 8 …

21 Partielle Funktionen Definition: partielle Funktion Eine partielle Funktion aus A nach B ist eine Funktion f : D f  B, wobei D f  A. Definition: partielle Funktion Eine partielle Funktion aus A nach B ist eine Funktion f : D f  B, wobei D f  A. Beispiele pred : Nat  Nat, D pred = { x  Nat | x > 0 }, pred(x) = x - 1 log : Real  Real, D log = { x  Real | x > 0 } x x x x x x x x A B DfDf f Wichtig für Programmiersprachen, da diese nicht so viele Datentypen kennen.

22 Gleichheit von Funktionen Definition Sind f 1 : A 1  B 1 und f 2 : A 2  B 2 Funktionen, dann gilt f 1 = f 2 gdw: Definition Sind f 1 : A 1  B 1 und f 2 : A 2  B 2 Funktionen, dann gilt f 1 = f 2 gdw: (i) D(f 1 ) = D( f 2 ) (ii) W(f 1 ) = W( f 2 ) (iii) Für jedes x  D( f 1 ) gilt : f 1 (x) = f 2 (x). Beispiel min1 : Int  Int  Int min1(x,y) =  { min2 : Int  Int  Int min2(x,y) = { x falls x < y y sonst x falls x ≤ y y sonst Es gilt min1 = min2, da min1(x,y) = min2(x,y) für alle x, y  Int.

23 Funktionen/Operationen/Abbildungen Beispiele : + : Nat  Nat  Nat +(x,y) bzw. x+y Funktions-/Operatorschreibweise min : Int  Int  Int min(x,y) = { x falls x < y y sonst if : Bool  Nat  Nat  Nat if(b,x,y) =  { x falls b=T y falls b=F Definition: n-stellige Funktion/Operation/Abbildung Eine Funktion f : A 1  A 2 ...  A n  B heißt auch n-stellige Funktion, Operation oder Abbildung. Die Stelligkeit einer solchen Funktion/Operation/Abbildung ist n. Man sagt auch, f hat n Argumente. Eine Abbildung f : A n  A heißt n-stellige innere Funktion/Operation/Abbildung auf A. Definition: n-stellige Funktion/Operation/Abbildung Eine Funktion f : A 1  A 2 ...  A n  B heißt auch n-stellige Funktion, Operation oder Abbildung. Die Stelligkeit einer solchen Funktion/Operation/Abbildung ist n. Man sagt auch, f hat n Argumente. Eine Abbildung f : A n  A heißt n-stellige innere Funktion/Operation/Abbildung auf A.  : Real  Real  = y, wenn y² = x D(  ) = { x | x >= 0 }

24 Schreibweisen für Funktionsaufrufe Präfix-Schreibweise: f(x,y,z) (übliche Funktionsschreibweise) Infix-Schreibweise: x f y (z. B.: x+y) x f 1 y f 2 z (z. B.: b ? x : y = if(b,x,y)) Postfix-Schreibweise: x y z f (z. B.: die Fakultätsfunktion n!, x‘ = NOT(x) ) Gemischte Schreibweise: x f (y, z) (z. B.: wolfgang.alter('2009/10/15') ) f 1 x f 2 y f 3 z (z. B.: if b then x else y = if(b,x,y)) Anmerkungen Je nach Schreibweise bevorzugt man den Begriff Funktion oder Operation. Darüber hinaus gibt es weitere Spezialformen. Zum Beispiel: (sprich „x quer“) für NOT(x) oder ¬x.

25 Funktionen in Programmiersprachen Funktionen sind ein zentraler Bestandteil so gut wie aller Programmiersprachen. Vorteile – der Code wird kürzer (Eine Funktion wird einmal definiert und beliebig oft aufgerufen.) – Abstraktion (Details der Funktionsdefinition werden „gekapselt“.) – Mächtigkeit (Eine Funktion kann rekursiv (induktiv) definiert werden, Funktionen können an andere Funktionen als Argumente übergeben werden.)

26 Funktionen in Programmiersprachen Eine Funktion besteht aus zwei Teilen: Signatur und Implementierung. Signatur Name der Funktion Typen der Parameter (= Definitionbereich) meist auch Namen der Parameter Ergebnistyp der Funktion (= Wertemenge) Implementierung Festlegung der Berechnungsvorschrift, d.h. Angabe eines Algorithmuses zur Berechnung der Funktionswerte. Beispiel (AS3) {var result: Number = 0.0; var s: Number = 1.0; var i: int = 1; while (i < 12) { result += s*pow(x,i)/fak(i); i +=2; s=-s; }; return result; } Beispiel sin :   [-1,1] (Mathe) double sin(double x) (JAVA) sin(x: Number): Number (AS3) Taylorreihe (für Sinusberechnung, es gibt bessere Algorithmen): Große/negative x -Werte sollten ins Intervall [0,  /2] verschoben werden: sin(x+n  ) = sin(x), sin(  +x) = sin(  -x), sin(  x) =  sin(x).

27 Funktionen, Prozeduren, Methoden Definition Seiteneffekt: Der Zustand des Programms wird geändert. Beispiele: Variableninhalt, Dateiinhalt, Bildschirmausgabe ändern. Definition Seiteneffekt: Der Zustand des Programms wird geändert. Beispiele: Variableninhalt, Dateiinhalt, Bildschirmausgabe ändern. In Programmiersprachen gibt es: – Funktion: Ergebnis, keine Seiteneffekte (z.B. sin(x) ) Signatur: function sin(x: double): double; (Delphi) – Prozedur: kein Ergebnis, Seiteneffekte (z.B. print("Hallo") ) Signatur: procedure print(const x: String); (Delphi) – gemischt: Funktion+Prozedur: Ergebnis und/oder Seiteneffekt Meist erlaubt (JAVA, C/C++, AS3 …), Trick: Datentyp void. Signatur: void print(String x) (JAVA) print(x: String): void (AS3) – Methode: Funktion/Prozedur mit Extraparameter ( this, self, me ). Die Definition einer Methode erfolgt innerhalb einer Klassen oder innerhalb eines bestimmten Objektes.

28 Funktionen, Prozeduren, Methoden Beispiel „Deklarieren Sie eine Funktion/Methode/…“ heißt „Geben Sie die Signatur der Funktion/Methode/… an.“ „Definieren Sie eine Funktion/Methode/…“ heißt „Geben Sie Signatur und Implementierung der Funktion/Methode/… an“. Alternativbezeichungen – (Funktions-/Prozedur-/Methoden-)Kopf = Header = Signatur – (Funktions-/Prozedur-/Methoden-)Rumpf = Body = Implementierung Definitionen Deklaration einer …= Angabe der Signatur von … Definition einen … =Angabe der Signatur und der Implementierung von … Definitionen Deklaration einer …= Angabe der Signatur von … Definition einen … =Angabe der Signatur und der Implementierung von …

29 Funktionen, Prozeduren, Methoden Definitionen Parameter = Name einer Variablen in einer Funktions/…-Signatur. Argument = Wert der bei einem Funktions/…-Aufruf übergeben wird. Definitionen Parameter = Name einer Variablen in einer Funktions/…-Signatur. Argument = Wert der bei einem Funktions/…-Aufruf übergeben wird. Beispiele Gegeben sei die Signatur sin(x: Number): Number. x ist ein (der) Parameter der Funktion. 3*PI ist das Argument des Funktionsaufrufes sin(3*PI). Das heißt, die Variable x hat während der Berechnung des Ergebnisses den Wert 9.4247778. sin(2) ist das Argument des Funktionsaufrufes cos(sin(2)). Die Prozedur void move(int x, int y) hat zwei Parameter: x und y. Wenn a=4 gilt, so sind 50 und 8 die Argumente des Aufrufes move(50,2*a).

30 Projektionen p 2 : Int  Int  Int (x,y)   y Anwendung: z.B. Bestimmung der y-Koordinate eines Bildschirmpunktes. Definition: Projektion Es seien folgende Funktionen gegeben: p 1 : M 1  M 2 ...  M m  M 1... p m : M 1  M 2 ...  M m  M m Wenn p i das i-te Element aus dem Tupel extrahiert p i (x 1,..., x m )  x i  M i heißt p i die i-te Projektion des n-Tupels (x 1,..., x m ). Definition: Projektion Es seien folgende Funktionen gegeben: p 1 : M 1  M 2 ...  M m  M 1... p m : M 1  M 2 ...  M m  M m Wenn p i das i-te Element aus dem Tupel extrahiert p i (x 1,..., x m )  x i  M i heißt p i die i-te Projektion des n-Tupels (x 1,..., x m ). Beispiel

31 Komposition von Funktionen Definition: Komposition von Funktionen Sind f : A  B und g : B  C Funktionen, so ist die Komposition g  f definiert als Hintereinanderausführung von f und g: g  f :  m   g(f(m)) (m  A, g(f(m))  C) D g  f = { x | x  D f und f(x)  D g } Die Komposition ist auch eine Funktion. Definition: Komposition von Funktionen Sind f : A  B und g : B  C Funktionen, so ist die Komposition g  f definiert als Hintereinanderausführung von f und g: g  f :  m   g(f(m)) (m  A, g(f(m))  C) D g  f = { x | x  D f und f(x)  D g } Die Komposition ist auch eine Funktion. f : A  B g : B  C g  f : A   C x x x x x x x x A B f C g Erst alle Elemente x aus A mit f nach B abbilden, dann die f(x) aus B mit g nach C abbilden. g(f(x))   y  C

32 Komposition von Funktionen Beispiel Aus den Operationen f 2 : Int  Int  Int (x,y)   y f 1 : Nat  Nat +  Nat (x,y)   x div y erhält man die zweistellige Operation : (x,y)   (x div y) * y. g : Int  Int  Int (x,y)   x * y Definition: Verallegemeinerte Komposition Es seien f 1 : A 1  A 2  A 3 ...  A m  B 1... f k : A 1  A 2  A 3 ...  A m  B k und g : B 1  B 2 ...  B k  C Funktionen. Dann definiert man durch die Zuordnung (x 1,..., x m )  g(f 1 (x 1,..., x m ),..., f k (x 1,..., x m )) eine Funktion mit der Funktionalität A 1  A 2 ...  A m  C Definition: Verallegemeinerte Komposition Es seien f 1 : A 1  A 2  A 3 ...  A m  B 1... f k : A 1  A 2  A 3 ...  A m  B k und g : B 1  B 2 ...  B k  C Funktionen. Dann definiert man durch die Zuordnung (x 1,..., x m )  g(f 1 (x 1,..., x m ),..., f k (x 1,..., x m )) eine Funktion mit der Funktionalität A 1  A 2 ...  A m  C

33 Spezialfall: Prädikate (Boole‘sche Funktionen) pyth : Nat  Nat  Nat  Bool pyth(x,y,z) = { Es gilt z.B.: pyth(3, 4, 5); es gilt nicht: pyth (7, 11, 13) T falls x 2 + y 2 = z 2 F sonst even : Nat  Bool even(x) = { Es gilt even(42) und ¬even(43). T falls x gerade F sonst Beispiele = : Nat  Nat  Bool =(x,y) = { Es gilt =(3, 3) bzw. 3 = 3 T falls x = y F sonst Definition: Prädikat Eine Funktion p : A 1  A 2...  A n  Bool heißt Prädikat auf A 1  A 2...  A n. Ist A 1 = A 2 =... = A n = A, so heißt P ein n - stelliges Prädikat auf A. Ist p ein Prädikat, und gilt p(x 1,..., x n ) = T (True), so schreibt man auch nur p(x 1..., x n ). Definition: Prädikat Eine Funktion p : A 1  A 2...  A n  Bool heißt Prädikat auf A 1  A 2...  A n. Ist A 1 = A 2 =... = A n = A, so heißt P ein n - stelliges Prädikat auf A. Ist p ein Prädikat, und gilt p(x 1,..., x n ) = T (True), so schreibt man auch nur p(x 1..., x n ).

34 Quantoren und logische Operatoren Definition: Es seien M eine Menge und p ein Prädikat, dann bezeichnet:  x  M : p(x) den All-Quantor („Für alle x  M gilt p(x)“)  x  M : p(x) den Existenz-Quantor („Es gibt ein x  M mit p(x)“) Definition: Es seien M eine Menge und p ein Prädikat, dann bezeichnet:  x  M : p(x) den All-Quantor („Für alle x  M gilt p(x)“)  x  M : p(x) den Existenz-Quantor („Es gibt ein x  M mit p(x)“) Definition Es seien M eine Menge und P und Q Prädikate, dann definiert man die logischen Operatoren: logisch UND  : Bool x Bool  Bool P  Q logisch ODER  : Bool x Bool  Bool P  Q logisch NICHT  : Bool x Bool  Bool  P Definition Es seien M eine Menge und P und Q Prädikate, dann definiert man die logischen Operatoren: logisch UND  : Bool x Bool  Bool P  Q logisch ODER  : Bool x Bool  Bool P  Q logisch NICHT  : Bool x Bool  Bool  P  FTFFFTFT FTFFFTFT  FTFFTTTT FTFFTTTT  FTTF FTTF PP QQ P

35 Logische Operatoren Weitere Notationen für logische Operatoren Gebräuchlich ist auch die Verwendung folgender alternativer Schreibweisen: – logisch UND PQ oder nur PQ statt P  Q – logisch ODER P + Q" statt P  Q – logisch NICHT P' oder statt  P Weitere Notationen für logische Operatoren Gebräuchlich ist auch die Verwendung folgender alternativer Schreibweisen: – logisch UND PQ oder nur PQ statt P  Q – logisch ODER P + Q" statt P  Q – logisch NICHT P' oder statt  P Alternative Darstellung der Wahrheitstafel einer Verknüpfung:  FTFFFTFT FTFFFTFT P Q P Q P  Q FFF FTF TFF TTT gleiche Bedeutung

36 Logische Operatoren Definition: Implikation P  Q Es seien M eine Menge und P und Q Prädikate dann impliziert das Prädikat P das Prädikat Q falls gilt: Wenn P = T dann Q = T Notation: P  Q Definition: Äquivalenz P  Q Die Prädikate P und Q heißen äquivalent, genau dann wenn gilt: P  Q und Q  P Definition: Implikation P  Q Es seien M eine Menge und P und Q Prädikate dann impliziert das Prädikat P das Prädikat Q falls gilt: Wenn P = T dann Q = T Notation: P  Q Definition: Äquivalenz P  Q Die Prädikate P und Q heißen äquivalent, genau dann wenn gilt: P  Q und Q  P  FTFTTTFT FTFTTTFT P Q Vorsicht! Aus P  Q folgt NICHT die Gültigkeit von Q  P.  FTFTFTFT FTFTFTFT Q P

37 Ordnungen Definition: Sei p: M  M  Bool ein 2-stelliges Prädikat in (Infix-Notation). p heißt: i) reflexiv genau dann, wenn  x  M : x p x ii) antisymmetrisch gdw  x,y  M : x p y  y p x  x = y iii) transitiv gdw  x, y, z  M : x p y  y P z  x p z – Eine partielle Ordnung ist eine Relation, die von einem reflexiven, anti-symmetrischen und transitiven Prädikat induziert wird. – Eine totale Ordnung ist eine partielle Ordnung, in der zusätzlich gilt:  x,y    M : x p y  y p x Definition: Sei p: M  M  Bool ein 2-stelliges Prädikat in (Infix-Notation). p heißt: i) reflexiv genau dann, wenn  x  M : x p x ii) antisymmetrisch gdw  x,y  M : x p y  y p x  x = y iii) transitiv gdw  x, y, z  M : x p y  y P z  x p z – Eine partielle Ordnung ist eine Relation, die von einem reflexiven, anti-symmetrischen und transitiven Prädikat induziert wird. – Eine totale Ordnung ist eine partielle Ordnung, in der zusätzlich gilt:  x,y    M : x p y  y p x

38 Ordnungen induziert eine totale Ordnung auf Nat induziert eine partielle Ordnung auf Nat +, aber keine totale Ordnung induziert eine partielle Ordnung auf P(M), aber keine totale Ordnung  : Nat  Nat  Bool induziert keine Ordnung auf Nat („<„ ist nicht reflexiv) < : Nat  Nat  Bool  | : Nat +  Nat +  Bool  : P(M) x P(M)  Bool mit x | y = „x teilt y“ lexikographische Ordnung zwischen Wörtern (z.B. Aachen  Berlin  Zwickau)  : A *  A *  Bool A = {a,..., z, A,…, Z, 0,..., 9}

39 Induktive Definitionen von Mengen In der Informatik hat man es häufig mit Mengen zu tun, die nach einem Baukastenprinzip konstruiert sind. Man bezeichnet diese dann als induktiv definierte Mengen. Man beginnt mit einer Menge von Basiselementen und gibt eine Methode an, mit der aus bereits vorrätigen Elementen neue erzeugt werden können. Die Elemente der Menge sind dann genau alle diejenigen Objekte, die man in endlich vielen Schritten so gewinnen kann. Beispiel: Lego mit etwas eigenartigen Spielregeln: – A sei eine Menge von „Bauklotztypen“ (von jedem Klotztyp gibt es beliebig viele Exemplare). – Die Erzeugungsmethode entspricht dem Zusammenstecken von einzelnen Klötzen bzw. von bereits konstruierten Gebilden. Im letzteren Fall hat man sowohl dieTeilgebilde als auch das neu entstandene. – Als Ergebnis erhält man die Menge aller mit den Bauklötzen und der Erzeugungsmethode konstruierbaren Gebilde.

40 Induktiv definierte Mengen von Zeichenketten Beispiel: Ist A die Menge {L,R}, dann ist z.B. die Zeichenkette LRRLR sowohl in A* als auch in A +. Definition: A + A + ist die Menge aller nichtleeren Zeichenketten über A und wird induktiv definiert: 1. Basiselemente: Menge A. Jedes Element von A ist in A +. 2. Erzeugungsmethode: Sind w   A + und a   A, dann ist auch die konkatenierte Zeichenkette w  a in A +. Statt w  a schreibt man oft auch nur wa. Definition: A* A* ist die Menge aller Zeichenketten über A. Zu A + wird die leere Zeichenreihe hinzugenommen: A* := A +  { }.

41 Induktiv definierte Mengen 1. Induktionsanfang Anmerkung Viele induktiv definierte Mengen haben unendlich viele Elemente, da man aus den bereits konstruierten mit der Erzeugungsmethode weitere konstruieren kann. Beispiel: Induktive Konstruktion der Menge der natürliche Zahlen (ohne Null) 1 ist eine natürliche Zahl. ;;; die Menge der Basiselemente ist: { 1 } Ist k eine natürliche Zahl, dann auch k+1. 2. Induktionsschritt ;;; Erzeugungsmethode für k+1 aus k Es kann jedoch auch sein, dass nach endlich vielen Schritten keine neuen Konstruktionen mehr entstehen können. In diesem Fall hat die erzeugte Menge dann auch nur endlich viele Elemente.

42 Induktionsprinzip/Induktionsbeweise Beispiel: Induktionsbeweis für eine Eigenschaft P der natürliche Zahlen Aus dem Induktionsanfang, d.h., p(1) und dem Induktionsschritt p(k)  p(k+1) für alle  k  Nat folgt, dass p für alle n  Nat gilt. Um eine Eigenschaft p (also ein Prädikat) für alle Elemente einer induktiv definierten Menge M zu beweisen, muss man zeigen: 1.p gilt für alle Basiselemente. 2.Wird das Element e aus den Elementen e 1,..., e k erzeugt, und gelten p(e 1 ),..., p(e k ), so gilt auch p(e).

43 Induktionsbeweise: Beispiel Satz: Für n   gilt: Beispiel 1+2+3+4+…+100 (Aufgabe für C.-F. Gauß in der ersten Klasse) = (1+100) + (2+99) + … + (50+51) = 50 * 101 = 5050 = 100*(100+1)/2 Beweis Induktionsanfang: Induktionsschritt:

44 Induktionsprinzip/Induktionsbeweise Beispiel: Sei A die Menge der Legosteine Q = quaderförmig (8 Noppen) und W = würfelförmig (4 Noppen) Von den Bauklotztypen Q und W gibt es jeweils beliebig viele Exemplare. Sei weiter + die Operation „Anfügen“, mit der ein Baustein auf einen anderen oder eine Teilkonstruktion voll aufgesetzt wird. Aufgabe: Beweise die Eigenschaft p, die besagt, dass alle aus Legosteinen gebauten materiellen Gebilde mindestens 4 Ecken haben. Induktionsbeweis: Induktionsanfang: Offenbar gilt p( ) und p( ). Induktionsschritt: Annahme: Für das aus k Steinen bestehende Gebilde G k gilt P. Zeige: Aus p(G k )  p(G n+1 ) für alle möglichen Konstruktionen, die man erhalten kann, wenn man an Konstruktion K n einen weiteren Baustein aus A anhängt. Fertigstellung des Beweises als Übung. Hinweis: Überlegen Sie, welche Konstruktionen überhaupt möglich sind.

45 Anwendungen des Induktionsprinzips Induktionsprinzip für Wörter aus A* und Prädikat p Aus 1. p( ) (d.h. das leere Wort erfüllt p) und 2.  w  A*,  a  A: p(w)  p(wa) (d.h. falls w ein Wort ist, das p erfüllt, dann erfüllt auch wa p). folgt, dass p für alle Elemente von A* gilt. Induktionsprinzip für Binärbäume Aus 1.p( ) und 2.Für beliebige Binärbäume B 1 und B 2 gilt: p( B 1 )  p( B 2 )  p( ) folgt, dass p für alle Binärbäume gilt. B1B1 B2B2 Beispiel: 

46 Maßeinheiten Die Angabe von Speichergröße, Rechengeschwindigkeit, Fläche, usw. erfolgt im Allgemeinen durch Angabe von Werten in Vielfachen von 10er Potenzen. Folgende Bezeichnungen sind gebräuchlich: 1000 n 10 n Präfix Symbol Nameals Dezimalzahl 1000 8 10 24 yotta Y Quadrillion1 000 000 000 000 000 000 000 000 1000 7 10 21 zetta Z Trilliarde 1 000 000 000 000 000 000 000 1000 6 10 18 exa E Trillion 1 000 000 000 000 000 000 1000 5 10 15 peta P Billiarde 1 000 000 000 000 000 1000 4 10 12 tera T Billion 1 000 000 000 000 1000 3 10 9 giga G Milliarde 1 000 000 000 1000 2 10 6 mega M Million 1 000 000 1000 1 10 3 kilo k Tausend1 000 1000 2/3 10 2 hecto h Hundert100 1000 1/3 10 1 deca, da Zehn10 1000 0 10 0 -- Eins1 Bezugsgröße 1000 −1/3 10 −1 deci d Zehntel 0.1 1000 −2/3 10 −2 centi c Hunderstel 0.01 1000 −1 10 −3 milli m Tausendstel0.001 1000 −2 10 −6 micro µ (u) Milllionstel 0.000 001 1000 −3 10 −9 nano n Milliardstel 0.000 000 001 1000 −4 10 −12 pico p Billionstel 0.000 000 000 001 1000 −5 10 −15 femto f Billiardstel0.000 000 000 000 001 1000 −6 10 −18 atto a Trillionstel0.000 000 000 000 000 001 1000 −7 10 −21 zepto z Trilliardstel0.000 000 000 000 000 000 001 1000 −8 10 −24 yocto y Quadrillionstel 0.000 000 000 000 000 000 000 001

47 47 Einheiten für Datenmengen Unterscheidung zwischen : Kilobyte (kB) 10 3 Byte = 1000 Byte z.B. A4-Buchseite ~ 4KB Kibibyte (KiB) 2 10 Byte = 1024 Byte Megabyte (MB) 10 6 Byte = 1.000.000 Byte z.B. Bibel ~ 5MB Mebibyte (MiB) 2 20 Byte = 1.048.576 Byte Gigabyte (GB) 10 9 Byte = 1.000.000.000 Byte z.B. Spielfilm 10GB Gibibyte (GiB) 2 30 Byte = 1.073.741.824 Byte Terabyte (TB) 10 12 Byte = 1000 GB gut sortierte Bibliothek Tebibyte (TiB) 2 40 Byte = 1.099.511.627.776 Byte Petabyte (PB) 10 15 Byte = 1.000.000 GB Pebibyte (PiB) 2 50 Byte = 1.125.899.906.842.624 Byte Exabyte (EB) 10 18 Byte Gesamtheit aller gedruckten Werke ~ 0.2EB Exbibyte (EiB) 2 60 Byte = 1.152.921.504.606.846.976 Byte Zettabyte (ZB) 10 21 Byte Zebibyte (ZiB) 2 70 Byte = 1.180.591.620.717.411.303.424 Byte Yottabyte (YB) 10 24 Byte Yobibyte (YiB) 2 80 Byte = 1.208.925.819.614.629.174.706.176 Byte


Herunterladen ppt "1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische."

Ähnliche Präsentationen


Google-Anzeigen