Kein Folientitel

Werbung
Grundlagen der Programmierung
Vorlesung 5 vom 11.11.2004
Sebastian Iwanowski
FH Wedel
GdP5 Slide 1
Grundlagen der Programmierung
1. Einführung
Grundlegende Eigenschaften von Algorithmen und Programmen
2. Logik
Aussagenlogik
Î Prädikatenlogik
3. Programmentwicklung und –verifikation
Grundlagen der Programmverifikation
Verbundanweisungen
Verzweigungen
Schleifen
Modularisierung
Rekursion
4. Entwurf und Analyse von Algorithmen
Klassifikation von Algorithmen
Programmierung von Algorithmen
Bewertung von Algorithmen
GdP5 Slide 2
•
•
•
Variable
Prädikate
Funktionen
Prädikatenlogik
• Quantoren
Der Existenzquantor ∃x (...) drückt aus, dass es einen
Wert für x gibt, der den dahinter stehenden Ausdruck zu
einer wahren Aussage macht.
Der Allquantor ∀x (...) drückt aus, dass jeder Wert für
x den dahinter stehenden Ausdruck zu einer wahren
Aussage macht.
Die Definitionsbereiche für die Variablen dürfen eingeschränkt werden:
Für den Existenzquantor ist das eine Verschärfung,
für den Allquantor eine Abschwächung der Aussage.
Bsp.:
∃ x ∈ R ∃ y ∈ R ((2 < x < 4) ∧ (0 < y < 6) ∧ (x + y > 7) ∧ (x ∙ y < 10))
∀ x ∈ R (x ∙ x ≥ 0)
GdP5 Slide 3
Prädikatenlogische Formeln
•
Eine prädikatenlogische Formel 1. Stufe ist eine Verknüpfung von
endlich vielen Variablen, Funktionen und Prädikaten mit
aussagenlogischen Operatoren oder Quantoren, die sich nur auf
Variable beziehen.
Bsp.:
∀x ( R(y, z) ∧ ∃y (¬P(y, x) ∨ R(y, z)) )
Grüne Vorkommen von y und z sind frei.
Rote Vorkommen von x, y und z sind gebunden.
Geschlossene Formeln:
Formeln, die keine freien Variablen enthalten.
Offene Formeln:
Formeln, die keine gebundenen Variablen enthalten.
GdP5 Slide 4
Prädikatenlogische Formeln
•
Eine Belegung einer Formel ist eine Zuweisung von
Werten aus festgelegten Definitionsbereichen an die
freien Variablen derart, dass dieselben Variablen immer
denselben Wert erhalten.
•
Eine Formel heißt erfüllbar, wenn es eine Belegung gibt derart,
dass die Formel wahr ist.
/
•
Das Erfüllbarkeitsproblem ist in der Prädikatenlogik nicht entscheidbar,
d.h. kein Algorithmus kann jemals in der Lage sein, von jeder Formel
zu entscheiden, ob sie erfüllbar ist oder nicht.
Das allgemeine Problem ist unlösbar !
GdP5 Slide 5
Prädikatenlogik
Beschreibung der semantischen Eigenschaft einer Formel
F(x1, x2, ..., xk) mit prädikatenlogischen Mitteln:
•
•
•
F ist erfüllbar:
∃ x1, x2, ..., xk
(F(x1, x2, ..., xk) ↔ ⊤)
F ist widersprüchlich:
∀ x1, x2, ..., xk
(F(x1, x2, ..., xk) ↔ ⊥)
F ist gültig (Tautologie):
∀ x1, x2, ..., xk
•
(F(x1, x2, ..., xk) ↔ ⊤)
F ist widerlegbar (falsifizierbar):
(F(x1, x2, ..., xk) ↔ ⊥)
∃ x1, x2, ..., xk
Was fällt auf ?
GdP5 Slide 6
Prädikatenlogik
„Rechenregeln“ für die Quantoren:
¬∀x (F(x)) ⇔ ∃x (¬F(x))
¬∃x (F(x)) ⇔ ∀x (¬F(x))
Verallgemeinerung von deMorgan
∀x ∀y (F(x,y)) ⇔ ∀y ∀x (F(x,y))
∃x ∃y (F(x,y)) ⇔ ∃y ∃x (F(x,y))
Vertauschung gleicher Quantoren
Was gilt bei der Vertauschung verschiedener Quantoren ? (⇔,⇒,⇐,⇎)
∃x ∀y (F(x,y))
∀y ∃x (F(x,y))
∃y ∀x (F(x,y))
∀x ∃y (F(x,y))
GdP5 Slide 7
Prädikatenlogik
„Rechenregeln“ für die Quantoren:
Was gilt bei Hineinziehen von Quantoren in ∧ oder ⋁ ? (⇔,⇒,⇐,⇎)
∀x (F(x)) ⋁ ∀x (G(x))
∀x (F(x) ⋁ G(x))
∀x (F(x)) ∧ ∀x (G(x))
∀x (F(x) ∧ G(x))
∃x (F(x)) ⋁ ∃x (G(x))
∃x (F(x) ⋁ G(x))
∃x (F(x)) ∧ ∃x (G(x))
∃x (F(x) ∧ G(x))
GdP5 Slide 8
ùrqtsqvu
w
þx ÿ ýyS x0z ]{|y z]} û
¦ ì £@åN:¢
¾žYæ'ær ì ¦
M ¥@ ì ¦
‹
·^¸.¹
·a½W¹
·'¿+¹
·\ÁE¹
·aÃW¹
·'Ä+¹
þ
xe~.z ~
øÙ
®i° Ü_ª «iÙ ³Û­¯Ý«@¬Å©R° ÂA­‚¬Nò}´P«°3¬®iª+©b°
…
!"#$%'&()%'&+*-,.0/
213*4
õ b© ËÏÍ΃©³#©bªµ®i˯¸i©b°½³Û©R°ÚPê´º»»é«¸i©b° ­¯»Å¬³#­¯©Û¼©R¸3«@¬Å­¯®i°
³Û­¯©R»©bªÜP}´º»…»«¸i©
P}˯˯©K°ƒ­ÏÍά © PêËϳۭ © [
Ü Ý »–»­¯°½³ ¸i´#¬¸i©RÄP«´¬
P}˯˯Þ
© PêËϳۭ © [Ü Ý »»­¯°P³ ¸i´¬¼¸i©RÄP«´¬
Ê_­¯°º­¯¸i© P}Ëϳ#­ © Ü Ý»–»­¯°P³A¸i´#¬N¸i©bĽ«´#¬
Ê_­¯°º­¯¸i© P}Ëϳ#­ © Ü Ý»–»­¯°P³A»Íκ˯© ÍÅÎ3¬¼¸i©RÄP«´¬
Ê_­¯°º­¯¸i©É°ƒ­ÏÍÅÎ3¬ © P}Ëϳ#­ © Ü Ý»–»­¯°P³ »Í΃˯©'ÍάN¸i©bĽ«´#¬
Ê_­¯°º­¯¸i©É°ƒ­ÏÍÅÎ3¬ © P}Ëϳ#­ © Ü Ý»–»­¯°P³ ¸i´¬¼¸i©RÄP«´¬
Beispiel
z Es seien Animal, Vegetarian, Sheep, Cow, und Mad_cow
einstellige Prädikatensymbole. Die Symbole EATS und
PART_OF seien zweistellige Prädikatensymbole, und es seien x,
y, z Variablen. Wir betrachten folgende Menge T von Formeln:
z T := {"x (Sheep(x) Æ
(Animal(x) Ÿ Vegetarian(x))) ,
"x (Cow(x) Æ
(Animal(x) Ÿ Vegetarian(x))) ,
"x (Vegetarian(x) Æ
(ÿ$y (EATS(x,y) Ÿ Animal(y)) Ÿ
"y (EATS(x,y) Æ
(ÿ$z (PART_OF(y,z) Ÿ Animal(z))))) }
Beispiel (2)
z Annahme: Formeln seien Grundlage für die
Spezifikation von Programmen für ein großes
Softwareprojekt für das Landwirtschaftsministerium
dar.
z Frage: Welche Kühe (eines bestimmten Bestandes, der
als Parameter eingeht) sind beim Verzehr
gesundheitsgefährdend?
z Hierzu wird folgende Formel verwendet:
f := "x (Mad_cow(x) Æ
(Cow(x) Ÿ $y (EATS (x, y) Ÿ
$z PART_OF(y, z) Ÿ Sheep(z))))
Beispiel (3)
z Zu erstellen: Programm, das die Menge M aller x
berechnen soll, für die Mad_cow(x) gilt
z Nach eingehender Beratung mit Ihren
Mitarbeitern kommen Sie zu dem Schluß, daß Sie
das Projekt, obwohl es lukrativ sein mag, aus
Gewissensgründen nicht annehmen werden, da die
Menge M immer leer sein wird.
z Sie zeigen, daß die Formel $x Mad_cow(x)
unerfüllbar bzgl. T U {f} ist
Prädikatenlogik
Arithmetische Vergleichsprädikate:
Präfix-Notation
(Standard in Prädikatenlogik)
lessThan (x,y)
equal (x,y)
Infix-Notation
(Standard in Arithmetik)
x < y
x = y
Postfix-Notation
(Standard auf alten
Taschenrechnern ohne
Klammern)
x, y, <
x, y, =
Mit diesen beiden Prädikaten lassen sich alle anderen
Vergleichsprädikate bilden:
x ≤ y
x ≥ y
x ≠ y
x > y
Wie drückt man mit diesen Prädikaten aus,
dass eine Zahl x zwischen y und z liegt ?
GdP5 Slide 9
Prädikatenlogik
Arithmetische Vergleichsprädikate:
Bilde das Gegenteil von:
1) (x>0) ⋁ ((y+x)≤0)
2) ∀y<0 ((x>0) ⋁ ((y+x)≤0))
GdP5 Slide 10
Beim nächsten Mal:
Programmentwicklung und -verifikation
GdP5 Slide 11
Herunterladen