Distributed Embedded Systems Group – CCS History of Computer Systems [HOC] Johannes Blobel & Falko Dressler 1 Theoretische Grundlagen der Informatik Leibniz Turing Russel & Whitehead Boole & De Morgan Hilbert & Gödel Shannon History of Computer Systems - Theoretische Grundlagen der Informatik Theoretische Grundlagen Grundlegende theoretische Ideen wurden schon vor der Existenz von Computern formuliert Theorie und Praxis haben sich gegenseitig beeinflusst (Turing/Neumann) Praktische Anwendung der Theorien war zur Entstehungszeit oftmals nicht absehbar 2 Rückblick oft verstellt durch heutige Vorstellungen Praktische Maschinen zeigen, was möglich ist; Theorien können zeigen, was nicht möglich ist History of Computer Systems - Theoretische Grundlagen der Informatik Gottfried Wilhelm Leibnitz (1646- 1716) Bedeutender Philosoph, Mathematiker, Physiker, Jurist, Sprachwissenschaftler, Theologe 15000 Briefe mit 1100 Briefpartnern 1673 stellte er in London der Royal Society eine Rechenmaschine vor 3 Erfindung der Staffelwalze und des Sprossenrads 1703 Abhandlung für die Académie des Sciences über binäres Zahlensystem („Explication de l’Arithmétique Binaire“) History of Computer Systems - Der Weg zum Computer 1697 Neujahrsbrief an Herzog Rudolph August 4 History of Computer Systems - Theoretische Grundlagen der Informatik Metaphysik der Dyadik (Dualsystem) Leibniz sah in der Schlichtheit und Schönheit des dualen Systems einen Beweis für Gottes Existenz „[…] Denn einer der Hauptpunkte des christlichen Glaubens […] ist die Erschaffung aller Dinge aus dem Nichts durch die Allmacht Gottes. Nun kann man wohl sagen daß nichts in der welt sie beßer vorstelle, ja gleichsam demonstrire, als der ursprung der zahlen wie er alhier vorgestellet, durch deren ausdrückung bloß und allein mit Eins und Null oder Nichts, und wird wohl schwehrlich in der Natur und Philosophi ein beßeres vorbild dieses geheimnißes zu finden seyn.“ „Omnibus ex nihilo ducendis sufficit unum“ Zeichung von Leibniz entworfen 1697 5 History of Computer Systems - Theoretische Grundlagen der Informatik Monadologie (griechisch, monás: Einheit/Einfachheit, lógos: Wort/Vernunft) 6 History of Computer Systems - Theoretische Grundlagen der Informatik Monadologie (griechisch, monás: Einheit/Einfachheit, lógos: Wort/Vernunft) Philosophische Abhandlung über die Lehre der Monaden Monade: Kleinstmögliche, einheitliche Substanz, „seiende Wesen“ Beweisführung nach Regeln der Logik: 7 Gegebene Prämissen logische Deduktion Schlussfolgerung Mathematik basiert zu großen Teilen auf logischen Systeme, die auf gegebenen Prämissen und Regeln basieren History of Computer Systems - Theoretische Grundlagen der Informatik Peano-Axiome (1889) Italienischer Mathematiker Giuseppe Peano (1858-1932) 5 Axiome, die die Menge der natürlichen Zahlen kennzeichnen 8 1. 0 ist eine natürliche Zahl. 2. Zu jeder Zahl n gibt es eine eindeutig bestimmte natürliche Zahl n*, genannt der Nachfolger von n. 3. 0 ist nicht der Nachfolger irgendeiner natürlichen Zahl. 4. Zwei natürliche Zahlen n und m, deren Nachfolger gleich sind (d.h. m* = n*), sind selbst gleich (d.h. m = n). 5. Betrachten wir eine Eigenschaft, die die Zahl 0 aufweist. Zusätzlich soll gelten: Wenn die Zahl n die Eigenschaft besitzt, so besitzt auch der Nachfolger n* die Eigenschaft. Dann besitzen alle natürlichen Zahlen die Eigenschaft. History of Computer Systems - Theoretische Grundlagen der Informatik David Hilbert (1862-1943) Deutscher Mathematiker Beeinflusste wesentlich die Mathematik der Neuzeit 23 Hilbertsche Probleme Versuch, die Mathematik weiter zu formalisieren und ihre Widerspruchsfreiheit zu beweisen "Wenn es sich darum handelt, die Grundlagen einer Wissenschaft zu untersuchen, so hat man ein System von Axiomen aufzustellen, welche eine genaue und vollständige Beschreibung derjenigen Beziehungen enthalten, die zwischen den elementaren Begriffen jener Wissenschaft stattfinden. Die aufgestellten Axiome sind zugleich die Definitionen jener elementaren Begriffe und jede Aussage innerhalb des Bereiches der Wissenschaft, deren Grundlagen wir prüfen, gilt uns nur dann als richtig, falls sie sich mittels einer endlichen Anzahl logischer Schlüsse aus den aufgestellten Axiomen ableiten lässt." 9 History of Computer Systems - Die ersten Computer Hilbertsche Probleme (1900) Internationaler Mathematiker-Kongress in Paris Festrede statt Rückblick Ausblick auf Mathematik Liste von 23 damals ungelösten Problemen Hilberts 2. Problem: Sind die arithmetischen Axiome widerspruchsfrei? Basiert auf mathematischem Axiomensystem von Giuseppe Peano (1889) Widerspruchsfrei: Kann man aus den gegebenen Axiomen Aussagen ableiten, die sowohl wahr als auch falsch sind? 10 History of Computer Systems - Theoretische Grundlagen der Informatik Bertrand Russell (1872-1970) Britischer Philosoph, Mathematiker, Logiker (Mit-)Begründer der analytischen Philosophie Beeinflusst durch Leibniz’ philosophische Betrachtungen Alfred North Whitehead (1861-1947) Britischer Mathematiker und Philosoph Prozessphilosophie Mereotopologie: Zusammenhang zwischen Ganzheiten, Teilen und Grenzen zwischen Teilen 11 History of Computer Systems - Die ersten Computer Principia Mathematica (1910 – 1913) Definition von Axiomen (Prämissen) und Schlusslehren Mengenlehre Kardinalzahlen (Beschreiben Größe einer Menge) Ordinalzahlen (Beschreiben die Positionen von Elementen zueinander) Reelle Zahlen Herleitung aller bekannter mathematischer Sätze aus diesen Axiomen 12 History of Computer Systems - Theoretische Grundlagen der Informatik Formale Systeme Quadrupel 𝐹 = 𝐴, 𝐵, 𝐴𝑈, 𝑅 A: endliches Alphabet (z.B.: {0,…9,+,-,*,/,(,)} B: Menge aller aus A ableitbarer Wörter, die Sinn ergeben (z.B. durch formale Sprache definiert) AU: Axiome (Teilmenge von B) R: Menge der Relationen über Wörter aus B Ableitungsrelation 𝑎 ⊢ 𝑏 13 History of Computer Systems - Theoretische Grundlagen der Informatik Hilbertprogramm (1920er) Angeregt durch: 2. Hilbertsches Problem Principia Mathematika Antinomie der naiven Mengenlehre Ziel: Widerspruchsfreiheit der mathematischen Axiomensysteme nachweisen Vollständiges Axiomensystem (alle wahren Sätze sollen ableitbar sein) Unterstützt u.a. durch Bernays, Ackermann, von Neumann und Gödel Widerspruchsfreiheit für einigeTeilgebiete der Logik (z.B. Prädikatenlogik) Widerspruchsfreiheit der allgemeinen Mengenlehre (Ackermann) 14 History of Computer Systems - Theoretische Grundlagen der Informatik Kurt Gödel (1906 – 1978) Österreichisch-amerikanischer Mathematiker und Logiker 1929 Dissertation „Über die Vollständigkeit des Logikkalküls“ (Prädikatenlogik) 1956: Brief an Von Neumann über P-NP-Problem 1931: Gödelsche Unvollständigkeitssatz 15 History of Computer Systems - Theoretische Grundlagen der Informatik Gödelscher Unvollständigkeitssatz 1931: „Über formal unentscheidbare Sätze der Principia mathematica und verwandter Systeme“ 1. Unvollständigkeitssatz: Nachweis, dass es in hinreichend starken formalen Systemen unbeweisbar Aussagen geben muss 2. Unvollständigkeitssatz: Hinreichend starke widerspruchsfreie Systeme können ihre eigene Widerspruchsfreiheit nicht beweisen Damit gezeigt, dass 2. Hilbertsches Problem unlösbar ist Sind die arithmetischen Axiome widerspruchsfrei? 16 History of Computer Systems - Theoretische Grundlagen der Informatik Unentscheidbar Alan Turing (1912 - 1954) Englischer Mathematiker, Logiker, Kryptologe, Informatiker Arbeitete während des 2. Weltkrieg im Bletchley Park und half bei der Entschlüsselung der Enigma (Turing-Bombe) Nach 2. Weltkrieg Arbeit bei NPL (National Physical Laboratory) Entwicklung der Automatic Computing Engine (ACE) Entwicklung des Konzepts der Computing Machine (heute TuringMaschine) um Beweise über berechenbare Funktionen zu führen Gödels Unvollständigkeitssatz bewiesen (Entscheidungsproblem und Berechenbarkeit sind äquivalent) 17 History of Computer Systems - Theoretische Grundlagen der Informatik Turings „Computing Machine“ Endliche Anzahl an Zuständen Q = {𝑞1 , 𝑞2 , … , 𝑞𝑛 } (Papier-) „Tape“ unterteilt in Sektionen (Felder) Jedes Feld kann ein Symbol enthalten (oder leer sein) Nur genau eine Sektion zu einem Zeitpunkt in der Maschine „scanned square“ Verhalten der Maschine wird durch Zustand definiert 18 History of Computer Systems - Theoretische Grundlagen der Informatik Universelle Turingmaschine Jede Turing-Maschine (TM) ist eine spezielle Maschine, die genau eine Aufgabe löst Universelle TM: Spezielle TM, mit folgender Funktion: Lese Beschreibung einer anderen TM, die auf dem Band kodiert ist Emuliere Verhalten der kodierten TM Entspricht von der Mächtigkeit her heutigen Computern: Universelle TM ist Computer: Band ist Speicher (RAM, Disk) Prozessor kann nur ganz bestimmte Befehle ausführen (Instruction Set, entspricht spezieller TM) Speicherinhalt bestimmt, welche Befehle ausgeführt werden 19 History of Computer Systems - Theoretische Grundlagen der Informatik ENIAC als universelle Turing-Maschine ENIAC konnte so konfiguriert werden, dass der Ablauf, durch die Funktionstabellen vorgegeben wurde Je nach Ergebnis der Berechnung (positiv negativ) konnte andere Berechnung gestartet werden Speicher kann nicht geschrieben werden 12000 Instruktionen Umprogrammierung konnte vollständig über Schalter erfolgen 20 History of Computer Systems - Theoretische Grundlagen der Informatik ENIAC als universelle Turing-Maschine Beispielprogramm zur Berechnung von Neutronen: Von Neumann Neuer Programmiermodus ab März 1948 21 History of Computer Systems - Theoretische Grundlagen der Informatik Grenzen der Berechenbarkeit „On computable Numbers with an application to the Entscheidungsproblem“ Es gibt (unendlich) lange Liste aller Turingmaschinen TM kann durch String dargestellt werden Valide Strings können aufgelistet werden Jede TM berechnet eine bestimmte Funktion 𝑓 𝑛 Schreibe n auf Band Starte TM mit Eingabe n Liste der Turingprogramme entspricht der Liste der berechenbaren Funktionen von natürlichen Zahlen Man kann eine Liste aller berechenbaren Funktionen 𝑓 𝑛 (partiell und vollständig) einer natürlichen Variablen n aufstellen, wobei der Funktionswert 𝑓 𝑛 auch eine natürliche Zahl ist 22 History of Computer Systems - Theoretische Grundlagen der Informatik Grenzen der Berechenbarkeit Frage: Kann man einen Algorithmus angeben, der für eine gegebene Turingmaschine entscheidet, ob diese für alle Eingaben n anhält? Annahme: Solch eine Funktion existiert. Dann kann man aus der Liste aller möglichen Funktionen die partiell definierten aussortieren. (partiell definiert es gibt Eingaben, für die die TM nicht hält) 23 History of Computer Systems - Theoretische Grundlagen der Informatik Grenzen der Berechenbarkeit Liste aller Funktionen mit Funktionswert: 𝑓1 1 , 𝑓1 2 , 𝑓1 3 , … 𝑓2 1 , 𝑓2 2 , 𝑓2 3 , … 𝑓3 1 , 𝑓3 2 , 𝑓3 3 , … Definiere Diagonalfunktion 𝑓𝐷 𝑛 = 𝑓𝑛 𝑛 + 1 = {𝑓1 1 + 1, 𝑓2 2 + 1, … } Cantor'sches Diagonalverfahren (1873, Beweis, dass reele Zahlen nicht aufzählbar sind) Funktion 𝑓𝐷 𝑛 kann in obiger Liste nicht enthalten sein Liste nicht vollständig Widerspruch Halteproblem nicht lösbar 24 History of Computer Systems - Theoretische Grundlagen der Informatik Halteproblem Anderer Beweis: Konstruiere TM, die immer das Gegenteil von Ausgabe der EntscheiderTM macht 25 History of Computer Systems - Theoretische Grundlagen der Informatik Hilberts 10. Problem: Diophantische Gleichungen „Eine diophantische Gleichung mit irgend welchen Unbekannten und mit ganzen rationalen Zahlencoefficienten sei vorgelegt: man soll ein Verfahren angeben, nach welchem sich mittelst einer endlichen Anzahl von Operationen entscheiden. läßt, ob die Gleichung in ganzen rationalen Zahlen lösbar ist.“ Diophantische Gleichung: 𝑓 𝑥1 , 𝑥2 , … , 𝑥𝑛 = 0 Z.B. Satz des Pythagoras: 𝑎 2 + 𝑏2 − 𝑐 2 = 0 Truingmaschinen äquivalent zu rekursiven Funktionen Eine Funktion ist diophantisch, genau dann wenn sie rekursiv ist Lösbarkeit diophantischer Gleichungen ist unentscheidbar 27 History of Computer Systems - Theoretische Grundlagen der Informatik George Boole (1815 – 1864) Britischer Mathematiker, Philosoph und Logiker Wissen zu großen Teil autodidaktisch erworben Arbeiten über Diffferentialrechnung (Boolesche Identität) 1847 „The Mathematical Analysis of Logic” 1849 Mathematikprofessor 1854 „An Investigation of the Laws of Thought” Aussagenlogik später weiter zu algebraischer Struktur formalisiert und „Boolesche Algebra“ genannt (u.a. Ernst Schröder, Giuseppe Peano) 28 History of Computer Systems - Theoretische Grundlagen der Informatik 29 History of Computer Systems - Theoretische Grundlagen der Informatik http://sydneypadua.com/2dgoggles/happy-200th-birthday-george-boole/ 30 History of Computer Systems - Theoretische Grundlagen der Informatik Booles Ursprüngliche Klassenlogik Ursprünglich als Klassenlogik konzipiert 1 entspricht dem Universum (alle erdenklichen Klassen) 𝑋, 𝑌, 𝑍 sind Mitglieder von (u.U. mehreren) Klassen 𝑥, 𝑦, 𝑧 sind Selektoren, die aus einer gegebenen Menge die Mitglieder einer Klasse auswählen 𝑥𝑦 bedeutet: Erst Auswahl aller Ys, dann aus dieser (Teil-)Menge alle X 𝑥𝑦 = 𝑦𝑥 Reihenfolge der Auswahl ist unerheblich Mehrfache Auswahl ohne Auswirkung: 𝑥𝑥 = 𝑥 Negation (Alles, außer der Selektion): (1 − 𝑥) Boole: The Mathematical Analysis of Logic 1847 (http://www.gutenberg.org/files/36884/36884-pdf.pdf) 31 History of Computer Systems - Theoretische Grundlagen der Informatik Beispiele: Booles Ursprüngliche Klassenlogik 1. Alle X sind Y: 𝑥𝑦 = 𝑥 2. Keine X sind Y: 𝑥𝑦 = 0 3. Manche X sind Y: 𝑣 = 𝑥𝑦 4. Manche X sind keine Y: 𝑣 = 𝑥(1 − 𝑦) 32 History of Computer Systems - Theoretische Grundlagen der Informatik Aussagenlogik (Wenn Engländer die Welt erklären) Aufbauend auf Klassenlogik Entwicklung von Aussagenlogik (Hypotheticals): 1 entspricht allen Möglichen Fällen x wählt diejenigen Fälle aus, für die die Behauptung X wahr ist Cases Elective expressions 1st It rains, hails, and freezes xyz 2nd It rains and hails, but does not freeze xy(1 − z) 3rd It rains and freezes, but does not hail xz(1 − y) 4th It freezes and hails, but does not rain yz(1 − x) 5th It rains, but neither hails nor freezes x(1 − y)(1 − z) 6th It hails, but neither rains nor freezes y(1 − x)(1 − z) 7th It freezes, but neither hails nor rains z(1 − x)(1 − y) 8th It neither rains, hails, nor freezes (1 − x)(1 − y)(1 − z) 1 = 𝑠𝑢𝑚 33 History of Computer Systems - Theoretische Grundlagen der Informatik Know your Boole! 34 History of Computer Systems - Theoretische Grundlagen der Informatik Claude Shannon (1916 - 2001) Amerikanischer Mathematiker und Elektrotechniker Masterarbeit: Boolsche Algebra um Schaltungen zu entwerfen Begründer der Informationstheorie Informationsübermittlung über gestörten Kanal Informationsgehalt über Entropie definiert Nyquist-Shannon-Abtasttheorem Grundlegende Arbeiten zu Kryptographie Arbeiten zu Fluktuationen am Finanzmarkt 36 History of Computer Systems - Theoretische Grundlagen der Informatik „A Symbolic Analysis of Relay and Switching Circuits” Basiert auf Shannons Masterarbeit von 1937 Äquivalenz von Boolscher Algebra und Schaltungslogik Umformung von Boolschen Gleichungen zur Vereinfachung Vereinfachung von Schaltungen 37 History of Computer Systems - Theoretische Grundlagen der Informatik „A Symbolic Analysis of Relay and Switching Circuits” 38 History of Computer Systems - Theoretische Grundlagen der Informatik Äquivalente Darstellungen 39 History of Computer Systems - Theoretische Grundlagen der Informatik Äquivalente Darstellung Schreiben Sie einen boolschen Ausdruck, der äquivalent zu folgender Schaltung ist: 𝑊 ⋅ 𝑋 ⋅ 𝑌 ⋅ (𝑍′ ⋅ 𝑆 ′ + 𝑉 + 𝑍) 40 History of Computer Systems - Theoretische Grundlagen der Informatik Vereinfachung: Law of Absorption Shannons Properties 15ab: 𝑋+𝑋⋅𝑌 =𝑋 𝑋⋅ 𝑋+𝑌 =𝑋 X Y XY X+XY X(X+Y) 0 0 0 0 0 0 1 0 0 0 1 0 0 1 1 1 1 1 1 1 41 History of Computer Systems - Theoretische Grundlagen der Informatik Vereinfachung 42 History of Computer Systems - Theoretische Grundlagen der Informatik Schaltung Addition 43 History of Computer Systems - Theoretische Grundlagen der Informatik „A Mathematical Theory of Communication” Grundlegendes Kommunikationsmodell noch heute Standard in der Informationstheorie 44 History of Computer Systems - Theoretische Grundlagen der Informatik Information Quelle kann über Markov-Ketten simuliert werden 45 History of Computer Systems - Theoretische Grundlagen der Informatik Information Es gibt eine definierte Anzahl an Symbolen/Nachrichten Empfänger muss aus übertragenem Signal richtiges Symbol rekonstruieren Metrik, um Informationsgehalt einer Nachricht zu messen: Wahrscheinlichkeiten 𝑝𝑖 der Symbole sind bekannt Informationsgehalt 𝐼 𝑝𝑖 = − log 2 𝑝𝑖 Entropie (Informationstheorie): 𝐻 = −𝐾 𝑛 𝑖=1 𝑝𝑖 log 2 𝑝𝑖 46 History of Computer Systems - Theoretische Grundlagen der Informatik Informationsgehalt 47 History of Computer Systems - Theoretische Grundlagen der Informatik