Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
teknopedia

teknopedia

teknopedia

teknopedia

teknopedia
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Resolution (Logik) – Wikipedia
Resolution (Logik) – Wikipedia
aus Wikipedia, der freien Enzyklopädie

Die Resolution ist ein Verfahren der formalen Logik, um eine logische Formel auf Gültigkeit zu testen.

Das Resolutionsverfahren, auch Resolutionskalkül genannt, ist ein Widerlegungsverfahren: Statt direkt die Allgemeingültigkeit einer Formel zu zeigen, leitet es einen logischen Widerspruch aus deren Verneinung ab.

Diese Herleitung geschieht mittels eines Algorithmus auf rein formalem Weg und kann deshalb von einem Computerprogramm durchgeführt werden. Die Resolution ist eine der bekanntesten Techniken des Maschinengestützten Beweisens.

Das Resolutionsverfahren in der Aussagenlogik

[Bearbeiten | Quelltext bearbeiten]

Resolvente (auch: Resolvent)

[Bearbeiten | Quelltext bearbeiten]

Seien C 1 {\displaystyle C_{1}} {\displaystyle C_{1}}, C 2 {\displaystyle C_{2}} {\displaystyle C_{2}} Klauseln einer aussagenlogischen Formel, die in konjunktiver Normalform vorliegt. Gibt es ein Literal L {\displaystyle L} {\displaystyle L}, welches in C 1 {\displaystyle C_{1}} {\displaystyle C_{1}} positiv und in C 2 {\displaystyle C_{2}} {\displaystyle C_{2}} negativ vorkommt, ist die Vereinigung beider Klauseln ohne das positive und negative Literal L {\displaystyle L} {\displaystyle L} eine Resolvente (auch: der Resolvent) C R {\displaystyle C_{R}} {\displaystyle C_{R}}. Das heißt insbesondere: Gibt es kein komplementäres Literal, so gibt es auch keine Resolvente.

L ∈ C 1 {\displaystyle L\in C_{1}} {\displaystyle L\in C_{1}}
L ¯ ∈ C 2 {\displaystyle {\overline {L}}\in C_{2}} {\displaystyle {\overline {L}}\in C_{2}}

C R = ( C 1 ∖ { L } ) ∪ ( C 2 ∖ { L ¯ } ) {\displaystyle C_{R}=(C_{1}\setminus \{L\})\cup (C_{2}\setminus \{{\overline {L}}\})} {\displaystyle C_{R}=(C_{1}\setminus \{L\})\cup (C_{2}\setminus \{{\overline {L}}\})}

Es darf immer nur genau ein Literal resolviert werden. Je nach Ausgangsklauseln ist die Bildung verschiedener Resolventen möglich.

Anders notiert: Aus

( A 1 ∨ A 2 ∨ ⋯ ∨ A n ) ∧ ( B 1 ∨ B 2 ∨ ⋯ ∨ B m ∨ ¬ A 1 ) {\displaystyle (A_{1}\vee A_{2}\vee \dots \vee A_{n})\wedge (B_{1}\vee B_{2}\vee \dots \vee B_{m}\vee \neg A_{1})} {\displaystyle (A_{1}\vee A_{2}\vee \dots \vee A_{n})\wedge (B_{1}\vee B_{2}\vee \dots \vee B_{m}\vee \neg A_{1})}

wird auf die Resolvente

A 2 ∨ ⋯ ∨ A n ∨ B 1 ∨ ⋯ ∨ B m {\displaystyle A_{2}\vee \dots \vee A_{n}\vee B_{1}\vee \dots \vee B_{m}} {\displaystyle A_{2}\vee \dots \vee A_{n}\vee B_{1}\vee \dots \vee B_{m}}

geschlossen.

Die Resolvente ist nicht äquivalent zu den Ausgangsklauseln. Die Bedeutung der Resolvente liegt vielmehr darin, dass die Ausgangsklauseln nur dann beide gleichzeitig erfüllbar sind, wenn auch die Resolvente erfüllbar ist (notwendige Bedingung). Gelingt es, die leere Klausel zu resolvieren, die stets unerfüllbar ist, ist somit die Unerfüllbarkeit der gesamten Formel gezeigt.

Beweis

[Bearbeiten | Quelltext bearbeiten]

Die Resolvente C R {\displaystyle C_{R}} {\displaystyle C_{R}} ist eine notwendige Bedingung für die Ausgangsklauseln C 1 {\displaystyle C_{1}} {\displaystyle C_{1}} und C 2 {\displaystyle C_{2}} {\displaystyle C_{2}}, es gilt also

( C 1 ∧ C 2 ) → C R {\displaystyle (C_{1}\wedge C_{2})\rightarrow C_{R}} {\displaystyle (C_{1}\wedge C_{2})\rightarrow C_{R}}.

Man sagt C R {\displaystyle C_{R}} {\displaystyle C_{R}} folgt aus C 1 {\displaystyle C_{1}} {\displaystyle C_{1}} und C 2 {\displaystyle C_{2}} {\displaystyle C_{2}}. Der Beweis zur Korrektheit dieser Resolution kann wie folgt geführt werden:

[ ( A 1 ∨ A 2 ∨ ⋯ ∨ A n ) ∧ ( B 1 ∨ B 2 ∨ ⋯ ∨ B m ∨ ¬ A 1 ) ] → ( A 2 ∨ A 3 ∨ ⋯ ∨ A n ∨ B 1 ∨ B 2 ∨ ⋯ ∨ B m ) ≡ ¬ [ ( A 1 ∨ A 2 ∨ ⋯ ∨ A n ) ∧ ( B 1 ∨ B 2 ∨ ⋯ ∨ B m ∨ ¬ A 1 ) ] ∨ ( A 2 ∨ A 3 ∨ ⋯ ∨ A n ∨ B 1 ∨ B 2 ∨ ⋯ ∨ B m ) ≡ ( ¬ A 1 ∧ ¬ A 2 ∧ ⋯ ∧ ¬ A n ) ∨ ( ¬ B 1 ∧ ¬ B 2 ∧ ⋯ ∧ ¬ B m ∧ A 1 ) ∨ ( A 2 ∨ A 3 ∨ ⋯ ∨ A n ) ∨ ( B 1 ∨ B 2 ∨ ⋯ ∨ B m ) ≡ ( ¬ A 1 ∨ A 2 ∨ A 3 ∨ ⋯ ∨ A n ) ∨ ( A 1 ∨ B 1 ∨ B 2 ∨ ⋯ ∨ B m ) ≡ ¬ A 1 ∨ A 1 ≡ 1 {\displaystyle {\begin{aligned}&[(A_{1}\vee A_{2}\vee \dots \vee A_{n})\wedge (B_{1}\vee B_{2}\vee \dots \vee B_{m}\vee \neg A_{1})]\rightarrow (A_{2}\vee A_{3}\vee \dots \vee A_{n}\vee B_{1}\vee B_{2}\vee \dots \vee B_{m})\\&\equiv \neg [(A_{1}\vee A_{2}\vee \dots \vee A_{n})\wedge (B_{1}\vee B_{2}\vee \dots \vee B_{m}\vee \neg A_{1})]\vee (A_{2}\vee A_{3}\vee \dots \vee A_{n}\vee B_{1}\vee B_{2}\vee \dots \vee B_{m})\\&\equiv (\neg A_{1}\wedge \neg A_{2}\wedge \dots \wedge \neg A_{n})\vee (\neg B_{1}\wedge \neg B_{2}\wedge \dots \wedge \neg B_{m}\wedge A_{1})\vee (A_{2}\vee A_{3}\vee \dots \vee A_{n})\vee (B_{1}\vee B_{2}\vee \dots \vee B_{m})\\&\equiv (\neg A_{1}\vee A_{2}\vee A_{3}\vee \dots \vee A_{n})\vee (A_{1}\vee B_{1}\vee B_{2}\vee \dots \vee B_{m})\\&\equiv \neg A_{1}\vee A_{1}\\&\equiv 1\end{aligned}}} {\displaystyle {\begin{aligned}&[(A_{1}\vee A_{2}\vee \dots \vee A_{n})\wedge (B_{1}\vee B_{2}\vee \dots \vee B_{m}\vee \neg A_{1})]\rightarrow (A_{2}\vee A_{3}\vee \dots \vee A_{n}\vee B_{1}\vee B_{2}\vee \dots \vee B_{m})\\&\equiv \neg [(A_{1}\vee A_{2}\vee \dots \vee A_{n})\wedge (B_{1}\vee B_{2}\vee \dots \vee B_{m}\vee \neg A_{1})]\vee (A_{2}\vee A_{3}\vee \dots \vee A_{n}\vee B_{1}\vee B_{2}\vee \dots \vee B_{m})\\&\equiv (\neg A_{1}\wedge \neg A_{2}\wedge \dots \wedge \neg A_{n})\vee (\neg B_{1}\wedge \neg B_{2}\wedge \dots \wedge \neg B_{m}\wedge A_{1})\vee (A_{2}\vee A_{3}\vee \dots \vee A_{n})\vee (B_{1}\vee B_{2}\vee \dots \vee B_{m})\\&\equiv (\neg A_{1}\vee A_{2}\vee A_{3}\vee \dots \vee A_{n})\vee (A_{1}\vee B_{1}\vee B_{2}\vee \dots \vee B_{m})\\&\equiv \neg A_{1}\vee A_{1}\\&\equiv 1\end{aligned}}}

Res-Operator

[Bearbeiten | Quelltext bearbeiten]

Das Ausführen eines einzelnen Resolutionsschrittes wird mit dem Res-Operator notiert:

Res ⁡ ( F ) = F ∪ { R } {\displaystyle \operatorname {Res} (F)=F\cup \{R\}} {\displaystyle \operatorname {Res} (F)=F\cup \{R\}}, wobei R {\displaystyle R} {\displaystyle R} eine Resolvente zweier Klauseln aus F {\displaystyle F} {\displaystyle F} ist

Mit Res ⋆ ⁡ ( F ) = ⋃ n ∈ N Res n ⁡ ( F ) {\displaystyle \operatorname {Res} ^{\star }(F)=\bigcup _{n\in \mathbb {N} }\operatorname {Res} ^{n}(F)} {\displaystyle \operatorname {Res} ^{\star }(F)=\bigcup _{n\in \mathbb {N} }\operatorname {Res} ^{n}(F)} bezeichnet man die Vereinigung aller möglichen Resolutionsschritte auf F {\displaystyle F} {\displaystyle F}.

Somit sind folgende Aussagen möglich:

  1. ist die leere Klausel Element von Res ⋆ ⁡ ( F ) {\displaystyle \operatorname {Res} ^{\star }(F)} {\displaystyle \operatorname {Res} ^{\star }(F)}, ist F {\displaystyle F} {\displaystyle F} unerfüllbar und
  2. ist die leere Klausel Element von Res ⋆ ⁡ ( ¬ F ) {\displaystyle \operatorname {Res} ^{\star }(\neg F)} {\displaystyle \operatorname {Res} ^{\star }(\neg F)}, ist F {\displaystyle F} {\displaystyle F} eine Tautologie

Resolution und Prädikatenlogik

[Bearbeiten | Quelltext bearbeiten]

Problemstellung

[Bearbeiten | Quelltext bearbeiten]

Für interessantere Problemstellungen ist das Instrumentarium der Aussagenlogik nicht ausreichend. Das Prinzip der Resolution sollte von der einfachen Aussagenlogik auf die Prädikatenlogik erster Stufe ausgeweitet werden können. Neben logischen Literalen sind dabei zu berücksichtigen:

  • Variablen (beispielsweise Zahlenvariablen), üblicherweise mit Symbolen wie x {\displaystyle x} {\displaystyle x} und y {\displaystyle y} {\displaystyle y} bezeichnet
  • die Quantoren ∃ {\displaystyle \exists } {\displaystyle \exists } (der Existenzquantor) und ∀ {\displaystyle \forall } {\displaystyle \forall } (der Allquantor),
  • Konstanten, beispielsweise 0 , 1 , π {\displaystyle 0,1,\pi \,} {\displaystyle 0,1,\pi \,}
  • ein- und mehrwertige Funktionen, üblicherweise mit Symbolen wie f ( x ) {\displaystyle f(x)} {\displaystyle f(x)} oder g ( x , y ) {\displaystyle g(x,y)} {\displaystyle g(x,y)} bezeichnet.

Ein durchaus typisches Beispiel für eine prädikatenlogische Aussage ist:

1) ∀ x ∃ y ∀ z K ( g ( a , z ) , y ) ⟹ K ( g ( f ( a ) , f ( z ) ) , x ) {\displaystyle \forall x\exists y\forall zK(g(a,z),y)\implies K(g(f(a),f(z)),x)} {\displaystyle \forall x\exists y\forall zK(g(a,z),y)\implies K(g(f(a),f(z)),x)}

(Anmerkung: Setzen wir g ( t , u ) = | t − u | {\displaystyle g(t,u)=\vert t-u\vert \,} {\displaystyle g(t,u)=\vert t-u\vert \,} und K ( v , w ) ≡ ( v < w ) {\displaystyle K(v,w)\equiv (v<w)\,} {\displaystyle K(v,w)\equiv (v<w)\,}, so liefert uns die obige Formel die formal-logische Definition der Stetigkeit der Funktion f {\displaystyle f\,} {\displaystyle f\,} im Punkt a {\displaystyle a\,} {\displaystyle a\,}.)

Damit auf solche Aussagen die Resolution angewendet werden kann, müssen sie umgeformt und das oben beschriebene Verfahren erweitert werden.

Normalisierung

[Bearbeiten | Quelltext bearbeiten]

Die ersten Schritte bestehen darin, die zu widerlegende Aussage in eine Form zu bringen, die der konjunktiven Normalform der Aussagenlogik ähnelt.

  1. Man bringt die zu widerlegende Formel in die Pränexform. Nach dieser Umformung stehen die Quantoren alle am Anfang der Formel, und der Rest der Formel hat die Gestalt einer konjunktiven Normalform.
  2. Durch die Anwendung von Skolemfunktionen eliminiert man alle Existenzquantoren ∃ {\displaystyle \exists } {\displaystyle \exists } aus der Formel und bringt sie in die Skolemform.
  3. Nun sind alle Variablen in der Funktion an Allquantoren ∀ {\displaystyle \forall } {\displaystyle \forall } gebunden. Trifft man die Übereinkunft, Konstanten und Variablen unterschiedlich zu bezeichnen, beispielsweise Konstanten mit a , b , c , a 1 , a 2 , a 3 , … {\displaystyle a,b,c,a_{1},a_{2},a_{3},\dotsc \,} {\displaystyle a,b,c,a_{1},a_{2},a_{3},\dotsc \,} und Variablen mit x , y , z , x 1 , x 2 , x 3 , … {\displaystyle x,y,z,x_{1},x_{2},x_{3},\dotsc \,} {\displaystyle x,y,z,x_{1},x_{2},x_{3},\dotsc \,}, dann kann auch auf die explizite Notation des Allquantors verzichtet werden. Man lässt ihn ebenfalls weg und erhält die Klauselform der Aussage.[1]

Beispielsweise lautet die Klauselform der Formel 1) aus dem vorigen Abschnitt:

2) ¬ K ( g ( a , z ) , s ( x ) ) ∨ K ( g ( f ( a ) , f ( z ) ) , x ) {\displaystyle \neg K(g(a,z),s(x))\vee K(g(f(a),f(z)),x)} {\displaystyle \neg K(g(a,z),s(x))\vee K(g(f(a),f(z)),x)}

Substitution und Vereinheitlichung

[Bearbeiten | Quelltext bearbeiten]

Die Formeln

P ( x ) {\displaystyle P(x)\,} {\displaystyle P(x)\,} und ¬ P ( a ) {\displaystyle \neg P(a)\,} {\displaystyle \neg P(a)\,}

scheinen auf den ersten Blick nicht resolvierbar zu sein, da sie sich in x {\displaystyle x\,} {\displaystyle x\,} und a {\displaystyle a\,} {\displaystyle a\,} unterscheiden. Da die freie Variable x {\displaystyle x\,} {\displaystyle x\,} jedoch implizit ein Stellvertreter für alle x {\displaystyle x\,} {\displaystyle x\,} ist, darf (unter anderem) a {\displaystyle a\,} {\displaystyle a\,} für x {\displaystyle x\,} {\displaystyle x\,} eingesetzt werden.

Man erhält also die beiden Terme

P ( a ) {\displaystyle P(a)\,} {\displaystyle P(a)\,} und ¬ P ( a ) {\displaystyle \neg P(a)\,} {\displaystyle \neg P(a)\,}

die sich offensichtlich miteinander resolvieren lassen.

Folgende Ersetzungen sind möglich:

3a) Ersetze Variable durch Konstante: P ( x ) {\displaystyle P(x)\,} {\displaystyle P(x)\,} → {\displaystyle \rightarrow } {\displaystyle \rightarrow } P ( a ) {\displaystyle P(a)\,} {\displaystyle P(a)\,}
3b) Ersetze Variable durch eine andere Variable: P ( x ) {\displaystyle P(x)\,} {\displaystyle P(x)\,} → {\displaystyle \rightarrow } {\displaystyle \rightarrow } P ( y ) {\displaystyle P(y)\,} {\displaystyle P(y)\,}
3c) Ersetze Variable durch Funktion einer Variablen: P ( x ) {\displaystyle P(x)\,} {\displaystyle P(x)\,} → {\displaystyle \rightarrow } {\displaystyle \rightarrow } P ( f ( y ) ) {\displaystyle P(f(y))\,} {\displaystyle P(f(y))\,}

Die Ersetzung von Variablen in einem Literal muss in konsistenter Weise durchgeführt werden: Wird eine Variable an einer Stelle durch einen Term ersetzt, so muss dies innerhalb des Literals überall geschehen:

4a) Korrekte Ersetzung: P ( x , f ( x ) ) {\displaystyle P(x,f(x))\,} {\displaystyle P(x,f(x))\,} → {\displaystyle \rightarrow } {\displaystyle \rightarrow } P ( a , f ( a ) ) {\displaystyle P(a,f(a))\,} {\displaystyle P(a,f(a))\,}
4b) Verbotene Ersetzung: P ( x , f ( x ) ) {\displaystyle P(x,f(x))\,} {\displaystyle P(x,f(x))\,} ↛ {\displaystyle \nrightarrow } {\displaystyle \nrightarrow } P ( a , f ( x ) ) {\displaystyle P(a,f(x))\,} {\displaystyle P(a,f(x))\,}

Sei { x 1 , x 2 , … , x n } {\displaystyle \lbrace x_{1},x_{2},\dotsc ,x_{n}\rbrace \,} {\displaystyle \lbrace x_{1},x_{2},\dotsc ,x_{n}\rbrace \,} eine Menge von Variablen. Sei { t 1 , t 2 , … , t n } {\displaystyle \lbrace t_{1},t_{2},\dotsc ,t_{n}\rbrace \,} {\displaystyle \lbrace t_{1},t_{2},\dotsc ,t_{n}\rbrace \,} eine Menge von Termen, die aus Funktionen, Variablen oder Konstanten zusammengesetzt sein können.

  • Ein System S {\displaystyle S\,} {\displaystyle S\,} von Ersetzungen { x 1 → t 1 , x 2 → t 2 , … , x n → t n } {\displaystyle \lbrace x_{1}\rightarrow t_{1},x_{2}\rightarrow t_{2},\dotsc ,x_{n}\rightarrow t_{n}\rbrace \,} {\displaystyle \lbrace x_{1}\rightarrow t_{1},x_{2}\rightarrow t_{2},\dotsc ,x_{n}\rightarrow t_{n}\rbrace \,} heißt eine Substitution.

Seien L 1 = P ( t 1 , t 2 , … , t n ) , L 2 = P ( u 1 , u 2 , … , u n ) , … , L m = P ( v 1 , v 2 , … , v n ) {\displaystyle L_{1}=P(t_{1},t_{2},\dotsc ,t_{n}),L_{2}=P(u_{1},u_{2},\dotsc ,u_{n}),\dotsc ,L_{m}=P(v_{1},v_{2},\dotsc ,v_{n})\,} {\displaystyle L_{1}=P(t_{1},t_{2},\dotsc ,t_{n}),L_{2}=P(u_{1},u_{2},\dotsc ,u_{n}),\dotsc ,L_{m}=P(v_{1},v_{2},\dotsc ,v_{n})\,} Literale über demselben Prädikat P {\displaystyle P\,} {\displaystyle P\,}, wobei die t i , u i , … , v i {\displaystyle t_{i},u_{i},\dotsc ,v_{i}\,} {\displaystyle t_{i},u_{i},\dotsc ,v_{i}\,} wiederum Terme sind.

  • Eine Substitution S {\displaystyle S\,} {\displaystyle S\,} heißt eine Vereinheitlichung (oder auch Unifikator) von L 1 , L 2 , … , L m {\displaystyle L_{1},L_{2},\dotsc ,L_{m}\,} {\displaystyle L_{1},L_{2},\dotsc ,L_{m}\,}, wenn durch die Anwendung von S {\displaystyle S\,} {\displaystyle S\,} die Argumente aller Literale zur Übereinstimmung gebracht werden, das heißt, wenn S ( L 1 ) = S ( L 2 ) = ⋯ = S ( L m ) {\displaystyle S(L_{1})=S(L_{2})=\dotsb =S(L_{m})\,} {\displaystyle S(L_{1})=S(L_{2})=\dotsb =S(L_{m})\,}.

Zwei Literale über demselben Prädikat haben nicht notwendigerweise eine Vereinheitlichung. Beispielsweise lassen sich P ( a ) {\displaystyle P(a)\,} {\displaystyle P(a)\,} und P ( b ) {\displaystyle P(b)\,} {\displaystyle P(b)\,} nicht vereinheitlichen, wenn a {\displaystyle a\,} {\displaystyle a\,} und b {\displaystyle b\,} {\displaystyle b\,} unterschiedliche Konstanten sind.

  • Eine Vereinheitlichung S {\displaystyle S\,} {\displaystyle S\,} von Literalen heißt allgemeinste Vereinheitlichung, wenn es für jede andere Vereinheitlichung T {\displaystyle T\,} {\displaystyle T\,} dieser Literale eine Substitution V {\displaystyle V\,} {\displaystyle V\,} gibt, so dass T = S ∘ V {\displaystyle T=S\circ V\,} {\displaystyle T=S\circ V\,}.

Wenn eine Menge von Literalen eine Vereinheitlichung besitzt, dann besitzt sie eine allgemeinste Vereinheitlichung. Diese kann mit Hilfe eines relativ einfachen Algorithmus[2] ermittelt werden.

Resolution prädikatenlogischer Klauseln

[Bearbeiten | Quelltext bearbeiten]

Mit diesem Instrumentarium kann das Resolutionsverfahren auf Aussagen der Prädikatenlogik ausgeweitet werden.

  • Seien C 1 , C 2 {\displaystyle C_{1},C_{2}\,} {\displaystyle C_{1},C_{2}\,} zwei Klauseln einer normalisierten prädikatenlogischen Aussage. Ohne Beschränkung der Allgemeinheit darf vorausgesetzt werden, dass diese keine übereinstimmenden Variablen enthalten (da sie durch einen Allquantor gebunden sind, können wir gleichnamige Variablen in einer Klausel umbenennen, auch wenn der Allquantor nicht mehr explizit geschrieben wird).
  • Seien L 1 {\displaystyle L_{1}\,} {\displaystyle L_{1}\,} und L 2 {\displaystyle L_{2}\,} {\displaystyle L_{2}\,} positive bzw. negiert vorkommende Literale in C 1 {\displaystyle C_{1}\,} {\displaystyle C_{1}\,} bzw. C 2 {\displaystyle C_{2}\,} {\displaystyle C_{2}\,}, die eine allgemeinste Vereinheitlichung S {\displaystyle S\,} {\displaystyle S\,} besitzen.

Dann heißt

  • C R = S ( C 1 ∪ C 2 ) ∖ { S ( L 1 ) , ¬ S ( L 2 ) } {\displaystyle C_{R}=S(C_{1}\cup C_{2})\setminus \{S(L_{1}),\neg S(L_{2})\}} {\displaystyle C_{R}=S(C_{1}\cup C_{2})\setminus \{S(L_{1}),\neg S(L_{2})\}} ein binärer Resolvent von C 1 {\displaystyle C_{1}\,} {\displaystyle C_{1}\,} und C 2 {\displaystyle C_{2}\,} {\displaystyle C_{2}\,}.
  • Sei ferner C {\displaystyle C\,} {\displaystyle C\,} eine Klausel mit einer Teilmenge von Literalen, die eine allgemeinste Vereinheitlichung S {\displaystyle S\,} {\displaystyle S\,} besitzt.

Dann heißt

  • S ( C ) {\displaystyle S(C)\,} {\displaystyle S(C)\,} ein Faktor von C {\displaystyle C\,} {\displaystyle C\,}.

Ein Resolvent zweier Klauseln C 1 , C 2 {\displaystyle C_{1},C_{2}\,} {\displaystyle C_{1},C_{2}\,} ist

  • entweder ein binärer Resolvent von C 1 {\displaystyle C_{1}\,} {\displaystyle C_{1}\,} und C 2 {\displaystyle C_{2}\,} {\displaystyle C_{2}\,}.
  • oder ein binärer Resolvent von C 1 {\displaystyle C_{1}\,} {\displaystyle C_{1}\,} und einem Faktor von C 2 {\displaystyle C_{2}\,} {\displaystyle C_{2}\,}.
  • oder ein binärer Resolvent eines Faktors von C 1 {\displaystyle C_{1}\,} {\displaystyle C_{1}\,} und C 2 {\displaystyle C_{2}\,} {\displaystyle C_{2}\,}.
  • oder ein binärer Resolvent eines Faktors von C 1 {\displaystyle C_{1}\,} {\displaystyle C_{1}\,} und eines Faktors von C 2 {\displaystyle C_{2}\,} {\displaystyle C_{2}\,}.

Das Resolutionsverfahren für prädikatenlogische Aussagen besteht darin, so lange solche Resolventen zu erzeugen, bis die leere Klausel erzeugt und damit der Widerspruchsbeweis erbracht ist.[3]

Beispiel

[Bearbeiten | Quelltext bearbeiten]

Ein logisches Rätsel

[Bearbeiten | Quelltext bearbeiten]

Wir wollen das Prinzip am Beispiel eines kleinen, nicht wörtlich zu nehmenden logischen Rätsels illustrieren:

Seit dem Altertum ist bekannt, dass alle Athener klug (1) und alle Spartaner heldenmütig (2) sind. Außerdem ist bekannt, dass ein profundes Misstrauen zwischen beiden Städten herrscht, so dass doppelte Stadtbürgerschaften ausgeschlossen sind (3). Unser nach Griechenland entsandter Forscher war neulich zu Gast bei einer Konferenz. Mit Ausnahme unseres Forschers stammte jeder der Anwesenden aus einer der beiden Städte (4).

Der Forscher kam ins Gespräch mit den Herren Diogenes, Platon und Euklid. Mit ihren berühmten Vorbildern hatten diese nur den Namen gemein. Die Herren zogen kräftig übereinander vom Leder. Euklid sagte: „Wenn Platon Spartaner ist, dann ist Diogenes feige!“ (5) – Platon behauptete: „Diogenes ist eine Memme, wenn Euklid Spartaner ist!“ (6) „Wenn Diogenes allerdings Athener ist, dann ist Euklid ein Waschlappen!“ (7) – Worauf sich Diogenes den Bart glatt strich und postulierte: „Wenn Platon Athener ist, dann ist Euklid ein Dummkopf!“ (8)

Bei aller Spitzzüngigkeit blieben die drei Herren mit ihren Behauptungen bei der Wahrheit. Wer kommt aus welcher Stadt?

Das Rätsel in Klauselform

[Bearbeiten | Quelltext bearbeiten]

Wir setzen p für Platon, d für Diogenes, e für Euklid. Die Prädikate „ist Athener“, „ist Spartaner“, „ist heldenmütig“ und „ist klug“ bezeichnen wir mit A, S, H und K. Wir übersetzen die oben genannten Aussagen in die Klauselform und erhalten:

¬A(x) v K(x) (1)
¬S(x) v H(x) (2)
¬A(x) v ¬S(x) (3)
A(x) v S(x) (4)
¬S(p) v ¬H(d) (5)
¬S(e) v ¬H(d) (6)
¬A(d) v ¬H(e) (7)
¬A(p) v ¬K(e) (8)

Die Auflösung

[Bearbeiten | Quelltext bearbeiten]

Wir nehmen an, Platon sei Athener:

A(p) {Annahme} (9)

Nun wenden wir das Resolutionsprinzip an und erhalten:

¬K(e) {aus Resolution von (9) mit (8)} (10)
¬A(e) {aus Substitution von e für x und Resolution (10,1)} (11)
S(e) {Subs. (e:x), Res. (11,4)} (12)
¬H(d) {Res. (12,6)} (13)
¬S(d) {Subs. (d:x), Res. (13,2)} (14)
A(d) {Subs. (d:x), Res. (14,4)} (15)
¬H(e) {Res. (15,7)} (16)
¬S(e) {Subs. (e:x), Res. (16,2)} (17)
leere Klausel {Res. (17,12)} (18)

Somit ist die Annahme (9) zum Widerspruch geführt. Sie ist mitsamt den aus ihr abgeleiteten Klauseln (10) bis (18) zu verwerfen. Wir erhalten stattdessen:

¬A(p) {da (9) falsch ist} (19)
S(p) {Subs. (p:x), Res. (19,4)} (20)

Nehmen wir nun an, Diogenes sei Spartaner, und wenden wir weiterhin das Resolutionsprinzip an:

S(d) {Annahme} (21)
H(d) {Subs. (d:x), Res. (21,2)} (22)
¬S(p) {Res. (22,5)} (23)
leere Klausel {Res. (23,20)} (24)

Somit ist die Annahme (21) widerlegt und mitsamt den aus ihr abgeleiteten Klauseln (22) – (24) zu verwerfen. Wir erhalten stattdessen:

¬S(d) {da (21) falsch ist} (25)
A(d) {Subs. (d:x), Res. (25,4)} (26)

Nehmen wir an, Euklid sei Spartaner. Wir erhalten:

S(e) {Annahme} (27)
H(e) {Subs. (e:x), Res. (27, 2)} (28)
¬A(d) {Res. (28, 7)} (29)
leere Klausel {Res. (29,26)} (30)

Also ist (27) falsch und samt (28) – (30) zu verwerfen. Wir erhalten stattdessen:

¬S(e) {da (27) falsch ist} (31)
A(e) {Subs. (e:x), Res. (31,4)} (32)

Platon ist Spartaner (20). Diogenes ist Athener (26), ebenso Euklid (32).

Terminierung und Komplexität

[Bearbeiten | Quelltext bearbeiten]

Im Falle der Aussagenlogik terminiert das Verfahren: Es liefert in endlicher Zeit ein Ergebnis, ob eine vorgelegte Aussage erfüllbar ist. Die Rechenzeit wächst im allgemeinen Fall und mit den derzeit bekannten Verfahren exponentiell mit der Anzahl der Literale. Das Problem ist NP-vollständig.[4]

Im Falle der Prädikatenlogik terminiert das Verfahren stets mit dem korrekten Ergebnis, wenn es auf eine unerfüllbare Formel angewendet wird. Bei einer erfüllbaren Formel kommt es jedoch vor, dass das Verfahren kein Ende findet. Man spricht von Semi-Entscheidbarkeit. Wäre es anders, dann wäre das Resolutionsverfahren ein Algorithmus, um prädikatenlogische Formeln allgemein zu entscheiden – was unmöglich ist, da das Gültigkeitsproblem in der Prädikatenlogik nicht entscheidbar ist.

Andere Kalküle im logischen Einsatz

[Bearbeiten | Quelltext bearbeiten]
  • Baumkalkül: in gewisser Weise unter den Kalkülen der nächste Verwandte des Resolutionskalküls
  • axiomatische Kalküle
  • Systeme natürlichen Schließens
  • Sequenzenkalkül
  • Existential Graphs

Quellen

[Bearbeiten | Quelltext bearbeiten]
  1. ↑ Davis, Martin: Eliminating the Irrelevant from Mechanical Proofs. in: Journal of Symbolic Logic, ISSN 0022-4812, Vol. 32, No. 1 (Mar., 1967), pp. 118–119
  2. ↑ Chang, Chin-Liang; Lee, Richard Char-Tung: Symbolic Logic and Mechanical Theorem Proving, Academic Press, 1973, ISBN 0-12-170350-9, S. 77ff
  3. ↑ Chang, Chin-Liang; Lee, Richard Char-Tung: Symbolic Logic and Mechanical Theorem Proving, Academic Press, 1973, ISBN 0-12-170350-9, S. 80–81
  4. ↑ Haken, A. "The Intractability of Resolution", Theoretical Computer Science 39 (1985), pp. 297–308.

Literatur

[Bearbeiten | Quelltext bearbeiten]
  • Chang, Chin-Liang; Lee, Richard Char-Tung: Symbolic Logic and Mechanical Theorem Proving, Academic Press, 1973, ISBN 0-12-170350-9

Weblinks

[Bearbeiten | Quelltext bearbeiten]
  • Aussagenlogik -Resolution Video der Vorlesung von Carola Eschenbach, 2011, Fachbereich Informatik, Universität Hamburg
  • Formale Systeme, Kap. 5.3, Vorlesungsskript von Peter H. Schmitt, 2016, KIT (PDF-Datei; 2,7 MB)
  • Logic for Computer Scientists, von Ulrich Furbach, Universität Koblenz-Landau
  • Aussagenlogik - Resolution Vorlesungsskript von Frank Heitmann, 2015, Universität Hamburg
Abgerufen von „https://de.teknopedia.teknokrat.ac.id/w/index.php?title=Resolution_(Logik)&oldid=256034601“
Kategorien:
  • Mathematische Logik
  • Logikkalkül

  • indonesia
  • Polski
  • العربية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصرى
  • Nederlands
  • 日本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українська
  • Tiếng Việt
  • Winaray
  • 中文
  • Русский
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id