History of Computer Systems [HOC]

Werbung
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
Herunterladen