Grundlagen der Informatik II Dr.-Ing. Sven Hellbach S. Hellbach Grundlagen der Informatik II Abbildungen entnommen aus: Dirk W. Hoffmann: Theoretische Informatik; Hanser Verlag 2011, ISBN: 978-3-446-42854-6 1 SoSe 2017 Kurze Vorstellung • Dr.-Ing. Sven Hellbach [email protected] ☎ 0351 462 3851 A317 • Forschungsinteressen – Mensch-Roboter-Interaktion – Künstliche Intelligenz – Neuronale Netze – Bildverarbeitung – Bewegungsanalyse • Sprechzeiten auf Anfrage S. Hellbach Grundlagen der Informatik II 2 SoSe 2017 Organisatorisches • • Lehrmaterialien unter http://www2.htw-dresden.de/~kogrob => Teaching => Grundlagen der Informatik II Vorlesung: wöchentlich Donnerstag 11:00-12:30 (L211) • Übung: ungerade Woche – 16/043/61: Dienstag 11:00-12:30 (S229) – 16/043/01: Dienstag 13:20-14:50 (S229) • • Ablauf der Übung: – Übungsaufgaben entweder zu Hause oder in der Übung lösen – Dabei Unterstützung durch mich, Gruppenarbeit möglich – Gezieltes Vorstellen „kritischer“ Aufgaben 1. Übung am 28.3. wird durch Vorlesung gefüllt • Abschluss: Schriftliche Prüfungsleistung 90 Minuten S. Hellbach Grundlagen der Informatik II 3 SoSe 2017 Grundlagen der Informatik II • Was ist das überhaupt? Modulux: Einführung in die theoretischen Hauptkonzepte der theoretischen Informatik; Vermittlung der theoretischen Grundlagen • Kann man durch theoretische Informatik praktisch mehr erreichen? S. Hellbach Grundlagen der Informatik II 4 SoSe 2017 I. Mathematische Grundlagen: Aussagenlogik Mengenlehre Relationen S. Hellbach Grundlagen der Informatik II 5 SoSe 2017 Wiederholung: Aussagenlogik • Eine Aussage ist: – Wahr oder falsch – Variablen: a,b,x,... – Kombinationen mit den Operationen: • • • • • • • Negation: a Konjunktion (UND): a∧b Disjunktion (ODER): a∨b Implikation (WENN...DANN) a→b Äquivalenz (Genau dann wenn): a∼b Antivalenz: (XOR) a≁b Algebraische Gesetze: Kommutativität, Distributivität, Assoziativität, DeMorgan S. Hellbach Grundlagen der Informatik II 6 SoSe 2017 Mathematische Grundlagen: Mengenlehre • Mengendefinition (Cantor): Unter einer Menge verstehen wir jede Zusammenfassung M von bestimmten wohl unterschiedenen Objekten unserer Anschauung oder unseres Denkens (welche die Elemente von M genannt werden) zu einem Ganzen. • Aufzählende Beschreibung N = {1, 2, 3, 4, ...} N0 = {0, 1, 2, 3, 4, ...} Z = {..., 2, 1, 0, 1, 2, 3, 4, ...} M1 = {2, 4, 6, 8, ...} M2 = {0, 1, 2, 4, 8, 16...} M3 = {42} • Deskriptive Beschreibung M4 = {n 2 N| n mod 2 = 0} M5 = {2n |n 2 N0 } S. Hellbach Grundlagen der Informatik II 7 SoSe 2017 Mengenrelationen • Teilmengenbeziehungen M1 ✓ M2 :, a 2 M1 ) a 2 M2 M2 ◆ M1 :, M1 ✓ M2 • M1 = M2 , M2 ✓ M1 ^ M1 ✓ M2 Echte Teilmenge M1 ⇢ M2 :, M1 ✓ M2 ^ M1 6= M2 M1 S. Hellbach M2 :, M1 ◆ M2 ^ M1 6= M2 Grundlagen der Informatik II 8 SoSe 2017 42 42 42 42 Mengenoperationen ■ Vereinigung • ■ Vereinigung ■ Vereinigung ■ VereinigungM 1 M1 M1 M1 Vereinigung • Schnitt Theoretische Informatik downloaded from www.hanser-elibrary.com byDresden HTW Dresden Bibliothek on February 20, 2016 Theoretische Informatik downloaded from www.hanser-elibrary.com by HTW Dresden Bibliothek on February 20, 2016 Theoretische Informatik downloaded from www.hanser-elibrary.com byby HTW Bibliothek onon February 20,20, 2016 Theoretische Informatik downloaded from www.hanser-elibrary.com HTW Dresden Bibliothek February 2016 For personal use only. For personal use only. For personal useuse only. For personal only. M1 [ M2 := {a|a 2 M1 _ a 2 M2 } M1 \ M2 := {a|a 2 M1 ^ a 2 M2 } • Differenz M1 \ M2 := {a|a 2 M1 ^ a 62 M2 } • Negation T..Trägermenge S. Hellbach Grundlagen der Informatik II M =T \M 9 ■ Schnitt ■ Schnitt ■ Schnitt ■ Schnitt T T T T M2 M2 M2 M1 ∪ M2 M2 M1 ∪ M2 M1 ∪ M2 M1 ∪ M2 M1 M1 M M11 T T T T M2 M2 M M22 M1 ∩ M2 M1 ∩ M2 M1 ∩ M2 M1 ∩ M2 ■ Differenz ■ Differenz ■ Differenz ■ Differenz M 1 M1 M1 M1 T T T T ■ Komplement ■ Komplement ■ Komplement ■ Komplement M2 M2 M M22 M1 \ M2 M1 \ M2 M \M M11 \ M22 M M M M T T T T M SoSe 2017 M Konzepte für Körpermodelle aus Computergrafik • Boole’sche Mengenoperationen – Positionierung der Grundkörper (ggf. auch komplexeren Körper) notwendig – Gemeinsames Koordinatensystem – Boole’sche Mengenoperation • Schnitt • Vereinigung • Differenz S. Hellbach Grundlagen der Informatik II 10 SoSe 2017 43 2.1 Grundlagen der Mengenlehre M1 M1 M 2 ! M3 M2 M1 M2 ! M1 ! (M2 ! M3) M1 = M3 M3 M2 M1 M1 M3 M2 ! M3 M2 M1 M2 " M3 M1 ! (M2 ! M3) M1 = M3 M3 = = M1 M2 M3 M1 ! M2 M1 M2 " M3 M1 ! M3 M1 M2 = M2 M3 (M1 ! M2) ! (M1 ! M3) M1 M2 M1 ! M3 M1 ! M2 M2 M3 M1 M2 = M3 M1 ! M3 (M1 ! M2) ! (M1 ! M3) Abbildung 2.6: Veranschaulichung der Distributivgesetze anhand von Venn-Diagrammen Von den vorgestellten Verknüpfungsregeln bedürfen nur die beiden Distributivgesetze eines zweiten Blickes, um sich von deren Richtigkeit zu überzeugen. Die Venn-Diagramme in Abbildung 2.6 liefern eine grafische Begründung für diese Regeln. S. Hellbach Grundlagen der Informatik II 11 SoSe 2017 Theoretische Informatik downloaded from www.hanser-elibrary.c For personal use Rechengesetze ■ Kommutativgesetze M1 ∪ M2 = M2 ∪ M1 M1 ∩ M2 = M2 ∩ M1 ■ Distributivgesetze ■ ■ M1 ∩ (M2 ∩ M3 ) = (M1 ∩ M2 ) ∩ M3 ■ Inverse Elemente § Potenzmenge S. Hellbach M∪M = M M∩M = M ■ M∪M = T M ∩ M = 0/ Idempotenzgesetze „The contrary of an aggregate is the ■ Auslöschungsgesetze ■ Absorptionsgesetze compound of the contraries of the M∪T = T M1of∪ a(M aggregants: the contrary compound is M1 1 ∩ M2 ) = the aggregate of theM contraries of the M ∩ 0/ = 0/ 1 ∩ (M1 ∪ M2 ) = M1 components.“ Neutrale Elemente M ∪ 0/ = M M∩T = M ■ Assoziativgesetze M1 ∪ (M2 ∪ M3 ) = (M1 ∪ M2 ) ∪ M3 M1 ∪ (M2 ∩ M3 ) = (M1 ∪ M2 ) ∩ 44 (M1 ∪ M3 ) M1 ∩ (M2 ∪ M3 ) = (M1 ∩ M2 ) ∪ (M1 ∩ M3 ) Gesetze von De Morgan (Abbildung 2.8) ■ Gesetz der Doppelnegation M1 ∪ M2 = M1 ∩ M2 ibliothek on February 20, 2016 era- Die Vereinigungs-, Schnitt- und Komplementoperatoren begründen zuDie Mengenalgebra sammen die Mengenalgebra. In der entstehenden algebraischen Struk- ist ein Spezialfall einer booleschen Algebr 2.7) [49]. tur gilt eine Reihe von Gesetzen, die sich direkt ausbildung der Definition der Damit übertragen sich alle Gesetzmäßigkeiten Operatoren ergeben. Insbesondere lassen sich die folgenden vier Ver-Algebra gelten, in direkter Weise auf die Meng einer booleschen knüpfungsregeln ableiten: bra. Hierunter fallen insbesondere die folgenden Verknüpfungsr M1 ∩ M2 = M1 ∪ M2 P = 2M := {M 0 |M 0 ✓ M } Grundlagen der Informatik II M=M Zum Schluss wollen wir eine wi uns an zahlreichen Stellen in die die Vereinigung aller Teilmenge als Potenzmenge bezeichnet und klatur wie folgt charakterisieren 12 ′ 2M := {M ′ | MSoSe ⊆ 2017 M} Relationen • Kartesisches Produkt • Sei M eine beliebige Menge. Die Menge M ⇥ M := {(x, y)|x, y 2 M } nennen wir das kartesische Produkt von M. • Relation Sei M eine beliebige Menge. Jede Menge R mit R ✓ M ⇥ M heißt Relation in M . Wir schreiben x ⇠R y für (x, y) 2 R und x 6⇠R y für (x, y) 62 R S. Hellbach Grundlagen der Informatik II 13 SoSe 2017 Einschub: Graphentheorie Ein gerichteter Graph ist ein Paar G = (V, E) mit einer endlichen Menge V 6= ? und einer endlichen Menge E ✓ {(u, v) | u, v 2 V, u 6= v}. Die Elemente von V heißen Knoten (auf englisch: vertex) von G. Die Elemente von E heißen Kanten oder Pfeile (auf englisch: edge) von G. • • Begriffe: – Ungerichteter Graph – Ein Knoten v und eine Kante e heißen inzident, wenn e=(u,v) oder (v,u) – Knoten u und v sind adjazent, wenn es eine Kante (u,v) gibt Suggested Reading: Alexandra Schwartz: Einführung in die Graphentheorie (Julius-Maximilians-Universität Würzburg) http://www.mathematik.uni-wuerzburg.de/∼schwartz S. Hellbach Grundlagen der Informatik II 14 SoSe 2017 Einschub: Graphentheorie Anwendungsfälle • Suchstrategien (Breiten-, Tiefensuche) • Minimale Spannbäume (Verkehrs-, Versorgungsnetzplanung) • Kürzeste Wege (Pfadplanung, Routingprobleme) Dijkstra, A* S. Hellbach Grundlagen der Informatik II 15 SoSe 2017 Einschub: Graphentheorie Anwendungsfälle • Matchings (Zuordnungsprobleme, Resourcenverteilung) 1.2 Zurück zu den Anfängen • Eulerwege (Königsberger Brückenproblem, Haus vom Nikolaus) Rundreiseprobleme (Traveling Sales Person) S. Hellbach Grundlagen der Informatik II atik downloaded from www.hanser-elibrary.com by HTW Dresden Bibliothek on February 20, 2016 For personal use only. • Norden (N) Neuer Pregel Insel (I) Osten (O) Pregel Süden (S) Alter P l rege Abbildung 1.20: Im ac hundert wurde die Stadt K den Fluss Pregel in vier teilt, die durch sieben B ander verbunden waren. das Stadtbild durch den Sc matiker Leonhard Euler, anschaulichung eines vo Graphenproblems benutz te seine Arbeit mit der Fr berg auf einem Rundweg e kann, auf dem jede Brück überquert wird. Im Jahr 1 dass ein solcher Weg nic seinen Untersuchungen b die Graphentheorie, die h der theoretischen als auc schen Informatik ihren fes nommen hat. Obwohl die Lösung des Hamilton-Problems für kleine Graphen wie eine Fingerübung wirkt, ist es noch niemandem gelungen, einen deterministischen Polynomialzeitalgorithmus dafür zu formulieren. Ob ein solcher Algorithmus überhaupt existieren kann, ist gegenwärtig unbekannt. Um es vorwegzunehmen: Die Chancen, dass sich das HamiltonProblem auf realen Rechenanlagen in Polynomialzeit lösen lässt, stehen aus heutiger Sicht nicht allzu gut, da es in die Klasse der NPvollständigen Probleme fällt. Die Klasse der NP-vollständigen Probleme ist eine Teilmenge der Klasse NP. Probleme aus NP zeichnen sich dadurch aus, dass eine potenzielle Lösung sehr einfach auf Korrektheit geprüft 16werden kann, das Fin- SoSe 2017 Einschub: Graphentheorie Anwendungsfälle • Planarität (Einbettbarkeit) • Knotenfärbung (4-Farben-Satz, Frequenzplanung im Mobilfunk) S. Hellbach Grundlagen der Informatik II 17 SoSe 2017 thält. ■ 2 Mengendarstellung 3 R := { (1, 1), Darstellung von Relationen (1, 4), verschiedene Weise beschreiben. Ist die 4 nge R mit (2, 1), werden neben der mathematisch gepräg(3, 1), • Mengendarstellung (siehe Definition) . Abbildung 2.10 oben) insbesondere die (4, 3) ■} Tabellarische Darstellung ∼R y für (x, y) ∈ R und x ̸∼R y üht: Graph-Darstellung R = {(1,■ 1), (1, 4), (2, 1), (3, 1), (4, 3)} • Graph-Darstellung sche Produkt M × M die Menge nten ausKnoten M. Jede Relation en als in Formköneines × M auffassen, die für alle x, y Punktes oder 2 Veredes Element (x, y) ∈ R als gerichtete ezeichnet. Elemente der Form (x, x) werne Weise beschreiben. Ist die symbolisiert, die den Knoten x mit sich 1 3 4 1 2 3 4 ben der mathematisch geprägng 2.10• oben) insbesondere die Tabellarische Darstellung / Adjazenzmatrix ■ Tabellarische Darstellung 1 2 3 4 1 1 1 2 eine 1separate 0 Zeile 0 und 02 Spaloten in Form Punktes oder ement auseines M 1 Verent (x, y) ∈ R als 1 3 gerichtete 1 0bestimmten 0 03Tupel ement entspricht einem Elemente der Form (x, x) wer4 0 1 durch 1 eine 0 binäre 0 Matrix 1 eine Relation re- dukts M. x ∼sich 4 Gilt 0y, ert, die M den×Knoten x0 mit 2 0 0 0 0 3 0 0 0 1 so wird der 1 0 MaAdjazenztafel effenden Stelle auf 1 gesetzt. Alle anderen S. Hellbach Grundlagen der Informatik II 1 1 1 1 0 3 0 0 0 1 4 1 0 0 0 Adjazenztafel ⎛ 1 4 ⎜ 1 1 ⎜ A = R ⎝ 1 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 1 ⎞ 1 0 ⎟ ⎟ 0 ⎠ 0 Adjazenzmatrix 18 SoSe 2017 Eigenschaften von Relationen Eine Relation R in der Menge M heißt • reflexiv in M, falls x∼x für alle x∈M gilt, • irreflexiv in M, falls x≁x für alle x∈M gilt, • symmetrisch in M, falls aus x∼y stets y∼x folgt, • asymmetrisch in M, falls aus x∼y stets y≁x folgt, • antisymmetrisch in M, falls aus x∼y und y∼x stets x=y folgt, • transitiv in M, falls aus x∼y und y∼z stets x∼z folgt, • linkstotal in M, falls für alle x∈M ein y∈M existiert mit x∼y, • rechtstotal in M, falls für alle y∈M ein x∈M existiert mit x∼y, • linkseindeutig in M, falls aus x∼z und y∼z stets x=y folgt, • rechtseindeutig in M, falls aus x∼y und x∼z stets y=z folgt. S. Hellbach Grundlagen der Informatik II 19 SoSe 2017 Beispiele für Relationen • Äquivalenzrelation (reflexiv, transitiv und symmetrisch) [x]⇠ := {y|x ⇠ y} z. B. R1 := {(x, y)|x, y 2 N, (x mod 2) = (y mod 2)} • Ordnungsrelation (reflexiv, transitiv und antisymmetrisch) z. B. S. Hellbach R1 := {(x, y)|x y} Grundlagen der Informatik II 20 SoSe 2017 Funktionen • Definition Mit M und N seien zwei beliebige Mengen gegeben. Unter einer Funktion oder einer Abbildung f : M ! N verstehen wir eine Zuordnung, die jedem Element x der Definitionsmenge M höchstens ein Element f (x) der Zielmenge N zuweist. • Eigenschaften von Funktionen Sei f : M → N eine totale Funktion. f heißt – surjektiv, falls für alle y ∈ N ein x ∈ M mit f(x) = y existiert, – injektiv, falls aus f(x)=f(y) stets x=y folgt, – bijektiv, falls f sowohl injektiv als auch surjektiv ist. S. Hellbach Grundlagen der Informatik II 21 SoSe 2017 Zahlen • • Natürliche Zahlen N0 Peano-Axiome – 0 ist eine natürliche Zahl. – Jede natürliche Zahl n hat genau einen Nachfolger succ(n). – 0 ist kein Nachfolger einer natürlichen Zahl. – Die Nachfolger zweier verschiedener natürlicher Zahlen sind ebenfalls verschieden. – Enthält eine Teilmenge M ⊆ N0 die Zahl 0 und zu jedem Element n auch ihren Nachfolger succ(n), so gilt M = N0 S. Hellbach Grundlagen der Informatik II 22 SoSe 2017 Kardinalität • |M| bezeichnet und entspricht für endliche Mengen schlicht der Anzahl ihrer Elemente M1 = ; ) |M1 | = 0 M2 = {1, 2, 3} ) |M2 | = 3 • Mit M1 und M2 seien zwei beliebige Mengen gegeben. M1 und M2 heißen gleichmächtig, geschrieben als |M1 | = |M2 |, wenn eine bijektive Abbildung f : M1 ! M2 existiert. Jede unendliche Menge M heißt • abzählbar,falls |M | = |N|, und • überabzählbar, falls |M | = 6 |N| gilt. S. Hellbach Grundlagen der Informatik II 23 SoSe 2017 2.4 • • • Theoretische Informatik downloaded from www.hanser-elibrary.com by HTW Dresden Bibliothek on February 20, 2016 For personal use only. Rekursion Rekursion und induktive Beweise Immer dann, wenn ein Problem, eine Funktion oder ein Verfahren durch sich selbst beschrieben wird, sprechen wir von einer rekursiven Definition. In der Regel ist die Rekursion so konstruiert, dass sich das gesuchte Ergebnis aus einem oder mehreren Teilergebnissen kleinerer Ordnung berechnen lässt. Meist ist die Ordnung nach unten beschränkt, d. h., es existieren nicht weiter zerlegbare Basisfälle, die direkt berechnet werden können. Eine rekursive Definition besteht damit immer aus zwei Teilen. Im ersten Teil werden die Basisfälle definiert und im zweiten Teil die Rekursionsregeln festgelegt. „Rekursion: siehe Rekursion“ Abbildung 2.25 demonstriert das Rekursionsprinzip am Beispiel der Fakultätsfunktion. Da nahezu alle Programmiersprachen Selbstaufrufe auf Funktionsebene unterstützen, lassen sich rekursive Definitionen eins zu eins in ein Programm umsetzen. In einer rekursiv programmierten Funktion werden die Basisfälle explizit ausprogrammiert und alle anderen Funktionswerte durch eine Reihe von Selbstaufrufen ermittelt. ■ Rekursives Definitionsschema ! 1 für n = 0 n! := n · (n − 1)! für n > 0 ■ Rekursive Implementierung fakultaet.c int { f a k u l t a e t ( i n t n) 1 2 if ( n == 0 ) return 1; 3 4 else return 5 6 Rekursive Definition: Beschreibung eines Problems,} einer Funktion oder eines Verfahrens durch sich selbst. Das gesuchte Abbildung 2.25: Rekursive ImplementieErgebnis setzt sich dabei aus Teilergebnissen kleinerer Ordnung rung der Fakultätsfunktion Vonexistiert Programmieranfängern wird das Rekursionsprinzip gerne gemiezusammen. Meistden. ein nicht weiter zerlegbarer Basisfall. Zu Unrecht, wie sich an etlichen Beispielen belegen lässt. Mit ein 7 8 wenig Übung lassen sich viele Algorithmen deutlich übersichtlicher implementieren, als es die streng iterative Programmierung erlaubt. Auch wenn das Rekursionsprinzip im Bereich der Informatik einen proBeispiel: minenten Platz einnimmt, ist es keine Erfindung des Informationszeitalters. In dern Mathematik ist das Prinzip seit Langem verankert, wie das def fak_rekursiv( ): Rad des Theodorus belegt. Diese geometrische Figur wird aus mehreren Dreiecken T , . . . , T gebildet, die dem nachstehenif ( n > 1aneinandergereihten ): den rekursiven Konstruktionsschema folgen: f = n * fak_rekursiv( n - 1 ) ■ T ist ein rechtwinkliges Dreieck mit der Seitenlänge 1. else: ■ Die Hypotenuse von T ist ein Schenkel von T . Der andere Schenf = 1 kel besitzt die Länge 1. return f Werden die Dreiecke aneinandergereiht, so entsteht die in Abbil1 n 2 -2 2 4 1 n n+1 dung 2.26 dargestellte Wurzelschnecke. S. Hellbach n ∗ f a k u l t a e t (n−1 ) ; Im nächsten Abschnitt werden wir mit der vollständigen Induktion ein wichtiges Beweisprinzip vorstellen, das sich die rekursive Struktur der natürlichen Zahlen zunutze macht. Anschließend werden wir die Methode in Abschnitt 2.4.2 verallgemeinern und mit der strukturellen InGrundlagen der duktion Informatik II ein Hilfsmittel an die Hand bekommen, mit dem sich Aussagen -2 -4 Rad des Theodorus (Wurzelschnecke) Abbildung 2.26: Das Rad des Theodorus (Wurzelschnecke) ist ein Beispiel einer rekursiv definierten geometrischen Struktur. Dem griechischen Gelehrten Theodorus (ca. 465 v. Chr.) gelang es mithilfe √ dieser 24 die Zahlen √3, √5, √7,SoSe 2017 Figur, . . . , 17 als Induktion • Vollständige Induktion: Sei n0 ∈ ℕ und A(n) eine parametrisierte Aussage über den natürlichen Zahlen. Wenn die folgenden beiden Aussagen gelten, so ist A(n) für alle n mit n ≥ n0 wahr. – A(n0) ist wahr. – Für alle k mit k ≥ n0 gilt: Aus A(k) folgt die Aussage A(k+1). • Vorgehen: – Induktionsanfang: Für den Startwert n0 wird die Behauptung A(n0) bewiesen. – Induktionsannahme: Für einen beliebigen Wert n mit n ≥ n0 wird die Aussage A(n) als wahr angenommen. – Induktionsschritt: Unter der Induktionsannahme wird der Beweisgeführt, dass die Aussage A(n + 1) ebenfalls wahr ist. • Prinzip kann auch auf ℕ abbildbare Mengen angewendet werden. S. Hellbach Grundlagen der Informatik II 25 SoSe 2017 Strukturelle Induktion • • Beispiel: Binärbaum Ein Binärbaum (binary tree) über einer Blättermenge L ist wie folgt definiert: – Jedes Blatt l∈L ist ein Binärbaum. – Sind B1 und B2 Binärbäume, dann sind es auch B1 S. Hellbach Grundlagen der Informatik II B1 B2 26 SoSe 2017