GdP2 Slide 1 Grundlagen der Programmierung Vorlesung 2 Sebastian Ianoski FH Wedel
GdP2 Slide 2 Beispiel ür eine Programmveriikation Gegeben sei olgender Algorithmus: i (x>0) ((y+x) 0) then z := x y else z := x / y Behauptung: Dieser Algorithmus ist ür alle x,y R ausührbar Beeis? Frage: Ist der Algorithmus auch korrekt?
GdP2 Slide 3 Ausblick au die nächsten Vorlesungen Wir haben in diesem Beispiel gesehen: Das Gebiet der Programmveriikation erordert einen sicheren Umgang mit ormalen logischen Schlüssen Es gilt allgemein ür alle Aspekte der Programmierung:! Grundkenntnisse der Aussagen- und Prädikatenlogik! sind unentbehrlich. Daher beassen sich die nächsten Vorlesungen mit dem Thema: Logik Details in Kapitel 2 jetzt
GdP2 Slide 4 Grundlagen der Programmierung 1. Einührung Grundlegende Eigenschaten von Algorithmen und Programmen 2. Logik Aussagenlogik Prädikatenlogik 3. Programmenticklung und veriikation Grundlagen der Programmveriikation Verbundaneisungen Verzeigungen Schleien Modularisierung Rekursion 4. Algorithmen Entur von Algorithmen Beertung von Algorithmen
GdP2 Slide 5 Aussagenlogik Wdh.: Operatoren zischen Aussagen Durch Operatoren erden aus alten Aussagen neue Aussagen geschaen: Wahrheitserte ür die neuen Aussagen: p q p p q p q p q p q Einstelliger Operator: Negation ( ) Zeistellige Operatoren: Konjunktion ( ) Disjunktion ( ) Implikation ( ) Äquivalenz ( )
GdP2 Slide 6 Aussagenlogik Achtung: Warum einach, enn es auch kompliziert geht? Folgende Notationen sind in der Literatur ebenalls gebräuchlich: ür logische Schlussregeln: p, q r ist dasselbe ie p q r In der Logik benutzt man unterschiedliche Symbole ür Schlussolgerungen und Äquivalenzen je nach Anendungsgebiet:,,, entsprechen der logischen Implikation:, =,,, entsprechen der logischen Äquivalenz:
GdP2 Slide 7 Aussagenlogische Formeln Da Aussagen egen der Unteilbarkeit sinnvollereise mit Buchstaben abgekürzt erden, nennt man sie auch Literale Eine aussagenlogische Formel ist eine Verknüpung von endlich vielen Literalen mit logischen Operatoren. - Die Literale einer Formel entsprechen Variablen, die mit und belegt erden können. - Formeln können auch Konstante enthalten: Die Konstante ist immer ahr und das neutrale Element bezüglich der Konjunktion. Die Konstante ist immer alsch und das neutrale Element bezüglich der Disjunktion. Eine Belegung einer Formel ist eine Zueisung von Wahrheitserten an die Literale derart, dass dieselben Literale immer denselben Wahrheitsert erhalten. Die Formel als ganze bekommt durch die Belegung ebenalls einen Wahrheitsert.
GdP2 Slide 8 Aussagenlogische Formeln Eine Formel heißt erüllbar, enn es eine Belegung gibt derart, dass die Formel den Wahrheitsert hat. Eine Formel, in der jeder Literal höchstens einmal vorkommt, ist immer erüllbar! Eine Formel, in der keine Negation vorkommt, ist immer erüllbar! Nur Formeln, die einen Literal mehrach und mindestens eine Negation enthalten, könnten unerüllbar sein. Eine Formel heißt Tautologie oder gültig, enn sie bei jeder Belegung den Wahrheitsert hat. Eine Formel heißt idersprüchlich, enn sie bei keiner Belegung den Wahrheitsert hat.
GdP2 Slide 9 Aussagenlogische Formeln Erüllbarkeitsproblem (Satisiability, SAT): Wie bekommt man heraus, ob eine gegebene Formel erüllbar ist?
GdP2 Slide 10 Deinition: Normalormen Eine aussagenlogische Formel ist in konjunktiver Normalorm (KNF), enn sie als Konjunktion von Disjunktionen aus Aussagen oder Negationen von Aussagen dargestellt ist. Etas langsamer zum Mitdenken: Ein Literal ist eine Aussage oder die Negation einer Aussage. Eine Klausel ist eine Disjunktion aus Literalen. Beispiele: p q r r Beispiele: p q r p q r p q Eine Formel in KNF ist eine Konjunktion von Klauseln. Beispiel: (p q r) ( p q r) (p q)
Normalormen Deinition: Eine aussagenlogische Formel ist in konjunktiver Normalorm (KNF), enn sie als Konjunktion von Disjunktionen aus Aussagen oder Negationen von Aussagen dargestellt ist. Spezialälle: Eine Klausel dar auch nur aus einem Literal bestehen. Beispiel: (p q r) p (p q) ist auch in KNF Eine Formel dar auch nur aus einer Klausel bestehen. Beispiel: p q r ist auch in KNF Eine leere Klausel entspricht dem neutralen Element der Disjunktion: Beispiel: (p q r) (p q) ist auch in KNF Eine leere Formel entspricht dem neutralen Element der Konjunktion: Beispiel: ist auch in KNF GdP2 Slide 11
GdP2 Slide 12 Normalormen Welche Formeln sind eigentlich nicht in KNF? Formeln, die andere als die 3 Booleschen Operatoren enthalten Beispiel: ((p q r) ( p q r)) (p q) Formeln, in denen andere Terme als atomare Aussagen negiert erden Beispiel: (p q r) ( p q r) (p q) Formeln, in denen Konjunktionen und Disjunktionen ild durcheinander sind Beispiel: Beispiel: (p ( q r)) ( p q r) p q p ( q r p) ( q r) p q Formeln, in denen eine tieere Klammerschachtelungstiee vorliegt Beispiel: p ( q (r q))) ( p q r) p q Satz: Jede aussagenlogische Formel lässt sich durch endlich viele äquivalente Umormungen in KNF bringen.
GdP2 Slide 13 Normalormen Warum ollen ir Formeln in KNF bringen? Übersichtlichere Ausertung beim Erüllbarkeitstest: Eine Formel in KNF ist erüllbar. Eine Belegung enthält ür jede Klausel enigstens einen ahren Literal. Mögliche Belegungsstrategie: Gehe die Klauseln nacheinander durch: Belege genau einen noch nicht estgelegten Literal mit t (dadurch erden gleiche Literale oder deren Negationen in anderen Klauseln estgelegt) Wenn es keine Möglichkeit mehr gibt, springe zurück zur vorigen Klausel und nimm eine andere Belegung Vorsicht vor Illusionen: Im schlechtesten Fall bringt das keinen Zeitgeinn verglichen mit purem Ausprobieren!
Normalormen Warum ollen ir Formeln in KNF bringen? Kompakte Darstellbarkeit im Computer: Stelle Klauseln als Mengen von Literalen dar: {p, q, r} entspricht (p q r) als Klausel Stelle Formeln als Mengen von Klauseln dar: {{p, q, r}, { p, q, r}, {p, q}} entspricht (p q r) ( p q r) (p q) Das unktioniert sogar ür die Spezialälle: Warnung: {{p, q, r}} entspricht (p q r) als Formel {{p},{ q},{r}} entspricht (p q r) als Formel {} entspricht als Formel {{}} entspricht als Formel Was dem Computer glasklar ist, kann ür den Menschen höchst verirrend sein: Das Trennzeichen (,) in inneren Klammern (Klauseln) entspricht einer Disjunktion ( ) Das Trennzeichen (,) in äußeren Klammern (Formeln) entspricht einer Konjunktion ( ) GdP2 Slide 14
GdP2 Slide 15 Normalormen Algorithmus zum Umandeln einer Formel in die KNF: 1. Eliminiere alle Operatoren der Form und mit den Ersetzungsregeln durch und! 2. Ziehe alle Negationszeichen vor Klammern in die Klammern hinein mit den demorganschen Regeln! 3. Wende die Distributivgesetze so lange an, bis au oberster Ebene nur noch Konjunktionen und darunter Disjunktionen sind! Das unktioniert immer!
GdP2 Slide 16 Deinition: Andere Normalormen Eine aussagenlogische Formel ist in disjunktiver Normalorm (DNF), enn sie als Disjunktion von Konjunktionen aus Aussagen oder Negationen von Aussagen dargestellt ist. Jetzt ällt das Mitdenken schon leichter: Was ist in DNF ein Literal? Was ist in DNF eine Klausel? Was ist in DNF eine Formel? Beispiele? Warum ollen ir Formeln in DNF bringen? ollen ir nicht: Eine Normalorm reicht uns aus!
Beim nächsten Mal: Prädikatenlogik GdP2 Slide 17