Grundbegriffe der Informatik
|
|
- Kristina Gerstle
- vor 7 Jahren
- Abrufe
Transkript
1 Grundbegriffe der Informatik Kapitel 14: Der Begriff des Algorithmus (einige grundlegende Aspekte) Thomas Worsch KIT, Institut für Theoretische Informatik Wintersemester 2015/2016 GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 1 / 37
2 Wo sind wir? Es war einmal... Lösen einer Sorte quadratischer Gleichungen Zum informellen Algorithmusbegriff Einführung des Hoare-Kalküls Algorithmus zur Multiplikation nichtnegativer ganzer Zahlen GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 2 / 37
3 Eine Zeitreise... wohin?... Wie weit in die Vergangenheit kann man reisen und findet noch etwas, was mit Informatik zu tun hat? (jenseits von Zählen und Zahlen) GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 3 / 37
4 ... da wären wir... Zeit: circa Ort: Bagdad, Haus der Weisheit GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 4 / 37
5 ... da wären wir... Zeit: circa Ort: Bagdad, Haus der Weisheit Muhammad ibn Mūsā al-khwārizmī geboren ca. 780 in Khiva (heute Usbekistan) oder Qutrubbull (heute Iran) gestorben ca. 850 Bildquelle: Abu_Abdullah_Muhammad_bin_Musa_al-Khwarizmi.jpg GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 4 / 37
6 Zwei wichtige Schriften von al-khwārizmī (1) Al-Kitāb al-mukhtaṣar fī hīsāb al-ğabr wa l-muqābala oder Al-Kitāb al-mukhtaṣar fī ḥisāb al-jabr wa-l-muqābala Buch von ca. 830 (?) deutsch: Das kurzgefasste Buch zum Rechnen durch Ergänzung und Ausgleich Aus al-ğabr bzw. al-jabr entstand später das Wort Algebra. Inhalt des Buches unter anderem: Lösen quadratischer Gleichungen mit einer Unbekannten. GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 5 / 37
7 Zwei wichtige Schriften von al-khwa rizmı (2) Titel vielleicht Kita b al-jam wa-l-tafrı q bi-h.isa b al-hind ca. 825 (??) Über das Rechnen mit indischen Ziffern führt die Zahl Null in das arabische Zahlensystem ein... nur noch Übersetzungen, z. B. auf Lateinisch, 12. Jhdt. (?): Titel unbekannt, Vermutung: Algorismi de numero Indorum o. ä. also ein Buch von Al-gorismi über die indischen Zahlen. Das i am Ende von Algorismi später fälschlicherweise als Pluralendung des Wortes Algorithmus angesehen. GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 6 / 37
8 Wo sind wir? Es war einmal... Lösen einer Sorte quadratischer Gleichungen Zum informellen Algorithmusbegriff Einführung des Hoare-Kalküls Algorithmus zur Multiplikation nichtnegativer ganzer Zahlen GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 7 / 37
9 Lösen einer Sorte quadratischer Gleichungen nach al-khwārizmī (1) gegeben: quadratische Gleichung der Form x 2 + bx = c mit b > 0 und c > 0 al-khwārizmī: positive Lösung findet man so: h b/2 (1) q h 2 (2) s c + q (3) w s (4) x w h (5) s nie negativ am Ende x > 0 und Lösung von x 2 + bx = c GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 8 / 37
10 Wo sind wir? Es war einmal... Lösen einer Sorte quadratischer Gleichungen Zum informellen Algorithmusbegriff Einführung des Hoare-Kalküls Algorithmus zur Multiplikation nichtnegativer ganzer Zahlen GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 9 / 37
11 Algorithmusbegriff informell Eigenschaften des eben gezeigten Algorithmus: endliche Beschreibung elementaren Anweisungen jede offensichtlich effektiv in einem Schritt ausführbar Determinismus: nächste elementare Anweisung stets eindeutig festgelegt, nur auf Grund von schon berechneten Ergebnissen und zuletzt ausgeführter elementare Anweisung endlicher Eingabe endliche Ausgabe endliche viele Schritte nur endlich oft eine elementare Anweisung ausgeführt beliebig große Eingaben bearbeitbar Nachvollziehbarkeit/Verständlichkeit des Algorithmus Algorithmus jedem (mit der Materie vertrauten) klar GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 10 / 37
12 Diskussion des informellen Algorithmusbegriffs obige Forderungen sind plausibel aber informell: Was heißt offensichtlich effektiv ausführbar? harte Beweise benötigen einen präziseren Algorithmusbegriff GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 11 / 37
13 Diskussion des informellen Algorithmusbegriffs obige Forderungen sind plausibel aber informell: Was heißt offensichtlich effektiv ausführbar? harte Beweise benötigen einen präziseren Algorithmusbegriff auch Verallgemeinerungen sind interessant randomisierte Algorithmen Zufall beeinflusst Auswahl eines Schrittes Online-Algorithmen Eingaben stehen erst nach und nach zur Verfügung nicht terminierende Berechnungen z. B. Ampelsteuerung und noch mehr... GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 11 / 37
14 Diskussion des informellen Algorithmusbegriffs obige Forderungen sind plausibel aber informell: Was heißt offensichtlich effektiv ausführbar? harte Beweise benötigen einen präziseren Algorithmusbegriff auch Verallgemeinerungen sind interessant randomisierte Algorithmen Zufall beeinflusst Auswahl eines Schrittes Online-Algorithmen Eingaben stehen erst nach und nach zur Verfügung nicht terminierende Berechnungen z. B. Ampelsteuerung und noch mehr... Sind Programme für die Mima Algorithmen? GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 11 / 37
15 Wo sind wir? Es war einmal... Lösen einer Sorte quadratischer Gleichungen Zum informellen Algorithmusbegriff Einführung des Hoare-Kalküls Algorithmus zur Multiplikation nichtnegativer ganzer Zahlen GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 12 / 37
16 Korrektheit eines Algorithmus wie beweist man sie? ad hoc Beispiel von al-khwārizmī systematisch verschiedene Möglichkeiten Beispiel Hoare-Tripel GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 13 / 37
17 Beweis von al-khwārizmī x 2 b/4 GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 14 / 37
18 Beweis von al-khwārizmī (b/4)x b/4 (b/4)x x 2 (b/4)x (b/4)x b/4 b/4 b/4 GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 14 / 37
19 Beweis von al-khwārizmī b/4 x 2 b/4 b/4 x 2 + bx = c b/4 GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 14 / 37
20 Beweis von al-khwārizmī b/4 x 2 b/4 b/4 x 2 + bx = c 4 b 2 /16 = b 2 /4 = q b/4 GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 14 / 37
21 Beweis von al-khwārizmī b/4 x 2 b/4 b/4 x 2 + bx = c 4 b 2 /16 = b 2 /4 = q b/4 c + q = (b/4 + x + b/4) 2 c + q b/2 = x GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 14 / 37
22 Beweis durch Nachrechnen { b > 0 c > 0 } h b/2 { h = b/2 } q h 2 { q = b 2 /4 } s c + q { s = c + b 2 /4 } w s { w = c + b 2 /4 } x w h { x = c + b 2 /4 b/2 } { x 2 + bx = ( c + b 2 /4 b/2) 2 + b( c + b 2 /4 b/2) } { x 2 + bx = c } GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 15 / 37
23 Beweis durch Nachrechnen { b > 0 c > 0 } h b/2 { h = b/2 } q h 2 { q = b 2 /4 h = b/2 } s c + q { s = c + b 2 /4 h = b/2 } w s { w = c + b 2 /4 h = b/2 } x w h { x = c + b 2 /4 b/2 } { x 2 + bx = ( c + b 2 /4 b/2) 2 + b( c + b 2 /4 b/2) } { x 2 + bx = c } GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 16 / 37
24 Eine einfache Programmiersprache Terminalsymbole Zuweisungssymbol Schlüsselwörter if, then, else, fi Schlüsselwörter while, do, od, for, to Symbole für Konstanten, Funktionen und Relationen Produktionen der kontextfreien Grammatik Prog Stmt Stmt Prog Stmt Var Expr if Bool then Prog else Prog fi while Bool do Prog od for Var Expr to Expr do Prog od Expr... Terme... (geeignet) Bool... Formeln... (geeignet) Var... Variablennamen... (geeignet) GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 17 / 37
25 Hoare-Tripel Programmstück mit Zusicherungen {P} S {Q} S Programmstück P Vorbedingung Q Nachbedingung P, Q Zusicherungen prädikatenlogische Formeln frei vorkommende Variablen Variablen eines Programms, von dem S ein Teil ist nicht notwendig Variablen, die in S vorkommen GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 18 / 37
26 Zusicherungen in Hoare-Tripeln Wahrheit von Zusicherungen abhängig von Interpretation und Variablenbelegung relevante Interpretationen: nur manche interessieren Grundbereich D immer fest und explizit spezifiziert Funktions- und Relationssymbole immer naheliegend interpretiert Konstantensymbole beliebig interpretierbar in D für alle Interpretationen sollen Zusicherungen wahr sein bei uns Eingaben für das Programm Variablenbelegungen beschreiben Gesamtzustand des Speichers Veränderung durch Zuweisungen GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 19 / 37
27 Bedeutung von Programmen Zuweisung x E für Term E wenn vorher Variablenbelegung β dann hinterher Variablenbelegung β = β val D, I, β (E) x also fast alles unverändert, nur x hat nun den Wert val D,I, β (E) Bedeutung der Kontrollstrukturen im Kapitel zur Mima angedeutet hier keine formale Definition GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 20 / 37
28 Gültigkeit von Hoare-Tripeln {P} S {Q} gültig, wenn für jede relevante Interpretation I und jede Variablenbelegung β gilt: wenn val D,I, β (P) = w und wenn die Ausführung von S für I und β endet und hinterher Variablenbelegung β vorliegt dann val D,I, β (Q) = w GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 21 / 37
29 Hoare-Kalkül Axiome und Ableitungsregeln für Hoare-Tripel Ziel Axiome und Ableitungsregeln für Hoare-Tripel so, dass genau die gültigen Hoare-Tripel ableitbar sind GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 22 / 37
30 Axiome für Hoare-Kalkül für Zuweisungen Voraussetzungen Zuweisung x E von Ausdruck E L Ter Q Nachbedingung zu x E σ {x /E } sei kollisionsfrei für Q HT-A: wenn σ {x /E } kollisionsfrei für Q, dann {σ {x /E } (Q)} x E {Q} ein Axiom diese Tripel sind gültig GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 23 / 37
31 Axiome für Hoare-Kalkül für Zuweisungen Voraussetzungen Zuweisung x E von Ausdruck E L Ter Q Nachbedingung zu x E σ {x /E } sei kollisionsfrei für Q HT-A: wenn σ {x /E } kollisionsfrei für Q, dann {σ {x /E } (Q)} x E {Q} ein Axiom diese Tripel sind gültig Man geht rückwärts vor! vorwärts «klappt nicht» andere Schreibweisen (uuuuh, ooooh) {Q[E/x]} x E {Q} oder {[E/x]Q} x E {Q} {Q[x/E]} x E {Q} (das erlauben wir) GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 23 / 37
32 Ableitungsregeln HT-E und HT-S im Hoare-Kalkül HT-E: Verstärkung der Vorbedingung und Abschwächung der Nachbedingung unter den Voraussetzungen P P und Q Q ist ({P} S {Q}, {P } S {Q }) eine Regel, also {P} S {Q} {P } S {Q } HT-S: Hintereinanderausführung {P} S 1 {Q} {P} S 1 ; S 2 {R} {Q} S 2 {R} Gültigkeit bleibt erhalten GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 24 / 37
33 Beispiel zeige Ableitbarkeit von {x = a} y x; z y {z = a} { x = a } y x; z y { z = a } GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 25 / 37
34 Beispiel zeige Ableitbarkeit von {x = a} y x; z y {z = a} { x = a } y x z y { z = a } auseinander ziehen GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 25 / 37
35 Beispiel zeige Ableitbarkeit von {x = a} y x; z y {z = a} { x = a } y x { y = a } z y { z = a } auseinander ziehen HT-A: {y = a} z y {z = a} ist ableitbar GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 25 / 37
36 Beispiel zeige Ableitbarkeit von {x = a} y x; z y {z = a} { x = a } y x { y = a } { y = a } z y { z = a } auseinander ziehen HT-A: {y = a} z y {z = a} ist ableitbar HT-A: {x = a} y x {y = a} ist ableitbar GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 25 / 37
37 Beispiel zeige Ableitbarkeit von {x = a} y x; z y {z = a} { x = a } y x { y = a } { y = a } z y { z = a } auseinander ziehen HT-A: {y = a} z y {z = a} ist ableitbar HT-A: {x = a} y x {y = a} ist ableitbar HT-S: fertig GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 25 / 37
38 Beispiel (2) Algorithmus von al-khwārizmī { b > 0 c > 0 } h b/2 q h 2 s c + q w s x w h 1 { x = c + b 2 /4 b/2 A } { x 2 + bx = c x > 0 } GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 26 / 37
39 Beispiel (2) Algorithmus von al-khwārizmī { b > 0 c > 0 } h b/2 q h 2 s c + q w s 2 { w h = c + b 2 /4 b/2 A } x w h 1 { x = c + b 2 /4 b/2 A } { x 2 + bx = c x > 0 } GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 26 / 37
40 Beispiel (2) Algorithmus von al-khwārizmī { b > 0 c > 0 } h b/2 q h 2 s c + q 3 { s h = c + b 2 /4 b/2 A } w s 2 { w h = c + b 2 /4 b/2 A } x w h 1 { x = c + b 2 /4 b/2 A } { x 2 + bx = c x > 0 } GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 26 / 37
41 Beispiel (2) Algorithmus von al-khwārizmī { b > 0 c > 0 } h b/2 q h 2 4 { c + q h = c + b 2 /4 b/2 A } s c + q 3 { s h = c + b 2 /4 b/2 A } w s 2 { w h = c + b 2 /4 b/2 A } x w h 1 { x = c + b 2 /4 b/2 A } { x 2 + bx = c x > 0 } GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 26 / 37
42 Beispiel (2) Algorithmus von al-khwārizmī { b > 0 c > 0 } h b/2 5 { c + h 2 h = c + b 2 /4 b/2 A } q h 2 4 { c + q h = c + b 2 /4 b/2 A } s c + q 3 { s h = c + b 2 /4 b/2 A } w s 2 { w h = c + b 2 /4 b/2 A } x w h 1 { x = c + b 2 /4 b/2 A } { x 2 + bx = c x > 0 } GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 26 / 37
43 Beispiel (2) Algorithmus von al-khwārizmī { b > 0 c > 0 } 6 { c + (b/2) 2 b/2 = c + b 2 /4 b/2 A } h b/2 5 { c + h 2 h = c + b 2 /4 b/2 A } q h 2 4 { c + q h = c + b 2 /4 b/2 A } s c + q 3 { s h = c + b 2 /4 b/2 A } w s 2 { w h = c + b 2 /4 b/2 A } x w h 1 { x = c + b 2 /4 b/2 A } { x 2 + bx = c x > 0 } GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 26 / 37
44 Beispiel (2) Algorithmus von al-khwārizmī { b > 0 c > 0 } 7 { A : c + (b/2) 2 definiert und c + (b/2) 2 b/2 > 0 } 6 { c + (b/2) 2 b/2 = c + b 2 /4 b/2 A } h b/2 5 { c + h 2 h = c + b 2 /4 b/2 A } q h 2 4 { c + q h = c + b 2 /4 b/2 A } s c + q 3 { s h = c + b 2 /4 b/2 A } w s 2 { w h = c + b 2 /4 b/2 A } x w h 1 { x = c + b 2 /4 b/2 A } { x 2 + bx = c x > 0 } GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 26 / 37
45 Beispiel (2) Algorithmus von al-khwārizmī 8 { b > 0 c > 0 } 7 { A : c + (b/2) 2 definiert und c + (b/2) 2 b/2 > 0 } 6 { c + (b/2) 2 b/2 = c + b 2 /4 b/2 A } h b/2 5 { c + h 2 h = c + b 2 /4 b/2 A } q h 2 4 { c + q h = c + b 2 /4 b/2 A } s c + q 3 { s h = c + b 2 /4 b/2 A } w s 2 { w h = c + b 2 /4 b/2 A } x w h 1 { x = c + b 2 /4 b/2 A } { x 2 + bx = c x > 0 } GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 26 / 37
46 Beispiel (2) Algorithmus von al-khwārizmī 8 { b > 0 c > 0 } 7 { A : c + (b/2) 2 definiert und c + (b/2) 2 b/2 > 0 } 6 { c + (b/2) 2 b/2 = c + b 2 /4 b/2 A } h b/2 5 { c + h 2 h = c + b 2 /4 b/2 A } q h 2 4 { c + q h = c + b 2 /4 b/2 A } s c + q 3 { s h = c + b 2 /4 b/2 A } w s 2 { w h = c + b 2 /4 b/2 A } x w h 1 { x = c + b 2 /4 b/2 A } 9 { x 2 + bx = ( c + b 2 /4 b/2) 2 + b( c + b 2 /4 b/2) x > 0 } { x 2 + bx = c x > 0 } GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 26 / 37
47 Beispiel (2) Algorithmus von al-khwārizmī 8 { b > 0 c > 0 } 7 { A : c + (b/2) 2 definiert und c + (b/2) 2 b/2 > 0 } 6 { c + (b/2) 2 b/2 = c + b 2 /4 b/2 A } h b/2 5 { c + h 2 h = c + b 2 /4 b/2 A } q h 2 4 { c + q h = c + b 2 /4 b/2 A } s c + q 3 { s h = c + b 2 /4 b/2 A } w s 2 { w h = c + b 2 /4 b/2 A } x w h 1 { x = c + b 2 /4 b/2 A } 9 { x 2 + bx = ( c + b 2 /4 b/2) 2 + b( c + b 2 /4 b/2) x > 0 } 10 { x 2 + bx = c x > 0 } GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 26 / 37
48 Regel HT-I für bedingte Anweisungen { P } if B then { P B } S 1 { Q } else { P B } S 2 { Q } fi { Q } HT-I: {P B} S 1 {Q} {P B} S 2 {Q} {P} if B then S 1 else S 2 fi {Q} Gültigkeit bleibt erhalten GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 27 / 37
49 Beispiel für HT-I { 0 = 0 } if x < 0 then x x else x x fi { x 0 } Grundmenge sei Z GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 28 / 37
50 Beispiel für HT-I { 0 = 0 } if x < 0 then else x x x x fi { x 0 } Grundmenge sei Z if B then S 1 else S 2 fi wenn {P B} S 1 {Q} ableitbar und wenn {P B} S 2 {Q} ableitbar dann {P} if B then S 1 else S 2 fi {Q} ableitbar GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 28 / 37
51 Beispiel für HT-I { 0 = 0 } if x < 0 then else { 0 = 0 x < 0 } x x { x 0 } x x fi { x 0 } Grundmenge sei Z if B then S 1 else S 2 fi wenn {P B} S 1 {Q} ableitbar und wenn {P B} S 2 {Q} ableitbar dann {P} if B then S 1 else S 2 fi {Q} ableitbar GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 28 / 37
52 Beispiel für HT-I { 0 = 0 } if x < 0 then else { 0 = 0 x < 0 } x x { x 0 } { 0 = 0 (x < 0) } x x { x 0 } fi { x 0 } Grundmenge sei Z if B then S 1 else S 2 fi wenn {P B} S 1 {Q} ableitbar und wenn {P B} S 2 {Q} ableitbar dann {P} if B then S 1 else S 2 fi {Q} ableitbar GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 28 / 37
53 Beispiel für HT-I { 0 = 0 } if x < 0 then else { 0 = 0 x < 0 } { x 0 } x x { x 0 } { 0 = 0 (x < 0) } { x 0 } x x { x 0 } fi { x 0 } Grundmenge sei Z if B then S 1 else S 2 fi wenn {P B} S 1 {Q} ableitbar und wenn {P B} S 2 {Q} ableitbar dann {P} if B then S 1 else S 2 fi {Q} ableitbar GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 28 / 37
54 Regel HT-W für while-schleifen { I } HT-W: while B do { I B } S { I } od { I B } {I B} S {I } {I } while B do S od {I B} Zusicherung I heißt Schleifeninvariante Gültigkeit bleibt erhalten GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 29 / 37
55 Wo sind wir? Es war einmal... Lösen einer Sorte quadratischer Gleichungen Zum informellen Algorithmusbegriff Einführung des Hoare-Kalküls Algorithmus zur Multiplikation nichtnegativer ganzer Zahlen GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 30 / 37
56 Erinnerung: div und mod x mod y Rest der ganzzahligen Division von x durch y 0 x mod y < y x div y Ergebnis der ganzzahligen Division von x durch y für alle x,y N 0 gilt x = y (x div y) + (x mod y) Beispiele 6 div 2 = 3 und 6 mod 2 = 0 7 div 2 = 3 und 7 mod 2 = 1 8 div 2 = 4 und 8 mod 2 = 0 GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 31 / 37
57 Algorithmus für die Multiplikation Grundbereich N 0 also I (a), I (b) N 0 i 0 X a Y b P 0 while X > 0 do i i + 1 P P + (X mod 2) Y X X div 2 Y 2 Y od GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 32 / 37
58 Beispielrechnung i 0 X a Y b P 0 while X > 0 do i i + 1 P P + (X mod 2) Y X X div 2 Y 2 Y od Es sei a = 6 und b = 9 schreibe v i für Wert von v nach i Schleifendurchläufen P i X i Y i i = i = i = i = GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 33 / 37
59 Beispielrechnung i 0 X a Y b P 0 while X > 0 do i i + 1 P P + (X mod 2) Y X X div 2 Y 2 Y od Es sei a = 6 und b = 9 schreibe v i für Wert von v nach i Schleifendurchläufen P i X i Y i i = i = i = i = am Ende: P 3 = 54 = a b wollen beweisen: Das klappt immer! GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 33 / 37
60 Algorithmus für die Multiplikation Grundbereich N 0 { 0 = 0 } also I (a), I (b) N 0 i 0 X a Y b P 0 while X > 0 do i i + 1 P P + (X mod 2) Y X X div 2 Y 2 Y od { P = a b } GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 34 / 37
61 Algorithmus für die Multiplikation Grundbereich N 0 { 0 = 0 } also I (a), I (b) N 0 i 0 X a Y b P 0 Schleifeninvariante { X Y + P = a b } while X > 0 do i i + 1 P P + (X mod 2) Y X X div 2 Y 2 Y od { P = a b } GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 34 / 37
62 Schleifeninvariante für Multiplikationsalgorithmus (1) Grundbereich N 0 { X Y + P = a b } also I (a), I (b) N 0 while X > 0 do i i + 1 P P + (X mod 2) Y X X div 2 Y 2 Y od { P = a b } GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 35 / 37
63 Schleifeninvariante für Multiplikationsalgorithmus (1) Grundbereich N 0 { X Y + P = a b } also I (a), I (b) N 0 while X > 0 do { X Y + P = a b X > 0 } i i + 1 P P + (X mod 2) Y X X div 2 Y 2 Y { X Y + P = a b } od { P = a b } GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 35 / 37
64 Schleifeninvariante für Multiplikationsalgorithmus (1) Grundbereich N 0 { X Y + P = a b } also I (a), I (b) N 0 while X > 0 do { X Y + P = a b X > 0 } i i + 1 P P + (X mod 2) Y X X div 2 Y 2 Y { X Y + P = a b } od { X Y + P = a b (X > 0) } { P = a b } GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 35 / 37
65 Schleifeninvariante für Multiplikationsalgorithmus (2) Grundbereich N 0 { X Y + P = a b X > 0 } also I (a), I (b) N 0 i i + 1 P P + (X mod 2) Y X X div 2 Y 2 Y { X Y + P = a b } GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 36 / 37
66 Schleifeninvariante für Multiplikationsalgorithmus (2) Grundbereich N 0 also I (a), I (b) N 0 { X Y + P = a b X > 0 } { (X div 2) (2Y ) + P + (X mod 2) Y = a b } i i + 1 { (X div 2) (2Y ) + P + (X mod 2) Y = a b } P P + (X mod 2) Y { (X div 2) (2Y ) + P = a b } X X div 2 { X (2Y ) + P = a b } Y 2 Y { X Y + P = a b } GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 36 / 37
67 Schleifeninvariante für Multiplikationsalgorithmus (2) Grundbereich N 0 also I (a), I (b) N 0 { X Y + P = a b X > 0 } { (X div 2) (2Y ) + P + (X mod 2) Y = a b } i i + 1 { (X div 2) (2Y ) + P + (X mod 2) Y = a b } P P + (X mod 2) Y { (X div 2) (2Y ) + P = a b } X X div 2 { X (2Y ) + P = a b } Y 2 Y { X Y + P = a b } (X div 2) (2Y ) + P + (X mod 2) Y = (2(X div 2) + (X mod 2)) Y + P = X Y + P GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 36 / 37
68 Was ist wichtig Das sollten Sie mitnehmen: informeller Algorithmusbegriff Schleifeninvarianten Das sollten Sie üben: Schleifeninvarianten finden Wertetabellen können helfen Korrektheitsbeweise finden mit Hoare-Kalkül GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 37 / 37
Grundbegriffe 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
MehrC. A. R. Hoare. An Axiomatic Basis for Computer Programming. Nicolas Schelp. Proseminar Assertions SS 2007
C. A. R. Hoare An Axiomatic Basis for Computer Programming Nicolas Schelp Proseminar Assertions SS 2007 Inhalt Motivation Kurze Biographie Der Hoare-Kalkül Axiome und Inferenzregeln des Hoare-Kalküls Die
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
MehrGrundbegriffe der Informatik
Grundbegriffe der Informatik Einheit 18: Logik Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/35 Überblick Formeln in Prädikatenlogik erster Stufe Theorien und
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
MehrZusammenfassung. Definition. 1 (x i ) 1 i n Sequenz von Registern x i, die natürliche Zahlen beinhalten. 2 P ein Programm. Befehle: 1 x i := x i + 1
Zusammenfassung Zusammenfassung der letzten LVA Einführung in die Theoretische Informatik Christina Kohl Alexander Maringele Georg Moser Michael Schaper Manuel Schneckenreither Eine Registermaschine (RM)
MehrVerifikation von Programmen
http://scam-trap.com/i/stophacking1.gif Verifikation von Programmen OOPM, Ralf Lämmel 380 Was tun? (Mit den Spezifikationen) Dokumentation Überprüfen der Bedingungen zur Laufzeit Verifizieren der Bedingungen
MehrIdeen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn
Ideen und Konzepte der Informatik Programme und Algorithmen Kurt Mehlhorn November 2016 Algorithmen und Programme Algorithmus = Schritt-für-Schritt Vorschrift zur Lösung eines Problems. Formuliert man
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.
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
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: ; :=
MehrGrundlagen der Theoretischen Informatik
FH Wedel Prof. Dr. Sebastian Iwanowski GTI33 Folie 1 Grundlagen der Theoretischen Informatik Sebastian Iwanowski FH Wedel Kap. 3: Verifikationstechniken Teil 3: FH Wedel Prof. Dr. Sebastian Iwanowski GTI33
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
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
MehrAlgorithmen und Programmieren II Programmverifikation {V} P {N}
Algorithmen und Programmieren II Programmverifikation {V} P {N} SS 2012 Prof. Dr. Margarita Esponda ALP II: Margarita Esponda, 11. Vorlesung, 22.5.2012 1 Assertions oder Zusicherungen Das Konzept der Zusicherungen
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.
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
MehrInhalt. 1. Einführung in die Informatik. 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele.
1. Einführung in die Informatik Inhalt 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele Peter Sobe 1 Einführende Beispiele 2. Algorithmen Täglich werden Verarbeitungsvorschriften
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
MehrInformatik II, SS 2014
Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 7 (21.5.2014) Binäre Suche, Hashtabellen I Algorithmen und Komplexität Abstrakte Datentypen : Dictionary Dictionary: (auch: Maps, assoziative
MehrEinführung in die Informatik Algorithms
Einführung in die Informatik Algorithms Vom Problem zum Algorithmus und zum Programm Wolfram Burgard Cyrill Stachniss 1.1 Motivation und Einleitung In der Informatik sucht man im Normalfall nach Verfahren
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
Mehr4.3 Verifikation von Aussagen über Algorithmen
4.3 Verifikation von Aussagen über Algorithmen Hoaresche Logik: Kalkül zum Beweisen von Aussagen über Algorithmen und Programme, Programm-Verifikation, [C.A.R. Hoare, 1969]. Mod - 4.51 Statische Aussagen
MehrBeispiel 1 zur Verifikation eines bedingten Anweisung. Hoare-Regel für die bedingte Anweisung. else
Hoare-Regel für die bedingte Anweisung I1 : I2 : {B P } S 1 {Q} { nicht B P } {Q} {P } if (B) then S 1 {Q} {B P } S 1 {Q} { nicht B P } S 2 {Q} {P } if (B) then S 1 else S 2 {Q} In der Regel für bedingte
MehrVerifizierende Testverfahren
Spezifikation Um einen Algorithmus zu schreiben, muss das zu lösende Problem genau beschrieben sein. Eine Spezifikation ist Verifizierende Testverfahren vollständig, wenn alle Anforderungen/alle relevanten
MehrAlgorithmen und Datenstrukturen Korrektheit von Algorithmen
Algorithmen und Datenstrukturen Korrektheit von Algorithmen Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Lernziele der Vorlesung Algorithmen Sortieren,
MehrÜbung zur Vorlesung Berechenbarkeit und Komplexität
RWTH Aachen Lehrgebiet Theoretische Informatik Reidl Ries Rossmanith Sanchez Tönnis WS 2012/13 Übungsblatt 7 26.11.2012 Übung zur Vorlesung Berechenbarkeit und Komplexität Aufgabe T15 Entwickeln Sie ein
MehrDefinition der Hilfsprädikate
Denition der Hilfsprädikate fct sorted = (seq nat s) bool: if #s < 2 then true else rst(s) rst(rest(s)) sorted(rest(s)) a s = ( nat k: k#a = k#s) mit k# = 0 k# j s = if k == j then 1+ k#s else k#s 1 Annotierte
Mehr1 Einführung: Algorithmen. Algorithmen und Datenstrukturen WS 2012/13. Pro f. Dr. Sán do r Fe k e te
1 Einführung: Algorithmen Algorithmen und Datenstrukturen WS 2012/13 Pro f. Dr. Sán do r Fe k e te Literatur 1.1 Was ist ein Algorithmus? Ein Algorithmus ist eine aus endlich vielen Schritten bestehende
MehrEin Beispielbeweis zur Verifikation des Programms zur Division mit Rest auf der Basis der Hoare-Regeln
Ein Beispielbeweis zur Verifikation des Programms zur Division mit Rest auf der Basis der Hoare-Regeln Ralf Lämmel 24. Dezember 2014 1 Hoare-Regeln Im folgenden müssen wie folgende Hoare-Regeln benutzen:
MehrEinführung in die Theoretische Informatik
Technische Universität München Fakultät für Informatik Prof. Tobias Nipkow, Ph.D. Sascha Böhme, Lars Noschinski Sommersemester 2011 Lösungsblatt 9 25. Juli 2011 Einführung in die Theoretische Informatik
Mehr1. Übung Algorithmen I
Timo Bingmann, Christian Schulz INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS 1 KIT Timo Universität Bingmann, des LandesChristian Baden-Württemberg Schulz und nationales Forschungszentrum in der
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
MehrBeispiel 1 zur Verifikation eines bedingten Anweisung. Hoare-Regel für die bedingte Anweisung. Beispiel 2 zur Verifikation eines bedingten Anweisung
Hoare-Regel für die bedingte Anweisung I1 : I2 : {B und P } S 1 {Q} { nicht B und P } {Q} {P } if (B) then S 1 {Q} {B und P } S 1 {Q} { nicht B und P } S 2 {Q} {P } if (B) then S 1 S 2 {Q} In der Regel
MehrFormale Systeme. Prädikatenlogik 2. Stufe. Prof. Dr. Bernhard Beckert WS 2009/2010 KIT INSTITUT FÜR THEORETISCHE INFORMATIK
Formale Systeme Prof. Dr. Bernhard Beckert WS 2009/2010 KIT INSTITUT FÜR THEORETISCHE INFORMATIK KIT University of the State of Baden-Württemberg and National Large-scale Research Center of the Helmholtz
MehrGrundbegriffe der Informatik Kapitel 3: Mengen, Alphabete, Abbildungen
Grundbegriffe der Informatik Kapitel 3: Mengen, Alphabete, Abbildungen Thomas Worsch KIT, Institut für Theoretische Informatik Wintersemester 2015/2016 GBI Grundbegriffe der Informatik KIT, Institut für
MehrEinführung in die Informatik 1
Einführung in die Informatik 1 Algorithmen und algorithmische Sprachkonzepte Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag,
Mehr4 Spezifikation und Verifikation
4 Spezifikation und Verifikation Program testing can at best show the presence of errors, but never their absence. Dijkstra, http://www.cs.utexas.edu/users/ewd Beware of bugs in the above code; I have
MehrEinführung in die Informatik I (autip)
Einführung in die Informatik I (autip) Dr. Stefan Lewandowski Fakultät 5: Informatik, Elektrotechnik und Informationstechnik Abteilung Formale Konzepte Universität Stuttgart 24. Oktober 2007 Was Sie bis
Mehr1 Potenzen und Polynome
1 Potenzen und Polynome Für eine reelle Zahl x R und eine natürliche Zahl n N definieren wir x n := x x x... x }{{} n-mal Einschub über die bisher aufgetretenen mathematischen Symbole: Definition mittels
MehrKostenmodell. Daniel Graf, Tobias Pröger. 22. September 2016 (aktualisierte Fassung 5 vom 9. Oktober 2016)
Kostenmodell Daniel Graf, Tobias Pröger 22. September 2016 (aktualisierte Fassung 5 vom 9. Oktober 2016) Erklärung: Diese Mitschrift ist als Ergänzung zur Vorlesung gedacht. Wir erheben keinen Anspruch
Mehr1 Funktionale vs. Imperative Programmierung
1 Funktionale vs. Imperative Programmierung 1.1 Einführung Programme einer funktionalen Programmiersprache (functional programming language, FPL) bestehen ausschließlich aus Funktionsdefinitionen und Funktionsaufrufen.
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
MehrSyntax von LOOP-Programmen
LOOP-Berechenbarkeit Syntax von LOOP-Programmen Definition LOOP-Programme bestehen aus: Variablen: x 0, x 1, x 2, x 3,... Konstanten: 0, 1, 2, 3,... Trennsymbolen:; und := Operationen: + und Befehlen:
MehrKapitel III Ringe und Körper
Kapitel III Ringe und Körper 1. Definitionen und Beispiele Definition 117 Eine Algebra A = S,,, 0, 1 mit zwei zweistelligen Operatoren und heißt ein Ring, falls R1. S,, 0 eine abelsche Gruppe mit neutralem
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
MehrKapitel 11. Prädikatenlogik Quantoren und logische Axiome
Kapitel 11 Prädikatenlogik Im Kapitel über Aussagenlogik haben wir die Eigenschaften der Booleschen Operationen untersucht. Jetzt wollen wir das als Prädikatenlogik bezeichnete System betrachten, das sich
MehrGrundlagen der Theoretischen Informatik
Grundlagen der Theoretischen Informatik 4. Kellerautomaten und kontextfreie Sprachen (II) 11.06.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Übersicht 1. Motivation 2. Terminologie
Mehr2. Algorithmenbegriff
2. Algorithmenbegriff Keine Algorithmen: Anleitungen, Kochrezepte, Wegbeschreibungen,... Algorithmus: Berechnungsvorschrift, die angibt, wie durch Ausführung bestimmter Elementaroperationen aus Eingabegrößen
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:
MehrGrundbegriffe der Informatik
Grundbegriffe der Informatik Kapitel 16: Erste Algorithmen in Graphen Thomas Worsch KIT, Institut für Theoretische Informatik Wintersemester 2015/2016 GBI Grundbegriffe der Informatik KIT, Institut für
MehrSequentielle Programme, Hoare-Logik und Dynamische Logik
Sequentielle Programme, Hoare-Logik und Dynamische Logik 170 Was ist ein SW-System mathematisch? 1. Sicht: operational Ein SW-System ist ein Automat mit Zustand, Zustandsübergängen und mit Abläufen. 2.
MehrÜberblick. 1 Vorbemerkungen. 2 Algorithmen. 3 Eigenschaften von Algorithmen. 4 Historischer Überblick. Einführung
Teil I Einführung Überblick 1 Vorbemerkungen 2 Algorithmen 3 4 Historischer Überblick Prof. G. Stumme Algorithmen & Datenstrukturen Sommersemester 2009 1 1 Vorbemerkungen Was ist Informatik? Informatik
MehrKapitel 1 Einleitung. Definition: Algorithmus nach M. Broy: aus: Informatik: Eine grundlegende Einführung, Band 1, Springer-Verlag, Berlin
Kapitel 1 Einleitung 1.1. Begriff des Algorithmus Eine der ältesten Beschreibungstechniken für Abläufe: Benannt nach dem Mathematiker Al-Khwarizmi (ca. 780...840), der am Hof der Kalifen von Bagdad wirkte.
MehrG R U N D B E G R I F F E D E R I N F O R M AT I K. thomas worsch
G R U N D B E G R I F F E D E R I N F O R M AT I K thomas worsch 2008/2009 I N H A LT S V E R Z E I C H N I S 1 Prolog 1 1.1 Aufbau der Vorlesung und Ziele 1 1.2 Quellen 2 2 Signale, Nachrichten, Informationen,
Mehr3. Klausur Einführung in die Theoretische Informatik Seite 1 von Welches der folgenden klassischen Probleme der Informatik ist entscheidbar?
3. Klausur Einführung in die Theoretische Informatik Seite 1 von 14 1. Welches der folgenden klassischen Probleme der Informatik ist entscheidbar? A. Gegeben eine kontextfreie Grammatik G. Gibt es ein
MehrKapitel 1: Informationsverarbeitung durch Programme
LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS Skript zur Vorlesung: Einführung in die Informatik: Systeme und Anwendungen Sommersemester 2009 Kapitel 1: Informationsverarbeitung
MehrIdeen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn
Ideen und Konzepte der Informatik Programme und Algorithmen Kurt Mehlhorn 26. Oktober 2015 Programme und Algorithmen Programmiersprache = Kunstsprache mit genau definierter Syntax (was ist ein zulässiger
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,
MehrSeminararbeit zum Thema Was ist ein Algorithmus?
Seminararbeit zum Thema Was ist ein Algorithmus? Martin Griesser 05. Juni 2013 Inhaltsverzeichnis 1 Vorwort 2 2 Wortherkunft 2 3 Definition 2 3.1 Algorithmus und Berechenbarkeit.................. 2 3.2
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
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
MehrFormale Programmverifikation. Referentin: Kirsten Hradek
Formale Programmverifikation Referentin: Kirsten Hradek Formale Programmverifikation 2 Formale Programmverifikation Einführung/Motivation 2 Formale Programmverifikation Einführung/Motivation Softwareverifikation
MehrSemantik von Programmiersprachen SS 2012
Lehrstuhl für Programmierparadigmen Andreas Lochbihler Joachim Breitner andreas.lochbihler@kit.edu breitner@kit.edu Semantik von Programmiersprachen SS 2012 http://pp.info.uni-karlsruhe.de/lehre/ss2012/semantik
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: ; :=
Mehr4.1 Motivation. Theorie der Informatik. Theorie der Informatik. 4.1 Motivation. 4.2 Syntax der Prädikatenlogik. 4.3 Semantik der Prädikatenlogik
Theorie der Informatik 3. März 2014 4. Prädikatenlogik I Theorie der Informatik 4. Prädikatenlogik I 4.1 Motivation Malte Helmert Gabriele Röger 4.2 Syntax der Prädikatenlogik Universität Basel 3. März
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
MehrDiskrete Strukturen Kapitel 2: Grundlagen (Beweise)
WS 2014/15 Diskrete Strukturen Kapitel 2: Grundlagen (Beweise) Hans-Joachim Bungartz Lehrstuhl für wissenschaftliches Rechnen Fakultät für Informatik Technische Universität München http://www5.in.tum.de/wiki/index.php/diskrete_strukturen_-_winter_14
MehrWS 2009/10. Diskrete Strukturen
WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910
Mehr3. Klausur Einführung in die Theoretische Informatik Seite 1 von 14
3. Klausur Einführung in die Theoretische Informatik Seite 1 von 14 1. Welche der folgenden Aussagen zur Verifikation nach Hoare ist richtig? A. Eine Formel, die sowohl vor der Ausführung des Programmes,
Mehr2.4 Schleifen. Schleifen unterscheiden sich hinsichtlich des Zeitpunktes der Prüfung der Abbruchbedingung:
2.4 Schleifen Schleifen beschreiben die Wiederholung einer Anweisung bzw. eines Blocks von Anweisungen (dem Schleifenrumpf) bis eine bestimmte Bedingung (die Abbruchbedingung) eintritt. Schleifen unterscheiden
MehrInformatik 1. Teil 1 - Wintersemester 2012/2013. Prof. Dr.-Ing. habil. Peter Sobe Fachkultät Informatik / Mathematik
Informatik 1 Teil 1 - Wintersemester 2012/2013 Prof. Dr.-Ing. habil. Peter Sobe Fachkultät Informatik / Mathematik Dieser Foliensatz wurde z.t. von Herrn Prof. Grossmann übernommen 0. Rechner und Programmierung
Mehr1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -
1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik
Mehr1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -
1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik
MehrFormale Methoden 2. Gaetano Geck Lehrstuhl I Logik in der Informatik WS 2015/2016
Formale Methoden 2 Gaetano Geck Lehrstuhl I Logik in der Informatik WS 2015/2016 Teil 3: Kodierung 1 Motivation 2 Exkurs Grundlagen formaler Sprachen 3 Grundlagen 4 Beispielkodierungen FM2 (WS 2014/15,
MehrTHEORETISCHE INFORMATIK UND LOGIK
THEORETISCHE INFORMATIK UND LOGIK 3. Vorlesung: WHILE und LOOP Markus Krötzsch Lehrstuhl Wissensbasierte Systeme TU Dresden, 12. April 2017 Was bisher geschah... Grundbegriffe, die wir verstehen und erklären
MehrKapitel 5: Abstrakte Algorithmen und Sprachkonzepte. Elementare Schritte
Elementare Schritte Ein elementarer Berechnungsschritt eines Algorithmus ändert im Allgemeinen den Wert von Variablen Zuweisungsoperation von fundamentaler Bedeutung Zuweisungsoperator In Pascal := In
MehrSei Σ ein endliches Alphabet. Eine Sprache L Σ ist genau dann regulär, wenn sie von einem regulären Ausdruck beschrieben werden kann.
Der Satz von Kleene Wir haben somit Folgendes bewiesen: Der Satz von Kleene Sei Σ ein endliches Alphabet. Eine Sprache L Σ ist genau dann regulär, wenn sie von einem regulären Ausdruck beschrieben werden
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:
MehrFunktionale Programmierung ALP I. λ Kalkül WS 2012/2013. Prof. Dr. Margarita Esponda. Prof. Dr. Margarita Esponda
ALP I λ Kalkül WS 2012/2013 Berechenbarkeit - inspiriert durch Hilbert's Frage - im Jahr 1900, Paris - Internationaler Mathematikerkongress Gibt es ein System von Axiomen, aus denen alle Gesetze der Mathematik
MehrWerkzeuge zur Programmentwicklung
Werkzeuge zur Programmentwicklung B-15 Bibliothek Modulschnittstellen vorübersetzte Module Eingabe Editor Übersetzer (Compiler) Binder (Linker) Rechner mit Systemsoftware Quellmodul (Source) Zielmodul
MehrTheoretische Informatik Kap 2: Berechnungstheorie
Gliederung der Vorlesung 0. Grundbegriffe 1. Formale Sprachen/Automatentheorie 1.1. Grammatiken 1.2. Reguläre Sprachen 1.3. Kontextfreie Sprachen 2. Berechnungstheorie 2.1. Berechenbarkeitsmodelle 2.2.
MehrMaike Buchin 18. Februar 2016 Stef Sijben. Probeklausur. Theoretische Informatik. Bearbeitungszeit: 3 Stunden
Maike Buchin 8. Februar 26 Stef Sijben Probeklausur Theoretische Informatik Bearbeitungszeit: 3 Stunden Name: Matrikelnummer: Studiengang: Geburtsdatum: Hinweise: Schreibe die Lösung jeder Aufgabe direkt
MehrBerechenbarkeit. Script, Kapitel 2
Berechenbarkeit Script, Kapitel 2 Intuitiver Berechenbarkeitsbegriff Turing-Berechenbarkeit WHILE-Berechenbarkeit Church sche These Entscheidungsprobleme Unentscheidbarkeit des Halteproblems für Turingmaschinen
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
MehrUnvollständigkeit der Arithmetik
Unvollständigkeit der Arithmetik Slide 1 Unvollständigkeit der Arithmetik Hans U. Simon (RUB) Email: simon@lmi.rub.de Homepage: http://www.ruhr-uni-bochum.de/lmi Unvollständigkeit der Arithmetik Slide
MehrGrundbegriffe der Informatik Tutorium 11
Grundbegriffe der Informatik Tutorium 11 Tutorium Nr. 32 Philipp Oppermann 29. Januar 2014 KARLSRUHER INSTITUT FÜR TECHNOLOGIE KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum
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
Mehr(Prüfungs-)Aufgaben zur Berechenbarkeits- und Komplexitätstheorie
(Prüfungs-)Aufgaben zur Berechenbarkeits- und Komplexitätstheorie 1) Schreiben Sie ein LOOP-Programm, das die Funktion f: N \ {0} N, f (n) = n n berechnet. Sie dürfen in Ihrem Programm die Multiplikation
Mehr3. Grundanweisungen in Java
3. Grundanweisungen in Java Die Grundanweisungen entsprechen den Prinzipien der strukturierten Programmierung 1. Zuweisung 2. Verzweigungen 3. Wiederholungen 4. Anweisungsfolge (Sequenz) Die Anweisungen
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Wintersemester 2013/14 1. Vorlesung Kapitel 1: Sortieren Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Das Problem Eingabe Gegeben: eine Folge A = a 1, a 2,..., a
MehrWS 2013/14. Diskrete Strukturen
WS 2013/14 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws1314
MehrC++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22
C++ Teil 2 Sven Groß IGPM, RWTH Aachen 16. Apr 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 2 16. Apr 2015 1 / 22 Themen der letzten Vorlesung Hallo Welt Elementare Datentypen Ein-/Ausgabe Operatoren Sven
MehrNormalform. 2.1 Äquivalenz und Folgerung. 2.2 Die pränexe Normalform
2 Normalformen 2.1 Äquivalenz und Folgerung Definition 2.1 Äquivalenz, Folgerung). Seien ϕ, ψ FO[σ]. a) ϕ und ψ heißen äquivalent kurz: ϕ ψ, bzw. ϕ = ψ), wenn für alle zu ϕ und ψ äquivalent passenden σ-interpretationen
MehrAllgemeines Halteproblem Hilberts 10. Problem
Allgemeines Halteproblem Hilberts 10. Problem Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen November 2011 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit
MehrLösungen zu Kapitel 5
Lösungen zu Kapitel 5 Lösung zu Aufgabe : (a) Es gibt derartige Graphen: (b) Offensichtlich besitzen 0 der Graphen einen solchen Teilgraphen. Lösung zu Aufgabe : Es sei G = (V, E) zusammenhängend und V
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Wintersemester 2012/13 1. Vorlesung Kapitel 1: Sortieren Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Das Problem Eingabe Gegeben: eine Folge A = a 1, a 2,..., a
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
MehrInformatik II, SS 2018
Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 6 (7.5.2018) Dictionaries, Binäre Suche, Hashtabellen I / Yannic Maus Algorithmen und Komplexität Abstrakte Datentypen : Dictionary Dictionary:
MehrPumping-Lemma 2 Pumping-Lemma Sei L eine von einem endlichen Automaten erkannte Sprache. Dann existiert eine natürliche Zahl p N derart, dass jedes Wo
1 Endliche Automaten Modellierungskonzept mit vielen brauchbaren Eigenschaften schnelle Spracherkennung graphisch-visuelle Beschreibung automatische Korrektheitsbeweise gute Kompositionalitätseigenschaften
Mehr