Algorithmische Logik SoSe 12 Übungszettel 1 Prof. Dr. Ralf Möller, Dipl.-Ing. Karsten Martiny, Anna Lin, Daniela Becker Übungsgruppe: 13.04.2012, SBS95-E4042 1. Gegeben sei das Wumpus-Problem aus der Vorlesung (A=Agent, W=Wumpus, G=Gold, P=Pit). (a) Erstellen Sie ein Labyrinth, das kein rationaler Agent lösen kann. Platzieren Sie dazu genau 5 Pits und 1 Wumpus im Labyrinth. Begründen Sie, warum der Agent in Ihrem Beispiel nicht sicher das Gold finden kann. A G Lösung: Die Pits sollten (am einfachsten) nur um den Agenten herum platziert werden. Dann kann er sich nicht bewegen. z.B. 1 A P P P W P P G Alternative Lösung: Eine nichttriviale Lösung wäre die folgende. Hier kann der Agent nicht entscheiden, ob eine Pit in (2,2) oder mehrere Pits in (1,3) und (3,1) liegen. Der Rest der Pits und der Wumpus kann beliebig gelegt werden. A P P G (b) Erstellen Sie ein Labyrinth, das ein rationaler Agent lösen kann. Platzieren Sie dazu genau 5 Pits und 1 Wumpus im Labyrinth. Begründen Sie, warum der Agent in Ihrem Beispiel sicher das Gold finden kann. 2 A G Lösung: Die 5 Pits sollten einfach nur am Rand des Feldes platziert werden. z.B. A P P W P P P G Alternative Lösung: A B P P S B P B W P S B P G 3 Das hellere bedeuted, dass der Agent zwar etwas wahrnimmt, aber deswegen seine Richtung nicht ändern muss. Der Agent kann inferieren wo der Wumpus ist, und dass es nur einen Wumpus gibt. Deshalb wird diese Wahrnehmung ignoriert. 2. Seien A und B logische Formeln. Führen Sie den semantischen Beweis (d.h. mit Hilfe einer Wahrheitstabelle) für Gültigkeit, Erfüllbarkeit bzw. Unerfüllbarkeit von folgenden logischen Formeln: • A∧B • A ∨ ¬B • ¬A → ¬A • A → (B → ¬A) • (A → B) → (B → A) • ((A → B) ∧ A) → B Lösung: A∧B : A B A∧B 0 0 0 0 1 0 1 0 0 1 1 1 Kommentar kein Modell kein Modell kein Modell Modell Es gibt Belegungen, die ein Modell sind, und es gibt auch Belegungen, die kein Modell sind. Damit ist die Formel erfüllbar. A ∨ ¬B : A B ¬B 0 0 1 0 1 0 1 0 1 1 1 0 A ∨ ¬B 1 0 1 1 Kommentar Modell kein Modell Modell Modell Es gibt Belegungen, die ein Modell sind, und es gibt auch Belegungen, die kein Modell sind. Damit ist die Formel erfüllbar. 4 ¬A → ¬A : A ¬A ¬A → ¬A 0 1 1 1 0 1 Kommentar Modell Modell Alle Belegungen sind ein Modell. Damit ist die Formel gültig. Alternativ: ¬A → ¬A ≡ A ∨ ¬A ≡ > A → (B → ¬A) : A B (B → ¬A) 0 0 1 0 1 1 1 0 1 1 1 0 A → (B → ¬A) 1 1 1 0 Kommentar Modell Modell Modell kein Modell Es gibt Belegungen, die ein Modell sind, und es gibt auch Belegungen, die kein Modell sind. Damit ist die Formel erfüllbar. Man könnte auch erst A → (B → ¬A) in ¬A ∨ ¬B umwandeln um leichter zusehen, dass es erfülbar ist. (A → B) → (B → A): A B (A → B) (B 0 0 1 0 1 1 1 0 0 1 1 1 → A) 1 0 1 1 (A → B) → (B → A) 1 0 1 1 Kommentar Modell kein Modell Modell Modell Es gibt Belegungen, die ein Modell sind, und es gibt auch Belegungen, die kein Modell sind. Damit ist die Formel erfüllbar. ((A → B) ∧ A) → B: A B (A → B) (A → B) ∧ A 0 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 ((A → B) ∧ A) → B 1 1 1 1 Kommentar Modell Modell Modell Modell Alle Belegungen sind ein Modell. Damit ist die Formel gültig. Alternativ: ((A → B) ∧ A) → B in ¬A ∨ ¬B ∨ B umwandeln und aufgrund von ¬B ∨ B leichter zusehen, dass es gültig ist. 5 3. Geben Sie eine Belegung an, die die folgende Formel wahr macht: A ∨ B ∨ C ∨ D ∨ E Gibt es eine Belegung, die diese Formel falsch macht? Wenn wir den Wert dieser Formel für alle möglichen Belegungen bestimmen wollten, warum wäre die Methode mit der Wahrheitstabelle nicht sehr geeignet? Lösung: • Belegung: I(A) = 1, I(B) = 0, I(C) = 0, I(D) = 0, I(E) = 0 • Die Belegung I macht die Formel falsch, falls wir I(A) = 0 setzen • Die Komplexität (Anzahl der Zeilen in der Wahrheitstabelle) steigt exponentiell mit der Anzahl der atomaren Formeln. Bei n = 5 hat man schon 32 Zeilen. 4. Seien F und G logische Formeln. Argumentieren Sie, ob die folgenden Behauptungen richtig oder falsch sind: Formel Wenn F gültig dann F erfüllbar Wenn F erfüllbar dann ¬F unerfüllbar Wenn F gültig dann ¬F unerfüllbar Wenn F unerfüllbar dann ¬F gültig Wenn (F → G) gültig und F gültig dann G gültig Wenn (F → G) gültig und F erfüllbar dann G erfüllbar Wenn (F → G) erfüllbar und F erfüllbar dann G erfüllbar Wenn (F → G) gültig dann F G Wenn F G dann (F → G) gültig Wenn F ≡ G dann (F ↔ G) gültig Wenn (F ↔ G) gültig dann F ≡ G Ja/Nein Lösung: Wenn F gültig dann F erfüllbar: Ja Wenn alle Belegungen ein Modell sind (F is gültig), dann existiert eine Belegung die ein Modell ist (F is erfüllbar) Wenn F erfüllbar dann ¬F unerfüllbar: Nein A ∨ B is erfüllbar und ¬(A ∨ B) ≡ ¬A ∧ ¬B ist auch erfüllbar. 6 Wenn F gültig dann ¬F unerfüllbar: Ja Wenn jede Belegung ein Modell für F ist, dann kann keine Belegung ein Modell für ¬F sein. Wenn F unerfüllbar dann ¬F gültig: Ja Wenn jede Belegung kein Modell für F ist, dann müssen alle Belegungen Modelle für ¬F sein. Wenn (F → G) gültig und F gültig dann G gültig: Ja Beweis mit dem Modus Ponens. F impliziert G. Also ist G für jede Belegung wahr, für die auch F wahr ist. F ist für jede Belegung wahr. Daher ist G auch für jede Belegung wahr. Wenn (F → G) gültig und F erfüllbar dann G erfüllbar: Ja Beweis mit dem Modus Ponens. F impliziert G. Also ist G für jede Belegung wahr, für die auch F wahr ist. Wenn (F → G) erfüllbar und F erfüllbar dann G erfüllbar: Nein F → G ist erfüllbar. Also gilt es nicht immer. F ≡ A und G ≡ A ∧ ¬A. Die Implikation F → G gilt für die Belegung I mit I(A) = 0, aber G ist nicht erfüllbar. Wenn (F → G) gültig dann F G: Ja F G falls jede Belegung die zu F passt auch zu G passt. Die F → G gültig bedeuted genau das. (syntax vs. semantik) Wenn F G dann (F → G) gültig: Ja s.o. Wenn F ≡ G dann (F ↔ G) gültig: Ja Da F ≡ G beudeuted, dass unter jeder Belegung F und G den gleichen Wahrheitswert haben, gibt es keine Belegung für die G wahr ist, und F nicht. 7 Wenn (F ↔ G) gültig dann F ≡ G: Ja Wenn zwei Formeln syntaktisch equivalent sind, also ineinander umgeformt werden können, dann haben sie auch gleiche Werte unter allen Belegungen. 5. Prüfen Sie mit Hilfe einer Wahrheitstabelle, ob die folgenden Äquivalenzen gelten: Formel ((A ∨ B) ∧ A) ≡ A (A → B) ≡ (¬B → ¬A) (A → B) → C ≡ A → (B → C) (A → B) → C ≡ (A ∧ B) → C Ja/Nein Lösung: ((A ∨ B) ∧ A) ≡ A: A 1 1 0 0 B 0 1 1 0 (A ∨ B) 1 1 1 0 ((A ∨ B) ∧ A) 1 1 0 0 (A → B) ≡ (¬B → ¬A): A 1 1 0 0 B 0 1 1 0 (A → B) 0 1 1 1 ¬B 1 0 0 1 ¬A 0 0 1 1 (¬B → ¬A) 0 1 1 1 8 (A → B) → C ≡ A → (B → C): A 1 1 1 1 0 0 0 0 B 0 1 0 1 1 0 1 0 C 0 1 1 0 0 1 1 0 (A → B) 0 1 0 1 1 1 1 1 (A → B) → C 1 1 1 0 0 1 1 0 (B → C) 1 1 1 0 0 1 1 1 A → (B → C) 1 1 1 0 1 1 1 1 (A → B) → C ≡ (A ∧ B) → C: A 1 1 1 1 0 0 0 0 B 0 1 0 1 1 0 1 0 C 0 1 1 0 0 1 1 0 (A → B) 0 1 0 1 1 1 1 1 (A → B) → C 1 1 1 0 0 1 1 0 (A ∧ B) 0 1 0 1 0 0 0 0 (A ∧ B) → C 1 1 1 0 1 1 1 1 Man kann hier auch durch überlegen sehen, dass es keine Äquivalenze ist. Wenn man z.B. eine Belegung für (A → B) = wahr und (A ∧ B) = falsch hat, weiß man, dass C in einem Fall wahr sein muss und in dem anderen ist es egal. Also kann man so mit einem Gegenbeispiel beweisen, dass es keine Äquivalenze ist. Also: Formel ((A ∨ B) ∧ A) ≡ A (A → B) ≡ (¬B → ¬A) (A → B) → C ≡ A → (B → C) (A → B) → C ≡ (A ∧ B) → C 9 Ja/Nein Ja Ja Nein Nein