Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Grundlagen der Informatik - Prof. Slany 1 Grundlagen der Informatik Prof. Wolfgang SLANY.

Ähnliche Präsentationen


Präsentation zum Thema: "Grundlagen der Informatik - Prof. Slany 1 Grundlagen der Informatik Prof. Wolfgang SLANY."—  Präsentation transkript:

1 Grundlagen der Informatik - Prof. Slany 1 Grundlagen der Informatik Prof. Wolfgang SLANY

2 Grundlagen der Informatik - Prof. Slany 2 Turing Maschinen Alan Turing 1936 Speicherplatz: –2D, Anfangsecke, nach rechts und nach oben beliebig viel Platz, Anfangsbeschriftung Symbole: leerer Platz, 0, 1, 2, … Zustände: Anfangszustand Schwarz, weitere Grün, Rot, halte an, … Menge von Übergangsregeln Marvin-10 + Labyrinth

3 Normalerweise ist Speicher nicht 2D, sondern ein-dimensional = Original TM mit nur einem 1D Speicherband (1 tape turing machine), einfachstes Modell Realistisches 1D Speichermodell Zustand = Akkumulator, Register Schreibe/Lesekopf = Marvin-10 = Cursor = Pointer Übergangsregeln: realistisches Modell für CPU (central processing unit) und Maschinensprache Programme: Assembler-Code Grundlagen der Informatik - Prof. Slany 3 Turing Maschinen

4 Simulation einer 2D TM (zB Marvin-10) auf einer 1D TM: –Zeilen hintereinander auf einem Band, durch spezielle Symbole getrennt –Zeilenwechsel = vorherige Zeile oder nächste Zeile; Platz: Verschieben eines Cursor-Symbols in ursprünglicher Zeile, parallel dazu in neuer Zeile: viel hin und her Gerenne Gut machbar? –Effektiv? –Effizient? Grundlagen der Informatik - Prof. Slany 4 Turing Maschinen

5 Zusätzlicher zeitlicher Aufwand: –1 horizontaler Schritt = gleich, außer wenn neues Feld: ca. –1 vertikaler Schritt, maximale Zeilenlänge n (zB n = 10): Pro Zellenentfernung m (zB m = 4) zum Beginn circa 2 x m x n –Im schlechtesten Fall ist m = n, d.h. Aufwand = 2 x n 2 Zeitlicher Zusatzaufwand bei der Simulation: circa 2 x n 2 Zusätzlicher Speicherverbrauch: vernachlässigbar Grundlagen der Informatik - Prof. Slany 5 Turing Maschinen

6 Nicht nur ein Speicherband, sondern k k Roboter, 1 Schritt bewegt alle Roboter gleichzeitig in unabhängige Richtungen Simulation auf 1D TM: zeitlicher und Speicher- aufwand ähnlich wie bei 2D, nur dass jetzt immer k- Bänder bearbeitet werden müssen –Suche nach dem gleichem Platz fällt wegen speziellen Cursor Symbol in jedem Band weg –Bei jedem Schritt müssen aber alle Bänder 2x durchlaufen werden, um die k Symbole zu lesen, und dann je nach Regel darauf zu reagieren (schreiben, …) Detto 3D und andere Varianten (insert etc) Grundlagen der Informatik - Prof. Slany 6 k-tape TM

7 Von Neumann Architektur 1946 Maschinensprache: Register, READ, WRITE, ADD, SUB, JUMP-IF-ZERO, … Darauf aufbauend höhere Programmiersprachen (C, C++, Java …) Zusammenhang mit Turing Maschinen?!? Grundlagen der Informatik - Prof. Slany 7 TM vs heutiger Computer

8 Random Access Machine (RAM) Random Access Machine (RAM) Achtung: RAM = Random Access Memory vs Random Access Machine Ähnlich wie Maschinensprache: READ, WRITE, ADD, SUB, JUMP-IF-ZERO, … Wenn ein Problem in Zeit f(n) auf einer beliebigen TM gelöst werden kann, dann gibt es ein RAM-Programm, das dieses Problem in O(f(n)) Schritten löst Grundlagen der Informatik - Prof. Slany 8 TM vs heutiger Computer

9 Grundlagen der Informatik - Prof. Slany 9 O() Notation f 1 (n) ist in O(f 2 (n)), oder auch f 1 (n) = O(f 2 (n)) (Achtung: = ist nur eine Schreibkonvention!) oder auch f 1 (n) = O(f 2 (n)) (Achtung: = ist nur eine Schreibkonvention!) f 1 wächst asymptotisch (n unendlich) nicht schneller als k x f 2 (für ein bestimmtes k) f 1 wächst asymptotisch (n unendlich) nicht schneller als k x f 2 (für ein bestimmtes k) Beispiel: 4n 5 +3n 2 -7 ist in O(n 5 ) (oder anders geschrieben: 4n 5 +3n 2 -7 = O(n 5 )) Konstanter Faktor k ist wegen jederzeit möglichem linearen speedup (8bit vs 64 bit CPU etc) unerheblich Mehr:

10 Grundlagen der Informatik - Prof. Slany 10 TM vs heutiger Computer RAM Programm, das ein Problem in f(n) Schritten löst, kann auf einer 7-bändigen Turing Maschine in O(f(n) 3 ) Schritten simuliert werden (Grund für 7 Bänder: Zwischenergebnisse, Pointer, und einfach schlampig programmiert) D.h. auf der ursprünglichen ein-Band Turing Maschine in O((f(n) 3 ) 2 ) = O(f(n) 6 ) Super!!!: Hardware verbessert sich so schnell (exponentiell!), dass polynomielle Unterschiede kaum ins Gewicht fallen Hexi!

11 Grundl. d. Informatik - Prof. Slany 11 MooreMoores law (x 2 kleiner = schneller, alle 18~24 Monate, theoretisch noch 600 Jahre möglich …) Moore

12 Grundl. d. Informatik - Prof. Slany 12 Exponentielles Wachstum Posting / Java … The Java is Faster than C++ and C++ Sucks Unbiased Benchmark The Java is Faster than C++ and C++ Sucks Unbiased Benchmark Rechnen Rechnen

13 Grundl. d. Informatik - Prof. Slany 13 Tipping point RAM Programm: f(n) Schritte Ein-Band Turing Maschine: O(f(n) 6 ) Schritte Nach 20 Jahren: Ein-Band Turing Maschine ist 16x so schnell wie heutiger Computer Marvin-10: nur O(f(n) 3 ) Marvin-10: nur O(f(n) 3 ) Nach 100 Jahren: mehr als 1,7 x x so schnell wie heutiger Computer …

14 Grundlagen der Informatik - Prof. Slany 14 Polynome vs exponentielles Wachstum

15 Grundl. d. Informatik - Prof. Slany 15 Story: First Half of the Chessboard Chinese/Indian/Arab advisor did a great deed for his emperor who wants to reward him: One grain of rice on the first square of the chess board, double that number of grains of rice on the second square, and so on

16 Grundl. d. Informatik - Prof. Slany 16 Tipping point: Rice on Chessboard Rice on ChessboardRice on Chessboard First half of the chessboard is for a total of exactly grains of rice, or about one field of rice. Economically insignificant to the emperor, no problem. Second half of the chessboard is , for a total of grains of rice years at current world production rate years at current world production rate.

17 (konstant) = O(1) 27 log(n) (logarithmisch) = O(log n) 10 log(2n) – 7 (logarithmisch) = O(log n) 13n + 8 log(3n) (linear) = O(n) 24 n log (n) – 7n = O(n log n) 17n n log (1000n) (quadrat.) = O(n 2 ) 1000 n 50 + n 51 (polynomiell) = O(n 51 ) 2 n +n 5000 (exponentiell) = O(2 n ) Grundl. d. Informatik - Prof. Slany 17 Wichtige Beispiele

18 O() Notation Prüfungsbeispiel Grundlagen der Informatik - Prof. Slany 18


Herunterladen ppt "Grundlagen der Informatik - Prof. Slany 1 Grundlagen der Informatik Prof. Wolfgang SLANY."

Ähnliche Präsentationen


Google-Anzeigen