Algorithmen und Datenstrukturen 1 Kapitel 4.1
|
|
- Ruth Bretz
- vor 7 Jahren
- Abrufe
Transkript
1 Algorithmen und Datenstrukturen 1 Kapitel 4.1 Technische Fakultät robert@techfak.uni-bielefeld.de Vorlesung, U. Bielefeld, Winter 2005/2006
2 Kapitel 4: Maschinenmodelle [Dieses Kapitel hält sich eng an das empfohlene Buch von Saake/Sattler] Das Rechnen mit Formeln und Gleichungen ist uns aus der Mathematik vertraut. Mit unseren Haskell-Programmen können wir auch selbst noch rechnen. Eine Rechenmaschine, die direkt mit Formeln und Gleichungen rechnen kann, gibt es nicht. Wirkliche Rechner sind viel einfacher aufgebaut, und brauchen viele Operationen, um z.b. eine Gleichung einmal anzuwenden. Dies ist die in Kapitel 1 erwähnte semantische Lücke, die durch Programmiersprachen und ihre Übersetzer geschlossen wird. Wir begeben uns nun auf die Maschinenseite der semantischen Lücke.
3 4.1 Registermaschinen Eine Registermaschine ist eine formal definierte Rechenmaschine relativ ähnlich zu wirklicher Hardware (insbesondere der frühen Jahre)
4 Komponenten der Registermaschine Programm speicher b b 1 2 b 3 b n Zentrale Recheneinheit B + * Recheneinheit Steuer einheit C 0 = Arbeits speicher C 1 C 2 C 3 C 4 b 1... n B C C + b : : 0 : 1, C2,... :,, = : * Programm ( n Befehle) Befehlszähler Akkumulator (Arbeitsregister) Arbeitsspeicher (Register) Rechenwerte Unsere Registermaschine kennt nur zwei Datentypen natürliche Zahlen und Befehle.
5 Befehlszyklus Die Registermaschine iteriert einen Befehlszyklus: Sei i der Inhalt von B. Lade b i aus dem Programmspeicher in die Steuereinheit. Erhöhe B auf i + 1. Decodiere b i und führe ihn aus durch Laden von Operanden. Durchführung von Rechenoperationen. Abspeichern des Ergebnisses. Die Ausführung hängt natürlich im Einzelnen von dem konkreten Befehl ab.
6 Programm Das Programm ist eine Folge von Befehlen b 1, b 2,..., b n Diese ist unveränderbar (im Unterschied zu realen Rechnern, wo Programme in den Programmspeicher geladen werden).
7 Konfiguration Für den Akkumulator C 0 schreiben wir auch C. Enthält B die Zahl b, und C i die Zahl c i, 0 i, so heisst (b, c 0, c 1,... ) aktuelle Konfiguration der Registermaschine. Die Ausführung eines Befehls bewirkt einen Konfigurations-Übergang (b, c 0, c 1,... ) (b, c 0, c 1,... ) Befehle werden als Konfigurations-Übergänge definiert.
8 Laden und Speichern LOAD i, i N + b = b + 1 c 0 = c i c j = c j für j 0 CLOAD i, i N b = b + 1 c 0 = i c j = c j für j 0 STORE i, i N + b = b + 1 c i = c 0 c j = c j für j i
9 Arithmetische Befehle ADD i, i N + b = b + 1 c 0 = c 0 + c i c j = c j für j 0 CADD i, i N + b = b + 1 c 0 = c 0 + i c j = c j für j 0 SUB i, i N + b = b + 1 c 0 = j c0 c i für c 0 c i 0 sonst CSUB i, i N + b = b + 1 c 0 = j c0 i für c 0 i 0 sonst c j = c j für j 0 c j = c j für j 0 MULT i, i N + b = b + 1 c 0 = c 0 c i c j = c j für j 0 CMULT i i N + b = b + 1 c 0 = c 0 i c j = c j für j 0 DIV i, i N + b = b + 1 c 0 = c 0/c i c j = c j für j 0 CDIV i, i N + b = b + 1 c 0 = c 0/i c j = c j für j 0
10 Arithmetik auf natürliche Zahlen beschränkt: statt negativer Differenz ist das Ergebnis 0. Division erfolgt ganzzahlig
11 Sprungbefehle GOTO i, i N + b = i c j = c j für j 0 j i falls IF c 0 = 0 GOTO i, i N + b c0 = 0 = b + 1 sonst c j = c j für j 0 END b = b c j = c j für j 0
12 Maschinen und Programmabläufe Registermaschinen unterscheiden sich durch ihr Programm. Verschiedene Programmabläufe unterscheiden sich durch die Start-Konfiguration (alles weitere ist ja festgelegt). Start Konfiguration x i sind die Eingabe-Parameter (1, 0, x 1,..., x n, 0, 0,... )
13 Berechnete Funktion M berechnet Funktion f M : N n N m, falls für alle x 1,..., x n N gilt (1, 0, x 1,..., x n, 0, 0,... ) (b e, c, y 1,..., y m,... ) und (y 1,..., y m ) = f (x 1,..., x n ) und b e ist ein END-Befehl.
14 Beispiel M + 1 LOAD 1 2 ADD 2 3 STORE 3 4 END (1, 0, a, b) (4, (a + b), a, b, a + b)
15 Beispiel M fib 1 LOAD 1 2 ADD 2 3 STORE 2 4 SUB 1 5 STORE 1 6 END (1, 0, a, b) (6, b, b, a + b) M fib berechnet einen Schritt der Fibonacci-Iteration.
16 Beispiel M 1 1 LOAD 1 2 DIV 2 3 MULT 2 4 STORE 3 5 LOAD 1 6 SUB 3 7 STORE 3 8 END
17 Rechnung von M 1 mit r = n (n div m) m Berechnete Funktion: (1, 0, n, m, 0) (8, r, n, m, r) f (x 1, x 2 ) = (x 1, x 2, x 1 mod x 2 )
18 Semantik einfacher Programme Beispiel M id Beispiel M undef 1 END 1 GOTO 1 2 END f (x 1,..., x n ) = (x 1,..., x n ) f (x 1,..., x n ) = undefiniert
19 Beispiel M 3 Beispiel M 4 1 LOAD 1 1 LOAD 1 2 IF c 0 = 0 GOTO 4 2 IF c 0 = 0 GOTO 1 3 GOTO 2 3 END 4 END f (x 1 ) = 0 falls x 1 = 0 f (x 1 ) = x 1 falls x 1 > 0 = undefiniert, sonst = undefiniert, sonst
20 Beobachtungen zu Registermaschinen Die Anzahl der benutzten Register liegt statisch fest. Alle Adressen stehen explizit im Programm. Die Anzahl der Befehl bei Ausführung ist statisch nicht bestimmbar und hängt insbesondere von den (bedingten) Sprüngen ab. Programme ohne Schleifen kann man symbolisch ausführen und so die berechnete Funktion bestimmen. Bei Programmen mit Schleifen führt die symbolische Ausführung nicht zu einer Bestimmung der berechneten Funktion.
21 Invarianten Um die berechnete Funktion von Programmen mit Schleifen zu finden, benutzt man Invarianten. Diese sind Aussagen über Konfigurationen, die an gewissen Programmstellen immer erfüllt sind: φ bb (c 0, c 1,... ) gilt am Übergang von Befehl b zu b. φ start (c 0, c 1... ) gilt am Anfang, φ end (c 0, c 1... ) am Ende.
22 Invarianten zu M φ start = (c 1 = x) φ 12 = (c 0 = c 1 = x) φ 23 = (c 0 = c 1 > 0) φ 32 = (c 0 = c 1 > 0) φ 24 = (c 0 = c 1 = 0) φ END = (c 1 = 0) 4 Bei der ersten Ausführung von Befehl 2 gilt φ 12, bei eventuellen weiteren die stärkere Invariante φ 23 = φ 32. Wird also Punkt 3 einmal erreicht, liegt Endlosschleife vor. Punkt 4 wird erreicht genau dann, wenn x = 0.
23 Invarianten zu M φ start = (c 1 = x) φ 12 = (c 0 = c 1 = x) φ 23 = (c 0 = c 1 = x > 0) φ 21 = (c 0 = c n = 0 = x) φ END = (c 1 = x > 0)
24 Registermaschine M 2 1 CLOAD 1 2 STORE 3 3 LOAD 2 4 IF c 0 = 0 GOTO 12 5 LOAD 3 6 MULT 1 7 STORE 3 8 LOAD 2 9 CSUB 1 10 STORE 2 11 GOTO 4 12 END
25 Programmflussdiagramm für M φ start = (c 1 = x, c 2 = y) Wir suchen φ end, indem wir φ start durch das Diagramm propagieren. Das geht überall einfach, außer am Schleifenkopf 4.
26 φ start = (c 1 = x, c 2 = y) φ 12 = (c 0 = 1, c 1 = x, c 2 = y) φ 23 = (c 0 = 1, c 1 = x, c 2 = y, c 3 = 1) φ 34 = (c 0 = y, c 1 = x, c 2 = y, c 3 = x) Hier entsteht nun das Problem, dass wir φ 45 nicht allein aus φ 34 und b 4 bestimmen können, da es auch von φ 11 4 abhängt, das wir noch nicht kennen.
27 Idee: Wir fügen eine neue, noch unbekannte Invariante φ 4 für den Schleifenkopf ein. Für sie muss gelten φ 34 oder φ 11 4 φ 4. Dabei hängt φ 11 4 natürlich von φ 4 ab. Mit dem noch unbekannten φ 4 rechnen wir weiter.
28 Sei φ 4 = (c 0 = a, c 1 = x, c 2 = b, c 3 = d) mit Unbekannten a, b, d. φ 45 = (c 0 = a > 0, c 1 = x, c 2 = b, c 3 = d) φ 56 = (c 0 = d, a > 0, c 1 = x, c 2 = b, c 3 = d) φ 67 = (c 0 = d x, a > 0, c 1 = x, c 2 = b, c 3 = d) φ 78 = (c 0 = d x, a > 0, c 1 = x, c 2 = b, c 3 = d x)
29 φ 89 = (c 0 = b, a > 0, c 1 = x, c 2 = b, c 3 = d x) φ 9 10 = (c 0 = b 1, a > 0, c 1 = x, c 2 = b, c 3 = d x) φ = (c 0 = b 1, a > 0, c 1 = x, c 2 = b 1, c 3 = d x) φ = Q 10 11
30 Jetzt müssen wir φ 4 herausfinden. Es muss gelten φ 34 φ 4 und φ 11 4 φ 4 φ 34 : (c 0 = y, c 1 = x, c 2 = y, c 3 = 1) φ 11 4 : (c 0 = b 1, c 1 = x, c 2 = b 1, c 3 = d x, a > 0) φ 4 : (c 0 = a, c 1 = x, c 2 = b, c 3 = d)
31 Den Effekt eines Schleifendurchlaufs auf φ 4 hält φ 11 4 fest. Wir beobachten c 1 ändert sich nicht, c 0, c 2 und c 3 ändern sich. Für φ 11 4 wie für φ 4 gilt invariant: c 3 = x (y c 2). Wir setzen als neue Invariante Es gilt φ 34 impliziert ˆφ 4. ˆφ 4 = c 3 = x (y c 2), c 0 = c 2 Es gilt nach Durchschieben von ˆφ 4 durch die Schleife ) ˆφ 11 4 = (c 3 = x (y (c 2+1)) x, c 0 = c 2 = ˆφ 4
32 Damit finden wir nun die Endkonfiguration φ 412 = (φ 4, c 0 = 0) = (c 3 = x (y c2), c 0 = c 2 ) = (c 3 = x y ) φ END = (c 3 = x y ) Damit ist bewiesen, dass die Maschinenfunktion von M 4 lautet f M4 (x, y) = x y Allerdings gilt dies nur, wenn Punkt 12 erreicht wird. Im Beispiel ist die Terminierung einfach zu zeigen, im allgemeinen aber schwer.
33 Partielle versus Totale Korrektheit Ein Maschinenprogramm M heisst partiell korrekt für eine Funktion f : N n N m, falls f M = f, sofern f M terminiert. M heisst total korrekt für f, falls gilt: Wenn f (x 1,..., x n ) definiert ist, so terminiert f M auf Eingabe x 1,..., x n mit dem Ergebnis f (x 1,..., x n ).
34 Nachweis der Korrektheit Für Registermaschinenprogramme wie für alle imperativen Programme weist man partielle Korrektheit durch die Bestimmung der Invarianten nach. Anstelle der Terminierung zeigt man lieber eine stärkere Aussage: Man gibt an, nach wievielen Schritten eine Berechnung endet Kapitel Effizienzanalyse.
Algorithmen und Datenstrukturen I - Maschinenmodelle -
Algorithmen und Datenstrukturen I - Maschinenmodelle - Thies Pfeiffer Technische Fakultät tpfeiffe@techfak.uni-bielefeld.de Vorlesung, Universität Bielefeld, Winter 2012/2013 1 / 93 Kapitel 3 - Maschinenmodelle
MehrRekursive Funktionen Basisfunktionen
Rekursive Funktionen Basisfunktionen die nullstellige Funktion Z, die den konstanten Wert 0 liefert, die Funktion S : N N, bei der jeder natürlichen Zahl ihr Nachfolger zugeordnet wird, die Funktion P
MehrMächtigkeit von WHILE-Programmen
Mächtigkeit von WHILE-Programmen Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 1 / 23 Turingmaschine (TM) M = (Q, Σ, Γ, B, q 0, q, δ) Unendliches Band... 0 c
MehrAlgorithmen und Programmierung
Algorithmen und Programmierung Kapitel 5 Formale Algorithmenmodelle A&P (WS 14/15): 05 Formale Algorithmenmodelle 1 Überblick Motivation Formale Algorithmenmodelle Registermaschine Abstrakte Maschinen
MehrDank. Theoretische Informatik II. Teil II. Registermaschinen. Vorlesung
Dank Vorlesung Theoretische Informatik II Bernhard Beckert Institut für Informatik Diese Vorlesungsmaterialien basieren zum Teil auf den Folien zu den Vorlesungen von Katrin Erk (gehalten an der Universität
MehrTheoretische Informatik 1
Theoretische Informatik 1 Registermaschine David Kappel Institut für Grundlagen der Informationsverarbeitung TU Graz SS 2012 Übersicht Registermaschinen Algorithmusbegriff konkretisiert formale Beschreibung
MehrMächtigkeit von WHILE-Programmen
Mächtigkeit von WHILE-Programmen Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 26. November 2009 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit
MehrMächtigkeit von WHILE-Programmen
Mächtigkeit von WHILE-Programmen und rekursive Funktionen Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 16. November 2010 Berthold Vöcking, Informatik 1 () Vorlesung
MehrAnhang zum Lehrbuch über Datenstrukturen und Algorithmen
Anhang zum Lehrbuch über Datenstrukturen und Algorithmen Hans Ulrich Simon 10. April 018 Zusammenfassung Der Stoff der Vorlesung Datenstrukturen im Sommersemester 018 deckt sich zum großen Teil mit den
Mehr3. RAM als Rechnermodell
3. RAM als Rechnermodell Motivation Wir möchten Berechnungsvorschriften (Algorithmen) formal beschreiben und deren Eigenschaften wie Korrektheit und Laufzeit analysieren Rechnermodell abstrahiert vom verwendeten
MehrRegistermaschine (RAM), Church-Turing-These. Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen
Registermaschine (RAM), Church-Turing-These Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 1 / 22 Registermaschinen (RAM) Programm b c(0) c(1) c(2) c(3) c(4)...
MehrRegistermaschine (RAM), Church-Turing-These
Registermaschine (RAM), Church-Turing-These Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 21. Oktober 2010 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit
MehrBerechenbarkeit und Komplexität Vorlesung 10
Berechenbarkeit und Komplexität Vorlesung 10 Prof. Dr. Wolfgang Thomas Lehrstuhl Informatik 7 RWTH Aachen 27. November 2014 Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 27.
MehrBerechenbarkeit und Komplexität Vorlesung 11
Berechenbarkeit und Komplexität Vorlesung 11 Prof. Dr. Wolfgang Thomas Lehrstuhl Informatik 7 RWTH Aachen 7. Dezember 2014 Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 7.
MehrBerechenbarkeit und Komplexität: Probleme, Sprachen, Maschinen
Berechenbarkeit und Komplexität: Probleme, Sprachen, Maschinen Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität 25. Oktober 2006 Was ist ein Problem? Informelle Umschreibung
MehrTheoretische Grundlagen der Informatik. Vorlesung am 07. November INSTITUT FÜR THEORETISCHE INFORMATIK
Theoretische Grundlagen der Informatik 0 07.11.2017 Torsten Ueckerdt - Theoretische Grundlagen der Informatik KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Frage Frage: Ist der
MehrInformatik 12 Kapitel 3 - Funktionsweise eines Rechners
Fachschaft Informatik Informatik 12 Kapitel 3 - Funktionsweise eines Rechners Michael Steinhuber König-Karlmann-Gymnasium Altötting 9. Februar 2017 Folie 1/36 Inhaltsverzeichnis I 1 Komponenten eines PCs
MehrTheoretische Grundlagen der Informatik
Theoretische Grundlagen der Informatik 0 KIT 07.11.2014 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik nationales Forschungszentrum Vorlesung in am
MehrTheoretische Informatik II. WS 2007/2008 Jun.-Prof. Dr. Bernhard Beckert Ulrich Koch. 1. Teilklausur Vorname:... Nachname:...
Theoretische Informatik II WS 2007/2008 Jun.-Prof. Dr. Bernhard Beckert Ulrich Koch 1. Teilklausur 11. 12. 2007 Persönliche Daten bitte gut leserlich ausfüllen! Vorname:... Nachname:... Matrikelnummer:...
MehrKlausur zur Vorlesung " Einführung in die Informatik"
Institut für Simulation und Graphik Magdeburg, 6. Februar 2012 Dr. Christian Rössl Klausur zur Vorlesung " Einführung in die Informatik" Name, Vorname Studiengang Matrikelnummer Zusatzbätter Unterschriften
MehrEinführung in die Programmierung
Prof. Dr. Rudolf Berrendorf Fachbereich Informatik Fachhochschule Bonn-Rhein-Sieg URM - Programmierung Dipl.-Inf. Sigrid Weil Fachbereich Informatik Fachhochschule Bonn-Rhein-Sieg Einordnung Programmier-Paradigma:
MehrBerechenbarkeit und Komplexität Vorlesung 3
Berechenbarkeit und Komplexität Vorlesung 3 Prof. Dr. Wolfgang Thomas Lehrstuhl Informatik 7 RWTH Aachen 22. November 2014 Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 22.
MehrGrundlagen der Theoretischen Informatik: Übung 10
Grundlagen der Theoretischen Informatik: Übung 10 Joachim Selke Fachgebiet Theoretische Informatik Universität Hannover 20. Januar 2005 Turing-Maschinen als Rechenmaschinen gegeben sei eine Funktion f
MehrEffizienz von Algorithmen
Effizienz von Algorithmen Letzte Bearbeitung: Jan 211 Ein wichtiger Aspekt bei Algorithmen sind seine "Kosten". Wir wollen uns hier ausschließlich mit der Laufzeit des gewählten Algorithmus beschäftigen.
Mehr2. Grundlagen. Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten.
2. Grundlagen Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten. Laufzeitverhalten beschreiben durch O-Notation. 1 Beispiel Minimum-Suche Eingabe bei Minimum
MehrPartielle Korrektheit von Programmen. Beispiele an der Tafel
Partielle Korrektheit von Programmen Beispiele an der Tafel ALP II: Margarita Esponda, 12. Vorlesung, 24.5.2012 36 Beispiel: Partielle Korrektheit von Programmen Nehmen wir an, wir möchten beweisen, dass
MehrTheoretische Grundlagen der Informatik
Theoretische Grundlagen der Informatik Turing-Maschine, Berechenbarkeit INSTITUT FÜR THEORETISCHE 0 KIT 07.11.2011 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen
MehrAlgorithmen und Datenstrukturen 1 Kapitel 3
Algorithmen und Dtenstrukturen 1 Kpitel 3 Technische Fkultät roert@techfk.uni-bielefeld.de Vorlesung, U. Bielefeld, Winter 2008/2009 Kpitel 3: Mschinenmodelle [Dieses Kpitel hält sich eng n ds empfohlene
MehrWS 05/06 mod Verifikation
3.3 Verifikation WS 05/06 mod 351 Verifikation ist der Beweis der Korrektheit eines Algorithmus relativ zu seiner Spezifikation. Die Aussagen gelten für alle Ausführungen des Algorithmus. Sie werden statisch
MehrBerechenbarkeit. Serie 4. Die Seminaraufgaben werden in den Übungen vom bis besprochen.
Universität Leipzig Institut für Informatik Sommersemester 2018 Prof. Dr. Andreas Maletti Gustav Grabolle Mirko Schulze Aufgaben zur Lehrveranstaltung Berechenbarkeit Serie 4 Hinweise: Abgabeschluss für
MehrÜbungs-Klausur zur Vorlesung. Digitale Informationsverarbeitung (Magister)
Übungs-Klausur zur Vorlesung Digitale Informationsverarbeitung (Magister) Bemerkungen: Das erste Blatt ist mit dem Namen, dem Vornamen und der Matrikelnummer zu versehen, die weiteren nur mit dem Namen!
Mehr{P} S {Q} {P} S {Q} {P} S {Q} Inhalt. Hoare-Kalkül. Hoare-Kalkül. Hoare-Tripel. Hoare-Tripel. Hoare-Tripel
Inhalt Hoare-Kalkül Formale Verifizierung Hoare-Kalkül while-sprache Terminierung Partielle / totale Korrektheit 4.0 Hoare-Kalkül entwickelt von C.A.R. (Tony) Hoare (britischer Informatiker), 1969 formales
MehrInduktive Definitionen
Priv.-Doz. Dr.rer.nat.habil. Karl-Heinz Niggl Technische Universität Ilmenau Fakultät IA, Institut für Theoretische Informatik Fachgebiet Komplexitätstheorie und Effiziente Algorithmen J Induktive Definitionen
MehrLOOP-Programme: Syntaktische Komponenten
LOOP-Programme: Syntaktische Komponenten LOOP-Programme bestehen aus folgenden Zeichen (syntaktischen Komponenten): Variablen: x 0 x 1 x 2... Konstanten: 0 1 2... Operationssymbole: + Trennsymbole: ; :=
Mehr2. Imperative Programmierung und Berechenbarkeit - Registermaschinen -
2. Imperative Programmierung und Berechenbarkeit - Registermaschinen - 2.1 Definition 2.2 Loop-Programme 2.3 While Programme 2.4 While Programme und rekursive Funktionen Im Wesentlichen: Tafel! Maschinenmodell
Mehr1.2 LOOP-, WHILE- und GOTO-Berechenbarkeit
Die Programmiersprache LOOP (i) Syntaktische Komponenten: Variable: x 0, x 1, x 2,... Konstanten: 0, 1, 2,... Trennsymbole: ; := Operationszeichen: + Schlüsselwörter: LOOP DO END (ii) LOOP-Programme: Wertzuweisungen:
MehrAlgorithmen und Datenstrukturen Laufzeitabschätzung
Algorithmen und Datenstrukturen Laufzeitabschätzung Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Lernziele der Vorlesung Algorithmen Sortieren, Suchen,
MehrINFORMATIK Oberstufe. Funktionsweise eines Rechners
INFORMATIK Oberstufe Funktionsweise eines Rechners Lehrplan Inf 12.3 (ca. 17 Std.): Grundlegende Kenntnisse über den Aufbau eines Rechners und seiner prinzipiellen Funktionsweise helfen den Schülern, den
MehrTheoretische Informatik SS 03 Übung 3
Theoretische Informatik SS 03 Übung 3 Aufgabe 1 a) Sind die folgenden Funktionen f : partiell oder total: f(x, y) = x + y f(x, y) = x y f(x, y) = x y f(x, y) = x DIV y? Hierbei ist x DIV y = x y der ganzzahlige
MehrBerechenbarkeit und Komplexität: Mächtigkeit von Programmiersprachen: WHILE- und LOOP-Programme
Berechenbarkeit und Komplexität: Mächtigkeit von Programmiersprachen: WHILE- und LOOP-Programme Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität 29. November 2007 Turing-mächtige
Mehr1.5 Turing-Berechenbarkeit
A.M. Turing (1937): Maschinenmodell zur exakten Beschreibung des Begriffs effektiv berechenbar Stift Mensch a c b b Rechenblatt a b b c Lese-/Schreibkopf endliche Kontrolle Turingmaschine Eine Turingmaschine
MehrTECHNISCHE HOCHSCHULE NÜRNBERG GEORG SIMON OHM Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten, z.b. Befehl
Mehrn 1. Erste Schritte n 2. Einfache Datentypen n 3. Anweisungen und Kontrollstrukturen n 4. Verifikation n 5. Reihungen (Arrays)
n 1. Erste Schritte n 2. Einfache Datentypen n 3. Anweisungen und Kontrollstrukturen n 4. Verifikation n 5. Reihungen (Arrays) II.1.4. Verifikation - 1 - 4. Verifikation n Spezifikation: Angabe, was ein
Mehr2. Computer (Hardware) K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16
2. Computer (Hardware) K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 14. Okt. 2015 Computeraufbau: nur ein Überblick Genauer: Modul Digitale Systeme (2. Semester) Jetzt: Grundverständnis
MehrEinführung IMP-Syntax Reduktionssemantik Maschinen-Semantik. Teil IV. Semantik imperativer Sprachen
Teil IV Semantik imperativer Sprachen 201 1. Einführung Alternativen zur Beschreibung der Semantik: natürliche Sprache (bisher, unpräzise) operational Reduktionssemantik (vgl. Haskell-Semantik in Kap.
MehrEinführung in die Theoretische Informatik
Einführung in die Theoretische Informatik Johannes Köbler Institut für Informatik Humboldt-Universität zu Berlin WS 2011/12 Die Registermaschine (random access machine, RAM) 0 I 0 1 I 1 2 I 2 m I m Programm
Mehr1.5 Turing-Berechenbarkeit
A.M. Turing (1937): Maschinenmodell zur exakten Beschreibung des Begriffs effektiv berechenbar Stift Mensch a c b b Rechenblatt a b b c Lese-/Schreibkopf endliche Kontrolle Turingmaschine Eine Turingmaschine
MehrInformatik II. Registermaschinen. Registermaschinen. Registermaschinen. Rainer Schrader. 7. Dezember 2005
Informatik II Rainer Schrader Zentrum für Angewandte Informatik Köln 7. Dezember 25 / 82 2 / 82 Gliederung Aufbau und Eigenschaften universelle RAM s RAM-Berechenbarkeit Nichtentscheidbarkeit Reduzierbarkeit
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Einleitung und Grundlagen Maike Buchin 18.4.2017 Verantwortliche Dozentin Organisation der Übungen Übungsleiter Korrekteure Maike Buchin Maike.Buchin@rub.de Raum NA 1/70 Sprechzeiten:
MehrÜbersicht Formale Semantik. Übersicht Axiomatische Semantik. Inhaltsübersicht HPS WS 2003/04. Vorlesung Höhere Programmiersprachen,
Vorlesung Höhere Programmiersprachen, WS 2003/04 Teil 2: Formale Semantik Axiomatische Semantik Inhaltsübersicht - Grundlagen (1,2) - Konzepte imperativer Programmiersprachen (2,3) - Deklarative Programmiersprachen
MehrLogik und Beweisbarkeit
Logik und Beweisbarkeit VL 08 Martin Mundhenk Univ. Jena, Institut für Informatik 11. Januar 2019 Teil 3: Berechenbarkeitstheorie 1. Aussagenlogik 2. Arithmetik 3. Berechenbarkeitstheorie VL08: URM-berechenbare
MehrAbschnitt 11: Korrektheit von imperativen Programmen
Abschnitt 11: Korrektheit von imperativen Programmen 11. Korrektheit von imperativen Programmen 11.1 11.2Testen der Korrektheit in Java Peer Kröger (LMU München) in die Programmierung WS 16/17 931 / 961
Mehr! 1. Erste Schritte! 2. Einfache Datentypen! 3. Anweisungen und Kontrollstrukturen! 4. Verifikation! 5. Reihungen (Arrays) II.1.4. Verifikation - 1 -
! 1. Erste Schritte! 2. Einfache Datentypen! 3. Anweisungen und Kontrollstrukturen! 4. Verifikation! 5. Reihungen (Arrays) II.1.4. Verifikation - 1 - 4. Verifikation! Spezifikation: Angabe, was ein Programm
MehrAlgorithmus. Was ist ein Algorithmus? Ibn Musa Al-Chwarismi persischer Mathematikers 9. Jahrhundert Buch: Regeln der Wiedereinsetzung und Reduktion.
Algorithmus Was ist ein Algorithmus? Ibn Musa Al-Chwarismi persischer Mathematikers 9. Jahrhundert Buch: Regeln der Wiedereinsetzung und Reduktion. Hier einige informelle Erklärungen zum Algorithmus P
Mehr11. Übungsblatt. x y(top(push(x, y)) = y)
Logik, Berechenbarkeit und Komplexität Sommersemester 2012 Hochschule RheinMain Prof. Dr. Steffen Reith 11. Übungsblatt 1. Ein Keller (engl. stack) ist eine bekannte Datenstruktur. Sei die Signatur S =
MehrOtto-von-Guericke-Universität Magdeburg Fakultät für Informatik Institut für Simulation und Graphik Prof. Dr. Holger Theisel
Matrikelnummer: Otto-von-Guericke-Universität Magdeburg Fakultät für Informatik Institut für Simulation und Graphik Prof. Dr. Holger Theisel Klausur Einführung in die Informatik Magdeburg, 07.02.2011 Name:
MehrProgrammierkurs Haskell Sommersemester 2003
Peter Padawitz / Hubert Wagner Dortmund, den 08.05.2003 Aufgabenblatt 1 Keine Abgabe - nur Präsenzaufgaben Aufgabe 1.1 Geben Sie eine Haskell-Funktion an, die zu einer ganzen Zahl n die Anzahl der verschiedenen
Mehr. Die obige Beschreibung der Laufzeit für ein bestimmtes k können wir also erweitern und erhalten die folgende Gleichung für den mittleren Fall:
Laufzeit von Quicksort im Mittel. Wir wollen die erwartete Effizienz von Quicksort ermitteln. Wir nehmen an, die Wahrscheinlichkeit, dass das gewählte Pivot-Element a j das k-t kleinste Element der Folge
Mehr1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie
1 Einführung 2 Typ-0- und Typ-1-Sprachen 3 Berechnungsmodelle 4 Unentscheidbarkeit 5 Unentscheidbare Probleme 6 Komplexitätstheorie 139 Unentscheidbarkeit Überblick Zunächst einmal definieren wir formal
MehrTheoretische Informatik 1
Theoretische Informatik 1 Die Komplexitätsklasse P David Kappel Institut für Grundlagen der Informationsverarbeitung TU Graz SS 2012 Übersicht Äquivalenz von RM und TM Äquivalenz, Sätze Simulation DTM
MehrGrundbegriffe der Informatik
Grundbegriffe der Informatik Einheit 5: Der Begriff des Algorithmus (erste grundlegende Aspekte) Thomas Worsch Universität Karlsruhe, Fakultät für Informatik November 2008 1/34 Überblick Eine Zeitreise
Mehr1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie
1 Einführung 2 Typ-0- und Typ-1-Sprachen 3 Berechnungsmodelle 4 Unentscheidbarkeit 5 Unentscheidbare Probleme 6 Komplexitätstheorie WS 11/12 155 Überblick Zunächst einmal definieren wir formal den Begriff
MehrRandom Access Machine (RAM) Berechenbarkeit und Komplexität Random Access Machines
Random Access Machine (RAM) Berechenbarkeit und Komplexität Random Access Machines Wolfgang Schreiner Wolfgang.Schreiner@risc.jku.at Research Institute for Symbolic Computation (RISC) Johannes Kepler University,
MehrRechnen modulo n. Bernhard Ganter. Institut für Algebra TU Dresden D-01062 Dresden
Rechnen modulo n Bernhard Ganter Institut für Algebra TU Dresden D-01062 Dresden bernhard.ganter@tu-dresden.de Kanonische Primfaktorzerlegung Jede natürliche Zahl n > 0 kann auf eindeutige Weise in der
MehrTheoretische Informatik 1
Theoretische Informatik 1 Bernhard Nessler Institut für Grundlagen der Informationsverabeitung TU Graz SS 2007 Übersicht 1 Allgemein Teilgebiete der Informatik ohne Theoretische Grundlagen 2 Fragen an
Mehr1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) II.1.4. Verifikation - 1 -
1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) II.1.4. Verifikation - 1 - 4. Verifikation Spezifikation: Angabe, was ein Programm tun
MehrDatenpfad einer einfachen MIPS CPU
Datenpfad einer einfachen MIPS CPU Die Branch Instruktion beq Grundlagen der Rechnerarchitektur Prozessor 13 Betrachten nun Branch Instruktion beq Erinnerung, Branch Instruktionen beq ist vom I Typ Format:
MehrFormale Systeme Logik: Verifikation von Aussagen über Algorithmen. Ana Sokolova statt Robert Elsässer
Formale Systeme Logik: Verifikation von Aussagen über Algorithmen 20.12.2012 Ana Sokolova statt Robert Elsässer Verifikation von Aussagen über Algorithmen Hoaresche Logik: Kalkül zum Beweisen von Aussagen
Mehr1 Random Access Maschine
1 RANDOM ACCESS MASCHINE 1 1 Random Access Maschine Neue Hardware: Random Access Maschine = RAM. Der Name hat nichts mit Zufall zu tun, sondern mit wahlfreiem Zugriff. Die RAM besteht aus einem Eingabeband,
MehrInformatik I - Programmierung Globalübung Hoare-Kalkül. Thomas Weiler. Fachgruppe Informatik RWTH Aachen. T. Weiler, RWTH Aachen - 1 -
Informatik I - Programmierung Globalübung 11.11.2003 Hoare-Kalkül Thomas Weiler Fachgruppe Informatik RWTH Aachen T. Weiler, RWTH Aachen - 1 - Ariane 5 Die Ariane 5 ist das jüngste Modell der Trägerrakete
MehrGTI. Hannes Diener. 18. Juni. ENC B-0123,
GTI Hannes Diener ENC B-0123, diener@math.uni-siegen.de 18. Juni 1 / 32 Als Literatur zu diesem Thema empfiehlt sich das Buch Theoretische Informatik kurzgefasst von Uwe Schöning (mittlerweile in der 5.
MehrEinführung in die Informatik I
Einführung in die Informatik I LOOP Programme, rekursive Funktionen und der Turm von Hanoi Prof. Dr. Nikolaus Wulff Berechenbarkeit Mitte des 20. Jahrhunderts beantworteten Pioniere, wie Alan M. Turing
Mehr1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) II.1.4. Verifikation - 1 -
1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) II.1.4. Verifikation - 1 - 4. Verifikation Spezifikation: Angabe, was ein Programm tun
Mehr2 Rationale und reelle Zahlen
2 reelle Es gibt Mathematik mit Grenzwert (Analysis) und Mathematik ohne Grenzwert (z.b Algebra). Grenzwerte existieren sicher nur dann, wenn der Zahlbereich vollständig ist, also keine Lücken aufweist
MehrGrundbegriffe der Informatik
Grundbegriffe der Informatik Einheit 6: Der Begriff des Algorithmus (erste grundlegende Aspekte) Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2010/2011 1/42
MehrVon der Programmiersprache WHILE zum ersten Einstieg in Java
Von der Programmiersprache WHILE zum ersten Einstieg in Java Die Programmiersprache WHILE bildet den Kern jeder imperativen Programmiersprache. Man geht davon aus, dass die Ein- Ausgabe primitiv organisiert
MehrGrundlagen der Informatik I (Studiengang Medieninformatik)
Grundlagen der Informatik I (Studiengang Medieninformatik) Thema: 3. Datentypen, Datenstrukturen und imperative Programme Prof. Dr. S. Kühn Fachbereich Informatik/Mathematik Email: skuehn@informatik.htw-dresden.de
MehrWiederholung. Organisatorisches. VL-11: LOOP und WHILE Programme I. (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger
Organisatorisches VL-11: LOOP und WHILE Programme I (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger Nächste Vorlesung: Mittwoch, November 29, 14:15 15:45 Uhr, Roter Hörsaal Webseite: http://algo.rwth-aachen.de/lehre/ws1718/buk.php
MehrVL-11: LOOP und WHILE Programme I. (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger
VL-11: LOOP und WHILE Programme I (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger WS 2017, RWTH BuK/WS 2017 VL-11: LOOP und WHILE Programme I 1/46 Organisatorisches Nächste Vorlesung: Mittwoch,
MehrTheoretische Informatik 1
heoretische Informatik 1 uringmaschinen David Kappel Institut für Grundlagen der Informationsverarbeitung U Graz SS 2014 Übersicht uring Maschinen Algorithmusbegriff konkretisiert Modelldefinition uring-berechenbarkeit
MehrAlgorithmentheorie 2. Vorlesung
Algorithmentheorie 2. Vorlesung Martin Dietzfelbinger 13. April 2006 FG KTuEA, TU Ilmenau AT 13.04.2006 Maschinenmodelle Registermaschinen (RAMs) bearbeiten Zahlen Turingmaschinen (TMn) bearbeiten Wörter/Strings/Zeichenfolgen
MehrRechnerarchitektur SS TU Dortmund
Rechnerarchitektur SS 2016 Exercises: Scoreboarding and Tomasulo s Algorithm Jian-Jia Chen TU Dortmund to be discussed on June, 14, 2016 Jian-Jia Chen (TU Dortmund) 1 / 8 Scoreboardings Im nächste Folien
MehrAlgorithmen und Datenstrukturen 1 Kapitel 5
Algorithmen und Datenstrukturen 1 Kapitel 5 Technische Fakultät robert@techfak.uni-bielefeld.de Vorlesung, U. Bielefeld, Winter 2005/2006 Kapitel 5: Effizienz von Algorithmen 5.1 Vorüberlegungen Nicht
MehrSpeichern von Zuständen
Speichern von Zuständen Erweiterung eines R S Latch zu einem D Latch (D=Data, C=Clock) R S altes Q neues Q 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 0 R S C D altes Q neues Q 0 0 0 0 0 1 0 1 0 0 1
MehrBerechenbarkeit und Komplexität: Mächtigkeit von Programmiersprachen: WHILE- und LOOP Programme
Berechenbarkeit und Komplexität: Mächtigkeit von Programmiersprachen: WHILE- und LOOP Programme Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität 13. November 2006 Turing-mächtige
MehrVL-05: Unentscheidbarkeit I. (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger
VL-05: Unentscheidbarkeit I (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger WS 2017, RWTH BuK/WS 2017 VL-05: Unentscheidbarkeit I 1/37 Organisatorisches Nächste Vorlesung: Donnerstag, November
MehrGrundbegriffe der Informatik Tutorium 3
Grundbegriffe der Informatik Tutorium 3 Tutorium Nr. 32 Philipp Oppermann 9. November 2014 KARLSRUHER INSTITUT FÜR TECHNOLOGIE KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum
MehrAuffrischung Einige (wenige) Grundlagen der Theoretischen Informatik
Logik, Berechenbarkeit und Komplexität Sommersemester 2008 Fachhochschule Wiesbaden Prof. Dr. Steffen Reith Auffrischung Einige (wenige) Grundlagen der Theoretischen Informatik 1 Turingmaschinen - Ein
MehrProblem: Gegeben Spezifikation (P,Q) und Implementierung S Gesucht formaler (automatisierbarer?) Beweis, dass S (P,Q) erfüllt.
Formale Verifikation von Algorithmen 1.3 Verifikation Problem: Gegeben Spezifikation (P,Q) und Implementierung S Gesucht formaler (automatisierbarer?) Beweis, dass S (P,Q) erfüllt. Bisher nicht möglich
MehrVorlesung Diskrete Strukturen Die natürlichen Zahlen
Vorlesung Diskrete Strukturen Die natürlichen Zahlen Bernhard Ganter WS 2009/10 Alles ist Zahl? Wenn in der modernen Mathematik alles auf Mengen aufgebaut ist, woher kommen dann die Zahlen? Sind Zahlen
MehrBeobachtung 1: Beispiel: Intuitive Programme sind oft ineffizient.
Beobachtung 1: Intuitive Programme sind oft ineffizient. Beispiel: void swap (int i, int j) { int t; if (a[i] > a[j]) { t = a[j]; a[j] = a[i]; a[i] = t; } } 731 Ineffizienzen: Adressen a[i], a[j] werden
MehrLösungen zum Aufgabenblatt Nr. 1: Konstruktion der reellen Zahlen
Lösungen zum Aufgabenblatt Nr. 1: Konstruktion der reellen Zahlen Aufgabe 1: Es sei D die Menge aller rationalen Dedekind-Mengen, also D := { M 2 Q M is Dedekind-Menge }. Auf der Menge D definieren wir
MehrTheoretische Grundlagen der Informatik
Theoretische Grundlagen der Informatik Turing-Maschine, Berechenbarkeit INSTITUT FÜR THEORETISCHE INFORMATIK 0 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft
MehrDer von Neumann Computer
Der von Neumann Computer Grundlagen moderner Computer Technologie 1 Der moderne Computer ein weites Spektrum Typ Preis Anwendungsbeispiel embeded Computer 10-20 $ in Autos, Uhren,... Spielcomputer 100-200$
MehrSchleifeninvarianten. Dezimal zu Binär
Schleifeninvarianten Mit vollstandiger Induktion lasst sich auch die Korrektheit von Algorithmen nachweisen. Will man die Werte verfolgen, die die Variablen beim Ablauf eines Algorithmus annehmen, dann
MehrGrundbegriffe der Informatik
Grundbegriffe der Informatik Übung Simon Wacker Karlsruher Institut für Technologie Wintersemester 2015/2016 GBI Grundbegriffe der Informatik Karlsruher Institut für Technologie 1 / 13 Programmiersprachen
MehrVL-06: Unentscheidbarkeit II. (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger
VL-06: Unentscheidbarkeit II (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger WS 2017, RWTH BuK/WS 2017 VL-06: Unentscheidbarkeit II 1/37 Organisatorisches Nächste Vorlesung: Mittwoch, November
MehrOffenbar hängt das Ergebnis nur von der Summe der beiden Argumente ab...
0 1 2 0 2 1 1 2 0 2 1 0 Offenbar hängt das Ergebnis nur von der Summe der beiden Argumente ab... 0 1 2 0 1 2 1 1 3 2 2 3 212 Um solche Tabellen leicht implementieren zu können, stellt Java das switch-statement
MehrMathematische Maschinen
Mathematische Maschinen Ziel: Entwicklung eines allgemeinen Schemas zur Beschreibung von (mathematischen) Maschinen zur Ausführung von Algorithmen (hier: (partiellen) Berechnungsverfahren). Mathematische
Mehr