From e7a7a5b20929acedf474108fd82ad00f5639bb43 Mon Sep 17 00:00:00 2001 From: Robert Jeutter Date: Wed, 12 May 2021 17:26:32 +0200 Subject: [PATCH] Vorlesung 6 --- Assets/Logik-beispiel-11.png | Bin 0 -> 61315 bytes Logik und Logikprogrammierung.md | 172 ++++++++++++++++++++++++++++++- 2 files changed, 171 insertions(+), 1 deletion(-) create mode 100644 Assets/Logik-beispiel-11.png diff --git a/Assets/Logik-beispiel-11.png b/Assets/Logik-beispiel-11.png new file mode 100644 index 0000000000000000000000000000000000000000..6c612b81747fc1576b016736eaaab5296d648399 GIT binary patch literal 61315 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 literal 0 HcmV?d00001 diff --git a/Logik und Logikprogrammierung.md b/Logik und Logikprogrammierung.md index bcffbe5..378429e 100644 --- a/Logik und Logikprogrammierung.md +++ b/Logik und Logikprogrammierung.md @@ -1055,7 +1055,7 @@ Beweis: $\Gamma$ unerfüllbar ### 1. Anwendung des Kompaktheitsatzes: Färbbarkeit > Definition > -> Ein Graph ist ein Paar $G=(V,E)$ mit einer Menge $V$ und $E\subseteq\binom{V}{2} =\{X\subseteq V:|V|=2 \}$. +> Ein Graph ist ein Paar $G=(V,E)$ mit einer Menge $V$ und $E\subseteq\binom{V}{2} =\{X\subseteq V:|V$\Vdash$ 2 \}$. > Für $W\subseteq V$ sei $G\upharpoonright_W= (W,E\cap\binom{W}{2})$ der von $W$ induzierte Teilgraph. > Der Graph G ist 3-färbbar, wenn es eine Abbildung $f:V\rightarrow\{1,2,3\}$ mit $f(v)\not=f(w)$ für alle $\{v,w\}\in E$. @@ -1137,3 +1137,173 @@ Bemerkung: Der Kompaktheitssatz gilt auch, wenn die Menge der atomaren Formeln n - Linearisierbarkeit: beliebige partielle Ordnungen - Lösbarkeit: beliebig große Gleichungssysteme über $\mathbb{Z}_2$ - ... + + +## Erfüllbarkeit +> Erfüllbarkeitsproblem +> +> Eingabe: Formel $\Gamma$ +> +> Frage: existiert eine B-Belegung $B$ mit $B(\Gamma) = 1_B$. + +- offensichtlicher Algorithmus: probiere alle Belegungen durch (d.h. stelle Wahrheitswertetabelle auf)$\rightarrow$ exponentielle Zeit +- „Automaten, Sprachen und Komplexität“: das Problem ist NP-vollständig +- nächstes Ziel:spezielle Algorithmen für syntaktisch eingeschränkte Formeln $\Gamma$ +- Spätere Verallgemeinerung dieser Algorithmen (letzte Vorlesung des Logik-Teils von „Logik und Logikprogrammierung“) bildet Grundlage der logischen Programmierung. + +### Hornformeln (Alfred Horn, 1918–2001) +> Definition +> +> Eine Hornklausel hat die Form $(\lnot\bot\wedge p_1\wedge p_2\wedge ... \wedge p_n)\rightarrow q$ für $n\geq 0$, atomare Formeln $p_1 ,p_2 ,... ,p_n$ und $q$ atomare Formel oder $q=\bot$. +> Eine Hornformel ist eine Konjunktion von Hornklauseln. + +Schreib- und Sprechweise +- $\{p_1,p_2 ,... ,p_n\}\rightarrow q$ für Hornklausel $(\lnot\bot\wedge p_1 \wedge p_2 \wedge ...\wedge p_n)\rightarrow q$ + insbes. $\varnothing\rightarrow q$ für $\lnot\bot\rightarrow q$ +- $\{(M_i\rightarrow q_i)| 1 \leq i\leq n\}$ für Hornformel $\bigwedge_{1 \leq i \leq n} (M_i\rightarrow q_i)$ + +Bemerkung, in der Literatur auch: +- $\{\lnot p_1,\lnot p_2 ,... ,\lnot p_n,q\}$ für $\{p_1 ,... ,p_n\}\rightarrow q$ mit $q$ atomare Formel +- $\{\lnot p_1,\lnot p_2 ,... ,\lnot p_n\}$ für $\{p_1 ,... ,p_n\}\rightarrow\bot$ +- $\Box$ für $\varnothing\rightarrow\bot$, die „leere Hornklausel“ + +### Markierungsalgorithmus +- Eingabe: eine endliche Menge $\Gamma$ von Hornklauseln. +1. while es gibt in $\Gamma$ eine Hornklausel $M\rightarrow q$, so daß alle $p\in M$ markiert sind und $q$ unmarkierte atomare Formel ist: + do markiere $q$ (in allen Hornklauseln in $\Gamma$) +2. if $\Gamma$ enthält eine Hornklausel der Form $M\rightarrow\bot$, in der alle $p\in M$ markiert sind + then return „unerfüllbar“ + else return „erfüllbar“ + +Beweis einer Folgerung: Beispiel +- Ziel ist es, die folgende Folgerung zu zeigen: $\{(AK\vee BK),(AK\rightarrow BK),(BK\wedge RL\rightarrow\lnot AK),RL\}\Vdash\lnot AK$ +- Lemma: man muß Unerfüllbarkeit der folgenden Menge zeigen: $\{(AK\vee BK),(AK\rightarrow BK),(BK\wedge RL\rightarrow \lnot AK),RL,\lnot\lnot AK\}$ +- Dies ist keine Menge von Hornklauseln! +- Idee: ersetze $BK$ durch $\lnot BH$ in allen Formeln. +- Ergebnis: + - Aus $AK\vee BK$ wird $\lnot BH\vee AK\equiv BH\rightarrow AK\equiv\{BH\}\rightarrow AK$. + - Aus $AK\rightarrow BK$ wird $AK\rightarrow\lnot BH\equiv\lnot AK\vee\lnot BH\equiv AK\wedge BH\rightarrow\bot\equiv\{AK,BH\} \rightarrow\bot$. + - Aus $BK\wedge RL\rightarrow\lnot AK$ wird $\lnot BH\wedge RL\rightarrow\lnot AK\equiv BH\vee\lnot RL\vee\lnot AK\equiv RL\wedge AK\rightarrow BH\equiv\{RL,AK\}\rightarrow BH$ + - $RL\equiv (\varnothing\rightarrow RL)$ + - $\lnot\lnot AK\equiv (\varnothing\rightarrow AK)$ +- Wir müssen also zeigen, daß die folgende Menge von Hornklauseln unerfüllbar ist: + $\{\{BH\}\rightarrow AK,\{AK,BH\}\rightarrow\bot,\{RL,AK\}\rightarrow BH,\varnothing\rightarrow RL,\varnothing\rightarrow AK\}$ + +Der Markierungsalgorithmus geht wie folgt vor: +1. Runde: markiere $RL$ aufgrund der Hornklausel $\varnothing\rightarrow RL$ +2. Runde: markiere $AK$ aufgrund der Hornklausel $\varnothing\rightarrow AK$ +3. Runde: markiere $BH$ aufgrund der Hornklausel $\{RL,AK\}\rightarrow BH$ + +dann sind keine weiteren Markierungen möglich. + +In der Hornklausel $\{AK,BH\}\rightarrow\bot$ sind alle atomaren Formeln aus $\{AK,BH\}$ markiert. Also gibt der Algorithmus aus, daß die Menge von Hornklauseln nicht erfüllbar ist. + +Nach unserer Herleitung folgern wir, daß das Teil $A$ heil ist. + +1. Der Algorithmus terminiert: + in jedem Durchlauf der while-Schleife wird wenigstens eine atomare Formel markiert. Nach endlich vielen Schritten terminiert die Schleife also. +2. Wenn der Algorithmus eine atomare Formelqmarkiert und wenn $B$ eine B-Belegung ist, die $\Gamma$ erfüllt, dann gilt $B(q) = 1_B$. + Beweis: wir zeigen induktiv über $n$: Wenn $q$ in einem der ersten $n$ Schleifendurchläufe markiert wird, dann gilt $B(q) = 1_B$. + - I.A. Die Aussage gilt offensichtlich für $n=0$. + - I.S. werde die atomare Formel $q$ in einem der ersten $n$ Schleifendurchläufe markiert. Dann gibt es eine Hornklausel $\{p_1,p_2 ,... ,p_k\}\rightarrow q$, so daß $p_1 ,... ,p_k$ in den ersten $n−1$ Schleifendurchläufen markiert wurden. Also gilt $B(p_1)=...=B(p_k) = 1_B$ nach IV. + Da $B$ alle Hornformeln aus $\Gamma$ erfüllt, gilt insbesondere $B(\{p_1 ,p_2 ,... ,p_k\}\rightarrow q) = 1_B$ und damit $B(q) = 1_B$. +3. Wenn der Algorithmus „unerfüllbar“ ausgibt, dann ist $\Gamma$ unerfüllbar. + Beweis: indirekt, wir nehmen also an, daß der Algorithmus „unerfüllbar“ ausgibt, $B$ aber eine B-Belegung ist, die $\Gamma$ erfüllt. + Sei $\{p_1 ,... ,p_k\}\rightarrow\bot$ die Hornklausel aus $\Gamma$, die die Ausgabe „unerfüllbar“ verursacht (d.h. die atomaren Formeln $p_1 ,... ,p_k$ sind markiert). + Nach 2. gilt $B(p_1) =...=B(p_k) = 1_B$, also $B(\{p_1 ,p_2 ,... ,p_k\}\rightarrow\bot) = 0_B$ im Widerspruch zur Annahme, daß $B$ alle Hornklauseln aus $\Gamma$ erfüllt. + Also kann es keine erfüllende B-Belegung von $\Gamma$ geben. +4. Wenn der Algorithmus „erfüllbar“ ausgibt, dann erfüllt die folgende B-Belegung alle Formeln aus $\Gamma$: + $B(p_i)=\begin{cases} 1_B \quad\text{ der Algorithmus markiert } p_i \\ 0_B \quad\text{ sonst} \end{cases}$ + Beweis: + - Sei $M\rightarrow q$ eine beliebige Hornklausel aus $\Gamma$. + - Ist ein $p\in M$ nicht markiert, so gilt $B(\bigwedge_{p\in M} p) = 0_B$ und damit $B(M\rightarrow q) = 1_B$. + - Sind alle $p\in M$ markiert, so wird auch $q$ markiert, also $B(q) = 1_B$ und damit $B(M\rightarrow q) = 1_B$. + - Gilt $q=\bot$, so existiert unmarkiertes $p\in M$ (da der Algorithmus sonst „unerfüllbar“ ausgegeben hätte), also $B(M\rightarrow\bot) = 1_B$ wie im ersten Fall. + Also gilt $B(M\rightarrow q) = 1_B$ für alle Hornklauseln aus $\Gamma$, d.h. $\Gamma$ ist erfüllbar. + +> Satz +> +> Sei $\Gamma$ endliche Menge von Hornklauseln. Dann terminiert der Markierungsalgorithmus mit dem korrekten Ergebnis. + +Beweis: Die Aussagen 1.-4. beweisen diesen Satz. + +Bemerkungen: +- Mit einer geeigneten Implementierung läuft der Algorithmusin linearer Zeit. +- Wir haben sogar gezeigt, daß bei Ausgabe von „erfüllbar“ eine erfüllende B-Belegung berechnet werden kann. + +### SLD-Resolution +> Definition +> +> Sei $\Gamma$ eine Menge von Hornklauseln. Eine SLD-Resolution aus $\Gamma$ ist eine Folge $(M_0\rightarrow\bot,M_1\rightarrow\bot,... ,M_m\rightarrow\bot)$ von Hornklauseln mit +> - $(M_0\rightarrow\bot)\in\Gamma$ +> - für alle $0\leq n Lemma A +> +> Sei $\Gamma$ eine (u.U. unendliche) Menge von Hornklauseln und $(M_0\rightarrow\bot, M_1\rightarrow\bot,... , M_m\rightarrow\bot)$ eine SLD-Resolution aus $\Gamma$ mit $M_m=\varnothing$. Dann ist $\Gamma$ nicht erfüllbar. + +Beweis: +- indirekt: angenommen, es gibt B-Belegung $B$ mit $B(N\rightarrow q) = 1_B$ für alle $(N\rightarrow q)\in\Gamma$. +- Wir zeigen für alle $0\leq n\leq m$ per Induktion über n: es gibt $p\in M_n$ mit $B(p) = 0_B$ (4) +- I.A.: $n=0:(M_0 \rightarrow\bot,...)$ SLD-Resolution $\Rightarrow(M_0\rightarrow\bot)\in\Gamma$ + - $\Rightarrow B(M_0\rightarrow\bot) = 1_B$ + - $\Rightarrow$ es gibt $p\in M_0$ mit $B(p) = 0_B$ +- I.V.: sei $n Lemma B +> +> Sei $\Gamma$ eine (u.U. unendliche) unerfüllbare Menge von Hornklauseln. Dann existiert eine SLD-Resolution $(M_0\rightarrow\bot,...,M_m\rightarrow\bot)$ aus $\Gamma$ mit $M_m=\varnothing$. + +Beweis: Endlichkeitssatz: es gibt $\Delta\subseteq\Gamma$ endlich und unerfüllbar. Bei Eingabe von$\Delta$ terminiert Markierungsalgorithmus mit „unerfüllbar“ +- $r\geq 0...$ Anzahl der Runden +- $q_i...$ Atomformel, die in $i$ Runde markiert wird $(1\leq i\leq r)$ + +Behauptung: Es gibt $m\leq r$ und SLD-Resolution $(M_0\rightarrow\bot,...,M_m\rightarrow\bot)$ aus $\Delta$ mit $M_m=\varnothing$ und $M_n\subseteq\{q_1,q_2,... ,q_{r−n}\}$ f.a. $0\leq n\leq m$. (5) + +Beweis der Behauptung: Wir konstruieren die Hornklauseln $M_i\rightarrow\bot$ induktiv: +- I.A.: Da der Markierungsalgorithmus mit „unerfüllbar“ terminiert, existiert eine Hornklausel $(M_0\rightarrow\bot)\in\Gamma$ mit $M_0\subseteq\{q_1,... ,q_{r− 0}\}$. $(M_0\rightarrow\bot)$ ist SLD-Resolution aus $\Delta$, die (5) erfüllt. +- I.V.: Sei $n\leq r$ und $(M_0\rightarrow\bot,... ,M_n\rightarrow\bot)$ SLD-Resolution, so daß (5) gilt. +- I.S.: wir betrachten drei Fälle: + 1. Fall $M_n=\varnothing$: mit $m:=n$ ist Beweis der Beh. abgeschlossen. + 2. Fall $n=r$: Nach (5) gilt $M_n\subseteq\{q_1,...,q_{r−n}\}=\varnothing$. Mit $m:=n$ ist der Beweis der Beh. abgeschlossen. + 3. Fall $n Satz +> +> Sei $\Gamma$ eine (u.U. unendliche) Menge von Hornklauseln. Dann sind äquivalent: +> 1. $\Gamma$ ist nicht erfüllbar. +> 2. Es gibt eine SLD-Resolution $(M_0\rightarrow\bot,M_1\rightarrow\bot,... ,M_m\rightarrow\bot)$ aus $\Gamma$ mit $M_m=\varnothing$. + +Beweis: Folgt unmittelbar aus Lemmata A und B. + +Beispiel: $\Gamma=\{\{a,b\}\rightarrow\bot,\{a\}\rightarrow c, \{b\}\rightarrow c,\{c\}\rightarrow a,\varnothing\rightarrow b$; alle SLD-Resolutionen aus$\Gamma$ kann man durch einen Baum beschreiben: +![](Assets/Logik-beispiel-11.png) + +Die Suche nach einer SLD-Resolution mit $M_m=\varnothing$ kann grundsätzlich auf zwei Arten erfolgen: +- Breitensuche: + - findet SLD-Resolution mit $M_m=\varnothing$ (falls sie existiert), da Baum endlich verzweigend ist (d.h. die Niveaus sind endlich) + - hoher Platzbedarf, da ganze Niveaus abgespeichert werden müssen (in einem Binärbaum der Tiefe $n$ kann es Niveaus der Größe $2^n$ geben) +- Tiefensuche: + - geringerer Platzbedarf (in einem Binärbaum der Tiefe $n$ hat jeder Ast die Länge $\leq n$) + - findet existierende SLD-Resolution mit $M_m=\varnothing$ nicht immer (siehe Beispiel) + +## Zusammenfassung Aussagenlogik +- Das natürliche Schließen formalisiert die „üblichen“ Argumente in mathematischen Beweisen. +- Unterschiedliche Wahrheitswertebereiche formalisieren unterschiedliche Vorstellungen von „Wahrheit“. +- Das natürliche Schließen ist vollständig und korrekt für den Booleschen Wahrheitswertebereich. +- Der Markierungsalgorithmus und die SLD-Resolution sind praktikable Verfahren, um die Erfüllbarkeit von Hornformeln zu bestimmen.