Grundbegriffe der Informatik

Größe: px
Ab Seite anzeigen:

Download "Grundbegriffe der Informatik"

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

Mehr

C. 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 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

Mehr

WS 05/06 mod Verifikation

WS 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

Mehr

Grundbegriffe der Informatik

Grundbegriffe 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

{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

Mehr

Zusammenfassung. 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. 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)

Mehr

Verifikation von Programmen

Verifikation 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

Mehr

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

Ideen 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

Mehr

GTI. Hannes Diener. 18. Juni. ENC B-0123,

GTI. 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.

Mehr

Schleifeninvarianten. Dezimal zu Binär

Schleifeninvarianten. 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

Mehr

LOOP-Programme: Syntaktische Komponenten

LOOP-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: ; :=

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen 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

Mehr

Informatik I - Programmierung Globalübung Hoare-Kalkül. Thomas Weiler. Fachgruppe Informatik RWTH Aachen. T. Weiler, RWTH Aachen - 1 -

Informatik 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

Mehr

Theoretische Informatik SS 03 Übung 3

Theoretische 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

Mehr

Algorithmen und Programmieren II Programmverifikation {V} P {N}

Algorithmen 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

Mehr

Berechenbarkeit und Komplexität Vorlesung 11

Berechenbarkeit 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 - ! 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

Mehr

Inhalt. 1. Einführung in die Informatik. 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele.

Inhalt. 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

Mehr

Partielle Korrektheit von Programmen. Beispiele an der Tafel

Partielle 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

Mehr

Informatik II, SS 2014

Informatik 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

Mehr

Einführung in die Informatik Algorithms

Einfü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

Mehr

2. Grundlagen. Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten.

2. 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

Mehr

4.3 Verifikation von Aussagen über Algorithmen

4.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

Mehr

Beispiel 1 zur Verifikation eines bedingten Anweisung. Hoare-Regel für die bedingte Anweisung. else

Beispiel 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

Mehr

Verifizierende Testverfahren

Verifizierende 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

Mehr

Algorithmen und Datenstrukturen Korrektheit von Algorithmen

Algorithmen 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

Ü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

Mehr

Definition der Hilfsprädikate

Definition 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

Mehr

1 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 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

Mehr

Ein 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 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:

Mehr

Einführung in die Theoretische Informatik

Einfü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

Mehr

1. Übung Algorithmen I

1. Ü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,

Ü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

Mehr

Beispiel 1 zur Verifikation eines bedingten Anweisung. Hoare-Regel für die bedingte Anweisung. Beispiel 2 zur Verifikation eines bedingten Anweisung

Beispiel 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

Mehr

Formale Systeme. Prädikatenlogik 2. Stufe. Prof. Dr. Bernhard Beckert WS 2009/2010 KIT INSTITUT FÜR THEORETISCHE INFORMATIK

Formale 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

Mehr

Grundbegriffe der Informatik Kapitel 3: Mengen, Alphabete, Abbildungen

Grundbegriffe 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

Mehr

Einführung in die Informatik 1

Einfü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,

Mehr

4 Spezifikation und Verifikation

4 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

Mehr

Einführung in die Informatik I (autip)

Einfü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

Mehr

1 Potenzen und Polynome

1 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

Mehr

Kostenmodell. 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) 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

Mehr

1 Funktionale vs. Imperative Programmierung

1 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.

Mehr

Mächtigkeit von WHILE-Programmen

Mä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

Mehr

Syntax von LOOP-Programmen

Syntax 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:

Mehr

Kapitel III Ringe und Körper

Kapitel 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

Mehr

Grundlagen der Informatik I (Studiengang Medieninformatik)

Grundlagen 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

Mehr

Kapitel 11. Prädikatenlogik Quantoren und logische Axiome

Kapitel 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

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen 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

Mehr

2. Algorithmenbegriff

2. Algorithmenbegriff 2. Algorithmenbegriff Keine Algorithmen: Anleitungen, Kochrezepte, Wegbeschreibungen,... Algorithmus: Berechnungsvorschrift, die angibt, wie durch Ausführung bestimmter Elementaroperationen aus Eingabegrößen

Mehr

1.2 LOOP-, WHILE- und GOTO-Berechenbarkeit

1.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:

Mehr

Grundbegriffe der Informatik

Grundbegriffe 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

Mehr

Sequentielle Programme, Hoare-Logik und Dynamische Logik

Sequentielle 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

Ü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

Mehr

Kapitel 1 Einleitung. Definition: Algorithmus nach M. Broy: aus: Informatik: Eine grundlegende Einführung, Band 1, Springer-Verlag, Berlin

Kapitel 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.

Mehr

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

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 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,

Mehr

3. 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 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

Mehr

Kapitel 1: Informationsverarbeitung durch Programme

Kapitel 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

Mehr

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

Ideen 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

Mehr

VL-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 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,

Mehr

Seminararbeit zum Thema Was ist ein Algorithmus?

Seminararbeit 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

Mehr

Wiederholung. Organisatorisches. VL-11: LOOP und WHILE Programme I. (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger

Wiederholung. 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

Mehr

Abschnitt 11: Korrektheit von imperativen Programmen

Abschnitt 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

Formale Programmverifikation. Referentin: Kirsten Hradek

Formale Programmverifikation. Referentin: Kirsten Hradek Formale Programmverifikation Referentin: Kirsten Hradek Formale Programmverifikation 2 Formale Programmverifikation Einführung/Motivation 2 Formale Programmverifikation Einführung/Motivation Softwareverifikation

Mehr

Semantik von Programmiersprachen SS 2012

Semantik 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

Mehr

LOOP-Programme: Syntaktische Komponenten

LOOP-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: ; :=

Mehr

4.1 Motivation. Theorie der Informatik. Theorie der Informatik. 4.1 Motivation. 4.2 Syntax der Prädikatenlogik. 4.3 Semantik der Prädikatenlogik

4.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

Mehr

Algorithmus. 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. 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

Mehr

Diskrete Strukturen Kapitel 2: Grundlagen (Beweise)

Diskrete 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

Mehr

WS 2009/10. Diskrete Strukturen

WS 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

Mehr

3. Klausur Einführung in die Theoretische Informatik Seite 1 von 14

3. 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,

Mehr

2.4 Schleifen. Schleifen unterscheiden sich hinsichtlich des Zeitpunktes der Prüfung der Abbruchbedingung:

2.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

Mehr

Informatik 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 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

Mehr

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

1. 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

Mehr

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

1. 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

Mehr

Formale 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 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,

Mehr

THEORETISCHE INFORMATIK UND LOGIK

THEORETISCHE 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

Mehr

Kapitel 5: Abstrakte Algorithmen und Sprachkonzepte. Elementare Schritte

Kapitel 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

Mehr

Sei Σ ein endliches Alphabet. Eine Sprache L Σ ist genau dann regulär, wenn sie von einem regulären Ausdruck beschrieben werden kann.

Sei Σ 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

Mehr

Vorlesung Datenstrukturen

Vorlesung 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

Funktionale Programmierung ALP I. λ Kalkül WS 2012/2013. Prof. Dr. Margarita Esponda. Prof. Dr. Margarita Esponda

Funktionale 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

Mehr

Werkzeuge zur Programmentwicklung

Werkzeuge zur Programmentwicklung Werkzeuge zur Programmentwicklung B-15 Bibliothek Modulschnittstellen vorübersetzte Module Eingabe Editor Übersetzer (Compiler) Binder (Linker) Rechner mit Systemsoftware Quellmodul (Source) Zielmodul

Mehr

Theoretische Informatik Kap 2: Berechnungstheorie

Theoretische 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.

Mehr

Maike Buchin 18. Februar 2016 Stef Sijben. Probeklausur. Theoretische Informatik. Bearbeitungszeit: 3 Stunden

Maike 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

Mehr

Berechenbarkeit. Script, Kapitel 2

Berechenbarkeit. Script, Kapitel 2 Berechenbarkeit Script, Kapitel 2 Intuitiver Berechenbarkeitsbegriff Turing-Berechenbarkeit WHILE-Berechenbarkeit Church sche These Entscheidungsprobleme Unentscheidbarkeit des Halteproblems für Turingmaschinen

Mehr

1.5 Turing-Berechenbarkeit

1.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

Unvollständigkeit der Arithmetik

Unvollstä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

Mehr

Grundbegriffe der Informatik Tutorium 11

Grundbegriffe 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

Mehr

1.5 Turing-Berechenbarkeit

1.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 (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

Mehr

3. Grundanweisungen in Java

3. 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

Mehr

Algorithmen und Datenstrukturen

Algorithmen 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

Mehr

WS 2013/14. Diskrete Strukturen

WS 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

Mehr

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

C++ 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

Mehr

Normalform. 2.1 Äquivalenz und Folgerung. 2.2 Die pränexe Normalform

Normalform. 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

Mehr

Allgemeines Halteproblem Hilberts 10. Problem

Allgemeines 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

Mehr

Lösungen zu Kapitel 5

Lö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

Mehr

Algorithmen und Datenstrukturen

Algorithmen 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

Mehr

Dank. Theoretische Informatik II. Teil II. Registermaschinen. Vorlesung

Dank. 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

Mehr

Informatik II, SS 2018

Informatik 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:

Mehr

Pumping-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

Pumping-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