Skript Logik und Regelverarbeitung Hans Kleine Büning
Theodor Lettmann
15. Oktober 2002
ii
Inhaltsverzeichnis 0
E...
210 downloads
1237 Views
1MB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
Skript Logik und Regelverarbeitung Hans Kleine Büning
Theodor Lettmann
15. Oktober 2002
ii
Inhaltsverzeichnis 0
Einführung
1
0.1
Wissensbasierte Systeme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
0.1.1
Künstliche Intelligenz und wissensbasierte Systeme . . . . . . . . . . . . . . . . . .
1
0.1.2
Gebiete der KI mit wissensbasierter Ausrichtung . . . . . . . . . . . . . . . . . . .
2
0.1.3
Trennung von Wissen und Verarbeitung . . . . . . . . . . . . . . . . . . . . . . . .
4
0.1.4
Methoden für die Erstellung wissensbasierter Systeme . . . . . . . . . . . . . . . .
5
0.1.5
Beispiele für symbolische Wissensrepräsentationen . . . . . . . . . . . . . . . . . .
6
0.1.6
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
Expertensysteme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
0.2
1
0.2.1
Einsatzgebiete von Expertensystemen . . . . . . . . . . . . . . . . . . . . . . . . . 10
0.2.2
Problemklassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
0.2.3
Architektur von Expertensystemen . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
0.2.4
Die Architektur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
0.2.5
Vergleich: Expertensystem ↔ Experte . . . . . . . . . . . . . . . . . . . . . . . . . 14
Einführung in die Aussagenlogik
17
1.1
Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.2
Normalformen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 1.2.1
Negationsnormalform (NNF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.2.2
Konjunktive Normalform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.2.3
Disjunktive Normalform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1.3
Komplexität von Erfüllbarkeitsproblemen . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.4
Erfüllbarkeit und 2–KNF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
1.5
Davis–Putnam Algorithmen
1.6
Partielle Erfüllbarkeitsalgorithmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
iii
INHALTSVERZEICHNIS
iv 1.7
1.8
1.9
2
3
Grundlagen der Resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 1.7.1
Stufensättigungsstrategie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
1.7.2
P– und N–Resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
1.7.3
Hyperresolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
1.7.4
Lineare Resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
1.7.5
Davis–Putnam Resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
1.7.6
Input–Resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
1.7.7
Unit–Resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
1.7.8
Unit–Preference Strategie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Horn-Logik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 1.8.1
Umbenennung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
1.8.2
Unit–Resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Kalküle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 1.9.1
Frege–Systeme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
1.9.2
Lineare Ungleichungssysteme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Einführung in die Prädikatenlogik
105
2.1
Syntax und Semantik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
2.2
Normalformen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 2.2.1
Pränexe Normalform (PNF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
2.2.2
Skolem-Normalform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
2.3
Substitution und Unifikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
2.4
Prädikatenlogische Resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Produktionsregelsysteme 3.1
Definition von Produktionsregelsystemen . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 3.1.1
3.2
121
Algorithmische Darstellung des Interpreters . . . . . . . . . . . . . . . . . . . . . . 125
Probleme bei Produktionsregelsystemen mit Negation . . . . . . . . . . . . . . . . . . . . . 137 3.2.1
Interpretation entsprechend dem Negation-by-Failure Konzept . . . . . . . . . . . . 138
3.2.2
Interpretation der Negation in Bezug auf die aktuelle Datenbasis . . . . . . . . . . . 140
3.3
Ein aussagenlogisches Modell für Produktionsregelsysteme . . . . . . . . . . . . . . . . . . 143
3.4
Das Problem der Inkonsistenz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 3.4.1
Ein Algorithmus zum Test auf Inkonsistenz . . . . . . . . . . . . . . . . . . . . . . 146
3.4.2
Inkonsistenz und das aussagenlogische Modell . . . . . . . . . . . . . . . . . . . . 147
INHALTSVERZEICHNIS 3.5
3.6
Das Problem der Äquivalenz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 3.5.1
Äquivalenz bei aussagenlogischen Formeln . . . . . . . . . . . . . . . . . . . . . . 150
3.5.2
Äquivalenz von Produktionsregelsystemen . . . . . . . . . . . . . . . . . . . . . . 150
Integration von prozeduralen Elementen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 3.6.1
4
4.1.1
Zugehörigkeitsfunktion und Fuzzy-Menge . . . . . . . . . . . . . . . . . . . . . . . 157
4.1.2
Träger und α–Schnitt einer Fuzzy–Menge . . . . . . . . . . . . . . . . . . . . . . . 159
4.1.3
Fuzzy–Mengenoperationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
4.1.4
Fuzzy-Relation und zugehörige Operationen . . . . . . . . . . . . . . . . . . . . . 162
4.2
Fuzzy-Regeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
4.3
Linguistische Variablen und Modifizierer
. . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Approximatives Schließen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
4.4
Fuzzifikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
4.5
Defuzzifikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
4.6
Anwendungsbeispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
4.7
Heuristische Ansätze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 4.7.1
6
157
Grundbegriffe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
4.3.1
5
Prozeduren im Aktionsteil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Fuzzy–Logik 4.1
v
Regeln mit Konfidenzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
Maschinelles Lernen
181
5.1
Lernen von Entscheidungsbäumen und Regelmengen . . . . . . . . . . . . . . . . . . . . . 182
5.2
ID3 - Ein heuristischer Algorithmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 5.2.1
Die Attributauswahlheuristik ID3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
5.2.2
Komplexität . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
Neuronale Netze 6.1
191
Theoretische Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 6.1.1
Das konnektionistische Modell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
6.1.2
Arbeitsweise neuronaler Netze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
6.1.3
Selbstorganisation - Lernen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
6.1.4
Lernheuristiken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
6.1.5
Gewichtsupdate: Singlestep oder Batchmode . . . . . . . . . . . . . . . . . . . . . 208
INHALTSVERZEICHNIS
vi 6.1.6 6.2
6.3
7
Lernverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
Topologien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 6.2.1
Performanz von Multilayer Feedforward Netzen . . . . . . . . . . . . . . . . . . . 210
6.2.2
Lineare Separabilität . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
6.2.3
Overfitting und Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
Beispiele
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
6.3.1
XOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
6.3.2
Parity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
6.3.3
Encoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
6.3.4
Monks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
6.3.5
Two Spirals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
Unsicherheit und Vagheit
223
7.1
Grobe Mengen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
7.2
Statistische Methoden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 7.2.1
Satz von Bayes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
7.2.2
Dempster-Shafer Theorie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
Kapitel 0
Einführung In der Vorlesung Wissensbasierte Systeme soll dargestellt werden, was wissensbasierte Systeme und Expertensysteme sind, was sie von anderen Programmen unterscheidet und wie sie aufgebaut sind. Die wesentlichen Leistungsmerkmale dieser Form von Software werden vorgestellt und ein Einblick in die Schwierigkeiten und Anforderungen bei der Erstellung eines solchen Systems gegeben. Ein Schwerpunkt im Rahmen der Vorlesung sind die Wissensrepräsentation mit jeweils passenden Wissensverarbeitungs- und Inferenzmechanismen.
0.1 Wissensbasierte Systeme Zunächst werden die Architektur von wissensbasierten Systemen und Expertensystemen und die Unterschiede zu anderen Programmen, insbesondere die Trennung von Wissen und Verarbeitung durch deklarative Darstellung, beschrieben. Dazu gehört insbesondere eine Einordnung dieser Systeme in das Gebiet der Künstlichen Intelligenz.
0.1.1 Künstliche Intelligenz und wissensbasierte Systeme Die künstliche Intelligenz ist ein Forschungsgebiet, in dem versucht wird, menschliche Aktivitäten, die normalerweise Intelligenz erfordern, dem Rechner zugänglich zu machen. Beispiele für solche Aktivitäten sind das Planen einer Reise, das Beweisen mathematischer Sätze, das Erstellen medizinischer Diagnosen oder das Sehen und Erkennen von Gegenständen. Allerdings weckt der Begriff „Künstliche Intelligenz“ oft falsche Assoziationen (vgl. Duden Informatik1 ): . . . Die Bezeichnung „Künstliche Intelligenz entstand als Übersetzung von „artificial intelligence“. Dieser Begriff war Mitte der 50er Jahre in der USA geboren worden. Die Übersetzung von „artificial“ als „künstlich“ bedeutet zugleich „unecht“, „erkünstelt“, „Schein-“. Die Programme, die in der KI entstehen, verhalten sich also für den Betrachter als ob sie Intelligenz besäßen. Auch das Wort „intelligence“ besitzt im Englischen eine weitergehende Bedeutung als das Wort „Intelligenz“ im Deutschen, nämlich denkbezogene Information, Einsicht und Verständnis. . . . 1
Duden Informatik, Dudenverlag, 1988, S. 314
1
2
KAPITEL 0. EINFÜHRUNG
Die Forschung auf dem Gebiet der künstlichen Intelligenz erfolgt dabei unter zwei verschiedenen Aspekten. Während ein Teil der Forschung versucht, dem Menschen bisher vorbehaltene Fähigkeiten als informationsverarbeitende Prozesse zu realisieren, wird auf der anderen Seite versucht, den Begriff der Intelligenz naturwissenschaftlichen Untersuchungsmethoden zugänglich zu machen. Zu diesem Zweck steht die künstliche Intelligenz in Verbindung mit vielen anderen wissenschaftlichen Disziplinen wie z. B. Informatik, Psychologie, Philosophie, Linguistik, Biologie und Ingenieurwissenschaften. Im Mittelpunkt aller Arbeiten steht jedoch der Begriff der Wissensverarbeitung. Hier wird untersucht, wie das Wissen, das jedem intelligenten Verhalten zugrunde liegt, formal repräsentiert und maschinell verarbeitet werden kann. Wenn diese Ergebnisse in Programme umgesetzt werden, führt dies dann zur Entwicklung von sogenannten wissensbasierten Systemen (WBS), also Software, die Wissen in einer geeigneten Form repräsentiert und Verfahren enthält, die es ermöglichen, dieses Wissen zu verknüpfen und so zu Schlußfolgerungen zu kommen. Im Überblick läßt sich bei dabei ein Trend von Software zur Lösung unterschiedlichster Probleme hin zu Software zur Lösung sehr spezieller Probleme feststellen. So sollte das Ende der 50er Jahre entwickelte Programm GPS (General Problem Solver), wie schon der Name besagt, ein allgemeiner Problemlöser sein, d.h. es sollte unterschiedlichste Probleme aus den verschiedensten Bereichen lösen. Dabei wurden jedoch nur Lösungen relativ einfacher Probleme erreicht. Als Ursache dafür wurde erkannt, daß intelligentes Verhalten eine Unmenge von Wissen erfordert, das für den Menschen oft selbstverständlich ist, aber dem Computer erst explizit mitgeteilt werden muß. Hierbei stellt vor allem die Menge dieses Hintergrundwissens eine unüberwindbare Schranke dar. Der Ausweg, der sich hier anbietet, ist die Beschränkung auf einen klar abgegrenzten Bereich, der es vor allem erlaubt, vorab das für die Bearbeitung benötigte Wissen einzugrenzen. Somit war ein wichtiges Ergebnis der Arbeit an GPS die Erkenntnis, daß es sinnvoller ist, von dem Entwurf eines allgemeinen (Lösungs-)Verfahrens für zu verschiedene Problemarten abzusehen und sich auf jeweilige spezielle Aufgabenklassen zu konzentrieren, mit dem Ziel, hierfür zugeschnittene Verfahren anzugeben. 1976 erfolgte dann der Übergang zu wirklich anwendungsorientierten Problemen. Damals wurde das Programm MYCIN zur Unterstützung von Ärzten bei der Diagnose von bakteriellen Infektionen entwickelt. Es simulierte auf einem engen Bereich, nämlich Diagnose und Beratung auf dem Gebiet der Infektionen, bei denen Bakterien im Blut auftreten sowie bei entzündlichen Infektionen der Rückenmarkshäute, die Fähigkeiten eines Experten. Hierbei war es möglich, das Wissen dieses Experten genau abzugrenzen. Dieses Programm gilt als richtungsweisend für heutige Expertensysteme, da wesentliche Konzepte und Strukturen in viele folgende Entwicklungen übernommen wurden. Heute ist die Entwicklung von KI-Techniken in einigen Gebieten so weit fortgeschritten, daß kommerzielle Anwendungen (z. B. Expertensysteme) möglich sind. Zudem werden im Moment die bisherigen Erfahrungen mit Expertensystemen in strukturierte Entwurfsmethodiken umgesetzt, die zukünftige Entwicklungen vereinfachen sollen.
0.1.2 Gebiete der KI mit wissensbasierter Ausrichtung Aus einer anwendungsorientierten Sicht kann man viele Aufgaben der künstlichen Intelligenz in folgende wichtige Gebiete einordnen: Natürlichsprachliche Systeme, Deduktionssysteme, Bildverarbeitende Systeme, Robotertechnologie und Expertensysteme. Die meisten dieser Aufgaben verlangen die Anwendung von Wissen, d. h. die Erfassung, die Speicherung und die Verarbeitung von relevanten Probleminformationen. Daher sind Systeme, die in diesen Bereichen
0.1. WISSENSBASIERTE SYSTEME
3
entwickelt werden häufig wissensbasierte Systeme. Im folgenden werden die einzelnen Teilbereiche der künstlichen Intelligenz kurz vorgestellt. Natürlichsprachliche Systeme: In diesem Forschungsbereich werden die komplexen informationsverarbeitenden Prozesse mit rechnerorientierten Methoden untersucht, die dem Verstehen und der Produktion natürlicher Sprache zugrundeliegen. Das Ziel dieser Untersuchungen ist dabei, die Mensch–Maschine Kommunikation zu verbessern und die an intelligentes Sprachverhalten gebundenen Leistungen, wie zum Beispiel die Dialogführung, maschinell verfügbar zu machen. Deduktionssysteme: Deduktionssysteme unterstützen den Prozeß des logischen Folgerns aus bestimmten Fakten und Annahmen. Wichtige Einsatzgebiete von Deduktionssystemen sind dabei u. a. • das automatische oder computerunterstützte Beweisen von mathematischen Sätzen und Sätzen der formalen Logik, • der Entwurf von Inferenzmechanismen in Expertensystemen und • die Programmverifikation, d.h. die (teil-)automatische Überprüfung der Korrektheit von Programmen. Bildverarbeitende Systeme: Die Bildverarbeitung ist der Bereich der künstlichen Intelligenz, der die große Anzahl von visuellen Prozesse der maschinellen Verarbeitung zugänglich macht. Zu den Aufgaben im Rahmen der Bildverarbeitung gehört: • das Wahrnehmen von Objekten, • das Klassifizieren von Objekten, • die Unterscheidung von Farben und Helligkeiten und • die Berücksichtigung speziellen Wissens aus dem Einsatzgebiet. Ein weiteres Anwendungsgebiet der Bildverarbeitung ist die Mustererkennung, insbesondere das Lesen von Schriften. Zum Erkennen von Buchstaben wird dabei z. B. das Vorkommen von bestimmten Mustern in einer Schrift überprüft und dann aus der Konstellation dieser Muster Rückschlüsse auf den Buchstaben gezogen. Robotertechnologie: Die Robotertechnologie befaßt sich mit der Planung von Aktionssequenzen für Roboter sowie der Verknüpfung von sensorischer, motorischer und sprachlicher Informationsverarbeitung. Unter einem Roboter versteht man dabei ein System, das in der Lage ist, • sich in seiner Umwelt frei zu bewegen, • seine Umwelt zu erfassen, • mit seiner Umwelt zu kommunizieren, • Pläne zu entwerfen und auszuführen und • Aufgaben auszuführen.
KAPITEL 0. EINFÜHRUNG
4
Das Ziel ist die Entwicklung autonomer und mobiler Roboter. Im Gegensatz dazu sind heutige Industrieroboter nur programmierbare Maschinen, die bestimmte wiederholbare Tätigkeiten ausführen, z.B. Schweißpunkte setzen, sich aber nur in einer für sie vorbereiteten Umgebung zurechtfinden, sich also nicht beliebig frei bewegen können. Expertensysteme: Expertensysteme sind Programme, mit denen das Spezialwissen und die Schlußfolgerungsfähigkeit qualifizierter Fachleute auf eng begrenzten Aufgabengebieten nachgebildet werden kann. Dies wird in der Regel mit der Hilfe wissensbasierter Techniken erreicht. Aufgrund der zahlreichen Anwendungsmöglichkeiten handelt es sich um den im kommerziellen Bereich am weitesten verbreiteten Teilbereich. Sie werden in Abschnitt 0.2 ausführlich vorgestellt. Im weiteren werden wir verstärkt auf diesen Bereich eingehen und wissensbasierte Techniken vor allem im Umfeld der Expertensystementwicklung vorstellen.
0.1.3 Trennung von Wissen und Verarbeitung Wie wir schon gesehen haben, handelt es sich bei wissensbasierten Systemen um Programme, die sozusagen zweigeteilt sind, wobei der eine Teil Wissen in einer geeigneten Form repräsentiert und der andere Teil dieses Wissen mit Hilfe geeigneter Verfahren verknüpft. Dabei kann insbesondere auf den zweiten Teil nicht verzichtet werden, da das repräsentierte Wissen nur Tatsachen und Beziehungen beschreibt, die erst noch zur Lösung der Fragestellung verbunden werden müssen. Man spricht deshalb von deklarativem (beschreibendem) Wissen. In einem konventionellen Programm ist dagegen der Lösungsweg Schritt für Schritt in einer Folge von Anweisungen festgelegt. Man spricht daher von prozeduralem Wissen. In Abbildung 1 werden die beiden Realisierungsmöglichkeiten dargestellt. konventionell
wissensbasiert
Algorithmen
Problemlösungsstrategie Wissen
Daten
Daten
Abbildung 1: Gegenüberstellung konventionelles und wissensbasiertes Vorgehen Vorteile der deklarativen Darstellung sind: • Das Wissen kann in kleinen, überschaubaren Einheiten sozusagen lokal dargestellt werden. Dies erleichtert es auch, Änderungen an der Beschreibung vorzunehmen. • Verbindung zu anderen Beschreibungselementen wird durch die Verwendung gleicher Symbole angezeigt. Die eigentliche Verknüpfung erfolgt jedoch erst bei der Verarbeitung durch das jeweilige Verfahren (Symbolverarbeitung). • Die Verfahren interpretieren und verknüpfen diese Symbole. Mit der gleichen Beschreibung können daher unter Umständen unterschiedliche Verfahren für unterschiedliche Zwecke arbeiten. • Somit ist es möglich, das Wissen über die gültigen Beziehungen und Zusammenhänge im dargestellten Bereich, das sogenannte bereichsbezogene Wissen, von der eigentlichen Problemlösungsstrategie zu trennen.
0.1. WISSENSBASIERTE SYSTEME
5
Weitere Vorteile dieser Vorgehensweise sind in Stichworten Erklärungsfähigkeit und Verarbeitung von vagem und unsicheren Wissen. Nachteile der deklarativen Vorgehensweise sind dagegen: • Da eine geeignete Beschreibungsform und ein dazu passendes Verfahren gefunden und implementiert werden muß, besteht ein hoher Entwicklungsaufwand. • Im Vergleich zu einem prozeduralen Algorithmus, der ein Problem direkt löst, ist auch die Abarbeitung weitaus aufwendiger und eventuell nicht so zielgerichtet. Daher sollte man wissensbasierte Techniken vor allem dort einsetzen, wo zwar eine prinzipielle Lösungsmethode bekannt ist, aber kein befriedigender ausschließlich prozeduraler Ansatz existiert. Ein weiteres Einsatzfeld ist gegeben, wenn man auf der gleichen Beschreibung der Zusammenhänge unterschiedliche Verfahren arbeiten lassen möchte.
0.1.4 Methoden für die Erstellung wissensbasierter Systeme Die Hauptaufgaben wissensbasierter Systeme liegen in den Bereichen des Erkennens von Beziehungen, des Ziehens von Schlußfolgerungen und des Steuerns der Anwendung von Wissen. Für die Lösung dieser Aufgaben wurden eine Reihe von Methoden und Techniken für die Erstellung wissensbasierter Systeme entwickelt. Diese Methoden bzw. Techniken lassen sich in die Bereiche Wissensrepräsentation, Wissensverarbeitung und Wissenserwerb einteilen. Wissensrepräsentation: Gegenstand der Wissensrepräsentation ist die Erfassung und Formalisierung von Wissen, um eine maschinelle Verarbeitung zu ermöglichen. Wie schon erwähnt unterscheidet man dabei zwei Arten des Wissens und deren zugeordnete Repräsentationsformalismen: prozedurales und deklaratives Wissen. Prozedurales Wissen enthält vor allem eine Beschreibung der Vorgehensweise, wie man zur Lösung eines Problems gelangt. Prozedurales Wissen läßt sich dabei adäquat mit konventionellen Programmiersprachen wie C darstellen. Deklaratives Wissen basiert dagegen mehr auf einer Beschreibung eines Problems oder Sachverhaltes ohne Betrachtung der Vorgehensweise zur Lösung des beschriebenen Problems. Es steht also das Was im Vordergrund. Daher gehört zu deklarativem Wissen auch immer ein Verfahren, das die Auswertung der Beschreibungen übernimmt. Deklaratives Wissen kann z.B. dargestellt werden durch: • Logik Wissen wird durch Formeln der z.B. Aussagen- oder Prädikatenlogik dargestellt. • Regeln Wissen wird in Regelform dargestellt, z.B. Wenn man hinausgeht und es regnet, dann wird ein Regenschirm benötigt. • Semantische Netze Wissen wird graphisch als Netz von Objekten und deren Beziehungen untereinander dargestellt. • Objektorientierte Ansätze Wissen wird durch strukturierte Objektbeschreibungen hinterlegt.
6
KAPITEL 0. EINFÜHRUNG
Wissensverarbeitung: Zu den jeweiligen Repräsentationsformen gehören strukturierten Verfahren, sogenannte Inferenzmechanismen, mit dem das Wissen einer Repräsentationsform untersucht und verknüpft wird. Durch die Inferenzmechanismen wird es ermöglicht, aufgrund gegebener Zusammenhänge Schlußfolgerungen zu ziehen. Ein Beispiel für einen Inferenzmechanismus ist die Vorwärtsverkettung, die Bedingungsteile und Schlußfolgerungen von „Wenn—Dann“–Regeln verknüpft, indem die Schlußfolgerungen von erfüllten Regeln als Bedingungen für weitere Regeln verwendet werden. Ein häufig angewandtes Verfahren zur Problemlösung ist die Untersuchung aller potentieller Lösungswege im Lösungsraum mittels einer bestimmten Strategie. Im Gegensatz zur erschöpfenden Suche, bei der wirklich alle potentiellen Lösungswege untersucht werden, grenzen sogenannte heuristische Suchverfahren den Suchraum durch geeignete Annahmen ein. Durch solche heuristischen Annahmen verringert sich die Anzahl der zu untersuchenden Lösungswege, wobei jedoch u.U. nicht mehr die optimale Lösung gefunden wird. Wissensakquisition: Hiermit wird die Erhebung von Wissen aus verschiedenen Wissensquellen (z.B. Experten, Fachbücher und Manuals) und die Implementierung dieses Wissens in eine ausführbaren Wissensbasis bezeichnet. Da die Wissensakquisition auch die Wartung einer Wissensbasis einschließt, ist es unbedingt notwendig, sie schon bei dem Entwurf zu berücksichtigen. Dies ist ein weiterer zentraler Punkt bei der Erstellung wissensbasierter Systeme. Typischerweise ist das Anwendungsgebiet eines wissensbasierten Systems Veränderungen unterworfen. Beispielsweise müssen in einem Konfigurierungssystem neue Bauteile berücksichtigt werden, in einem Beratungssystem neue Bestimmungen. Daher muß das Wissen eines wissensbasierten Systems modifizierbar sein, um auch den geänderten Anforderungen zu genügen. Man unterscheidet bei der Anpassung wissensbasierter Systeme den Regelfall Wissenserwerb, bei dem neues Wissen von außen eingegeben wird, und den nur selten realisierten Fall des Lernens, bei dem das Wissen vom System durch Verwendung geeigneter Verfahren – sozusagen selbständig – erweitert wird.
0.1.5 Beispiele für symbolische Wissensrepräsentationen Logelei von Zweistein Das Wochenende hat Lisa gern für sich. Doch jeden der fünf Werktage verbringt sie mit genau einem ihrer drei Freunde. Wen Lisa nächste Woche wann sieht, hat sie so festgelegt: „Sehe ich am Donnerstag Andreas oder Jörg, so treffe ich Philipp am Dienstag.
(ADo ∨ JDo ) → P hDi
Halte ich am Mittwoch Jörg in den Armen, so werde ich den Freitag entweder Philipp oder Jörg widmen.
JM i → (P hF r ∨ JF r )
Treffe ich Philipp am Mittwoch, dann muß ich auch Donnerstag bei ihm sein.
P hM i → P hDo
Sehe ich Philipp am Montag, dann werde ich, sofern ich mit Andreas am Dienstag kein Rendezvous habe, Philipp auch am Donnerstag treffen.
(P hM o ∧ ¬ADi ) → P hDo
Schließe ich Dienstag Andreas in die Arme, so soll Jörg, wenn nicht schon am Mittwoch, dann am Donnerstag mein Liebhaber
ADi → (JM i ∨ JDo )
0.1. WISSENSBASIERTE SYSTEME
7
sein. Schenke ich Jörg Montag meine Gunst, so ist Andreas am Freitag an der Reihe.
JM o → AF r
Falls ich mit Andreas weder für Montag noch für Dienstag verabredet bin, werde ich ihn auch am Mittwoch nicht sehen.“
(¬AM o ∧ ¬ADi ) → ¬AM i
Fragestellung: Trifft Lisa am Mittwoch Philipp?
P hM i ??
Zusammenhang von Graphen Gegeben ist ein Graph G = (V, E) mit Knotenmenge V und Kantenmenge E, E ⊆ V × V . Fragestellung: Ist der Graph G nicht zusammenhängend, d.h. gibt es zwei Knoten in G, die nicht über einen Pfad von Kanten in G verbunden sind. Beispielgraph:
g K1 K2
g @ @ @g
K4
g A A Ag
g K7
K5 K3
K6
g
g K8
Knoten {K1 , K2 , K3 , K4 , K5 , K6 , K7 , K8 } Kanten {(K1 , K2 ), (K2 , K3 ), (K4 , K5 ), (K5 , K6 ), (K5 , K7 )}
Mögliche Formalisierung der Fragestellung 1. Repräsentation des Graphen („Inputfakten“): • für alle Knoten k1 und k2 , die durch eine Kante im Graphen G verbunden sind Kante(k1 , k2 ) • für alle Knoten k1 und k2 , die nicht durch eine Kante im Graphen G verbunden sind ¬Kante(k1 , k2 ) 2. Axiomatisierung der Pfadbedingung („Regeln“):
∀ K1 , K2 : Pfad(K1 , K2 ) ↔
Kante(K1 , K2 ) ∨ ∃ K : Pfad(K1 , K) ∧ Pfad(K, K2 )
3. Formulierung der Frage („Goal“): ∃ K1 , K2 : ¬Pfad(K1 , K2 )
KAPITEL 0. EINFÜHRUNG
8 Symbolisches Differenzieren Dif (X, 1) Dif (V + W, DV + DW ) ← Dif (V, DV ), Dif (W, DW )
Dif (V ∗ W, (DV ∗ W ) + (V ∗ DW )) ← Dif (V, DV ), Dif (W, DW ) ??
|= Dif ((X ∗ X) + X, Y) Y = (1 ∗ X + X ∗ 1) + 1
0.1.6 Zusammenfassung Für eine realistische Einschätzung der Möglichkeiten von wissensbasierten Systemen ist es immer sinnvoll, sich zu verdeutlichen, daß sich dahinter nur eine neue bzw. andere Art der Programmerstellung verbirgt. Diese kann wie in Abbildung 2 durch einen Vergleich von Daten- und Wissensverarbeitung verdeutlicht werden: Datenverarbeitung
Wissensverarbeitung
Darstellung und Verarbeitung von Daten Numerische Operationen Feststehende Algorithmen
Darstellung und Verarbeitung von Wissen Symbolverarbeitung inferenzielles Bearbeiten, gesteuert durch Heuristiken effektives Bearbeiten von großen Wissensbasen
effektives Bearbeiten von großen Datenbanken
Abbildung 2: Vergleich Daten- und Wissensverarbeitung Der zentrale Punkt ist hierbei die auf einer deklarativen Wissensrepräsentation basierende Trennung von bereichsspezifischem Wissen und einer darauf arbeitenden Problemlösungskomponente. Die für die Bearbeitung mit wissensbasierten Techniken geeigneten Problemstellungen lassen sich folgendermaßen charakterisieren: • Es handelt sich um eine komplexe Aufgabe in einem abgegrenzten Bereich. Das für die Lösung benötigte Wissen ist also groß genug, um den Einsatz von wissensbasierten Systemen zu rechtfertigen, stammt aber aus nur wenigen Bereichen, die eindeutig definiert und fest umrissen sind. • Es existiert zwar kein befriedigender konventioneller Ansatz, das Problem zu lösen, jedoch ist der prinzipielle Problemlösungsprozeß bekannt und läßt sich schrittweise beschreiben. • Das darzustellende Wissen ist relativ stabil, unterliegt aber gewissen Änderungen in der Zeit, z.B. durch Innovation oder Änderung von Rahmenbedingungen. Die Art der möglichen Änderungen ist vorab bekannt, so daß sie geeignet bei der Entwicklung berücksichtigt werden kann. • Für die Dauer der Entwicklung stehen Experten zur Verfügung, die die Aufgabe gegenwärtig lösen und die kooperativ das nötige Fachwissen liefern und auch bei der Evaluierung des Systems, z.B. anhand von Testfällen, mitarbeiten.
0.2. EXPERTENSYSTEME
9
0.2 Expertensysteme E. Feigenbaum definiert ein Expertensystem als . . . ein intelligentes Computerprogramm, das Wissen und Inferenzverfahren benutzt, um Probleme zu lösen, die immerhin so schwierig sind, daß ihre Lösung ein beträchtliches menschliches Fachwissen erfordert. Das auf diesem Niveau erforderliche Wissen in Verbindung mit den verwendeten Inferenzverfahren kann als Modell für das Expertenwissen der versiertesten Praktiker des jeweiligen Fachgebietes angesehen werden. Ausgangspunkt für die Einführung eines Expertensystems ist eine bestimmte Anwendungsdomäne, die von einem bzw. mehreren Experten beherrscht wird. Mit einem Expertensystem möchte man u.a. die zeitliche und örtliche Unababhängigkeit von diesen Experten bzw. seiner Expertise erzielen. Unter einem Experten versteht man in diesem Zusammenhang eine Person, die aufgrund bestimmter Eigenschaften in der Lage ist, Probleme aus einem speziellen Bereich zu lösen. Zu den wichtigsten Eigenschaften eines Experten zählen: • Er besitzt Wissen über den Problembereich. – Die Aneignung dieses Wissens erfolgt durch Ausbildung und Erfahrung. – Er besitzt eine Begriffswelt und kennt die Zusammenhänge zwischen den Begriffen. – Er arbeitet mit vagem Wissen (unsichere Informationen). – Der Experte kennt die Zusammenhänge zu anderen Wissensgebieten und hat Hintergrundwissen über einen Sachverhalt (Common Sense). – Er kennt Verweise auf Wissensquellen. – Er kann Wissen erwerben und falsches Wissen korrigieren. • Er kann Probleme durch Verknüpfen von Wissen lösen. • Er kann seine Ergebnisse durch Verdeutlichen seines Lösungsweges erklären. Ein Expertensystem simuliert dieses Verhalten auf einem abgegrenzten Bereich. Es wird deshalb durch folgende Eigenschaften charakterisiert (vgl. [Pu 88]): Transparenz : Expertensysteme können ihre Problemlösung durch Angabe des benutzten Wissens erklären. Flexibilität : Es ist möglich, einzelne Wissensstücke relativ leicht hinzuzufügen, zu verändern oder zu löschen. Benutzerfreundlichkeit : Der Umgang mit Expertensystemen erfordert kein programmiersprachliches Vorwissen (weder für den Endbenutzer, noch für den Experten). Kompetenz : Expertensysteme verfügen über eine hohe Problemlösungsfähigkeit in ihrem Anwendungsbereich. Zumindest die ersten beiden Eigenschaften können sinnvoll mit wissensbasierten Techniken, insbesondere einer deklarativen Wissensdarstellung, erreicht werden.
10
KAPITEL 0. EINFÜHRUNG
0.2.1 Einsatzgebiete von Expertensystemen Mit Expertensystemen wird also versucht, die Eigenschaften eines Experten auf einem meist sehr eingegrenzten Gebiet zu simulieren. Klassische Beispiele für solche Gebiete sind die Diagnose einer Krankheit, das Konfigurieren einer Rechenanlage oder das Interpretieren von Meßwerten. Die in der Praxis entwickelten Expertensysteme lassen sich verschiedenen Anwendungskategorien zuordnen, aus denen sich die Einsatzgebiete ergeben. In [HayRo 83] werden dazu folgende Kategorien verwendet: Interpretationssysteme: Interpretationssysteme dienen der Ableitung von Situationsbeschreibungen aus vorliegenden Daten. Dazu müssen diese Daten analysiert werden, um ihre Bedeutung zu erfassen. Bei den Daten handelt es sich meist um Werte aus der realen Welt wie z.B. Meßdaten, Radar-Signale etc. Beispiele für Interpretationssysteme sind Systeme für Sensorauswertung, Bildanalyse und Identifikation gesprochener Sprache. Überwachungssysteme: Überwachungssysteme haben die Aufgabe, das tatsächliche Verhalten von Systemen mit Sollwerten zu vergleichen und bei der Überschreitung von vorgegebenen Schwellenwerten Warnungen auszugeben. Solche Systeme finden Anwendung in der Medizin, der Luftraumüberwachung und in Kraftwerken. Diagnosesysteme: Diagnosesysteme dienen dazu, fehlerhaftes Verhalten in anderen Systemen aufgrund von Beobachtungen aufzuspüren. Diagnosesysteme müssen dazu in der Lage sein, beobachtete Verhaltensfehler, Symptome o.ä. auf die verursachenden Fehler zurückzuführen. Die meisten Diagnosesysteme werden entweder im technischen oder im medizinischen Bereich eingesetzt. Simulationssysteme: Vorhersage- oder Simulationssysteme werden verwendet, um die möglichen Konsequenzen einer gegebenen Situation vorherzusagen oder zu simulieren. Dazu verwenden diese Systeme ein Modell des zu untersuchenden Systems zusammen mit Regeln zur Beschreibung des möglichen Verhaltens. Daraus können dann Verhaltensprognosen abgeleitet werden, die im Falle mehrerer möglicher Entwicklungen mit Wahrscheinlichkeiten versehen sind. Vorhersagesysteme werden z.B. im Bereich der Wettervorhersage und der Simulation digitaler Schaltkreise eingesetzt. Entwurfs-, Konfigurationssysteme: Entwurfssysteme stellen komplexe Gebilde aus Einzelteilen oder Komponenten unter Berücksichtigung von Nebenbedingungen zusammen. Mögliche Anwendungen umfassen dabei den Entwurf digitaler Schaltungen oder die Zusammenstellung von Computersystemen. Man unterscheidet Entwurfssysteme oft auch in Design- und Konfigurationssysteme, wobei die Konfigurationssysteme nur Elemente einer fest vorgegebenen Komponentenbibliothek verwenden dürfen. Planungssysteme: Planungssysteme haben eine ähnliche Aufgabenstellung wie Entwurfssysteme, nur daß die betrachteten Komponenten nun keine Bauteile, sondern Aktionen sind. Die Aufgabe eines Planungssystems ist also die Erzeugung eines Plans als eine Sequenz von Aktionen. Dabei sind die (zeitlichen) Wechselwirkungen der einzelnen Aktionen zu berücksichtigen. Anwendungsbeispiele für Planungssysteme sind die Planung von Roboteraktionen und die Planung komplizierter (z.B. molekulargenetischer) Experimente. Debuggingsysteme: Debuggingsysteme dienen der Bestimmung von geeigneten Therapien für Systemfehler. Dazu benötigen diese Systeme Planungs-, Entwurfs- und Vorhersagefähigkeiten um geeignete Maßnahmen zur Behebung gefundener Fehler vorzuschlagen. Solche Systeme werden im Bereich des Software-Debugging eingesetzt.
0.2. EXPERTENSYSTEME
11
Reparatursysteme: Reparatursysteme haben die Aufgabe einen Plan zur Durchführung einer bestimmten Therapie zu entwerfen und auszuführen. Denkbar sind solche Systeme in den Bereichen von Netzwerken, Computerwartung und der Luft- und Raumfahrt. Instruktionssysteme: Instruktionssysteme verfolgen die Diagnose, das Debugging und die Korrektur des Wissens eines Lernenden. Typischerweise wird dazu zuerst ein Modell des vorhandenen Wissen aufgrund des beobachteten Interaktions-Verhaltens des Lernenden aufgebaut. Anschließend werden Schwachstellen in diesem Modell diagnostiziert und entsprechende Maßnahmen zur Behebung dieser Schwachstellen abgeleitet. Diese Maßnahmen werden dann in ein spezielles Lernprogramm umgesetzt. Kontrollsysteme: Kontrollsysteme haben die Aufgabe, andere Systeme zu überwachen und im Fehlerfalle in die Steuerung der Systeme einzugreifen. Dabei werden Entscheidungen automatisch gefällt, solange gewisse Grenzen nicht überschritten werden. Von anderen Autoren (z.B. [MeBoGe 90]) werden weitere Aufgabenstellungen und zugehörige Systeme erwähnt. Diese Aufgaben lassen sich jedoch meist einer der oben angeführten Kategorien zuordnen. Expertisesysteme: Expertisesysteme formulieren unter Verwendung von Diagnoseergebnissen Situationsanalysen. Der Zustand eines betrachteten Systems wird also von Expertisesystemen aufbereitet (z.B. Bilanzanalysen). Beratungssysteme: Beratungssysteme geben im Dialog mit dem Benutzer Handlungsempfehlungen für eine gegebene Situation. Ein Beispiel für eine Beratungsaufgabe ist die Anlageberatung. Selektionssysteme: Selektionssysteme dienen der Auswahl von Elementen aus einer großen Zahl von Alternativen. Zugangssysteme: Zugangssysteme stellen in der Regel intelligente Benutzeroberflächen für konventionelle Systeme dar und sollen dem ungeübten Benutzer den Umgang mit komplexen Systemen erleichtern. Diese Systeme können auch eine aktive Unterstützung durch die Überwachung von möglichen Fehlerfällen liefern. Die Zuordnung eines Systems zu einem Aufgabentyp ist immer nur grob zu treffen, da echte Anwendungen meist Aspekte verschiedener Aufgabentypen enthalten. Zum Beispiel kann ein System zur Wettervorhersage als Teilaufgaben Interpretation (Eingrenzung Hoch- und Tiefdruckgebiete), Simulation (Abschätzung zukünftiger Wetterlagen) oder auch Diagnose (Fehlerermittlung bei falschen Voraussagen) enthalten. Trotzdem ist eine Klassifikation von (realisierten) Expertensystemen durchaus als sinnvoll zu betrachten, um die einmal gemachten Erfahrungen für neue Projekte verwerten zu können. Zielsetzung einer solchen Klassifikation von Aufgabengebieten ist damit eine Zuordnung von Techniken und Lösungsansätzen zu allgemeineren Aufgabenstellungen.
0.2.2 Problemklassen Bei einer abstrakten Betrachtungsweise können die oben angeführten Aufgabentypen in zwei Klassen eingeteilt werden, die für eine Zuordnung spezieller Methoden und Techniken geeigneter erscheinen, nämlich analysieren und synthetisieren. Diese beiden Problemklassen werden wir noch etwas genauer betrachten. Analyse–Aufgaben: Die Problemklasse der Analyse–Aufgaben umfaßt alle Aufgaben, bei denen schon existierende Objekte un-
KAPITEL 0. EINFÜHRUNG
12
tersucht werden. Aus einer Menge vorgegebener Möglichkeiten werden dann eine oder mehrere als Lösung ausgewählt. Man spricht daher auch vom Problemtyp der Klassifikation. Die Klasse der Analyse-Aufgaben umfaßt Aufgaben wie Diagnose, Interpretation, Überwachung etc., bei denen ein bekanntes Muster wiederzuerkennen ist. Synthese–Aufgaben: Synthese–Aufgaben sind alle diejenigen Aufgaben, bei denen vorher noch nicht existierende Objekte zusammengesetzt werden müssen. Dabei werden diese Objekte aus vorgegebenen, eventuell parametrisierten, kleineren Elementen oder Teillösungen zusammengesetzt, wobei das zusammengesetzte Objekt bestimmten Randbedingungen genügen muß. Diese Vorgehensweise entspricht der Konstruktion, die sich in die Bereiche Konfiguration und Planung unterteilen läßt. Daher spricht man auch vom Problemtyp der Konfiguration und Planung. Die einzelnen, im vorherigen Abschnitt angeführten Aufgabenstellungen lassen sich diesen Problemklassen zuordnen. Nur der Aufgabentyp der Simulation wird dabei oft auch als eine eigenständige Klasse angesehen, obwohl die Simulation in Expertensystemen eher die Rolle eines Werkzeugs spielt und in der Regel nur eine Teilaufgabe im Lösungsprozeß übernimmt.
0.2.3 Architektur von Expertensystemen Die wissensbasierte Vorgehensweise, die gekennzeichnet ist von der Trennung des zugrundeliegenden Wissens und seiner Verarbeitung mit einem Inferenzverfahren, erfordert zumindest (vergl. Abbildung 3) eine Wissensbasis die das Wissen aus dem Anwendungsbereich, das sogenannte Domänenwissen, in einer geeigneten Struktur enthält, und eine sogenannte Inferenzkomponente, die auf der Wissensbasis arbeitet und das dargestellte Wissen zur Problemlösung verknüpft, aber weitgehend unabhängig vom speziellen Wissen der Anwendungsdomäne ist.
-
Inferenzkomponente
6 ? Bereichsspezifische Wissensbasis
Abbildung 3: Der Kern eines Expertensystems Mit einem Expertensystem kommt zum einen der Experte in Kontakt, der — in der Regel mit der Hilfe eines Knowledge Engineers — sein Wissen in das System einbringt und auch die Arbeitsweise des Systems überprüft, und zum anderen der Benutzer, der das System konsultiert um sein spezielles Problem zu lösen. Um jedoch ein vernünftiges Arbeiten mit solch einem System zu ermöglichen, werden zusätzlich zu den oben genannten noch eine Reihe weiterer Komponenten benötigt.
0.2.4 Die Architektur Aus der wesentlichen Idee der wissensbasierten Vorgehensweise, nämlich der Trennung von Wissensdarstellung und Wissensverarbeitung, ergeben sich die Komponenten Wissensbasis und Inferenzkomponente. Da mit dem Benutzer ein Dialog geführt werden soll, somit Eingaben auf Zulässigkeit überprüft werden müssen
0.2. EXPERTENSYSTEME
13
usw., ergibt sich die Notwendigkeit einer Dialog- oder auch Fragekomponente. Eine weitere Komponente ist für die Erklärung zuständig. Schließlich muß das Wissen in die Wissensbasis eingebracht werden. Hierzu dient die sogenannte Wissenserwerbskomponente. Daraus läßt sich die in Abbildung 4 dargestellte Architektur für Expertensysteme ableiten:
Experte
Benutzer
* HH Y HH HH Erklärungskomponente
6 ?
Dialogkomponente 6
? Fallspezifisches Wissen
? Wissenserwerbskomponente
6 Inferenzkomponente
?
6 ?
Zwischenergebnisse und Problemlösungen
Bereichsspezifisches Expertenwissen
Abbildung 4: Architektur eines Expertensystems Die in diesem Bild dargestellten Komponenten werden im folgenden genauer beschrieben. Wissensbasis: Die Wissensbasis enthält das gesamte Wissen eines Expertensystems in einer geeigneten Wissensrepräsentationsform. Dabei lassen sich meistens drei Arten von Wissen unterscheiden: • Bereichsspezifisches Expertenwissen: Dieses Wissen wird vom Experten bei der Erstellung des Expertensystems hinterlegt. Es repräsentiert die gültigen Zusammenhänge und Beziehungen in dem jeweiligen Anwendungsbereich. Dieses Wissen wird im Laufe der Zeit eventuell ergänzt und gepflegt, jedoch wird es während einer Konsultation vom Benutzer nicht verändert. • Fallspezifisches Faktenwissen: Dieses wird vom Benutzer innerhalb der Konsultation eingegeben und dient dazu, die im speziellen Fall zutreffenden Sachverhalte darzustellen. • Zwischen- und Endergebnisse: Zwischen- und Endergebnisse werden im Laufe der Konsultation vom System hergeleitet und der Wissensbasis hinzugefügt. Inferenzkomponente: Die Inferenzkomponente, die auch Problemlösungskomponente genannt wird, bildet zusammen mit der Wissensbasis den Kern eines Expertensystems. Die Inferenzmaschine verknüpft das in der Wissensbasis hinterlegte Expertenwissen und versucht daraus eine Lösung für ein Problem abzuleiten. Dialogkomponente: Der Benutzer gibt über die Dialogkomponente das fallspezifische Wissen ein, stellt Fragen an das System
14
KAPITEL 0. EINFÜHRUNG
und gibt Antworten auf Fragen des Systems. Sie ist die Schnittstelle zwischen Endbenutzer und Expertensystem. Natürlich sollte die Dialogkomponente auch Hilfetexte bereitstellen und bei Gegenfragen des Benutzers das entsprechende Verfahren der Erklärungskomponente starten. Erklärungskomponente: Zum Nachvollziehen der Vorgehensweise des Expertensystems ist eine Erklärungskomponente notwendig. Die Erklärungskomponente verdeutlicht dabei die einzelnen Schritte des Inferenzmechanismus auf dem Weg zur Lösung, indem sie z.B. anzeigt, welche Regeln aktuell bearbeitet werden und was bisher hergeleitet wurde. Wissenserwerbskomponente: Der Experte baut mit Hilfe der Wissenserwerbskomponente den bereichsspezifischen Teil der Wissensbasis auf. Die Wissenserwerbskomponente ist dabei die Schnittstelle des Expertensystems zum Experten. Sie unterstützt den Umwandlungsprozeß von Expertenwissen in eine maschinell verarbeitbare Form. In der Regel ist ein Editor vorhanden, der die Erfassung in der jeweiligen Wissensrepräsentationsform unterstützt und auch erste Zulässigkeitsüberprüfungen vornimmt. Es können jedoch auch weitere Tools vorhanden sein, die z.B. Inkonsistenzen melden oder sogar induktiv aus einer Sammlung von Beispielen Regeln generieren. Abschließend sei noch darauf hingewiesen, daß ein Expertensystem seine fallspezifischen Daten natürlich nicht nur im Dialog mit dem Benutzer erhalten kann, sondern auch z.B. über eine geeignete Datenbankschnittstellen auf Daten aus einer Datenbank zugreifen kann oder die Ausgangsdaten eines zu überwachenden Prozesses abfragen kann. In diesen Fällen ist es die Aufgabe der Dialogkomponente, die richtige Zuordnung vorzunehmen. Zusammenfassend kann man sagen, daß diese Architektur die Realisierung der Eigenschaften Transparenz, Flexibilität und Benutzerfreundlichkeit unterstützen soll.
0.2.5 Vergleich: Expertensystem ↔ Experte Eine realistische Einschätzung der Leistungsfähigkeit von Expertensystemen muß auch einem Vergleich von Expertensystemen mit Experten enthalten. Ein solcher Vergleich der Leistungsfähigkeiten kann anhand folgender Kriterien stattfinden: Wissenserhaltung: Einmal eingegebenes Wissen ist in einem Expertensystem ständig vorhanden, was beim Experten nicht immer der Fall ist. Ein Experte vergißt, ein Expertensystem aber nicht. Zeitliche und örtliche Unabhängigkeit: Expertensysteme machen eine Konsultation zu jedem Zeitpunkt möglich, d.h. ein Problem kann ohne Verzögerung bearbeitet werden. Die Abhängigkeit von einem Experten kann dagegen zu hohen Kosten, wie z.B. Reisekosten und Ausfallzeiten führen. Unabhängigkeit von Umwelteinflüssen: Eine weitere Stärke von Expertensystemen ist, daß sie sich nicht durch Lustlosigkeit, Stress und übermäßige Inanspruchnahme in ihrem Problemlösungsverhalten beeinflussen lassen. Hintergrundwisssen: Ein Experte verfügt über ein breites Hintergrundwissen, dessen Integration in Expertensysteme aufgrund seines Umfanges große Probleme bereitet. Nicht vorhergesehene Umstände stellen ein Expertensystem vor große Probleme.
0.2. EXPERTENSYSTEME
15
Kreativität: Diese Eigenschaft des Menschen, die auch unkonventionelle Lösungsmethoden erlaubt, fehlt dem Computer. Er kann prinzipiell nur vorgedachte Lösungen anbieten. Lernfähigkeit: Ähnlich der Kreativität ist ein Expertensystem auch im Bereich der Lernfähigkeit, d.h. der selbständigen Anpassung an neue Situationen, dem Experten weit unterlegen. Größe des Problemkreises: Während ein Expertensystem nur in einem sehr begrenzten Bereich eingesetzt werden kann, ist dem Experte ein weitaus größerer Problemkreis zugänglich.
Wissenserhaltung zeitl. u. örtl. Unabhängigkeit Unabh. v. Umwelteinflüssen Hintergrundwissen Lernfähigkeit Größe des Problemkreises Kreativität
Experte
Expertensystem
– – – + + + +
+ + + – – – –
Abbildung 5: Vergleich Experte - Expertensystem Expertensysteme sind wissensbasierte Systeme, die das Verhalten eines Experten auf einem eng abgegrenzten Bereich simulieren. Expertensysteme können ihre Problemlösungen durch Angabe des benutzten Wissens erklären, das repräsentierte Wissen kann gepflegt und verändert werden. Komplizierte Domänen, die viel Wissen und eine große Flexibilität des Experten verlangen, sind für Expertensysteme (noch) ungeeignet. Als Programme können Expertensysteme letztlich nur Probleme in einem vorgedachten Rahmen lösen. Lösungen, die echte Kreativität verlangen und für die ganz neue Wege beschritten werden müssen, können sie nicht liefern. Trotzdem gibt es eine ganze Reihe von Anwendungsbereichen in denen Expertensysteme eingesetzt werden, von denen die wichtigsten wohl die Diagnose und die Konfiguration sind. In [MeBoGe 90] findet sich eine ausführliche Auflistung von Expertensystemen aus den unterschiedlichsten Bereichen.
16
KAPITEL 0. EINFÜHRUNG
Kapitel 1
Einführung in die Aussagenlogik 1.1 Grundlagen Aussagenlogische Formeln sind aufgebaut aus Elementaraussagen, die wir im weiteren Atome oder aussagenlogische Variable nennen. Diese können durch logische Operationen (Junktoren) zu komplexen Formeln verknüpft werden. Wir lassen hierfür die Konjunktion (∧), die Disjunktion (∨) und die Negation (¬) zu. Wenn nicht ausdrücklich anders festgelegt, werden Atome mit Großbuchstaben A, B, C, . . . und A0 , A1 , A2 , . . . bezeichnet. Formeln werden durch griechische Buchstaben α, β, γ, . . . und Φ, Ψ, . . . repräsentiert. Definition 1.1.1 (Aussagenlogische Formeln) Die Klasse der aussagenlogischen Formeln AL wird induktiv definiert durch die folgenden vier Schritte. (1) Jedes Atom ist eine Formel. (2) Ist α eine Formel, so ist auch (¬α) eine Formel. (3) Falls α und β Formeln sind, so sind auch (α ∧ β) und (α ∨ β) Formeln. (4) Nur mit (1) – (3) gebildete Ausdrücke sind Formeln. Aussagenlogische Formeln werden häufig auch als Ausdrücke bezeichnet. Jede aussagenlogische Formel besitzt eine eindeutige Zerlegung: Sie ist entweder ein Atom, eine Negation, eine Konjunktion oder eine Disjunktion. Wir führen die Implikation (α → β) als eine Abkürzung für ((¬α) ∨ β) ein. Ebenfalls als Abkürzung verwenden wir die Äquivalenz (α ↔ β) für ((α → β) ∧ (β → α)). Durch die in der Definition der aussagenlogischen Formeln vorgeschriebenen Klammern kann eine Formel sehr leicht unübersichtlich werden. Um Klammern sparen zu können, ist es deshalb sinnvoll, folgende Bindungsregeln festzulegen. Bindungsregeln: 1.) ¬ bindet stärker als ∧. 2.) ∧ bindet stärker als ∨.
17
KAPITEL 1. EINFÜHRUNG IN DIE AUSSAGENLOGIK
18
3.) Binäre Operatoren gleicher Stärke werden als links geklammert angesehen. Beispiel: a) Die Formel (¬((A ∨ (¬B)) ∧ ((¬A) ∨ ((¬B) ∧ (¬(¬C)))))) vereinfacht sich dann zu ¬((A ∨ ¬B) ∧ (¬A ∨ ¬B ∧ ¬¬C)). b) Die Formel ¬A ∨ B ∨ D ∨ ¬E steht abkürzend für ((((¬A) ∨ B) ∨ D) ∨ (¬E)). 2 Für eine Formel α bezeichnen wir mit atoms (α) die Menge der in α auftretenden Atome. Ein Literal ist ein Atom oder ein negiertes Atom (¬A). Ein Atom A heißt auch positives Literal und ¬A negatives Literal. Für die Menge der Literale über einer Atommenge A schreiben wir literals (A), für die Menge der Literale über den Atomen einer Formel α abkürzend literals (α) statt literals (atoms (α)). Definition 1.1.2 (Länge einer aussagenlogischen Formel) Die Länge |α| einer aussagenlogischen Formel α wird induktiv definiert durch: 1.) Für jedes Atom A gilt |A| := 1. 2.) Für jede Formel α gilt |(¬α)| := |α|. 3.) Für Formeln α und β gilt |(α ∨ β)| := |(α ∧ β)| := |α| + |β| Nach dieser Definition haben beispielsweise die Formeln ¬((A ∨ ¬B) ∧ (¬A ∨ ¬B ∧ ¬¬C)) und A ∧ B ∧ C ∧ D ∧ E beide die Länge 5. Das Längenmaß |α| nimmt also wenig Rücksicht auf die Struktur einer Formel. Bei der Beurteilung der Komplexität von Algorithmen wirkt sich die Berücksichtigung von Namenslängen, d.h. die Anzahl der Zeichen im Bezeichner eines Atoms, nicht nur bei der Eingangsgröße aus, sondern zum Teil ist auch die Komplexität selbst größer. Müssen etwa Atome mit neuen Namen erzeugt werden, so kann die Erzeugung aufgrund der Länge des Namens mit O(log n) wesentlich in die Komplexität eingehen. Eine ganze Reihe von Manipulationen logischer Formeln läßt sich auf die Ersetzung von Teilformeln durch andere Formeln zurückführen. Ein Spezialfall ist die Ersetzung eines Atoms oder eines Literals durch eine Formel. Der eher operationale Charakter einer Ersetzung ist aus der Definition nicht erkennbar, da hier das Ergebnis der Substitution spezifiziert wird. Definition 1.1.3 (Substitution) Für aussagenlogische Formeln σ und τ wird die Substitution von σ durch τ in α, in Zeichen α[σ/τ ], induktiv definiert durch:
α=A α = ¬α α= β ∨γ α= β ∧γ
σ=α τ τ τ τ
sonst A ¬α [σ/τ ] β[σ/τ ] ∨ γ[σ/τ ] β[σ/τ ] ∧ γ[σ/τ ]
Es ist zu beachten, daß nur alle Vorkommen von σ in α durch τ ersetzt werden. Dadurch ist sichergestellt, daß der Ersetzungsprozeß abbricht, da Vorkommen von σ in τ nicht berücksichtigt werden, d.h. nicht ersetzt werden. Eine Formel, in der die zu ersetzende Formel nicht vorkommt, bleibt unverändert.
1.1. GRUNDLAGEN
19
Definition 1.1.4 (Bewertung von Atomen) Eine Bewertung oder Interpretation ist eine Abbildung
: {A0 , A1 , A2 , . . .} → {0, 1}, der Atome auf die Wahrheitswerte 0 (falsch) und 1 (wahr). Definition 1.1.5 (Bewertung aussagenlogischer Formeln) Sei eine Bewertung der Atome. Wir erweitern diese Bewertung zu einer — wieder mit bezeichneten — Bewertung für aussagenlogische Formeln
: {α | α aussagenlogische Formel} → {0, 1} durch die folgenden Regeln.
(¬α) :=
(α ∨ β) :=
(α ∧ β) :=
1 falls (α) = 0 0 sonst 1 falls (α) = 1 oder (β) = 1 0 sonst 1 falls (α) = (β) = 1 0 sonst
Für eine Formel α müssen zwei Bewertungen, die auf atoms (α) gleich sind, auch den gleichen Wahrheitswert liefern. Lemma 1.1.6 (Koinzidenzlemma) Seien 1 und 2 Bewertungen und α eine aussagenlogische Formel. Dann gilt: (∀A ∈ atoms (α) : 1 (A) = 2 (A))
=⇒
1 (α) = 2 (α)
Da die Menge atoms (α) einer Formel α endlich ist, lassen sich in einer endlichen Tabelle alle möglichen Bewertungen für atoms (α) systematisch aufzählen. Eine solche Tabelle nennt man Wahrheitstafel oder Wahrheitstabelle. Beispiel: Eine Wahrheitstafel für die Formel α = (A ∨ B) ∧ ¬C hat das folgende Aussehen: A 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1
C 0 1 0 1 0 1 0 1
A∨B 0 0 1 1 1 1 1 1
¬C 1 0 1 0 1 0 1 0
(A ∨ B) ∧ ¬C 0 0 1 0 1 0 1 0
Die Bewertung (A) = 1, (B) = 1 und (C) = 0 entspricht der vorletzten Zeile und liefert (α) = 1 als Ergebnis. 2
KAPITEL 1. EINFÜHRUNG IN DIE AUSSAGENLOGIK
20
Definition 1.1.7 (erfüllbar, widerspruchsvoll, Tautologie) Eine aussagenlogische Formel α heißt erfüllbar genau dann, wenn es eine Bewertung mit (α) = 1 gibt. Eine Formel α heißt widerspruchsvoll genau dann, wenn für alle Bewertungen (α) = 0 gilt. Eine Formel α ist eine Tautologie genau dann, wenn für alle Bewertungen (α) = 1 gilt. Statt „α ist eine Tautologie“ verwendet man auch die Sprechweise „α ist (allgemein–)gültig“. Offensichtlich besteht ein einfacher Zusammenhang zwischen den Begriffen. Lemma 1.1.8
Sei α eine Formel, dann gilt: α ist widerspruchsvoll ⇐⇒ α ist nicht erfüllbar ⇐⇒ ¬α ist Tautologie
Beweis: Sei α widerspruchsvoll, dann gilt nach Definition für alle Bewertungen (α) = 0. Es gibt also keine Bewertung mit (α) = 1, d.h. α ist nicht erfüllbar. Da für Bewertungen (α) = 0 ⇐⇒ (¬α) = 1 gilt, folgt sofort, daß ¬α eine Tautologie ist. Definition 1.1.9 (Semantischer Folgerungsbegriff) Seien α und β Formeln, dann folgt β (semantisch) aus α (α |= β) genau dann, wenn für alle Bewertungen
gilt:
(α) = 1 =⇒ (β) = 1 Eine Formel β folgt also semantisch aus einer Formel α, wenn β in jedem Kontext wahr ist, in dem auch alpha wahr ist. Beispiel: Sei α = A ∧ (¬A ∨ B) und β = B, dann gilt α |= β, denn
(A) = 1, (B) = 1
(A) = 1, (B) = 0
(A) = 0, (B) = 1
(A) = 0, (B) = 0
=⇒ =⇒ =⇒ =⇒
( (α) = 1 und (β) = 1)
(α) = 0
(α) = 0
(α) = 0
Für jede Bewertung gilt also die Beziehung (α) = 1 =⇒ (β) = 1.
2
Der semantische Folgerungsbegriff wird häufig — kanonisch erweitert — für eine (auch unendliche) Formelmenge verwendet. Wir schreiben α1 , . . . , αn |= β bzw. F |= β mit einer Formelmenge F. Die Schreibweise |= α ist damit äquivalent zu „α ist Tautologie“. Ein Zusammenhang zwischen Folgerbarkeit und Erfüllbarkeit, der im weiteren sehr oft benutzen werden wird, besagt, daß die Folgerung α |= β überprüft werden kann, indem wir (α ∧ ¬β) auf Widerspruch testen. Dies entspricht einem indirekten Beweis. Lemma 1.1.10
Sei α eine aussagenlogische Formel, dann gilt:
a) α |= β ⇐⇒ (α ∧ ¬β) ist widerspruchsvoll. b) α ist widerspruchsvoll ⇐⇒ Für alle Formeln β gilt: α |= β c) α ist widerspruchsvoll ⇐⇒ Es gibt eine Formel β mit : α |= (β ∧ ¬β)
1.1. GRUNDLAGEN
21
Beweis: Wir zeigen nur die erste Aussage, die Beweise der weiteren Aussagen bleiben dem Leser als Übung überlassen. Gelte α |= β, d.h. für alle Bewertungen für atoms (α)∪atoms (β) gilt: ( (α) = 1 =⇒
(β) = 1), also (¬α∨ β) = 1 und damit (¬(¬α∨ β)) = 0. Außerdem gilt (¬(¬α∨ β)) = (α∧ ¬β). Daraus folgt (α∧¬β) = 0, d.h. (α∧¬β) ist widerspruchsvoll. Die umgekehrte Richtung ist offensichtlich ebenfalls korrekt. Beide Aussagen können auch für Formelmengen anstelle der Einzelformel α gezeigt werden. In ähnlicher Weise läßt sich die folgende Aussage beweisen. Lemma 1.1.11 (Deduktionstheorem für |=) Seien α und β aussagenlogische Formeln und M eine Menge von Formeln, dann gilt: M ∪ {α} |= β
=⇒
M |= (α → β)
Zwischen aussagenlogischen Formeln kann man verschiedene Ausprägungen von „Ähnlichkeit“ feststellen. Definition 1.1.12 (Logische Äquivalenz) Zwei Formeln α und β heißen (logisch) äquivalent, abgekürzt α ≈ β, genau dann, wenn für jede Bewertung
gilt: (α) = (β), d.h. wenn gilt |= α ↔ β. Für diesen Äquivalenzbegriff lassen sich einige Vererbungsregeln und Umformungsgesetze formulieren, deren Beweise als Übung dem Leser überlassen bleiben. α ≈ β =⇒ ¬α ≈ ¬β α ≈ β =⇒ γ ∧ α ≈ γ ∧ β α ≈ β =⇒ γ ∨ α ≈ γ ∨ β Negation ¬¬α ≈ α Idempotenz α∨α≈α α∧α≈α Kommutativität α ∨ β ≈ β ∨ α α∧β ≈ β ∧α Assoziativität (α ∨ β) ∨ σ ≈ α ∨ (β ∨ σ) (α ∧ β) ∧ σ ≈ α ∧ (β ∧ σ) Distributivität (α ∧ β) ∨ σ ≈ (α ∨ σ) ∧ (β ∨ σ) (α ∨ β) ∧ σ ≈ (α ∧ σ) ∨ (β ∧ σ) De Morgan ¬(α ∧ β) ≈ ¬α ∨ ¬β ¬(α ∨ β) ≈ ¬α ∧ ¬β Vererbung
Die Anwendung dieser Umformungsgesetze erfolgt in der Regel lokal innerhalb einer Formel. Die Zulässigkeit solcher Anwendungen formuliert das folgende Lemma. Lemma 1.1.13 Sei α eine aussagenlogische Formel, γ eine Teilformel von α und δ eine weitere Formel mit γ ≈ δ. Ist β die Formel, die aus der Ersetzung eines Vorkommens von γ in α durch δ entsteht, so gilt auch α ≈ β. Zu beachten ist hier, daß die Äquivalenz von Ausgangs– und Zielformel bei jeder einzelnen Ersetzung gilt. Als Folgerung von Lemma 1.1.13 erhält man dann γ≈δ
=⇒
α ≈ α[γ/δ]
Wie wir später noch sehen werden, ist für eine Reihe von Anwendungen die oben definierte logische Äquivalenz zu stark, z.B. dann, wenn uns nur interessiert, ob zwei Formeln bezüglich einer (festen) Menge von Atomen die gleichen Folgerungen besitzen. Dies führt uns zur folgenden Definition.
KAPITEL 1. EINFÜHRUNG IN DIE AUSSAGENLOGIK
22
Definition 1.1.14 (–Äquivalenz) Sei eine nicht–leere Menge von Atomen und seien α und β aussagenlogische Formeln. Dann heißen diese
Formeln –äquivalent, abgekürzt α ≈ β, genau dann, wenn für alle Formeln π mit Atomen aus gilt: α |= π
⇐⇒
β |= π
Sei beispielsweise α = (A → B) ∧ (B → C) und β = (A → C), dann gilt α ≈ β für = {A, C}. Die Formeln α und β sind aber nicht äquivalent. Auf die Verwendbarkeit dieser Äquivalenz werden wir in späteren Kapiteln eingehen. Eine weitere Abschwächung des Äquivalenzbegriffes ist die sogenannte Erfüllbarkeitsäquivalenz. Sie verbindet zwei Formeln nur in Bezug auf ihre Erfüllbarkeit. Definition 1.1.15
(Erfüllbarkeitsäquivalenz) sat
Zwei Formeln α und β heißen erfüllbarkeitsäquivalent, abgekürzt α ≈ β, genau dann, wenn gilt: α ist erfüllbar
⇐⇒ sat
β ist erfüllbar
Sei beispielsweise α = A ∨ B und β = C, dann gilt α ≈ β.
1.2. NORMALFORMEN
23
1.2 Normalformen 1.2.1 Negationsnormalform (NNF) Eine erste wirklich strukturelle Vereinfachung von Formeln beruht auf der Idee, eine Negation nur direkt vor die jeweiligen Atome zu stellen. Die implizit Negationen enthaltenden Operatoren → und ↔ sind in dieser Darstellung nicht zugelassen. Definition 1.2.1 (Negationsnormalform) Eine Formel α ist in Negationsnormalform (NNF) genau dann, wenn jedes Negationszeichen direkt vor einem Atom steht und keine zwei Negationszeichen direkt hintereinander stehen. Die Klasse der aussagenlogischen Formeln in Negationsnormalform bezeichnen wir mit NNF. Anstatt durch Angabe ihrer Eigenschaften können Formeln in Negationsnormalform induktiv wie folgt beschrieben werden: 1. Für jedes Atom A sind A und ¬A Formeln in Negationsnormalform. 2. Falls α und β Formeln in Negationsnormalform sind, so sind es auch (α ∧ β) und (α ∨ β). 3. Nur mit 1. und 2. gebildete Ausdrücke sind Formeln in Negationsnormalform. Gegenüber den allgemeinen aussagenlogischen Formeln haben wir also schwächere Bildungsregeln. Die Transformation einer Formel in die Negationsnormalform kann sehr leicht mit Hilfe der Umformungsregeln von De Morgan ¬(α ∧ β) ≈ ¬α ∨ ¬β und ¬(α ∨ β) ≈ ¬α ∧ ¬β sowie der Negationsregel ¬¬α ≈ α durchgeführt werden. Wir erhalten damit sofort die folgende Aussage. Lemma 1.2.2
Zu jeder Formel α gibt es eine äquivalente Formel in Negationsnormalform (NNF).
1.2.2 Konjunktive Normalform Der nächste Schritt einer Normierung der Darstellung von Formeln ist die Umwandlung in eine Konjunktion von Disjunktionen (Klauseln) aus einer beliebigen Formel in NNF. Definition 1.2.3 (Klausel) Eine Formel α = (L1 ∨ . . . ∨ Ln ) mit den Literalen Li (1 ≤ i ≤ n) bezeichnen wir als Klausel. Sind alle Literale einer Klausel negativ, so ist es eine negative Klausel; sind alle Literale positiv, so ist es eine positive Klausel. Alle anderen Klauseln sind gemischte Klauseln. Eine Klausel α wird k–Klausel genannt, falls α maximal k Literale enthält. 1–Klauseln werden auch als Unit–Klauseln bezeichnet. Definition 1.2.4 (Konjunktive Normalform, KNF, k–KNF) Eine Formel α ist in Konjunktiver Normalform (KNF) genau dann, wenn α eine Konjunktion von Klauseln ist, d.h. α = α1 ∧ . . . ∧ αn mit Klauseln αi (1 ≤ i ≤ n). Eine Formel α ist in k–KNF genau dann, wenn α eine Konjunktion von k–Klauseln ist. Die entsprechenden Formelklassen werden mit KNF und k–KNF bezeichnet.
KAPITEL 1. EINFÜHRUNG IN DIE AUSSAGENLOGIK
24
Eine Formel aus KNF ist eine Horn–Formel, wenn jede Klausel maximal ein positives Literal enthält. Sie ist eine definite Horn–Formel, wenn jede Klausel genau ein positives Literal enthält. Die Klauseln heißen entsprechend (definite) Horn–Klauseln. Die entsprechenden Formelklassen werden mit HORN und DHORN bezeichnet. Für assoziative Operatoren wie die Konjunktion und die Disjunktion bietet sich bei gleichrangiger Verknüpfung oftmals eine Mengenschreibweise an. Eine Klausel ist demnach eine Menge von Literalen, eine Formel in KNF ist eine Menge von Mengen von Literalen. Wir werden beide Schreibweisen verwenden. Beispiel: Für die Formel α = (A ∨ B) ∧ (A ∨ ¬B) ∧ (¬A ∨ B) ∧ (¬A ∨ ¬B) aus KNF ist eine mögliche Mengendarstellung α = {{A, B}, {A, ¬B}, {¬A, B}, {¬A, ¬B}} 2 Die für die Junktoren ∧ und ∨ gültigen Idempotenz–, Assoziativ– und Kommutativgesetze erlauben die mit der Mengenschreibweise einhergehenden üblichen Konventionen wie Auslassen von Mehrfachvorkommen, beliebige Umordnung von Elementen etc. Das folgende Lemma besagt, daß jede Formel in eine äquivalente Formel in KNF transformiert werden kann. Lemma 1.2.5
Zu jeder aussagenlogischen Formel α gibt es eine Formel β in KNF mit α ≈ β.
Aus Gründen der Einfachheit nehmen wir auch für den Algorithmus an, daß die Ausgangsformel in Negationsnormalform gegeben ist. Algorithmus 1.1: T–TRANS–EQUIV–KNF Input: Formel α in Listen– oder Baumdarstellung ohne → und ↔ in NNF Output: zu α äquivalente Formel in KNF function T–TRANS–EQUIV–KNF (α : ↑al-formula ) : ↑al-formula begin repeat αorig := α; switch (α) case α = β ∧ γ: α := T–TRANS–EQUIV–KNF(β)∧ T–TRANS–EQUIV–KNF(γ); case α = β ∨ γ: β := T–TRANS–EQUIV–KNF(β); γ := T–TRANS–EQUIV–KNF(γ); if ( β = δ ∧ ) then α := (δ ∨ γ) ∧ ( ∨ γ); else if ( γ = δ ∧ ) then α := (β ∨ δ) ∧ (β ∨ ); else α := β ∨ γ; default: /∗ Keine Aktion nötig. ∗/; end {switch}; until ( αorig = α ); return α;
1.2. NORMALFORMEN
25
end;
Lemma 1.2.6 Es gibt eine Folge von Formeln αn mit |αn | = 2n, für die jede äquivalente Formel βn ∈ KNF mindestens die Länge 2n besitzt. Ein Beweis läßt sich mit den folgenden Formeln führen. Sei αn = 1≤i≤n (Ai,1 ∧ Ai,2 ), mit paarweise verschiedenen Atomen A1,1 , A1,2 , . . . , An,1 , An,2 . Offensichtlich hat αn die Länge 2n. Eine minimale äquivalente Formel in KNF mit 2n Klauseln ist βn = j1 ,...,jn∈{1,2} (A1,j1 ∨ . . . ∨ An,jn ). Ebenso wie die Länge der erzeugten Formel aus KNF zum Problem werden kann, ist es im allgemeinen nicht möglich, die Klausellänge zu reduzieren. Lemma 1.2.7 Für alle k ≥ 1 gibt es eine Formel αk in (k + 1)–KNF, zu der es keine äquivalente Formel β in k–KNF gibt. Beweis: Sei αk = (A1 ∨ . . . ∨ Ak+1 ) für paarweise verschiedene Atome Ai (1 ≤ i ≤ k + 1). Angenommen es gebe eine Formel β in k–KNF, also β = δ1 ∧ . . . ∧ δm mit k–Klauseln δj (1 ≤ j ≤ m), die zu αk äquivalent ist. O.B.d.A. enthalte δ1 nicht das Atom Ak+1 . Wenn wir nun eine Bewertung wählen, für die
(δ1 ) = 0 ist und (Ak+1 ) = 1 angenommen wird, dann gilt (αk ) = 1, aber (β) = 0. Dies ist ein Widerspruch zur Annahme. Wählen wir an Stelle der logischen Äquivalenz eine schwächere Version, nämlich die Erfüllbarkeitsäquivalenz, so ist eine platzsparende Transformation in eine äquivalente Konjunktive Normalform sehr leicht möglich. Die Idee beruht auf der Ersetzung von (ϕ ∧ ψ) ∨ π durch (ϕ ∨ ¬A) ∧ (ψ ∨ ¬A) ∧ (π ∨ A), wobei A ein neues Atom für die Formel ist. Zu verstehen ist diese Ersetzung als Einführung des neuen Namens A für die Teilformel ϕ ∧ ψ und eine Beschreibung der Zusammenhänge. Es gilt (ϕ ∧ ψ) ∨ π
sat
≈ ≈
(A ↔ (ϕ ∧ ψ)) ∧ (A ∨ π) (A ∨ ¬ϕ ∨ ¬ψ) ∧ (¬A ∨ ϕ) ∧ (¬A ∨ ψ) ∧ (A ∨ π)
sat
(¬A ∨ ϕ) ∧ (¬A ∨ ψ) ∧ (A ∨ π)
≈
Man beachte, daß zwischen den ersten beiden und den letzten beiden Formeln jeweils die Erfüllbarkeitsäquivalenz gilt. Man kann zwischen Ausgangs– und Zielformel zwar auch die –Äquivalenz zeigen, wobei die Menge der Atome der Ausgangsformel bezeichnet, wir nutzen diesen stärkeren Zusammenhang an dieser Stelle jedoch nicht aus. Verschiedene Varianten dieser ursprünglich auf Tseitin [Tse 70] bzw. [BBFMP 73] zurückgehenden Idee sind (in der Regel in Versionen für die Prädikatenlogik) in der Literatur beschrieben, unter anderem in [Eder 85], [PlGr 86] und [BdT 90]. Der nachfolgende Algorithmus T–TRANS–KNF generiert nach diesem Verfahren zu jeder Formel α eine erfüllbarkeitsäquivalente Formel β in KNF. Algorithmus 1.2: T–TRANS–KNF Input: Formel α in Listen– oder Baumdarstellung ohne → und ↔ in NNF Output: zu α erfüllbarkeitsäquivalente Formel in KNF
KAPITEL 1. EINFÜHRUNG IN DIE AUSSAGENLOGIK
26
function T–TRANS–KNF(α : ↑al-formula) : ↑al-formula; var γ : ↑al-formula ; function REK–TRANS–KNF( β : ↑al-formula ) : ↑al-formula; var β1 , β2 , σ1 , σ2 : ↑al-formula ; A : atom; begin switch (β) case β = β1 ∧ β2 : return(REK–TRANS–KNF(β1 ) ∧ REK–TRANS–KNF(β2 )); case β = β1 ∨ β2 : if (β1 = σ1 ∧ σ2 ) then begin σ1 :=REK–TRANS–KNF(σ1 ); σ2 :=REK–TRANS–KNF(σ2 ); A := pos-unit(new_atom()); if γ = NULL then γ := (¬A ∨ σ1 ) ∧ (¬A ∨ σ2 ); else γ := γ ∧ (¬A ∨ σ1 ) ∧ (¬A ∨ σ2 ); return(A∨ REK–TRANS–KNF(β2 )); end {then} else if (β2 = σ1 ∧ σ2 ) then begin { analog } ... end {then} else return(REK–TRANS–KNF(β1 )∨ REK–TRANS–KNF(β2 )); default: /∗ Keine Aktion nötig. ∗/; end {switch}; end; begin repeat γ := NULL; α :=REK–TRANS–KNF(α); if γ <> NULL then α := α ∧ γ; until ( γ = NULL ); return(α); end;
In der Prozedur REK–TRANS–KNF ist zu beachten, daß die Atome, die neu erzeugt werden, nur als Knoten erzeugt werden. Will man diesen Atomen auch gleichzeitig neue Namen zuweisen, muß entsprechend mehr Aufwand getrieben werden. Satz 1.2.8 Der Algorithmus T–TRANS–KNF erzeugt zu jeder Formel α der Länge n in O(n2 ) Schritten eine erfüllbarkeitsäquivalente Formel β in KNF mit der Länge O(n). Beweis: Den Beweis des Satzes führen wir mit einer Induktion über die Anzahl der Fehlstellungen in dem Formelbaum der Ausgangsformel. In einem NNF–Formelbaum ist ein ∧–Knoten in einer Fehlstellung, wenn er einen ∨–Knoten als Vorfahren hat (von der Wurzel aus gesehen). Die Anzahl der Fehlstellungen ist dann die Anzahl der ∧–Knoten, die Nachfahren von ∨–Knoten sind. Sie wird mit #F (α) bezeichnet. Enthält die Ausgangsformel keine Fehlstellung, dann ist α schon in KNF. Gehen wir nun davon aus, daß α insgesamt (n + 1) Fehlstellungen besitzt. Sei (ϕ ∧ ψ) ∨ π (bzw. π ∨ (ϕ ∧ ψ)) eine Teilformel in α, so daß in dem Pfad von dieser Teilformel zur Wurzel von T (α) keine weitere Fehlstellung auftritt. Dann wird der Formelbaum T (α) durch die Operation in den Formelbaum T (α∗ ) wie in Abbildung 1.1 transformiert, wobei P das neue Atom bezeichnet. Offensichtlich gilt
#F (α∗ ) = #F (α) − 1 = n
1.2. NORMALFORMEN
27
T (α) :
=⇒ T (α∗ ) :
∧/∨
∧/∨
∧/∨
∨
∧/∨
\
∧ T (ϕ)
@
T (π)
∨
\
T (ψ)
P
∧
H H H
∨
% e
¬P
∧
" b b " T (ϕ)
∨
% e
¬P
T (ψ)
T (π)
Abbildung 1.1: Transformation des Formelbaumes Denn durch den ∧–Knoten als neue Wurzel können keine neuen Fehlstellungen entstehen. Die Zahl der Fehlstellungen innerhalb von T (ϕ), T (ψ) und T (π) sowie dem von der Transformation unberührten Rest von T (α) bleiben unter der Transformation unverändert. Also terminiert dieses Verfahren, jede Formel wird schließlich in eine Formel in KNF transformiert. Da #F (α) kleiner gleich der Anzahl der vorkommenden ∧–Zeichen ist und jede Ersetzung in maximal linearer Zeit in Abhängigkeit von der Länge der jeweiligen Formel durchgeführt werden kann, ergibt sich eine quadratische Gesamtzeit. Denn die Länge der resultierenden Formel hängt linear von der Ausgangsformel ab, da in jedem Schritt 3 neue Vorkommen von Literalen hinzugefügt werden. Offensichtlich sind (ϕ ∧ ψ) ∨ π und (ϕ ∨ ¬P ) ∧ (ψ ∨ ¬P ) ∧ (π ∨ P ) erfüllbarkeitsäquivalent, da P ein neues Atom für α ist. Hieraus läßt sich aber nicht direkt ableiten, daß auch α und die resultierende Formel erfüllbarkeitsäquivalent sind, da das Analogon zu Lemma 1.1.13 nicht gilt (vgl. Beispiel im Anschluß an Definition 1.1.15). Hier muß vielmehr ausgenutzt werden, daß eine erfüllende Bewertung von α immer zu einer erfüllenden Bewertung von T–TRANS–KNF(α) erweitert werden kann und daß umgekehrt die Einschränkung einer erfüllenden Bewertung von T–TRANS–KNF(α) auf atoms (α) eine erfüllende Bewertung von α liefert. Ein Beweis kann durch eine Induktion über die Anzahl der Einzelersetzungen geführt werden. Liegt eine Formel α in KNF vor, so kann man diese Normalform noch weiter vereinfachen, so daß jede Klausel maximal 3 Literale enthält. Wir ersetzen jede Klausel (L1 ∨ . . . ∨ Ln ) mit (n ≥ 4) durch die folgende Konjunktion von Klauseln: Seien P2 , . . . , Pn−1 neue Atome, dann bilden wir die Konjunktion
(L1 ∨ L2 ∨ P2 ) ∧
(¬Pi−1 ∨ Li ∨ Pi ) ∧ (¬Pn−1 ∨ Ln−1 ∨ Ln ).
2
Offensichtlich sind beide Formeln erfüllbarkeitsäquivalent. Diese Grundidee ist im Algorithmus T–TRANS–3–KNF umgesetzt. Algorithmus 1.3: T–TRANS–3–KNF Input: Formel α in Listen– oder Baumdarstellung in KNF Output: zu α erfüllbarkeitsäquivalente Formel in 3–KNF
28
KAPITEL 1. EINFÜHRUNG IN DIE AUSSAGENLOGIK
function T–TRANS–3–KNF(α : ↑al-formula ) : ↑al-formula var ϕ, ψ, π, A : ↑al-formula ; k, i : integer; formula-stack, clause-stack, literal-stack : stack-type; begin init-stack (clause-stack); init-stack (literal-stack); init-stack (formula-stack); push (α, formula-stack); α := NULL; while ( not-empty (formula-stack) ) ϕ := top(formula-stack); pop (formula-stack); if (ϕ = ψ ∧ π) then begin push (π, formula-stack); push (ψ, formula-stack); end {then}; else begin k := 0; push (ϕ, clause-stack); while (not-empty (clause-stack)) ϕ := top (clause-stack); pop (clause-stack); if (ϕ = ψ ∨ π) then begin push (π, clause-stack); push (ψ, clause-stack); end {then}; else begin k := k + 1; push (ϕ, literal-stack); end {else}; end {while}; ϕ := top (literal-stack); pop (literal-stack); foreach i ∈ {1, . . . , k − 3} do ϕ := ϕ ∨ top(literal-stack); pop (literal-stack); A := pos-unit (new_atom()); α := α ∧ (ϕ ∨ A); ϕ := ¬A; end {foreach}; while (not-empty (literal-stack)) ϕ := ϕ ∨ top (literal-stack); pop (literal-stack); end {while}; α := α ∧ ϕ; end {else}; end {while}; end;
Die Ersetzung der Klauseln, die mehr als 3 Literale besitzen, durch die Konjunktion neuer Klauseln kann man unter der Voraussetzung, daß die Generierung eines neuen Atom ein Schritt ist, insgesamt in linearer Zeit durchführen. Die resultierende Formel besitzt maximal die Länge 3(n − 2), falls die Ausgangsformel α die Länge n hat. Insgesamt erhalten wir die folgende Aussage. Satz 1.2.9 Zu jeder Formel α in KNF erzeugt der Algorithmen T–TRANS–3–KNF in linearer Zeit eine erfüllbarkeitsäquivalente Formel in 3–KNF.
1.2. NORMALFORMEN
29
1.2.3 Disjunktive Normalform Eine zur Konjunktiven Normalform analoge Normalform aussagenlogischer Formeln ist die Disjunktive Normalform. Definition 1.2.10 (Disjunktive Normalform, DNF) Eine Formel α ist in Disjunktiver Normalform (DNF) genau dann, wenn α eine Disjunktion von Konjunktionen negativer und positiver Literale ist, d.h. α = α1 ∨ . . . ∨ αn mit αi = (Li,1 ∧ . . . ∧ Li,mi ) (1 ≤ i ≤ n). Die entsprechende Formelklasse ist DNF. Zu einer beliebigen Formel α mit den Atomen {A1 , . . . , An } kann man in einfacher Weise eine logisch äquivalente Disjunktive Normalform angeben, indem man zu jeder erfüllenden Bewertung von α die (A ) (A ) Konjunktion A1 1 ∧ . . . ∧ An n mit A0i := ¬Ai und A1i := Ai bildet und diese Konjunktionen mit ∨ verbindet. Jeder dieser sogenannten Minterme ist für genau die ihn definierende Bewertung wahr und für sonst keine Bewertung. Also ist die so gebildete Disjunktive Normalform logisch äquivalent zur Ausgangsformel. Lemma 1.2.11
Sei α eine Formel in KNF, dann ist die Negationsnormalform von ¬α in DNF.
Der Beweis dieser einfachen Folgerung (Induktion über den Formelaufbau) bleibt dem Leser überlassen. Definition 1.2.12 (Duale Formel) Zu einer Formel in Negationsnormalform definieren wir induktiv die duale Formel d(α) zu α durch: 1. Ist α ein Literal, so ist d(α) := α. 2. Ist α = β ∨ γ, so ist d(α) := β ∧ γ. 3. Ist α = β ∧ γ, so ist d(α) := β ∨ γ. Die duale Formel entsteht also durch Ersetzen aller Junktoren ∨ durch ∧ und aller Junktoren ∧ durch ∨. Für die so definierten dualen Formeln gelten die folgenden Aussagen. Lemma 1.2.13
Sei α eine Formel in KNF, dann gilt:
1. d(α) ist in DNF. 2. α ist Tautologie 3. α ist erfüllbar
⇐⇒ ⇐⇒
d(α) ist widerspruchsvoll. d(α) ist keine Tautologie.
Die Beweise dieser Folgerungen (ebenfalls Induktionen über den Formelaufbau) bleiben dem Leser überlassen.
KAPITEL 1. EINFÜHRUNG IN DIE AUSSAGENLOGIK
30
1.3 Komplexität von Erfüllbarkeitsproblemen Die Frage nach der Existenz einer Bewertung, für die eine Formel α wahr wird, kann man unter mehreren Gesichtspunkten betrachten. Einmal ist von Interesse, ob eine Beschreibung in Form einer aussagenlogischen Formel unter gewissen Umständen wahr werden kann. Des weiteren haben wir gesehen, daß die Beantwortung des Folgerungsproblems „Gilt α |= β?“ auf den Test „ Ist α ∧ ¬β widerspruchsvoll?“ und damit auf einen Test auf Erfüllbarkeit zurückgeführt werden kann. Der einfachste Algorithmus für den Erfüllbarkeitstest ist sicherlich die Überprüfung aller Bewertungen einer Formel. Besitzt eine Formel aber n Atome, so bedarf es eventuell einer Folge von 2n Tests, wodurch wir eine exponentielle Laufzeit erhalten. Zur Klassifizierung der Komplexität des Erfüllbarkeitsproblems und anderer Probleme werden die Komplexitätsklassen P, NP, coNP und DP verwendet. An dieser Stelle wollen wir nur sehr knapp die für unsere Zwecke nötigen Begriffe einführen. Für eine ausführliche Beschreibung des Problembereiches und der dort verwendeten Konzepte der Turingmaschinen verweisen wir auf [GaJo 79]. Dort findet sich auch eine umfangreiche Zusammenstellung vergleichbarer Problemstellungen aus ganz unterschiedlichen Bereichen. Ein Problem ist eine Klasse M = {x ∈ Σ∗ | Q(x)}, wobei Σ∗ den Grundbereich der Klasse bezeichnet, z.B. Σ∗ = IN oder Σ∗ = KNF, und Q(x) eine Eigenschaft von x beschreibt, z.B. x gerade oder x erfüllbar. P ist die Klasse der Probleme, die sich mit einer deterministischen Turingmaschine in polynomieller Zeit, d.h. in polynomiell vielen Schritten lösen lassen. M ∈P
⇐⇒
∃ Turingmaschine T ∃ Polynom p ∀x ∈ Σ∗ : T entscheidet in höchstens p(|x|) Schritten, ob Q(x) gilt oder nicht.
Die maximale Schrittzahl ist abhängig von der Länge des Inputs x für die Maschine T , z.B. für x ∈ IN kann |x| = log2 x, die Länge der Darstellung von x als Dualzahl gewählt werden. Grob gesagt, ist ein Problem M dann in P, falls es einen Algorithmus gibt, der — gemessen in der Länge des Inputs — in polynomieller Zeit bei Eingabe von x ∈ Σ∗ die Frage beantwortet, ob Q(x) gilt. Analog ist NP die Klasse der Probleme, die mit einer nicht–deterministischen Turingmaschine in polynomieller Zeit entschieden werden können. Eine nicht–deterministische Turingmaschine hat im Gegensatz zur deterministischen Maschine die zusätzliche Eigenschaft, daß in ihrem Programm optionale Verzweigungen enthalten sind, die Maschine „rät“, mit welchem Programmteil sie fortfahren will. Eine nicht–deterministische Turingmaschine T entscheidet ein Problem M = {x ∈ Σ∗ | Q(x)} in polynomieller Zeit, falls T die Menge M in polynomieller Zeit akzeptiert. Das heißt, es gibt ein Polynom q, so daß bei Eingabe von x ∈ Σ∗ in q(|x|) vielen Schritten (durch richtiges Raten) eine Antwort „Q(x) gilt“ möglich ist, falls tatsächlich Q(x) gilt, im Fall, daß Q(x) nicht gilt, aber die Antwort „Q(x) gilt“ nicht möglich ist. In der Terminologie der Algorithmen ist also ein Problem M in der Klasse NP, wenn es einen Algorithmus gibt, der in polynomieller Zeit für x ∈ Σ∗ durch Raten und Rechnen die Antwort „Q(x) gilt“ liefern kann dann und auch nur dann, wenn Q(x) gilt.
1.3. KOMPLEXITÄT VON ERFÜLLBARKEITSPROBLEMEN
31
Beispiel: Die Klasse der erfüllbaren aussagenlogischen Formeln bezeichnet SAT∗ := {α ∈ AL | α erfüllbar}. Das Problem SAT∗ liegt in NP, denn ein Algorithmus kann in linearer Zeit eine Bewertung
raten und anschließend überprüfen, ob (α) = 1 gilt. 2 Die Klasse coNP enthält die Probleme, deren Komplement in NP liegt. Sei also M = {x ∈ Σ∗ | Q(x)} in NP, dann ist M := {x ∈ Σ∗ | ¬Q(x)} in coNP. Das Problem SAT∗ := {α ∈ AL | α widerspruchvoll} liegt also in coNP. Bis heute ist außer den offensichtlichen Inklusionen P ⊆ NP und P ⊆ coNP unbekannt, in welcher Beziehung die Klassen zueinander stehen. Von speziellem Interesse sind die Frage P = NP und die Frage NP = coNP. Die Probleme in den Klassen NP und coNP stammen aus den unterschiedlichsten Bereichen. Um die Komplexität der Problem besser vergleichen zu können, führen wir einen weiteren Begriff ein. Man sagt, ein Problem M ist polynomiell reduzierbar auf ein Problem M , wenn es eine in polynomieller Zeit mit einer deterministischen Turingmaschine berechenbare Transformation der Elemente von M in Elemente aus M und der Elemente von M in Elemente aus M gibt, d.h. M ist polynomiell reduzierbar auf M genau dann, wenn es eine polynomielle Transformation f : Σ∗ → Σ∗ gibt mit x ∈ M ⇐⇒ f (x) ∈ M für alle x ∈ Σ∗ . Die Frage, ob es zu einem Problem einen polynomiellen deterministischen Algorithmus gibt, ist demnach für M mindestens so schwer zu beantworten wie für M , da sich aus einem solchen Verfahren für M mithilfe der Transformation leicht ein polynomielles Verfahren für M gewinnen läßt. Ein Problem M ∈ NP ist NP–vollständig, falls jedes Problem M aus NP polynomiell auf M reduzierbar ist. Aus der polynomiellen Lösbarkeit eines NP–vollständigen Problem würde dann sofort die Gleichheit P = NP folgen. NP–vollständige Probleme sind also in diesem Sinne die schwierigsten Probleme in NP. Für den Beweis der NP–Vollständigkeit eines Problems M genügt es, die folgenden beiden Aussagen zu zeigen: 1. M ist in NP. 2. Es gibt ein als NP–vollständig bekanntes Problem M und eine polynomielle Transformation f mit: ∀x ∈ Σ∗ : x ∈ M ⇐⇒ f (x) ∈ M . Die coNP–Vollständigkeit eines Problems M beweist man am einfachsten, indem man die NP– Vollständigkeit von M , dem Komplement von M in Σ∗ , zeigt. Ein Problem M ist NP– bzw. coNP–hart, falls es eine Reduktion eines NP–vollständigen bzw. coNP– vollständigen Problemes auf M gibt. In [PaYa 84] ist die Klasse DP = {X ∩ Y | X ∈ NP, Y ∈ coNP} eingeführt worden. Ein Problem M ist D P –vollständig, falls sich jedes Problem aus DP polynomiell auf M reduzieren läßt. Ein Beispiel für ein D P –vollständiges Problem ist SAT–UNSAT = {(α, β) | α ∈ SAT∗ , β ∈ SAT∗ }. Für uns ist die Aussage, das ein Problem NP–vollständig ist, ein Hinweis, der besagt, daß es unter der allgemein akzeptierten Annahme P = NP keinen schnellen, nicht einmal einen Polynomzeit–Algorithmus gibt, der das Problem löst. Gibt es aber solche schwierigsten Probleme in der Klasse NP? Das erste NP–vollständige Problem, das in der Literatur beschrieben wird, ist die Klasse SAT∗ aller erfüllbaren aussagenlogischen Formeln. Die NP–Vollständigkeit wurde in [Coo 71] und [Lev 73] gezeigt. Für uns heißt dies — wir gehen von P = NP aus —, daß es keinen „schnellen“ Erfüllbarkeitstest für beliebige aussagenlogische Formeln gibt. Damit ist gemeint, daß es zu jedem Erfüllbarkeitsalgorithmus Beispielformeln mit einer superpolynomiellen Laufzeit gibt. Wir haben also als Ausweg nur die Möglichkeit, mit Hilfe guter Heuristiken die Erfüllbarkeit vieler Formeln effizient zu entscheiden und nach geeigneten Teilklassen
KAPITEL 1. EINFÜHRUNG IN DIE AUSSAGENLOGIK
32
aussagenlogischer Formeln zu suchen, die effizient bearbeitet werden können. Die erste Teilklasse, die wir untersuchen wollen, ist die Klasse der Formeln in Konjunktiver Normalform KNF. Wir definieren zunächst einmal die Mengen k–SAT und SAT. Definition 1.3.1 Sei k ≥ 1, dann definieren wir: SAT∗ := {α ∈ AL | α erfüllbar} SAT := {α ∈ KNF | α erfüllbar} k–SAT := {α ∈ k–KNF | α erfüllbar} Für diese Formelklassen sind die folgenden Aussagen bekannt. Satz 1.3.2
Es gilt:
1. SAT∗ und SAT sind NP–vollständig. 2. k–SAT ist NP–vollständig für k ≥ 3. Beweis: Ad 1: Wie bereits gesagt, stammen diese Ergebnisse von Cook [Coo 71] und Levin [Lev 73]. Auf den Beweis wollen wir hier nicht eingehen und verweisen auf die Originalarbeiten. Eine ausführliche Beschreibung findet man auch in [GaJo 79]. Ad 2: Der polynomielle Algorithmus TRANS–3–KNF aus Kapitel 1.2 transformiert jede Formel aus KNF in eine erfüllbarkeitsäquivalente Formel in 3–KNF. Mit Teil 1 folgt die Behauptung.
1.4. ERFÜLLBARKEIT UND 2–KNF
33
1.4 Erfüllbarkeit und 2–KNF Die syntaktische Einschränkung der Formeln auf 2–KNF, also Formeln in KNF mit Klauseln mit jeweils maximal zwei Literalen, führt zu einem relativ einfach zu lösenden Erfüllbarkeitsproblem. In [Tar 72] ist gezeigt worden, daß für Formeln in 2–KNF ein Algorithmus existiert, der die Formeln in Linearzeit auf Erfüllbarkeit testet. Eine zentrale Rolle spielt dabei der zu einer Formel assoziierte Graph, da man einen engen Zusammenhang zwischen Zyklen mit komplementären Literalen und der Unerfüllbarkeit von Formeln herstellen kann. Wir setzen im folgenden einige Grundbegriffe aus der Graphentheorie voraus. Definitionen und Sätze können den entsprechenden Lehrbüchern entnommen werden, z.B. [Ju 90]. Ein gerichteter Graph G = (V, E) besteht aus einer Knotenmenge V und einer Menge gerichteter Kanten E ⊂ V2 . Für eine Kante (v1 , v2 ) schreiben wir v1 → v2 , um die Kantenrichtung klarzustellen. Häufig müssen wir Teilgraphen betrachten, unter denen wir in der Regel die induzierten Teilgraphen verstehen, die für V ⊂ V durch (V , {(v1 → v2 ) ∈ E | v1 , v2 ∈ V }) definiert werden, also alle Kanten des ursprünglichen Graphen enthalten, die Anfangs– und Endpunkt in V haben. Wir führen den assoziierten Graphen nicht nur für Formeln in 2–KNF, sondern für beliebige Formeln in KNF ein. Definition 1.4.1 (Assoziierter Graph) Für eine Klausel αi = (Li,1 ∨ . . . ∨ Li,ki ) mit ki > 1 ist der assoziierte Graph G(αi ) ein gerichteter Graph, bestehend aus der Knotenmenge V (αi ) := {Li,1 , . . . , Li,ki , ¬Li,1 , . . . , ¬Li,ki } (Doppelte Negationssymbole werden gestrichen.), und der Kantenmenge E(αi ) := {¬Li,r → Li,s | 1 ≤ r = s ≤ ki }. (Der Pfeil → gibt auch die Kantenrichtung an.) Für jede Unit–Klausel L bilden wir die Kante ¬L → L. Der zu α = {α1 , . . . , αn } assoziierte Graph G(α) ist die Vereinigung der assoziierten Graphen G(α1 ), . . . , G(αn ) der einzelnen Klauseln von α: G(α) :=
n i=1
V (αi ),
n
E(αi )
i=1
Beispiel: Sei α = {(A ∨ B ∨ C), (¬A ∨ D), (¬D ∨ C)}. Der zu α assoziierte Graph ist in Abbildung 1.2 angegeben. B
¬A 6 ) -C ¬B HH Y H HH H j H H -D 1A -¬D ¬C 6
G(α) :
Abbildung 1.2: Assoziierter Graph zu α 2 Man beachte, daß die Zuordnung von assoziierten Graphen im allgemeinen nicht injektiv ist, d.h. es gibt Formeln α und β mit G(α) = G(β), aber α ≈ β. Ein Beispiel für solch ein Formelpaar ist α = {(A ∨ B ∨
34
KAPITEL 1. EINFÜHRUNG IN DIE AUSSAGENLOGIK
C)} und β = {(A ∨ B), (B ∨ C), (A ∨ C)}. Für Formeln in 2–KNF folgt aber aus G(α) = G(β) auch sofort α ≈ β. Der assoziierte Graph einer Formel ist also ein gerichteter Graph, dessen Knoten wir der Einfachheit halber mit den Literalen über den Atomen der Formel bezeichnen. Für Formeln in 2–KNF entsprechen die Kanten den möglichen Darstellungen der Klauseln als Implikationen. Eine Implikationskette in der Formel entspricht dann einem Weg im assoziierten Graphen. Eine effiziente Datenstruktur zur Verarbeitung von (gerichteten) Graphen ist die Adjanzenzlistendarstellung. Ein Graph wird durch eine Liste (einen Array) der Knoten jeweils mit einer Liste der zu diesem Knoten adjazenten (d.h. durch eine Kante verbundenen) Knoten. Für den Graphen des obigen Beispiels sieht eine symbolische Adjazenzlistendarstellung folgendermaßen aus: A ¬A B ¬B C ¬C D ¬D
: : : : : : : :
D; B, C; ; A, C; ; A, B, ¬D; C; ¬A;
Die Liste der adjazenten Knoten ist in der Datenstruktur natürlich eine Liste von Verweisen in die Knotenliste. Daher können sehr effizient mögliche Pfade verfolgt werden. Die Adjazenzlistenstruktur des assoziierten Graphen haben wir unmittelbar vorliegen, wenn eine Formel in KNF in der Datenstruktur für die Konjunktive Normalform gespeichert ist. Die Atomliste dieser Datenstruktur entspricht der Knotenliste. Die Vorkommenslisten für die positiven bzw. negativen Literale eines Atoms entsprechen der Adjazenzliste. Liegt etwa die Formel aus obigem Beispiel in der KNF–Datenstruktur vor, so können wir für den Knoten ¬A des assoziierten Graphen die adjazenten Knoten bestimmen, indem wir bei dem Atomknoten für A in der KNF–Datenstruktur die Vorkommensliste für das Literal A verfolgen. Das erste Vorkommen ist in der Klausel (A ∨ B ∨ C). Die Vorkommensliste für A verweist auf das Literal A in der Klausel. Wenn wir dem Rückverweis des Literalknotens auf den Klauselknoten für diese Klausel folgen, haben wir anschließend Zugriff auf die dortige Literalliste für die Klausel. Der Reihe nach können wir dann die Literalknoten der Klausel aufsuchen; jeder Literalknoten außer dem für A entspricht einer Nennung eines adjazenten Knotens in der Adjazenzliste für A. Das Vorzeichenfeld im Literalknoten und der Verweis auf das Atom geben an, um welchen Knoten es sich handelt. Der erste Literalknoten ungleich dem für A ist der Knoten für B. Das Vorzeichen ist positiv, also wird die Kante ¬A → B repräsentiert. Durch den Verweis auf den Atomknoten für B vom Literalknoten für B in dieser Klausel kann über die dortige Vorkommensliste für ¬B der Pfad ¬A → B weiter verlängert werden. Zusammenfassend können wir sagen, daß wir durch Verwendung der KNF–Datenstruktur implizit die Adjazenzlistendarstellung des assoziierten Graphen vorliegen haben. Alle Eigenschaften des Graphen können ohne Mehraufwand unmittelbar in dieser Struktur mit den bekannten Algorithmen überprüft werden. Ein gerichteter Graph heißt stark zusammenhängend genau dann, wenn für alle Knoten v und u ein Weg von v nach u existiert. Ein maximaler stark zusammenhängender induzierter Teilgraph eines Graphen heißt starke Zusammenhangskomponente. Innerhalb einer starken Zusammenhangskomponente ist also jeder Knoten von jedem Konten erreichbar. Da die Wege im Graphen den Implikationsketten in der Formel entsprechen, erhalten wir durch Kettenschluß, daß zwischen den Literalen eine Äquivalenz gilt.
1.4. ERFÜLLBARKEIT UND 2–KNF
35
Lemma 1.4.2 Sei α in 2–KNF und G(α) der assoziierte Graph. Dann gilt für zwei Literale L1 und L2 über Atomen aus α: Wenn L1 und L2 in der gleichen starken Zusammenhangskomponente von G(α) liegen, dann gilt α |= (L1 ←→ L2 ). Den Beweis dieses Lemmas bleibt dem Leser überlassen. Für erfüllbare Formeln gilt übrigens auch die Rückrichtung. Da innerhalb starker Zusammenhangskomponenten es von jedem Knoten zu jedem Knoten einen Weg gibt, existiert insbesondere ein Weg von dem Knoten zu sich selbst zurück. Handelt es sich dabei um einen Weg mit mindestens einer Kante, so sprechen wir von einem Zykel. Ein Graph heißt zyklenfrei oder azyklisch, wenn er keinen Zykel enthält. Die starken Zusammenhangskomponenten eines azyklischen Graphen müssen daher einelementig sein. Für die Knoten eines gerichteten, azyklischen Graphen können wir eine Anordnung der Knoten angeben, die sogenannte topologische Sortierung, die die folgende Eigenschaft hat: Sei v1 , . . . , vn die Anordnung der Knoten des Graphen, so gilt für jede Kante vi → vj sofort i < j. Wenn also ein Weg von einem Knoten K zu einem Knoten L in einem gerichteten azyklischen Graphen führt, so steht in jeder topologischen Sortierung der Knoten L hinter K (aber nicht unbedingt unmittelbar hinter K). Diese Ordnung können wir auf eine Zerlegung von gerichteten Graphen in ihre starken Zusammenhangskomponenten übertragen. Denn fassen wir jede Komponente als Knoten auf, so ist der resultierende Graph zyklenfrei, also ein gerichteter azyklischer Graph, für den wir eine topologische Sortierung der Knoten bestimmen können. Auf diesem Graphen kann auch einfach eine Nachfolgerrelation für starke Zusammenhangskomponenten verifiziert werden. Seien G1 und G2 starke Zusammenhangskomponenten, dann ist G1 Vorgänger von G2 , falls eine Kante von G1 nach G2 führt. G2 wird auch Nachfolger von G1 genannt. In [Tar 72] ist ein Algorithmus angegeben, der alle starken Zusammenhangskomponenten in umgekehrter topologischer Ordnung in linearer Zeit bestimmt, d.h. in einer Reihenfolge G1 , . . . , Gm , wobei Gi kein Nachfolger von Gj für i > j ist. Der angestrebte Algorithmus für den Test von 2–KNF–Formeln auf Erfüllbarkeit beruht nun auf der folgenden Idee. 1. Bestimme zur Formel α den assoziierten Graph G(α). 2. Generiere mit einem geeigneten Algorithmus in linearer Zeit die starken Zusammenhangskomponenten in umgekehrter topologischer Ordnung. 3. α ist nicht erfüllbar genau dann, wenn eine starke Zusammenhangskomponente S in G(α) ein komplementäres Paar von Literalen L, ¬L enthält. Fassen wir jede starke Zusammenhangskomponente als Knoten auf, dann erhalten wir einen gerichteten azyklischen Graphen. Eine erfüllende Bewertung läßt sich dann durch Auswertung dieses Graphen gewinnen, falls keine starke Zusammenhangskomponente komplementäre Paare besitzt. Die Auswertung verläuft dabei in der Reihenfolge, wie sie durch die umgekehrte topologische Ordnung gegeben ist. Sei nun α ∈ 2–KNF und G(α) der assoziierte Graph, dann besitzt dieser Graph 2n Kanten und 2m Knoten, falls α genau m Atome und n Klauseln enthält. Beispiel:
KAPITEL 1. EINFÜHRUNG IN DIE AUSSAGENLOGIK
36
1. Sei α1 = {(A ∨ B), (¬A ∨ B), (A ∨ ¬B), (¬A ∨ ¬B)}, dann erhalten wir den assoziierten Graphen aus Abbildung 1.3. ¬A 6 ?
¬B
B 6 ?
A
Abbildung 1.3: Assoziierter Graph zu α1 2. Sei α2 = {(A ∨ B), (C ∨ D), (¬A ∨ B), (¬C ∨ ¬B)}, dann erhalten wir den assoziierten Graphen aus Abbildung 1.4. ¬A −→ B −→ ¬C −→ D ↑ ↑ ¬D −→ C −→ ¬B −→ A Abbildung 1.4: Assoziierter Graph zu α2 2 Weiterhin führen wir zu G(α) den dualen Graphen G(α) ein. Er entsteht aus G(α), indem wir jedes Literal durch das negierte Literal ersetzen und die Kantenrichtung umdrehen, d.h. L1 → L2 wird durch ¬L2 → ¬L1 ersetzt. (Doppelte Negationszeichen werden eliminiert.) Der Zusammenhang zwischen dem Erfüllbarkeitsproblem für Formeln in 2–KNF und den assoziierten Graphen läßt sich wie folgt beschreiben: Sei eine Bewertung für α, dann ordnen wir jedem Knoten des Graphen G(α) die Bewertung zu, die durch
festgelegt ist. D.h. jeder Knoten L in G(α) hat als Label die Bewertung (L). Damit erhalten wir ()
(α) = 1 genau dann, wenn gilt: 1. Für jedes Atom A haben die Knoten A und ¬A komplementäre Wahrheitswerte.
2. Keine Kante A → B hat für A den Wert 1 und für B den Wert 0. Als nächstes beweisen wir einen Hilfssatz. Lemma 1.4.3
Für α ∈ 2–KNF sind die folgenden Aussagen äquivalent:
1. Die Formel α ist erfüllbar. 2. Es gibt kein Atom A in α, so daß die entsprechenden Knoten A und ¬A von G(α) in ein und derselben starken Zusammenhangskomponente liegen. 3. Für alle starken Zusammenhangskomponenten S von G(α) gilt S = S. Ausgehend von diesem Lemma haben wir sofort ein schnelles Verfahren, das die Erfüllbarkeit testet. Wir erzeugen dazu die starken Zusammenhangskomponenten und überprüfen, ob ein komplementäres Paar von Literalen in einer Komponente liegt.
1.4. ERFÜLLBARKEIT UND 2–KNF
37
Bemerkung: Die Resolution, die wir in Abschnitt 1.7 einführen werden, wäre an dieser Stelle sehr hilfreich. Denn es läßt sich für α ∈ 2–KNF sehr einfach zeigen: α | RES (L1 ∨ L2 ) ⇐⇒ ¬L1 → L2 , ¬L2 → L1 sind Wege in G(α). ⇐⇒ ¬L → L ist ein Weg in G(α). α | RES L Mit dieser Beobachtung folgt sofort die Äquivalenz der drei Bedingungen unter Zuhilfenahme von α ist widerspruchsvoll
⇐⇒ ⇐⇒
α | RES ∃L : (α | RES L und α | RES ¬L)
Bevor wir die Äquivalenz aus Lemma 1.4.3 beweisen, wollen wir einige Hilfsaussagen beweisen. (Mit V (S) bezeichnen wir hier die Knotenmenge einer starken Zusammenhangskomponente S eines gerichteten Graphen G.) 1. Die Relation
x ∼ y :⇐⇒ Es gibt eine starke Zusammenhangs– komponente S mit x, y ∈ V (S).
ist eine Äquivalenzrelation auf der Knotenmenge eines Graphen. 2. Zwei starke Zusammenhangskomponenten mit einem nicht–leeren Durchschnitt sind gleich. 3. Ist S eine starke Zusammenhangskomponente von G(α), so ist auch S eine starke Zusammenhangskomponente von G(α). 4. Sei S eine starke Zusammenhangskomponente von G(α) für α ∈ 2–KNF, dann gilt: ∃A ∈ atoms (α) : A, ¬A ∈ V (S)
⇐⇒
∀L ∈ V (S) : L, ¬L ∈ V (S)
Begründung: Seien B ∈ V (S) und A, ¬A ∈ V (S). Da S eine starke Zusammenhangskomponente von G(α) ist, gibt es Wege A → C1 , C1 → C2 , . . . , Cr−1 → Cr , Cr → B und B → D1 , D1 → D2 , . . . , Ds−1 → Ds , Ds → ¬A in S mit Knoten Ci und Dj . Aus der Konstruktion von G(α) folgt dann: ¬A ← ¬C1 , ¬C1 ← ¬C2 , . . . , ¬Cr ← ¬B und ¬B ← ¬D1 , ¬D1 ← ¬D2 , . . . , ¬Ds ← A sind Wege in G(α). Insgesamt erhalten wir so Wege von A nach ¬B und von ¬B nach ¬A und da A, ¬A ∈ V (S) auch einen Weg von ¬A nach A. Also gilt ¬B ∈ V (S), da Wege A → ¬B und ¬B → A existieren. Beweis: (zu Lemma 1.4.3) 1⇒2: Sei α erfüllbar mit einer Bewertung und nehmen wir an, daß A und ¬A in einer starken Zusammenhangskomponente von G(α) auftreten. Dann gibt es einen Weg von A nach ¬A und von ¬A nach A. Übertragen wir die Bewertung der Formel auf den assoziierten Graphen, so gilt Bedingung 1. aus Aussage (), da
eine Bewertung ist. Auf einem der Wege aber wird Bedingung 2. aus () verletzt, im Widerspruch zur Erfüllbarkeit von α. 2⇒3: Kommen für kein Atom A die Knoten A und ¬A in einer starken Zusammenhangskomponente vor, so gilt offensichtlich S = S für alle starken Zusammenhangskomponenten S von G(α). 3⇒2: Gelte nun für alle starke Zusammenhangskomponenten S von G(α) die Aussage S = S. Nehmen wir an, ein V (S) enthalte die Knoten A und ¬A.
KAPITEL 1. EINFÜHRUNG IN DIE AUSSAGENLOGIK
38
Nach der oben gemachten Beobachtung gilt damit für jeden Knoten L ∈ V (S) auch ¬L ∈ V (S). Nach Definition der starken Zusammenhangskomonenten als von V (S) induzierter Teilgraph liegt mit jeder Kante L1 → L2 auch ¬L2 → ¬L1 in S. Damit gilt aber S = S im Widerspruch zur Voraussetzung. (3, 2) ⇒ 1 : Wir gehen davon aus, daß für alle starken Zusammenhangskomponenten S gilt S = S¯ und keine starke Zusammenhangskomponente Knoten für komplementäre Literale enthält. Sei S1 , . . . , St die Folge der starken Zusammenhangskomponenten in umgekehrter topologischer Anordnung, d.h. Si ist kein Vorgänger von Sj für 1 ≤ i < j ≤ t, die durch den oben erwähnten Linearzeit– Algorithmus aus [Tar 72] erzeugt worden ist. Ein Bewertungsalgorithmus, der für α eine erfüllende Bewertung bestimmt, beruht auf der folgenden Idee: „Setze die noch unbelegten Si (d.h. alle Knoten in Si ) von links nach rechts auf 1 und gleichzeitig die S¯i auf 0, bis alle Knoten belegt sind.“ Unter der Voraussetzung, daß keine starke Zusammenhangskomponente Knoten zu komplementären Literalen enthält, induziert diese Belegung der Knoten des Graphen eine Bewertung auf α. Denn da für jedes Atom A, dessen zugehöriger Knoten A in einer starken Zusammenhangskomponente S liegt, der Knoten ¬A in S¯ liegt, gilt (A) = 0 ⇐⇒ (¬A) = 1 und umgekehrt. Offensichtlich erfüllt diese Bewertung auch alle Klauseln, deren zugehörige Kanten in starken Zusammenhangskomponenten liegen, da Anfangs– und Endknoten der Kanten die gleiche Belegung erhalten haben. Es bleiben also nur die Klauseln zu betrachten, deren zugehörige Kanten verschiedene starke Zusammenhangskomponenten verbinden. Sei L1 ∨ L2 eine solche Klausel in α und nehmen wir an, daß diese Klausel nicht erfüllt, also
(L1 ) = (L2 ) = 0 gilt. L1 ← ¬L2 ist eine Kante in G(α) und der Knoten zu L1 liege in der starken Zusammenhangskomponente Si , der Knoten zu ¬L2 in Sj mit i = j. Da i und j die Indizes bezüglich der umgekehrten topologischen Sortierung sein sollen, gilt i < j. Nach Voraussetzung ist Si mit dem Wert 0 und Sj mit dem Wert 1 belegt worden. Aufgrund des gewählten Bewertungsverfahrens muß es Indizes k und l geben mit k < i und Sk = S¯i sowie l > j und Sl = S¯j . Die Komponente Sk enthält dann den Knoten ¬L1 und Sl den Knoten L2 . Nach Konstruktion des assoziierten Graphen gibt es eine Kante L2 ← ¬L1 . Also ist Sk ein Vorgänger von Sl im Widerspruch zur umgekehrten topologischen Anordnung der starken Zusammenhangskomponenten. Demnach werden alle Klauseln der Formel α durch diese Bewertung erfüllt, α ist also erfüllbar. Beispiel: Sei wieder α = {(A ∨ B), (C ∨ D), (¬A ∨ B), (¬C ∨ ¬B)}, dann erhalten wir den assoziierten Graphen aus Abbildung 1.4. Die starken Zusammenhangskomponenten sind einelementig. Eine umgekehrte topologische Sortierung der Knoten ist beispielsweise D, ¬C, B, A, ¬A, ¬B, C, ¬D. Der Belegungsalgorithmus setzt die Werte für die Literale dann wie folgt fest:
(D) = 1, ( (¬D) = 0); (¬C) = 1, ( (C) = 0);
(B) = 1, ( (¬B) = 0); (A) = 1, ( (¬A) = 0); 2 Algorithmus 1.4: SAT–2–KNF Input: Formel α in KNF–Datenstruktur Output: Boolescher Wert für Erfüllbarkeit und im Fall „erfüllbar“ eine erfüllende Belegung in den entsprechenden Feldern der Atomknoten function SAT–2–KNF(α : 2–KNF) : boolean; begin
1.4. ERFÜLLBARKEIT UND 2–KNF
39
S := Liste der starken Zusammenhangskomponenten des assoziierten Graphen {S wird berechnet mit dem Algorithmus von Tarjan} {S ist eine Liste von Listen aus Paaren von Vorzeichen } { (0/1 für negiert/nicht negiert) und Atomen} foreach s in S do if ( s enthält komplementäre Literale ) then return(false); foreach atom A in α do value(A) := unbelegt; foreach s in S do foreach pair (sign,A) in s do if ( value(A) = unbelegt ) then value(A) = sign; end return(true); end
Da die starken Zusammenhangskomponenten in linearer Zeit berechnet werden können, benötigt das Verfahren, das wir mit SAT–2–KNF bezeichnen wollen, auch nur lineare Zeit, denn die starken Zusammenhangskomponenten auf komplementäre Literale zu prüfen ist mit einer geeigneten Datenstruktur in linearer Zeit möglich. Dies trifft auch für die Berechnung einer erfüllenden Bewertung zu. Satz 1.4.4 Der Algorithmus SAT–2–KNF entscheidet in linearer Zeit die Erfüllbarkeit von Formeln in 2–KNF und liefert eine erfüllende Bewertung, falls die Formel erfüllbar ist.
KAPITEL 1. EINFÜHRUNG IN DIE AUSSAGENLOGIK
40
1.5 Davis–Putnam Algorithmen Als nächstes wollen wir eine Klasse von Erfüllbarkeitsalgorithmen betrachten, die in ihrer Grundidee auf Davis und Putnam [DaPu 60] beruhen, wobei wir als einzige Einschränkung an die Syntax der Formeln die Forderung stellen, daß die Formeln in Negationsnormalform, d.h. Negationssymbole stehen direkt vor den Atomen, vorliegen müssen. Die wesentliche Idee der Algorithmen beruht auf der Beobachtung, daß man für manche Atome sehr schnell entscheiden kann, welche Werte eine erfüllende Bewertung annehmen muß. Wenn diese Entscheidung zu kompliziert wird, probiert man für ein Atom einmal den Wert wahr und einmal den Wert falsch aus. Dadurch, daß der Wahrheitswert für dieses Atom bekannt ist, läßt sich die Formel verkürzen. Wir benutzen hierfür die folgende, an eine Substitution erinnernde Schreibweise. Definition 1.5.1 Für eine Formel α und ein Atom A definieren wir die Abbildungen α[A/1] (bzw. α[A/0]) als Ergebnis des folgenden Erseztungsprozesses: 1. Ersetze in α jedes Vorkommen von A durch 1. 2. Tritt nun eine Teilformel ¬1 auf, ersetze sie durch 0, eine Teilformel ¬0 ersetze durch 1. Teilformeln β ∧ 1 sowie β ∨ 0 werden durch β ersetzt. Teilformeln β ∨ 1 werden durch 1 und Teilformeln β ∧ 0 werden durch 0 ersetzt. 3. Schritt 2 wird so lange durchgeführt, bis keine weitere Ersetzung möglich ist. Für α[A/0] werden die Vorkommen von A durch 0 ersetzt, die weiteren Schritte sind gleich. In diesem Zusammenhang führen wir die folgenden Abkürzungen ein: α[A/1](¬A) bezeichnet die Menge der Klauseln aus α, die das Literal A nicht enthalten, und α[A/0](A) bezeichnet die Menge der Klauseln aus α, die das Literal ¬A nicht enthalten. Anschaulich entspricht die Abbildung α[A/i] mit i ∈ {0, 1} einer Teilbewertung der Formel α durch
(A) = i. Dadurch, daß die Literale A und ¬A wahr bzw. falsch gesetzt werden, läßt sich die Formel α vereinfachen. Für eine Formel in KNF bedeutet dies, daß für α[A/1] alle Klauseln aus α gestrichen werden, die das Literal A enthalten, und aus allen anderen Klauseln ein eventuell vorkommendes Literal ¬A gestrichen wird. Für α[A/0] sind die Kürzungen genau umgekehrt. Die Kürzungen bei Formeln in KNF haben zu folgender Sprechweise geführt: Wir bezeichnen den Wert 1 als leere Formel und den Wert 0 als die leere Klausel. Alternativ schreiben wir für die leere Klausel auch . (Man findet als Bezeichnung der leeren Formel manchmal auch das Symbol .) Die leere Formel wird als wahr interpretiert (alle Klauseln sind wahr) und die leere Klausel als falsch (kein Literal dieser Klausel kann mit wahr belegt werden). Dies wird auch motiviert durch die Beobachtung, daß eine Teilbewertung (A) = i nicht zu einer erfüllenden Bewertung von α fortgesetzt werden kann, wenn α[A/i] = 0 gilt, bzw. umgekehrt jede Fortsetzung der Teilbewertung eine erfüllende Bewertung ergibt, falls α[A/i] = 1 gilt. Der Einfachheit halber behandeln wir α[A/1] und α[A/0] wie Formeln. Folgende Eigenschaften lassen sich unmittelbar für die Abbildungen α[A/1] und α[A/0] zeigen.
1.5. DAVIS–PUTNAM ALGORITHMEN Proposition 1.5.2
41
Für jedes Atom A gilt:
1. Für jede Formel α ist α[A/i], i ∈ {0, 1}, entweder die leere Formel oder α[A/i] enthält die leere Klausel oder α[A/i] ist eine Formel, in der das Atom A nicht auftritt. 2. Es gilt α ∧ A ≈ α[A/1] ∧ A und α ∧ ¬A ≈ α[A/0] ∧ ¬A. 3. α ist erfüllbar genau dann, wenn α[A/1] = 1 oder α[A/0] = 1 gilt oder wenn zumindest eine der Formeln α[A/1] und α[A/0] die leere Klausel nicht enthält und erfüllbar ist. Durch Testen der Teilbelegungen α[A/1] und α[A/0] kann rekursiv die Erfüllbarkeit von α entschieden werden. Ein Sonderfall ist hier, daß das Atom A nur positiv oder nur negativ vorkommt. Mit Hilfe der folgenden Regeln bauen wir nun Algorithmen auf, die die Erfüllbarkeit testen: 1. Pure–Literal Regel Kommt ein Atom A in einer Formel α nur positiv oder nur negativ vor, so können wir A mit wahr (1) bzw. falsch (0) belegen und die Formel dementsprechend kürzen. 2. Splitting Regel Kommt jedes Atom sowohl positiv als auch negativ vor, dann wählen wir ein Atom A aus α und bilden aus α die zwei Formeln α[A/1] und α[A/0]. Die Ausgangsformel α ist genau dann erfüllbar, wenn bei einer der Kürzungen der Wert 1 oder eine erfüllbare Formel als Ergebnis auftritt. Welches Atom A wir im Fall der Splitting Regel wählen, beeinflußt natürlich entscheidend den weiteren Verlauf. Wir werden später noch auf verschiedene Auswahlkriterien eingehen. Im folgenden wählen wir stets das erste in α vorkommende Atom. Jede der beiden Regeln führt das Erfüllbarkeitsproblem für eine Formel mit n Atomen zurück auf ein Erfüllbarkeitsproblem für eine Formel mit maximal (n − 1) Atomen, so daß für jede Formel in endlich vielen Schritten ein Ergebnis vorliegt. Algorithmen, die mit Hilfe dieser beiden Regeln mit verschiedenen Heuristiken und gegebenenfalls auch zusätzlichen Verfeinerungen arbeiten, nennen wir im folgenden Davis–Putnam Algorithmen oder kurz DP– Algorithmen. Für die Pure–Literal Regel und die Splitting Regel verwenden wir Funktionen, die die entsprechenden Atome liefern, und eine Transformationsroutine, die die Kürzung vornimmt. • function PURE(α : KNF;var s:{0, 1}):Atom; Die Funktion PURE liefert für eine Formel α (einen Pointer auf) ein Atom, daß in α nur positiv bzw. nur negativ vorkommt. Zusätzlich wird im Parameter s das Vorzeichen zurückgegeben, 1 für nur positives Vorkommen, 0 für nur negatives Vorkommen. Ist kein solches Atom in α vorhanden, liefert PURE den Wert NULL. • function SPLIT(α : KNF):Atom; Die Funktion SPLIT liefert das linkserste Atom in α.
KAPITEL 1. EINFÜHRUNG IN DIE AUSSAGENLOGIK
42
• function REDUCE(α : KNF,A:Atom,s:{0, 1}):KNF; Die Funktion REDUCE liefert zu α die entsprechend den Kürzungsregeln gebildete Formel α[A/s]. 1 Für die beiden Grenzfälle α[A/s] = 0 und α[A/s] = 1 können auch zusätzliche Flags im Formelknoten vorgesehen werden, die diese speziellen Situationen anzeigen. Innerhalb der nachfolgenden Algorithmen verwenden wir aber die intuitivere Notation α[A/s]. Der Kern des Algorithmus DP ist die folgende rekursive Funktion, die den Wert true liefert, falls α erfüllbar ist, und im anderen Fall das Ergebnis false. Algorithmus 1.5: DP Input: α aussagenlogische Formel Output: Boolescher Wert für die Erfüllbarkeit function DP(α : Formel) : boolean; begin if α = 1 then return(true); if α = 0 then return(false); A := PURE(α, s); if A <> NULL then return(DP(α[A/s]); A := SPLIT(α); if DP(α[A/1]) = true then return(true); else return(DP(α[A/0])); end;
Wie man sich leicht klar macht, gilt die folgende Aussage. Lemma 1.5.3 Sei α eine Formel, dann liefert die Funktion DP angesetzt auf α den Wert true, falls α erfüllbar ist, und sonst den Wert false. Wir stellen die Abarbeitung der Algorithmen DP als Baum TDP (α) dar. Die Wurzel des Baumes ist die Ausgangsformel. An den Knoten stehen die reduzierten Formeln oder einer der Werte 0 oder 1. • Wird auf eine Formel die Pure–Literal–Regel angewandt, so hat der entsprechende Knoten einen Sohn mit dem Ergebnis der Anwendung der Regel als Label. • Im Fall der Splitting Regel hat der Knoten zwei Söhne. Der linke Sohn hat als Label die Formel α[A/1] und der rechte Sohn die Formel α[A/0]. • Ist das Ergebnis einer Regelanwendung einer der Werte 0 oder 1, so hat der Knoten keinen Sohn. Der Algorithmus DP arbeiten den Baum TDP (α) mit der Tiefensuchstrategie ab. Ein Backtracking setzt ein, wenn ein Blatt mit Wert 0 erreicht worden ist. Für nicht erfüllbare Formeln wird der vollständige Baum erzeugt, wobei an allen Blättern der Wert 0 steht. Die Formel ist erfüllbar, falls ein Blatt den Wert 1 besitzt. Die Algorithmen brechen bei Erreichen eines solchen Blattes ab. Für die Splitting-Regel SPLIT, die das am weitesten links stehende Atom in der Formel auswählt, wollen wir nun ein Beispiel durchrechnen. Die Kürzungen können natürlich mit Hilfe der Löschmarken in der Datenstruktur für α durchgeführt werden. Der Kopieraufwand entfällt dadurch, allerdings müssen diese virtuellen Löschungen vor alternativen Reduzierungen wieder rückgängig gemacht werden. Dabei darf man die Löschungen aufgrund purer Literale nicht vergessen! 1
1.5. DAVIS–PUTNAM ALGORITHMEN
43
Beispiel: Sei α = ¬A ∨ ((¬B ∨ C) ∧ (B ∨ D) ∧ ¬C ∧ ¬D ∧ (A ∨ B)) Dann hat der Baum TDP (α) die in Abbildung 1.5 angegebene Form. α
Z Z A = 1 ZA=0 Z Z
(B ∨ D) ∧ (¬B ∨ C) ∧ ¬C ∧ ¬D
B = 1
C ∧ ¬C ∧ ¬D
D ∧ ¬C ∧ ¬D
¬D = 1
¬C = 1
C ∧ ¬C
T T C=0 C =1 TT 0
0
1
Q Q QB=0 QQ
D ∧ ¬D
T
D =1
0
T D=0 TT 0
Abbildung 1.5: TDP (α) 2 Bisher haben wir beliebige aussagenlogische Formeln zugelassen. Beschränken wir uns auf Formeln in KNF, so können wir noch weitere Regeln berücksichtigen. Zunächst einmal nutzen wir die Beobachtung, daß das Literal einer Unit–Klausel durch eine erfüllende Bewertung auf wahr gesetzt werden muß. Diese Regel nennen wir Unit–Regel. • function UNIT(α:Formel; var s:{0, 1}):Atom; Die Funktion UNIT liefert für eine Formel α ein Atom, daß in α als Unit–Klausel auftritt. Zusätzlich wird im Parameter s das Vorzeichen zurückgegeben, 1 für positive Unit, 0 für negative Unit. Ist kein solches Atom in α vorhanden, liefert UNIT den Wert NULL. Eine offensichtliche Einsparung ergibt sich, wenn man keine Mehrfachvorkommen von Literalen in einer Klausel und keine Mehrfachvorkommen von Klauseln innerhalb einer Formel zuläßt. Erstere lassen sich in der Datenstruktur für KNF in linearer Zeit durch Kennzeichnung mit Löschmarken eliminieren. Mehrfachvorkommen von Klauseln sind schwieriger feststellbar, sie zu eliminieren braucht quadratische Zeit in der Länge der Formel. Aber nicht nur Mehrfachvorkommen von Klauseln, auch Verkürzungen von Klauseln kann man im Hinblick auf die Erfüllbarkeit berücksichtigen. Definition 1.5.4 (Subsumption) Seien π1 und π2 zwei Klauseln. Wir sagen π1 subsumiert π2 genau dann, wenn jedes Literal aus π1 auch in π2 auftritt. Eine Formel α ∈ KNF subsumiert eine Formel β ∈ KNF genau dann, wenn jede Klausel aus β von einer Klausel aus α subsumiert wird. Wir benutzen auch die Sprechweise π1 ist eine Teilklausel von π2 , falls π1 die Klausel π2 subsumiert.
KAPITEL 1. EINFÜHRUNG IN DIE AUSSAGENLOGIK
44
Aus der Erfüllbarkeit einer Klausel folgt sofort die Erfüllbarkeit aller Klauseln, die sie subsumiert. Da in einer Formel α in KNF alle Klauseln konjunktiv verknüpft sind, brauchen wir nur diejenigen zu berücksichtigen, die von keiner anderen Klausel subsumiert werden. Eine entsprechende Reduktion der Ausgangsformel nimmt die folgende Funktion SUBSUMPTION–REDUCE vor. • function SUBSUMPTION–REDUCE(α : KNF):KNF; Die Subsumptions–Regel nutzt aus, daß ohne Veränderung der Erfüllbarkeit in einer Formel α = {α1 , . . . , αm } jede Klausel αi gestrichen werden kann, für die eine Klausel αj mit αj ⊆ αi in α vorkommt. Eine mögliche Realisierung zeigt der folgende Code. function SUBSUMPTION–REDUCE(α : KNF):KNF; begin foreach clause κ in α do foreach clause λ in α, λ = κ do if ( κ ⊂ λ ) then α := α \ {λ}; end Wie man sieht, ist die Subsumptionsregel relativ aufwendig. Man kann allerdings — ohne die Korrektheit der Verfahren zu verändern — auf diesen Schritt verzichten. Für den folgenden Algorithmus DPA, der die Splitting Regel SPLIT verwendet, also das am weitesten links stehende Atom der Formel für ein Splitting auswählt, und zusätzlich die Pure–Literal–, die Unit– und die Subsumptions–Regel benutzt, gilt offensichtlich wieder, daß der Algorithmus den Wert true liefert genau dann, wenn die Formel erfüllbar ist. Algorithmus 1.6: DPA Input: α in Datenstruktur für KNF Output: Boolescher Wert für Erfüllbarkeit function DPA(α : KNF):boolean; begin if α = 1 then return(true); if α = 0 then return(false); A := PURE(α, s); if A <> NULL then return(DPA(α[A/s])); A := UNIT(α, s); if A <> NULL then return(DPA(α[A/s])); α := SUBSUMPTION–REDUCE(α); A := SPLIT(α); if ( DPA(α[A/1]) = true ) then return(true); else return(DPA(α[A/0])); end
Es ist nicht schwierig, zu dem Algorithmus DPA eine Menge {αn | n ∈ IN} von Formeln anzugeben, die nicht erfüllbar sind und für deren Entscheidung (in n) exponentiell viele Schritte durchgeführt werden müssen bei einer in n linearen Formellänge.
1.5. DAVIS–PUTNAM ALGORITHMEN Wir definieren
45
α0 := {(A0 ∨ B0 ), (¬A0 ∨ ¬B0 ), (A0 ∨ ¬B0 ), (¬A0 ∨ B0 )} αn+1 := {(¬An+1 ∨ Bn+1 ), (An+1 ∨ ¬Bn+1 )} ∪ αn
Dann ist αn ∈ 2–KNF und nicht erfüllbar, da die Teilformel α0 schon nicht erfüllbar ist. Die Funktion DPA, angewandt auf αn , erzeugt einen Baum, an dessen Blättern der Wert 0 steht (siehe Abbildung 1.6).
Bn ∧ αn−1
αn
HH HH HH H
¬Bn ∧ αn−1
αn−1
Bn−1 ∧ αn−2
αn−1
@ @ @ @
@ @ @
¬Bn−1 ∧ αn−2
Bn−1 ∧ αn−2
αn−2
αn−2
αn−2
αn−2
L LL
L LL
L LL
.. .
.. .
.. .
.. .
.. .
.. .
¬Bn−1 ∧ αn−2
.. .
L LL
.. .
Abbildung 1.6: TDP A (αn ) In den Ebenen, in denen nur αi auftreten, werden die Splittingfunktionen und in den anderen die Pure– Funktion angewendet. Die Unit–Regel kommt erst in der letzten Ebene zum Zuge, und die Subsumptions– Regel wird überhaupt nicht benutzt. Die Länge von αn ist 4n + 8. Zählen wir die Anzahl der Funktionsaufrufe, so erhalten wir 23+n − 4 Aufrufe. Insgesamt erhalten wir also schon ohne Berücksichtigung des Aufwands für die Regelanwendungen eine exponentielle Laufzeit. Lemma 1.5.5 Die Anzahl der geschachtelten Funktionsaufrufe im Algorithmus DPA kann nicht durch ein Polynom in der Länge der zu entscheidenden Formel beschränkt werden. Ob man nun eine Variante des Davis–Putnam Algorithmus praktisch einsetzen sollte, ist im allgemeinen natürlich schwer zu sagen. Bei einer Reihe von Experimenten hat sich dieser Algorithmustyp aber sehr gut bewährt [BuKB 93]. Entscheidend für die Leistungsfähigkeit der Algorithmen ist die Auswahl eines geeigneten Atoms im Fall der Anwendung der Splitting–Regel. Einige der Auswahlkriterien sind: • Wähle das erste in der Formel vorkommende Atom. • Wähle das Atom, welches am häufigsten vorkommt. • Wähle das Atom, das in den kürzesten Klauseln am häufigsten vorkommt.
46
KAPITEL 1. EINFÜHRUNG IN DIE AUSSAGENLOGIK • Berechne für jedes Atom die Summe der Längen der Klauseln in denen das Atom auftritt. Wähle das Atom mit der größten Summe. • Berechne die Anzahl der positiven und negativen Vorkommen in den kürzesten Klauseln und wähle ein Atom mit der größten Differenz. • [vGe 88] Wähle das Atom entsprechend der ersten zutreffenden Regel: 1. Wenn mindestens ein Atom öfter als dreimal in der Formel vorkommt, dann wähle unter diesen Atomen das Atom, für das das Produkt aus der Anzahl seiner positiven und negativen Vorkommen maximal ist. 2. Wenn kein Atom öfter als dreimal und mindestens ein Atom dreimal vorkommt, dann wähle ein Atom, das genau dreimal vorkommt. 3. Wenn alle Atome genau zweimal in der Formel vorkommen, dann wähle eines davon aus. • Sei hi (L) die Anzahl der Klauseln der Länge i, in denen das Literal L vorkommt. Berechne Hi (A) = max(hi (A), hi (¬A)) + 2 min(hi (A), hi (¬A)) und wähle das Atom mit dem maximalen Vektor (H1 (A), . . . , Hn (A)) in Bezug auf die lexikographische Ordnung [BuKB 93].
Einen zusätzlichen großen Vorteil bietet aber die übersichtliche Struktur der Verarbeitung. Gerade bei der Untersuchung von durchschnittlichen Laufzeiten unter gewissen Verteilungsannahmen sind manchmal Ergebnisse relativ leicht zu erzielen. Im nächsten Abschnitt werden wir für zwei Versionen von Davis–Putnam Algorithmen diese Berechnung durchführen.
1.6. PARTIELLE ERFÜLLBARKEITSALGORITHMEN
47
1.6 Partielle Erfüllbarkeitsalgorithmen Im folgenden Abschnitt soll ein ganz anderer Ansatz zur Lösung des Erfüllbarkeitsproblems vorgestellt werden. Er basiert auf der Idee, eine vorliegende, nicht erfüllende Bewertung lokal so zu verändern, daß schließlich eine erfüllende Bewertung erreicht wird, falls die Formel erfüllbar ist. Ein einfaches Verfahren dieser Art findet sich in [Pa 91]. Eine Analyse eines ähnlichen Verfahrens in [KoPa 92] zeigt, daß ein solches Verfahren durchaus für eine erfüllbare Formel fast immer eine erfüllende Belegung bestimmen kann. Eine Möglichkeit der lokalen Modifikation einer Bewertung besteht darin, irgendeine für die Bewertung falsche Klausel und aus dieser ein Literal auszuwählen und dann die Bewertung für dieses Literal zu verändern. Alle anderen Atome der Formel behalten die frühere Bewertung. Die neue Bewertung erfüllt zumindest die bisher mit falsch bewertete Klausel. Diesen Prozeß der lokalen Veränderung führen wir wiederholt durch. Die Anzahl der Wiederholungen richtet sich nach der Ausgangsformel und wird durch eine Funktion local : KNF → IN gesteuert. Wir zeigen zunächst den Algorithmus; auf die Frage, wie solch eine Funktion local aussehen sollte, gehen wir anschließend ein. Algorithmus 1.7: RANDOM-SAT Input: Φ ∈ KNF Output: true, wenn α ∈ SAT und erfüllende Bewertung gefunden, sonst false function RANDOM-SAT(α:KNF):boolean; begin
:= zufällig geratene Bewertung; i :=local (Φ); while i ≥ 0 do begin if (Φ) = 1 then return(true); { Zufällige Änderung der Belegung } M := {ϕ ∈ Φ | (ϕ) = 0}; rate zufällig ein ϕ∗ ∈ M ; rate zufällig ein L ∈ ϕ∗ ;
(L) := 1; (¬L) := 0; { Ansonsten bleibt unverändert } i := i − 1; end while; return(false); end;
Der Algorithmus RANDOM–SAT liefert nur für erfüllbare Formeln zufallsgesteuert eventuell eine erfüllende Bewertung. Für widerspruchsvolle Formeln erhalten wir immer den Wert false, wegen der Zufallssteuerung und der Beschränkung der Anzahl der Veränderungen durch die Funktion local aber auch für manche erfüllbare Formel. Eine schwierige Frage ist, wie oft wir die Änderung der Bewertung durchführen sollten, um mit einigermaßen großer Sicherheit aus dem Ergebnis schließen zu können, daß die Formel erfüllbar bzw. widerspruchsvoll ist. Für Formeln in 2–KNF ist in [Pa 91] gezeigt worden, daß bei Verwendung der Funktion local (Φ) = |Φ|2 die Wahrscheinlichkeit eine erfüllende Bewertung zu finden, bei erfüllbarem Φ mit wachsender Länge von Φ gegen 1 konvergiert.
KAPITEL 1. EINFÜHRUNG IN DIE AUSSAGENLOGIK
48
Satz 1.6.1 Der Algorithmus RANDOM–SAT angewendet auf Formeln in 2–KNF ∩ SAT und local (Φ) = |Φ|2 liefert mit gegen 1 konvergierender Wahrscheinlichkeit eine erfüllende Bewertung bei wachsender Länge der Formeln, d.h. für Φ ∈ 2–KNF ∩ SAT gilt: lim P ({RANDOM-SAT(Φ) = true}) = 1
|Φ|→∞
Anstelle der Auswahl eines beliebigen Literals aus einer für die Bewertung falschen Klausel, sind auch andere lokale Veränderungskriterien z.B. in [Gu 92] und [SeLeMi 92] untersucht worden. Ein Kriterium ist die lokale Maximierung von erfüllten Klauseln. Sei eine Bewertung, die die Formel nicht erfüllt. Dann berechnen wir für jedes Atom A die Anzahl der erfüllten Klauseln für die Bewertung
A , die sich von nur in A unterscheidet. Als neue Bewertung wählen wir eine Bewertung A mit einem Atom A, für die die Anzahl der erfüllten Klauseln maximal ist. Auch hier muß wieder die Anzahl der Iterationen mit dieser lokalen Maximierungen der erfüllten Klauseln festgelegt werden. Dazu verwenden wir ebenfalls eine Funktion local : KNF → IN, die nicht zu komplex sein sollte und auch keine zu großen Werte liefern sollte. Haben die lokalen Änderungen zu keinem Erfolg geführt, beginnen wir wieder mit einer neuen Bewertung. Die Anzahl dieser „äußeren“ Iterationen wird durch eine Funktion global : KNF → IN festgelegt. Es besteht ebenfalls wieder das Problem, die Funktionen global und local so zu definieren, daß für erfüllbare Formeln eine realistische Chance für das Finden einer erfüllenden Bewertung besteht. Algorithmus 1.8: GREEDY–SAT Input: Φ ∈ KNF Output: true, wenn α ∈ SAT und erfüllende Bewertung gefunden, sonst false function GREEDY-SAT(α:KNF):boolean; begin j := global (Φ); while j ≥ 0 do begin
:= zufällig geratene Bewertung; i := local (Φ); while i ≥ 0 do begin if (Φ) = 1 then return(true); { lokales Maximum der Anzahl der erfüllbaren Klauseln } max := 0; max-atom-set := ∅; foreach A ∈ atoms (Φ) do begin
(A) := 1 − (A); m(A) := |{ϕ ∈ Φ | (ϕ) = 1}|; if m(A) = max then max-atom-set := max-atom-set ∪ {A}; if m(A) > max then begin max := m(A); max-atom-set := {A}; end then;
(A) := 1 − (A); end foreach; rate zufällig ein A ∈ max-atom-set;
(A) := 1 − (A);
1.6. PARTIELLE ERFÜLLBARKEITSALGORITHMEN
49
i := i − 1; end while; j := j − 1; end while; return(false); end;
Um Wiederholungen in der ersten While–Schleife zu vermeiden, könnten wir eine neue Bewertung raten, die noch nicht bearbeitet worden ist. Dies führt aber sehr schnell zu Platz– und damit auch zu Zeitproblemen. Aus theoretischer Sicht würde ein solcher Algorithmus das Erfüllbarkeitsproblem vollständig lösen, wenn wir die Anzahl der Wiederholungen nur groß genug wählen. Zusammenfassend läßt sich feststellen, daß der Algorithmus GREEDY–SAT ebenfalls nur für erfüllbare Formeln zu einem eindeutigen Ergebnis kommen kann. Wie groß die Funktionen global und local zu wählen sind, um mit bestimmten Wahrscheinlichkeit eine erfüllende Bewertung zu finden, ist unklar. Experimentelle Ergebnisse für eine Auswahl von Formeln und weitere Heuristiken sind in [SeLeMi 92] und in [Gu 92] zu finden.
KAPITEL 1. EINFÜHRUNG IN DIE AUSSAGENLOGIK
50
1.7 Grundlagen der Resolution Der Resolutionskalkül ist ein Beweiskalkül, der auf Klauselmengen, d.h. Formeln in KNF arbeitet und nur eine Schlußregel besitzt. Der Resolution liegt die folgende Vorstellung zu Grunde: 1. Wir bearbeiten nur Formeln in KNF. 2. Aus zwei Klauseln (α ∨ L) und (β ∨ ¬L) kann eine neue Klausel (α ∨ β) erzeugt werden. Dies ist die einzige Schlußregel des Resolutionskalküls. 3. Wir versuchen, die leere Klausel zu erzeugen. Dies gelingt genau dann, wenn die Ausgangsformel widerspruchsvoll ist. Man beachte, daß Klauseln und Formeln, wenn nicht ausdrücklich anderes festgelegt ist, als Mengen aufgefaßt werden. So ist zum Beispiel eine Klausel (A ∨ ¬B ∨ A) die Menge {A, ¬B} und damit gleichwertig zur Klausel (¬B ∨ A). Doppelte Vorkommen von Literalen werden als ein Auftreten behandelt. Wir werden sowohl die übliche Klauseldarstellung als auch die Mengendarstellung verwenden. Definition 1.7.1 Das Schema
(Resolutionsregel) α β (Res) (α \ {L}) ∪ (β \ {¬L})
bezeichnen wir als die Resolutionsregel. Sei α eine Klausel mit einem Literal L und β eine Klausel mit dem Literal ¬L, dann ist Resolutionsregel auf die beiden Klauseln anwendbar. Wir sagen, α und β können über L (bzw. ¬L) resolviert werden. Ausgehend von den Klauseln α und β wird so eine neue Klausel (α \ {L}) ∪ (β \ {¬L}) erzeugt, die wir als Resolvente bezeichnen. α und β sind die Elternklauseln der Resolvente. Durch die Anwendung der Resolutionsregel werden also alle Vorkommen des Literals L aus α und alle Vorkommen des Literals ¬L aus β entfernt, bevor die Resolvente als Vereinigung der Restklauseln gebildet wird. Enthält die Resolvente also ein Literal L (bzw. ¬L ), so muß dieses bereits in β (bzw. α) enthalten sein. Graphisch stellen wir die Anwendung der Resolutionsoperation wie in Abbildung 1.7 als Baum dar.
α
@ @ @ @
β
(α \ {L}) ∪ (β \ {¬L})
Abbildung 1.7: Baumdarstellung eines Resolutionsschrittes Durch die Anwendung der Resolutionsregel werden Literale aus den Elternklauseln entfernt. Eine besondere Situation liegt vor, wenn dies bewirkt, daß die Resolvente leer ist, wenn z.B. die Elternklauseln A und ¬A sind. Zur Kennzeichnung dieser Situation verwenden wir die zu Beginn von Abschnitt 1.5 eingeführte leere Klausel zur Bezeichnung der leeren Resolvente. (Die leere Klausel wird von jeder Bewertung als falsch interpretiert!)
1.7. GRUNDLAGEN DER RESOLUTION
51
Zum besseren Verständnis der Resolution wollen wir einige Beispiele angeben. Darin werden auf die generierten Resolventen erneut Resolutionen angewandt. Die graphische Repräsentation einer solchen Folge von Resolutionsschritten ist daher ein Baum, der (Resolutions–)Herleitungsbaum. Steht in der Wurzel die leere Klausel, bezeichnen wir den Baum als Resolutionswiderlegungsbaum oder Beweisbaum. Beispiele:
a) Sei α1 = {(A ∨ B), (¬B ∨ C), (¬C ∨ D)}. A∨B
¬B ∨ C
@ @ @
A∨C
@ @ @
¬C ∨ D
A∨D
Abbildung 1.8: Resolutionsherleitung aus α1 b) Sei α2 = {(A ∨ B), (¬A ∨ B), (A ∨ ¬B), (¬A ∨ ¬B)}. A∨B
S S
¬A ∨ B
S
B
¬A ∨ ¬B
b b b b b
e e e
A ∨ ¬B
¬B
% % %
" " " " "
Abbildung 1.9: Resolutionswiderlegung für α2 c) Sei α3 = {(¬A ∨ ¬B ∨ ¬C), (A ∨ ¬D), (B ∨ ¬C), (C ∨ ¬F ), F }. 2 Für einen Resolutionsschritt
α∨L,¬L∨β (Res) α∨β
schreiben wir auch
1 α ∨ β. α ∨ L, ¬L ∨ β | RES
Mit der Resolutionsregel verfügen wir über einen Formalismus, der es uns erlaubt, mit rein syntaktischen Transformationen neue Klauseln zu generieren. Die Resolventen stehen mit den Elternklauseln in Beziehung, sie werden aus den Elternklauseln hergeleitet. Den Begriff der Herleitung wollen wir für spätere Untersuchungen präzisieren.
KAPITEL 1. EINFÜHRUNG IN DIE AUSSAGENLOGIK
52
¬A ∨ ¬B ∨ ¬C
SS
S S
A ∨ ¬D
¬B ∨ ¬C ∨ ¬D
SS S S
B ∨ ¬C
¬C ∨ ¬D
JJ J J
C ∨ ¬F
¬D ∨ ¬F
JJ
F
J J
¬D
Abbildung 1.10: Resolutionsherleitung aus α3 Definition 1.7.2 (Herleitung) Sei α = {α1 , . . . , αn } eine Formel in KNF und π eine Klausel. Eine Folge π1 , . . . , πk ist eine Herleitung der Klausel π aus α, wenn π = πk gilt und für alle j mit 1 ≤ j ≤ k gilt πj ∈ α oder es gibt j1 und 1 πj . Wir sagen, π ist (mit der Resolution) herleitbar aus α, in j2 mit 1 ≤ j1 , j2 < j und πj1 , πj2 | RES Zeichen α | RES π. Die Klauseln aus α bezeichnen wir als Ausgangs– oder Startklauseln oder auch als Input–Klauseln. Die Länge der Herleitung π1 , . . . , πk ist |{π1 , . . . , πk } \ {α1 , . . . , αn }|, die Anzahl der Klauseln in der Herleitung, die nicht schon in der Ausgangsformel enthalten sind. Wir können also | RES
1 als den transitiven und reflexiven Abschluß von |RES
auffassen. Dabei ver-
1 δ die Schreibweise wenden wir für α = {α1 , . . . , αn } ∈ KNF mit Klauseln αi und αj und αi , αj | RES 1 1 δ oder auch α | RES δ. α1 , . . . , αn | RES
Für Resolventenmengen verwenden wir analoge Abkürzungen. Für die Herleitungen α |RES L1 und α | RES L2 schreiben wir kurz α | RES L1 , L2 . Für β = {β1 , . . . , βm } mit α | RES βj für alle 1 ≤ j ≤ m schreiben wir α | RES β. Alternativ kann auch die Gesamtzahl der Klauseln in der Herleitung als Länge der Herleitung definiert werden, statt die Anzahl der tatsächlich neu generierten Klauseln zu betrachten. Unsere Definition gibt so die Anzahl der tatsächlich benötigten Anwendungen der Resolutionsregel an, während die alternative Definition die Anzahl der benötigten Klauseln zählt. Beide Werte können nie um mehr als die Anzahl der Ausgangsklausel voneinander differieren. In der Regel sind nur minimale Herleitungen von Interesse, also Herleitungen, aus denen wir keine Klausel mehr streichen können, ohne die Eigenschaft zu verlieren, Herleitung der gewünschten Klausel zu sein. Solche Herleitungen entsprechen dann einem Herleitungsbaum, wobei die Herleitung den Baum bis auf Vertauschung von Nachfolgern eines Knotens festlegt (linker und rechter Sohn vertauscht) und umgekehrt die Herleitung eine umgekehrte topologische Sortierung der Klauseln im Herleitungsbaum angibt. Eine Baumdarstellung ist aber meist nicht minimal, da mehrfach verwendete Teilherleitungen auch mehrfach auftreten. Verzichten wir darauf, erhalten wir einen (gerichteten azyklischen) Graphen, aber keinen Baum mehr.
1.7. GRUNDLAGEN DER RESOLUTION
53
Eine minimale Herleitung ist aber noch längst nicht immer eine kürzeste Herleitung, denn Herleitungen müssen nicht eindeutig sein. (Hierfür überlegt man sich leicht Beispiele.) Insbesondere ist die Reihenfolge der Klauseln in einer Herleitung nicht eindeutig. Betrachten wir einmal die folgende Situation. Die Literale A, ¬A, L und ¬L seien in α, β und γ nicht enthalten. Ist (A ∨ α ∨ β) die Resolvente von (L ∨ A ∨ α) und (¬L ∨ β) über L und resolvieren wir anschließend (A ∨ α ∨ β) und (¬A ∨ γ), um (α ∨ β ∨ γ) zu erhalten, dann können wir ebensogut zunächst (L ∨ A ∨ α) und (¬A ∨ γ) resolvieren und danach das Ergebnis (L ∨ α ∨ γ) mit (¬L ∨ β) resolvieren, um damit ebenfalls (α ∨ β ∨ γ) zu erhalten. (L ∨ A ∨ α)
(¬L ∨ β)
@ @ @
(A ∨ α ∨ β)
(¬A ∨ γ)
@ @ @
(α ∨ β ∨ γ)
Abbildung 1.11: Herleitungsbaum für (α ∨ β ∨ γ) L∨A∨α
(¬A ∨ γ)
@ @ @
(L ∨ α ∨ γ)
(¬L ∨ β)
@ @ @
(α ∨ β ∨ γ)
Abbildung 1.12: Alternativer Herleitungsbaum für (α ∨ β ∨ γ) Eine Verallgemeinerung dieser Beobachtung wird im nachfolgenden Lemma formuliert. Lemma 1.7.3 (Vertauschungslemma) Seien α, β und γ Klauseln und L1 und L2 Literale mit L2 ∈ α, L1 , ¬L2 ∈ β und ¬L1 ∈ γ. Dann kann die Resolutionsherleitung, in der zunächst β und gamma über L1 resolviert werden und anschließend die Resolvente mit α über L2 , so verändert werden, daß zunächst nur Resolutionen über L2 und danach erst eine Resolution über L1 vorgenommen werden. Die letzte Resolvente ist entweder exakt die letzte Resolvente der ersten Herleitung oder eine Teilklausel hiervon. Beweis: Die Ausgangssituation ist in Abbildung 1.13 angegeben. Als Beweis für das Lemma genügt die Angabe entsprechend konstruierter Herleitungsbäume, siehe Abbildung 1.14 und 1.15. (Zur Verdeutlichung sind die Kanten mit dem Literal markiert, über die resolviert wird.) Bei der Vertauschung der Literalreihenfolge muß eine Fallunterscheidung danach vorgenommen werden, ob L2 ∈ γ gilt oder nicht. Nur im Fall L1 ∈ α und ¬L2 ∈ γ ergibt sich als Resultatsklausel im ersten Fall eine echte Teilklausel der ursprünglichen Resultatsklausel. Die Transformation aus Lemma 1.7.3 kann lokal in jedem Resolutionsherleitungsbaum angewendet werden. Im Falle, daß die letzte Resolvente eine Teilklausel der ursprünglichen letzten Resolvente ist, entfallen enventuell Teile des bisherigen Resolutionsbaumes. Für Widerlegungen ist die Herleitung einer Teilkausel
KAPITEL 1. EINFÜHRUNG IN DIE AUSSAGENLOGIK
54
β
γ
L1J α
l L2 l l l
J J
(β \ {L1 }) ∪ (γ \ {¬L1 })
, , , ,
(α \ {L2 }) ∪ (β \ {L1 , ¬L2 }) ∪ (γ \ {¬L1 , ¬L2 })
Abbildung 1.13: Resolutionsherleitungsbaum L1 vor L2 α
β
J L2J J J
(α \ {L2 }) ∪ (β \ {¬L2 }) Ll 1l l l
γ
, , , ,
(α \ {L1 , L2 }) ∪ (β \ {L1 , ¬L2 }) ∪ (γ \ {¬L1 })
Abbildung 1.14: Resolutionsherleitungsbaum L2 vor L1 im Fall ¬L2 ∈ γ α
J L2J J
β
J
(α \ {L2 }) ∪ (β \ {¬L2 })
b
L1 b
b b b
α
J L2J J J
γ
(α \ {L2 }) ∪ (γ \ {¬L2 })
" " " " "
(α \ {L2 }) ∪ (β \ {L1 , ¬L2 }) ∪ (γ \ {¬L1 , ¬L2 })
Abbildung 1.15: Resolutionsherleitungsbaum L2 vor L1 im Fall ¬L2 ∈ γ ohne Belang, aber nicht jede mit der Resolution herleitbare Klausel ist in jeder Reihenfolge der Resolutionschritte herleitbar. Bemerkung: Ein Resolutionsherleitungsbaum kann durch geeignete lokale Transformationen auch linearisiert werden, d.h. in jedem Resolutionsschritt ist der eine Resolutionspartner die unmittelbar zuvor generierte Resolvente und der andere entweder eine Ausgangsklausel oder eine fühere Resolvente. Der Teilbaum aus Abbildung 1.13 wird dann ersetzt im Fall ¬L2 ∈ γ wie oben durch den in Abbildung 1.14 Teilbaum und im Fall ¬L2 ∈ γ durch den in Abbildung 1.16 amgegebenen Teilbaum. Bei der zweiten Verwendung von α im letzten Resolutionsschritt greifen wir erneut auf das erste Vorkommen von α im Resolutionsherleitungsbaum zu. Es liegt nun zwar kein Baum mehr vor, aber wir erkennen deutlich die lineare Struktur. Eine Motivation für diese Ersetzung erhalten wir aber erst mit der Vorstellung der linearen Resolution in Abschnitt 1.7.4. Die Resolutionsregel und ihre Verwendung in Herleitungen nennen wir auch den Resolutionskalkül. Als nächstes wollen wir die syntaktische Herleitbarkeit mittels Resolution mit dem semantischen Folgerungsbegriff vergleichen. Wir müssen sicherstellen, daß auf der einen Seite jede aus einer Formel α mit syntaktischen Mitteln herleitbare Formel β auch semantisch folgt, also α |= β gilt. Wir bezeichnen dies als die
1.7. GRUNDLAGEN DER RESOLUTION
α
J LJ 2
55
β
J J
(α \ {L2 }) ∪ (β \ {¬L2 }) Ll 1l
l l
γ
, , , ,
(α \ {L1 , L2 }) ∪ (β \ {L1 , ¬L2 }) ∪ (γ \ {¬L1 })
b
L2 b
b b b
(α \ {L2 }) ∪ (β \ {L1 , ¬L2 }) ∪ (γ \ {¬L1 , ¬L2 })
Abbildung 1.16: Linearisierter Resolutionsherleitungsbaum im Fall ¬L2 ∈ γ Korrektheit eines Kalküls. Auf der anderen Seite sollten alle Formeln, die semantisch folgerbar sind, auch mit dem rein syntaktischen Kalkül hergeleitet werden können. Diesen Aspekt nennt man die Vollständigkeit eines Kalküls. Für den Resolutionskalkül gilt eine etwas eingeschränkte Form der Vollständigkeit, die Widerlegungsvollständigkeit. Mit Hilfe der Resolutionsregel können wir nur neue Klauseln generieren, die Teile der Elternklauseln enthalten, also insbesondere keine neuen Atome einführen. Wenn wir aber die herzuleitende Formel β negieren, in KNF transformieren und in dieser Form zur Ausgangsformel α hinzunehmen, gilt aber, daß wir genau dann mit Hilfe der Resolutionsregel die leere Klausel generieren können, wenn β semantisch aus α folgerbar ist. Eine Herleitung der leeren Klausel heißt daher auch Resolutionswiderlegung oder kurz Widerlegung bzw. Resolutionsbeweis oder kurz Beweis. Diese Eigenschaft der Resolution, die Korrektheit und die Widerlegungsvollständigkeit, zeigen wir im nächsten Satz. Satz 1.7.4
Es gilt:
1. Der Resolutionskalkül ist korrekt. Sei α ∈ KNF, dann gilt für alle Klauseln π: α | RES π ⇒ α |= π 2. Der Resolutionskalkül ist nicht vollständig. Es gibt Formeln α ∈ KNF und Klauseln π, so daß gilt: α |= π und nicht α | RES π 3. Der Resolutionskalkül ist widerlegungsvollständig. Sei α ∈ KNF, dann gilt: α widerspruchsvoll ⇒ α | RES 1 δ sofort α1 , α2 |= δ. Die allgemeine Beweis: Ad 1: Für Klauseln α1 und α2 folgt aus α1 , α2 | RES Behauptung erhält man durch eine Induktion über die Anzahl der Resolutionsschritte für α |RES δ.
Ad 2: Sei α = A und π = A ∨ B, dann gilt α |= π, aber π läßt sich aus α nicht mit Hilfe der Resolution herleiten.
KAPITEL 1. EINFÜHRUNG IN DIE AUSSAGENLOGIK
56
Ad 3: Um die Widerlegungsvollständigkeit der Resolution (oder von Restriktionen der Resolution) zu zeigen, empfiehlt sich ein induktiver Beweis. Typische Parameter für die Induktion sind die Länge der Formel, die Anzahl der Atome oder die Anzahl der Klauseln. Da widerspruchsvolle Formeln vorausgesetzt sind, ist der Induktionsanfang meist einfach zu zeigen. Im Induktionsschritt betrachten wir dann meist die Formeln α[¬A/1] und α[¬A/0], die ebenfalls widerspruchsvoll sind und auch kürzer als die Ausgangsformel. Aus den nach Induktionsvoraussetzung existierenden Widerlegungen für diese Formeln wird dann eine Widerlegung für die Ausgangsformel konstruiert. Hier zeigen wir durch Induktion über die Länge widerspruchsvoller Formeln, daß die leere Klausel herleitbar ist. Die kürzeste widerspruchsvolle Formel besteht aus zwei Unit–Klauseln. A, ¬A | RES .
Ist α = {A, ¬A}, so gilt
Sei nun α mit der Länge n + 1 gegeben. Da nach Voraussetzung α widerspruchsvoll ist, gibt es ein Atom A, welches in α sowohl positiv als auch negativ vorkommt. Wir zerlegen nun α in die Formel α[A/1] und α[¬A/1]. α[A/1] und α[¬A/1] sind nicht erfüllbar, da α widerspruchsvoll ist. Ergibt sich für eine der beiden Reduktionen der Wert 0, so enthält α eine Klausel A (falls α[¬A/1] = 0) oder eine Klausel ¬A (falls α[A/1] = 0). Nehmen wir an, daß sowohl α[A/1] als auch α[¬A/1] nicht den Wert 0 ergeben. Da α[A/1] und α[¬A/1] widerspruchsvoll sind, folgt mit der Induktionsvoraussetzung α[A/1] |RES und α[¬A/1] | RES . Fügen wir in α[A/1] die eliminierten Literale ¬A und zu α[¬A/1] die Atome A wieder hinzu — die resultierenden Formeln bezeichnen wir mit α[A/1](¬A) und α[¬A/1](A) — , dann sind diese Formeln Teilformeln von α. In α[A/1](¬A) bzw. α[¬A/1](A) können wir alle Herleitungsschritte ganz analog zur Herleitung α[A/1] | RES bzw. α[¬A/1] | RES durchführen. Es gilt daher entweder sofort α[¬A/1](¬A) |RES bzw. α[A/1](¬A) | RES und wir haben damit eine Herleitung der leeren Klausel aus α, oder aber es gilt α[A/1](¬A) | RES ¬A und α[¬A/1](A) | RES A. Da α[A/1](¬A) und α[¬A/1](A) Teilformeln von α sind, können wir die Herleitungen für ¬A und A aneinanderfügen und als letzten Resolutionsschritt ¬A, A |RES anfügen. Wir erhalten insgesamt eine Herleitung der leeren Klausel aus α. Die übrigen Fälle werden analog gezeigt. Die Unvollständigkeit der Resolution scheint uns die Möglichkeit zu nehmen, Formeln direkt herzuleiten. Denn die Widerlegungsvollständigkeit spielt in gewisser Weise einen indirekten Beweis wider, in dem wir die Zielformel von vorn herein in negierter Form vorliegen haben und nutzen können. Direkte Beweise sind mit der Resolution aber dennoch möglich, wenn wir zulassen, daß wir zunächst stärkere Aussagen beweisen (dies sind bei Klauseln kürzere Klauseln), und die eigentliche Zielformel als Abschwächung sehen. Lemma 1.7.5
Sei α ∈ KNF und π eine Klausel, dann gilt: α |= π ⇐⇒ ∃ Teilklausel π ⊂ π : α | RES π
Zu jeder folgerbaren Klausel π können wir also eine Klausel π mit der Resolution herleiten, so daß gilt: π subsumiert π. Beweis: Wegen der Korrektheit der Resolution genügt es nach Satz 1.7.4, die Richtung von links nach rechts zu zeigen. Gelte also α |= π mit π = (L1 ∨ . . . ∨ Ls ) und damit wieder nach Satz 1.7.4 α ∪
1.7. GRUNDLAGEN DER RESOLUTION
57
{¬L1 , . . . , ¬Ls } | RES . Nach Lemma 1.7.3 können wir durch Vertauschen von Resolutionsschritten stets erreichen, daß alle Resolutionen mit Unit–Klauseln erst am Ende der Herleitung durchgeführt werden. Insbesondere können wir die Reihenfolge der Resolutionen mit Unit–Klauseln so verändern, daß alle Resolutionen mit Klauseln aus {¬L1 , . . . , ¬Ls } als letzte durchgeführt werden, d.h. im Resolutionsbaum unmittelbar über der Wurzel stehen. (Auf die Induktionsbeweise dieser beiden Aussagen verzichten wir hier.) Dadurch daß bei den Vertauschungen der Resolutionsschritte die ursprüngliche Resolvente verkürzt werden kann (vgl. Vertauschungslemma 1.7.3), können Teile des Resolutionsbaumes entfallen. Insgesamt behalten wir nach jeder Vertauschung von Resolutionsschritten eine Herleitung der leeren Klausel aus α ∪ {¬L1 , . . . , ¬Ls }. Wir können deshalb annehmen, daß wir in der Widerlegung schließlich zu einer Klausel π gelangen, aus der nur noch mit Hilfe von Resolutionen mit Klauseln aus {¬L1 , . . . , ¬Ls } die leere Klausel generiert wird, ohne daß zuvor eine der Klauseln aus {¬L1 , . . . , ¬Ls } in der Herleitung von π benutzt wurde. Dann hat π aber die Form π = (Li1 ∨ . . . ∨ Lir ) mit 1 ≤ ij ≤ n. (Insbesondere kann π die leere Klausel sein.) Also ist π eine Teilklausel von π und es gilt α |RES π . Die Pigeonhole–Formeln ϕn beschreiben das Problem, n + 1 Tauben auf n Löcher zu verteilen. Als Atome wählen wir daher Xi,j mit 1 ≤ i ≤ n und 1 ≤ j ≤ n + 1; der Index i bezeichnet das Loch, der Index j die Taube, d.h. Xi,j steht für „Taube j ist in Loch i“. Die Formel ϕn besteht aus zwei Teilen, für die wir jeweils auch die intendierte Semantik angeben: 1. Höchstens eine Taube ist in jedem Loch: αn :=
(¬Xi,k ∨ ¬Xi,j )
1≤i≤n 1≤k<j≤n+1
2. Jede Taube ist in einem Loch: βn :=
(X1,j ∨ . . . ∨ Xn,j )
1≤j≤n+1
3. ϕn := αn ∧ βn ϕn besitzt insgesamt (n + 1) · n Atome und 12 · n2 · (n + 1) 2–Klauseln sowie (n + 1) n-Klauseln und damit die Länge n · (n + 1)2 . Beispiel: ϕ2 (3 Tauben und 2 Löcher) hat die folgende Gestalt: ϕ2 = (¬X1,1 ∨ ¬X1,2 ) ∧ (¬X1,1 ∨ ¬X1,3 ) ∧ (¬X1,2 ∨ ¬X1,3 )∧ (¬X2,1 ∨ ¬X2,2 ) ∧ (¬X2,1 ∨ ¬X2,3 ) ∧ (¬X2,2 ∨ ¬X2,3 )∧ (X1,1 ∨ X2,1 ) ∧ (X1,2 ∨ X2,2 ) ∧ (X1,3 ∨ X2,3 ) 2 Offensichtlich sind die Formeln ϕn widerspruchsvoll. Satz 1.7.6 Es gibt eine Konstante c > 1, so daß für ausreichend große n jede Resolutionswiderlegung von ϕn zur leeren Klausel mindestens cn verschiedene Klauseln enthält.
KAPITEL 1. EINFÜHRUNG IN DIE AUSSAGENLOGIK
58
1.7.1 Stufensättigungsstrategie Als erste und recht einfache Resolutionsstrategie behandeln wir die Stufensättigungsstrategie (Level Saturation). Hiermit wird ein Verfahren zur systematischen Generierung aller Resolventen bezeichnet, bei dem die Reihenfolge der Generierung der Höhe des Resolutionsherleitungsbaumes entspricht. Um diese Strategie formal einfach beschreiben zu können, definieren wir für α ∈ KNF und n ≥ 0 die Menge der Klauseln, die mit Hilfe von n Resolutionsschritten hergeleitet werden kann. Definition 1.7.7 Sei α ∈ KNF und n ∈ IN, n ≥ 0. Dann sei Res0 (α) Res1 (α) Resn+1 (α) Res∗ (α)
:= := := :=
α 1 {π | ∃τ1 τ2 ∈ α : τ1 , τ2 | RES π} ∪ {α} 1 n Res (Res (α)) für n > 0 n n Res (α)
Wir bezeichnen Res∗ (α) auch als Resolutionsabschluß von α. Offensichtlich gilt Resn (α) ⊂ Resn+1 (α) für alle n. Da α nur endliche viele Atome enthält, kollabiert diese Hierarchie, d.h. es gibt ein m mit Res∗ (α) = Resm (α). Ein einfacher Algorithmus entscheidet nun, ob eine Formel α widerspruchsvoll ist, indem sukzessive die Mengen Resn (α) berechnet werden. Das Verfahren bricht ab, wenn die leere Klausel auftritt oder Resn (α) = Resn+1 (α) für ein n gilt. Innerhalb dieses Verfahrens verwenden wir die Funktion Res1 , die die Formelmenge im Argument, vergrößert um die Menge aller in einem Resolutionsschritt generierbaren Klauseln liefert. Wie wir noch sehen werden, läßt sich dieses Verfahren in Hinblick auf Laufzeit und Suchraum noch erheblich verbessern. Da wir in Satz 1.7.6 aber gezeigt haben, daß die Resolution im Worst–Case exponentiell ist, bewirken diese Modifikationen zwar in einigen Fällen kürzere Rechenzeiten, es bleiben aber immer noch Formeln übrig, die nur mit großem, nämlich exponentiellem Aufwand zu entscheiden sind. Algorithmus 1.9: RESOLUTION Input: α ∈ KN F Output: Boolescher Wert für die Erfüllbarkeit von α function RESOLUTION(α : KNF) : boolean; begin n := 0; Res[0] := α; repeat n := n + 1; Res[n] := Res1 (Res[n − 1]); if ∈ Res[n] then return(false); until Res[n] = Res[n − 1]; return(true); end:
Eine übersichtliche Methode zur Bestimmung des Resolutionsabschlusses auf dem Papier ist die Darstellung als Tabelle. In den einzelnen Spalten sind die Klauseln der Mengen Res0 (α), Res1 (α)\Res0 (α), Res2 (α)\ Res1 (α), . . . aufgeführt, sie werden nacheinander bestimmt. Zu Anfang kennen wir nur die Klauseln der
1.7. GRUNDLAGEN DER RESOLUTION
59
ersten Spalte, nämlich Res0 (α) = α. Seien nun bereits n Spalten gefüllt. Die Klauseln der nächsten freien Spalte n + 1 erhalten wir, indem wir dort alle Resolventen zwischen einer Klausel der Spalte n und einer der Klauseln aus den Spalten 0, . . . , n aufführen, die noch nicht in der Tabelle enthalten sind. Auf tautologische Klauseln kann man verzichten, wenn man mit dieser Methode nur die leere Klausel erzielen will. Beispiel: Wir geben die Resolvententabelle für die Formel α bis zur Stufe 3 an. α = {{¬A, ¬B, ¬C}, {A, ¬D}, {B, ¬C}, {C, ¬F }, {F }} 1. 2. 3. 4. 5.
0 {¬A, ¬B, ¬C} {A, ¬D} {B, ¬C} {C, ¬F } {F }
6. 7. 8. 9. 10.
1 {¬B, ¬C, ¬D} {¬A, ¬C} {¬A, ¬B ∨ ¬F } {B, ¬F } {C}
(1, 2) (1, 3) (1, 4) (3, 4) (4, 5)
11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
2 {¬C, ¬D} {¬B, ¬D, ¬F } {¬C, ¬F } {¬A, ¬C, ¬F } {¬A, ¬B} {B} {¬C, ¬D, ¬F } {¬B, ¬D} {¬A} {¬A, ¬F }
(6, 3) (6, 4) (7, 4) (8, 3) (8, 5) (10, 3) (6, 9) (6, 10) (7, 10) (8, 9)
21. 22.
3 {¬D, ¬F } {¬D} ...
(11, 4) (11, 10)
Im Vergleich zum Beispiel am Anfang des Kapitels haben wir nun eine Herleitung von ¬D mit einer Tiefe des Herleitungsbaumes von nur 3. Zusätzlich wissen wir, daß es keinen „flacheren“ Herleitungsbaum geben kann. 2 Je nachdem aus welcher Spalte die zweite Resolvente stammt, kann man die Klauseln innerhalb einer Spalte auch noch gruppieren. Hilfreich ist zusätzlich eine Numerierung der Klauseln und bei jeder Resolvente die Angabe der Elternklausel. Auf diese Weise kann man zu jeder Klausel der Tabelle leicht eine Herleitung angeben.
1.7.2 P– und N–Resolution Sowohl P–Resolution als auch N–Resolution können als rein syntaktische Anforderungen an die Resolutionspartner formuliert werden. Wenn wir fordern, daß eine der Elternklauseln nur positive Literale enthält, bezeichnen wir die Einschränkung als P–Resolution; analog bezeichnen wir einen Resolutionsschritt als N–Resolutionsschritt, wenn eine der Elternklauseln nur negative Klauseln enthält. Die beiden Restriktionen P– und N–Resolution sind eng miteinander verwandt, gerade im Zusammenhang mit der Klasse der Horn–Formeln ist die N–Resolution die bekanntere Restriktion. Die P–Resolution für Horn–Formeln ist gleichzeitig immer auch eine Unit–Resolution und wird als reine Restriktion daher nicht verwendet. Definition 1.7.8 (P–/N–Resolution) Sei α ∈ KNF. Einen Resolutionsschritt mit Klauseln π1 und π2 aus α bezeichnen wir als 1 1 π (π1 , π2 | N-RES π), wenn gilt P–Resolutionsschritt (N–Resolutionsschritt), in Zeichen π1 , π2 | P-RES
1 π und π1 oder π2 nur positive (negative) Literale enthält. π1 , π2 | RES
1 1 bzw. | N-RES bezeichnen wir mit | P-RES bzw. | N-RES . Den reflexiven und transitiven Abschluß von |P-RES Eine Resolutionsherleitung ist eine P–(N–)Resolutionsherleitung, wenn jeder Resolutionsschritt in ihr ein P–(N–)Resolutionsschritt ist.
Da eine Elternklausel nur positive (bzw. nur negative) Literale enthalten darf, kann dieselbe Einschränkung nicht auch für die andere Elternklausel gelten, da dann keine Resolution möglich wäre. Für Horn–Formeln, in deren Klauseln ja jeweils maximal ein positives Literal auftritt, führt ein N–Resolutionsschritt wieder zu einer negativen Klauseln, und in einer N–Resolutionsherleitung wird nur eine negative Anfangsklausel benutzt.
KAPITEL 1. EINFÜHRUNG IN DIE AUSSAGENLOGIK
60
Beide Restriktionen können wir als Spezialfälle der semantischen Resolution auffassen. Wählen wir als Bewertung die, die alle Atome mit 0 bewertet, so sind alle Klauseln mit 1 bewertet, die mindestens ein negatives Literal enthalten, alle positiven Klauseln allerdings sind mit 0 bewertet. Eine P–Resolutionsherleitung ist daher eine Herleitung mit der semantischen Resolution und genau dieser Bewertung. Ganz analog gilt dies für die N–Resolution mit der Bewertung, die alle Atome mit 1 bewertet. Wir erhalten so die Korrektheit der P–Resolution und der N–Resolution als Korollar der Korrektheit der Resolution und die Widerlegungsvollständigkeit als Folgerung aus der Widerlegungsvollständigkeit der semantischen Resolution. Satz 1.7.9
Sei α ∈ KNF, dann gilt: α ist widerspruchsvoll ⇐⇒ α | P-RES ⇐⇒ α | N-RES
Beweis: Wir geben hier zusätzlich einen unmittelbaren Beweis für die Widerlegungsvollständigkeit der N–Resolution mit Hilfe einer Induktion über die Anzahl n der Atome in α. Analog kann der Beweis auch für die P–Resolution geführt werden. Sei α also widerspruchsvoll. Im Fall n = 1 muß daher gelten {A, ¬A} ⊂ α, so daß mit einem N– Resolutionsschritt die leere Klausel herleitbar ist. Sei nun n > 1 und A sei ein Atom in α. Dann sind α[A/1] und α[A/0] widerspruchsvoll und enthalten höchstens n − 1 Atome. Mit der Induktionsvoraussetzung erhalten wir α[A/1] |N-Res und α[A/0] | N-Res . Die N–Resolutionsschritte in α[A/1] sind analog in α[A/1](¬A) möglich, da zu Anfangsklauseln und Resolventen gegebenenfalls ein negatives Literal hinzugefügt wird. Wir erhalten so entweder α[A/1](¬A) | N-Res und haben damit eine N–Resolutionsherleitung der leeren Klausel, oder wir erhalten α[A/1](¬A) | N-Res ¬A. In diesem Fall gilt α | N-Res α[A/0], denn alle positiven Literale A können aus den Klauseln von α durch einen N–Resolutionsschritt mit ¬A eliminiert werden. Insgesamt erhalten wir also ebenfalls α | N-Res .
1.7. GRUNDLAGEN DER RESOLUTION
61
1.7.3 Hyperresolution Die in [Rob 65] eingeführte positive (bzw. negative) Hyperresolution ist eine Verschärfung der Restriktion der P–Resolution (N–Resolution). Wir beschreiben nachfolgend zunächst die negative Hyperresolution, die wir kurz Hyperresolution nennen. Wird in einer N–Resolutionsherleitung eine neue negative Klausel erzeugt, dann ist eine nicht–negative Klausel mit einer Folge von negativen Klauseln resolviert worden. Diese einzelnen N–Resolutionsschritte fassen wir zusammen zu einem (negativen) Hyperresolutionsschritt, in dem wir simultan die nicht–negative Klausel mit allen negativen Klauseln resolvieren. Definition 1.7.10 (Hyperresolution) Sei π = {A1 , . . . , An , ¬B1 , . . . , ¬Bm } eine Klausel mit Atomen A1 , . . . , An , B1 , . . . , Bm und sei αi = {¬Ai } ∪ σi für 1 ≤ i ≤ n, so daß alle αi negative Klauseln sind. Die Hyperresolutionsregel ist definiert als π α1 , . . . , αn (Hyp-Res) σ1 ∪ . . . ∪ σn ∪ {¬B1 , . . . , ¬Bm } Die Klausel π wird bei der Hyperresolution simultan mit allen negativen Klauseln α1 , . . . , αn resolviert, in Zeichen 1 σ1 ∪ . . . ∪ σn ∪ {¬B1 , . . . , ¬Bm }. π, α1 , . . . , αn | Hyp-RES Analog zu den Definitionen für die Resolution können wir den Begriff der Hyperresolutionsherleitung 1 mit definieren und bezeichnen den reflexiven und transitiven Abschluß der Hyperresolution |Hyp-RES | Hyp-RES . Im Gegensatz zu den bisher behandelten Restriktionen der Resolution handelt es sich bei Hyperresolutionsherleitungen nicht unmittelbar um Resolutionsherleitungen, denn in einem Hyperresolutionsschritt sind ja mehrere (N–)Resolutionsschritte zusammengefaßt. Beispiel: Die folgende Abbildungen 1.17 und 1.18 zeigen einen Hyperresolutionsschritt und eine entsprechende Folge von N–Resolutionsschritten. 2 ¬A ∨ ¬P
¬B ∨ ¬Q
¬C ∨ ¬R
PP PP l PP l PP l
P ∨ Q ∨ R ∨ ¬D
¬A ∨ ¬B ∨ ¬C ∨ ¬D
Abbildung 1.17: Hyperresolutionsschritt ¬C ∨ ¬R
¬B ∨ ¬Q
¬A ∨ ¬P
l l l
l l l
l l l
P ∨ Q ∨ R ∨ ¬D
, , ,
P ∨ Q ∨ ¬C ∨ ¬D
, , ,
P ∨ ¬B ∨ ¬C ∨ ¬D
, , ,
¬A ∨ ¬B ∨ ¬C ∨ ¬D
Abbildung 1.18: Entsprechende N–Resolutionsherleitung
62
KAPITEL 1. EINFÜHRUNG IN DIE AUSSAGENLOGIK
Wenn wir die Zusammenfassung rückgängig machen, erhalten wir unmittelbar eine N–Resolutionsherleitung, also die Korrektheit der Hyperresolution. Für die Widerlegungsvollständigkeit müssen wir zeigen, daß wir eine Resolutionsherleitung finden können, deren Einzelresolutionen zu Hyperresolutionsschritten gruppiert werden können. Satz 1.7.11
Die Hyperresolution ist korrekt und widerlegungsvollständig für Formeln in KNF.
Beweis: Nach dem bisher Gesagten genügt es, die Widerlegungsvollständigkeit zu zeigen, d.h.: α ist widerspruchsvoll =⇒ α | Hyp-RES . Für jede Formel α = {α1 , . . . , αn } definieren wir size(α) := |α| − n. Wir zeigen mit einer Induktion über size(α), daß für jede widerspruchsvolle Formel eine Hyperresolutionsherleitung der leeren Klausel existiert. Aus size(α) = 0 folgt sofort, daß es Unit–Klauseln A und ¬A in α geben muß, da α nach Voraussetzung widerspruchsvoll ist. Indem wir die beiden Klauseln resolvieren, erhalten wir eine Hyperresolutionsherleitung der leeren Klausel. Sei nun size(α) = k + 1. Kommt in α jedes negative Literal nur in negativen Unit–Klauseln vor, dann muß es eine positive Klausel geben, die durch simultane Resolution, d.h. durch einen Hyperresolutionsschritt, zur leeren Klausel führt. Andernfalls wäre α im Widerspruch zur Voraussetzung erfüllbar. Gebe es nun eine Klausel, die sowohl negative als auch positive Literale besitzt und sei αi eine solche Klausel, die das negative Literal ¬L enthält. Dann definieren wir α∗i := αi \ {¬L}, ϕ := (α \ {αi }) ∪ {α∗i } und ψ := (α \ {αi }) ∪ {{¬L}}. Da α widerspruchsvoll ist, müssen auch ϕ und ψ widerspruchsvoll sein. Außerdem gilt size(ϕ), size(ψ) < size(α). Also gibt es Hyperresolutionsherleitungen ϕ |Hyp-RES und ψ | Hyp-RES . Die Resolutionswiderlegung von ϕ kann analog in α durchgeführt werden. Es ergibt sich entweder schon eine Herleitung der leeren Klausel oder des negativen Literals ¬L, d.h. α |Hyp-RES ¬L. Die Hyperresolutionsherleitung kann dann mit der Hyperresolutionswiderlegung von ψ (außer {¬L}) fortgesetzt werden, so daß insgesamt eine Hyperresolutionswiderlegung von α entsteht. Wie bereits zu Anfang des Abschnitts gesagt, hätten wir bei der Definition der Hyperresolution anstelle der simultanen Resolution mit negativen Klauseln auch die simultane Resolution mit positiven Klauseln und einer Klausel, die negative Literale enthält, verlangen können, so daß eine neue positive Klausel als Resolvente entsteht. Diese Verschärfung der P–Resolution bezeichnen wir als positive Hyperresolution. Definition 1.7.12 (Positive Hyperresolution) Sei π = {¬A1 , . . . , ¬An , B1 , . . . , Bm } eine Klausel mit Atomen A1 , . . . , An , B1 , . . . , Bm und sei αi = {Ai } ∪ σi für 1 ≤ i ≤ n, so daß alle αi positive Klauseln sind. Die positive Hyperresolutionsregel ist definiert als π α1 , . . . , αn (Pos-Hyp-Res) σ1 ∪ . . . ∪ σn ∪ {B1 , . . . , Bm } Die Klausel π wird bei der positiven Hyperresolution simultan mit allen positiven Klauseln α1 , . . . , αn resolviert, in Zeichen 1 σ1 ∪ . . . ∪ σn ∪ {B1 , . . . , Bm }. π, α1 , . . . , αn | Pos-Hyp-RES Aus Gründen der Symmetrie folgt sofort, daß auch die positive Hyperresolution widerlegungsvollständig ist. Um die unterschiedliche Arbeitsweise der beiden Varianten der Hyperresolution zu erläutern, betrachten wir Klauseln als Implikationen, d.h. eine Klausel {A1 , . . . , Am , ¬B1 , . . . , ¬Bn } entspricht einer Implikation B1 , . . . , Bn → A1 , . . . , Am , wobei die rechte Liste A1 , . . . , Am als Disjunktion und die linke Liste B1 , . . . , Bn als Konjunktion aufzufassen ist. Die Abarbeitung der (negativen) Hyperresolution kann man
1.7. GRUNDLAGEN DER RESOLUTION
63
dann grob beschreiben als rückwärtsgerichtet (entgegen den Implikationspfeil) und die Abarbeitung der positiven Hyperresolution als vorwärtsgerichtet. Beispiel: Sei etwa α = {(B, C → A), (F → C), (F → B)} gegeben und wir möchten entscheiden, ob α |= A gilt. Wir wollen zunächst mit der positiven Hyperresolution und dann mit der (negativen) Hyperresolution nachweisen, daß α ∧ ¬A widerspruchsvoll ist. Einen negativer/positiver Hyperresoluionsschritt erkennen wir im Hyperresolutionsbaum an den in der Regel mehr als zwei Söhnen eines Knotens. Der rechte Sohn enthält immer die gemischte Klausel, die übrigen die negativen/positiven Klauseln. F
AA
F →B
F
F →C
AA A A B C B, C → A HH H HH A
JJ
¬A
J
Abbildung 1.19: Widerlegung mit positiver Hyperresolution Bei der positiven Hyperresolution erhalten wir eine Widerlegung, für die am Ende die Frage widerlegt wird (siehe Abbildung 1.19). Bei der (negativen) Hyperresolution beginnen wir mit der negierten Frage ¬A ¬A
@ @
A ∨ ¬B ∨ ¬C
@
¬B ∨ ¬C
@ @ @
B ∨ ¬F
¬C ∨ ¬F
@ @ @
C ∨ ¬F ¬F
e e e
F
% % %
Abbildung 1.20: Widerlegung mit (negativer) Hyperresolution (siehe Abbildung 1.20).
2
64
KAPITEL 1. EINFÜHRUNG IN DIE AUSSAGENLOGIK
1.7.4 Lineare Resolution Definition 1.7.13 (Lineare Resolution) Sei α = {α1 , . . . , αm } ∈ KNF. Eine Resolutionsherleitung π0 , π1 , . . . , πn aus α für eine Klausel π ist eine lineare Resolutionsherleitung, in Zeichen α |Lin-Res π, genau dann, wenn gilt π0 ∈ α, πn = π und für alle
1 πi+1 mit τ ∈ α oder τ = πj für ein j ≤ i. 1 < i < n ist πi , τ | RES
Die Klausel τ wird als Seitenklausel bezeichnet und die Klauseln πi heißen Verbindungsklauseln (center clauses). Der folgende Satz sagt aus, daß die lineare Resolution keine Restriktion ist, die die Korrektheit oder die Widerlegungsvollständigkeit beeinträchtigt. Satz 1.7.14 Sei α ∈ KNF, dann gilt: α ist widerspruchsvoll genau dann, wenn es eine Klausel τ in α gibt, so daß die leere Klausel ausgehend von τ linear resolviert werden kann. Ist α minimal widerspruchsvoll, d.h. durch Streichen einer Klausel wird α erfüllbar, dann kann eine beliebige Klausel aus α als Startklausel gewählt werden. Beweis: Da die lineare Resolution über eine spezielle Eigenschaft von Resolutionsherleitungen definiert ist, steht die Korrrektheit außer Frage. Ohne Beschränkung der Allgemeinheit setzen wir voraus, daß α minimal widerspruchsvoll ist. (Durch sukzessives Streichen von Klauseln läßt sich eine minimal widerspruchsvolle Formel α ⊂ α bestimmen.) Sei π eine beliebige Klausel in α. Wir zeigen nun durch Induktion über die Anzahl n der Atome in α, daß die leere Klausel ausgehend von π linear resolviert werden kann. Für n = 1 kann α nur aus den Klauseln A und ¬A bestehen. π ist eine dieser Klauseln un mit einem Resolutionsschritt erreichen wir die leere Klausel. Die Widerlegung ist offenbar linear. Sei nun n > 1 und sei π eine beliebige Klausel aus α. Fall 1: π ist eine Unit–Klausel, π = {L}. Mit α ist natürlich auch α[L/1] widerspruchsvoll. Die Formel α[L/1] enthält höchstens n−1 Atome und ist ebenfalls minimal widerspruchsvoll. Aufgrund der Minimalität von α ist α[L/1] eine Klausel τ enthalten, die aus einer Klausel σ = τ ∪ {¬L} in α gebildet worden ist. Nach Induktionsvoraussetzung gibt es eine lineare Resolutionsherleitung von τ zur leeren Klausel. Wir erhalten eine lineare Resolutionsherleitung ausgehend von L zur leeren Klausel, indem wir zuerst L und τ ∪{¬L} resolvieren und daran die nach Induktionsvoraussetzung gegebene lineare Resolutionswiderlegung anschließen. Falls als letzte Resolvente ¬L auftritt, fügen wir noch einen weiteren Resolutionsschritt mit der Ausgangsklausel L an. Insgesamt ergibt sich eine lineare Herleitung. Fall 2: π enthalte mehr als ein Literal. Sei L ein Literal in π und π := π \ {L}. Dann ist α[¬L/1] widerspruchsvoll und π ist eine Klausel in α[¬L/1]. Außerdem ist α[¬L/1] \ {π } erfüllbar, da α minimal widerspruchsvoll ist. α[¬L/1] enthält aber höchsten n − 1 Atome. Sei α∗ [¬L/1] eine minimale widerspruchsvolle Teilformel von α[¬L/1]. Da α[¬L/1] \ {π } erfüllbar ist, muß π eine Klausel in α∗ [¬L/1] sein. Nach Induktionsvoraussetzung gibt es eine lineare Resolutionswiderlegung in α∗ [¬L/1] ausgehend von π . Bezeichnen wir mit α∗ [¬L/1](L) die Klauseln aus α, die zu α∗ [¬L/1] führen, so können wir eine analoge lineare Resolutionsherleitung mit Startklausel π bilden, die zur Klausel L führt.
1.7. GRUNDLAGEN DER RESOLUTION
65
Existiert eine Unit–Klausel ¬L in α, dann erhalten wir mit einem weiteren Resolutionsschritt mit dieser Inputklausel eine lineare Herleitung der leeren Klausel. Andernfalls bilden wir analog eine minimal widerspruchsvolle Teilformel α∗ [L/1] von α[L/1], die eine Klausel σ = σ \ {¬L} mit ¬L ∈ σ enthält. Analog gilt dann auch α∗ [L/1] | Lin-Res und α∗ [L/1](¬L) | Lin-Res ¬L mit σ bzw. σ als Startklausel. Die letzte Herleitung fügen wir an die lineare Herleitung von L an. (Die Startklausel ist σ und ¬L ∈ σ.) Aus der letzten Klausel ¬L der Gesamtherleitung erhalten wir durch einen weiteren Resolutionsschritt mit L die leere Klausel. Insgesamt haben wir in allen Fällen von einer minimal widerspruchsvollen Formel und einer beliebigen Klausel daraus als Startklausel eine lineare Herleitung der leeren Klausel angeben können. Bei der linearen Resolution ist eine der Elternklauseln für den nächsten Resolutionsschritt die zuletzt gewonnene Resolvente, die andere kann eine Ausgangsklausel oder eine andere frühere Resolvente sein. Je nach Auswahl von Ausgangsklauseln und bisherigen Resolventen für die Resolutionsschritte ergeben sich unterschiedliche Herleitungen, auch solche, die nicht zu einer Widerlegung fortgesetzt werden können. Wird beispielsweise in einer linearen Herleitung der Formel α = {A, (A ∨ C), ¬A} im ersten Schritt die Klausel ¬A mit der Klasuel (A ∨ C) resolviert, dann kann diese Herleitung nicht zu einer Widerlegung für α ergänzt werden. Eine mögliche weitere Restriktion der linearen Resolution ist die zusätzliche Einschränkung der Auswahl des zu eliminierenden Literals. Definition 1.7.15 (SL–Resolution) Eine SL–Resolutionsherleitung ist eine lineare Resolutionsherleitung, bei der in jedem Resolutionsschritt das nächste zu eliminierende Literal durch die Seitenklausel des letzten Resolutionsschrittes eingeführt wurde oder, falls kein Literal durch die Seitenklausel eingeführt wurde, aus der darüberliegenden Verbindungsklausel gewählt wurde. Die Abkürzung SL steht für selected literal. Als Herleitungsoperator verwenden wir |SL-Res . Durch die Reihenfolgenvorschrift kann der Fall eintreten, daß ein Literal mehrfach in der gesamten Herleitung eliminiert werden muß. Beispiel: Sei α = {(A ∨ ¬B), (B ∨ D), (¬D), (¬A ∨ D)} und die Anfangsklausel sei (A ∨ ¬B). A ∨ ¬B
e e e
B∨D
% % %
A∨D
S S
S
¬D (D wurde eingeführt)
A
J J J
¬A ∨ D (Kein neues Literal eingeführt)
D
T T
¬D (D wurde eingeführt)
T
Abbildung 1.21: SL–Resolutionswiderlegung für α
2
KAPITEL 1. EINFÜHRUNG IN DIE AUSSAGENLOGIK
66
Satz 1.7.16 Sei α ∈ KNF, dann gilt: α ist widerspruchsvoll genau dann, wenn es eine Klausel τ in α gibt, so daß es eine SL– Resolutionsherleitung der leeren Klausel ausgehend von τ gibt. Ist α minimal widerspruchsvoll, d.h. durch Streichen einer Klausel wird α erfüllbar, dann kann eine beliebige Klausel aus α als Startklausel gewählt werden. Beweis: Der Beweis verläuft analog zum Beweis der Korrektheit und der Widerlegungsvollständigkeit der linearen Resolution. Zu beachten ist, daß in Fall 1 sofort bei Einführung des Literals ¬A durch eine Seitenklausel mit der Unit A resolviert werden muß, um eine SL–Resolutionsherleitung zu erhalten. Analog ist im Fall 2 die Herleitung α∗ [L/1](¬L) | SL-Res ¬L an jeder Stelle einzufügen, an der L durch eine Seitenklausel eingeführt wird. Alle Literale ¬L in dieser Herleitung werden mit der letzten Resolvente vor dem Einfügen eliminiert.
1.7.5 Davis–Putnam Resolution Eine weitere Einschränkung der regulären Resolution ist die sogenannte Davis–Putnam Resolution. Dieser Restriktion liegt ebenso wie den in Abschnitt 1.5 vorgestellten Davis–Putnam Algorithmen die Idee zu Grunde, nacheinander für jedes Atom A, das sowohl positiv als auch negativ in einer Formel α vorkommt, alle Vorkommen zu eliminieren, d.h. alle Klauseln mit Vorkommen von A und ¬A werden resolviert und anschließend werden diese Klauseln zugunsten der Resolventen gestrichen. Tautologische Klauseln können dabei unberücksichtigt bleiben. Definition 1.7.17 (Davis–Putnam Resolution) Sei α ∈ KNF mit atoms (α) = {A1 , . . . , Ak }. Eine reguläre Resolutionsherleitung aus α heißt Davis– Putnam Resolutionsherleitung, falls es eine Permutation τ gibt, so daß in der Herleitung die Klauseln so aufeinanderfolgen, daß zu Beginn nur Resolventen über Aτ (1) stehen, gefolgt von Resolventen über Aτ (2) usw. Für Herleitungen, die dieser Anforderung genügen, benutzen wir die Schreibweise |DP-Res . In jedem Pfad eines Davis–Putnam Resolutionsbaumes stimmt dann die Reihenfolge der Atome, über die resolviert wird, (gegebenenfalls mit Auslassungen) mit Aτ (1) , . . . , Aτ (k) überein. Da nach den Resolutionen über das erste Atom A dieses im weiteren nicht mehr berücksichtigt wird, können wir annehmen, daß wir durch alle Resolutionen über A eine Formel erhalten, die nur aus den Resolventen besteht und Klauseln, die von vornherein A nicht enthielten. Wir betrachten die Ausgangsklauseln, die A enthalten, als gelöscht. Ist nach dieser Elimination eines Atoms A eine der Resolventen die leere Klausel, so ist die Ausgangsformel widerspruchsvoll; ansonsten sind die resultierende Formel und die Ausgangsformel erfüllbarkeitsäquivalent, d.h. die Ausgangsformel ist widerspruchsvoll genau dann, wenn die resultierende Formel widerspruchsvoll ist. Da in der resultierenden Formel das Atom A nicht mehr vorkommt, wird später nicht mehr über A resolviert, die Gesamtherleitung ist daher zwangsläufig regulär. Eine Folgerung aus dieser Überlegung ist der folgende Satz. Satz 1.7.18
Die Davis–Putnam Resolution ist korrekt und widerlegungsvollständig für Formeln in KNF.
Mit Hilfe des Vertauschungslemma 1.7.3 für die Resolution können wir aus einer regulären Herleitung auch eine Davis–Putnam Herleitung generieren.
1.7. GRUNDLAGEN DER RESOLUTION
67
Für die Wahl eines geeigneten, d.h. vorteilhaften Atoms A können wir die Heuristiken einsetzen, die auch schon in Abschnitt 1.5 für die Davis–Putnam Algorithmen beschrieben wurden, wenn auch mit umgekehrten Vorzeichen wie etwa maximale Anzahl der Vorkommen eines Atoms. Während bei den Davis–Putnam Algorithmen eine große Anzahl von Vorkommen eines Atoms eine deutliche Reduzierung der Formel bedeuten konnte, steht dieses Merkmal bei der Davis–Putnam Resolution für eine möglicherweise große Anzahl von Resolventen, so daß Atome mit minimaler Anzahl von Vorkommen vorzuziehen sind. Auf die Heuristiken wollen wir hier nicht näher eingehen. Die nachfolgende Funktion DPR realisiert das vorgestellte Verfahren der Davis–Putnam Resolution. Algorithmus 1.10: DPR Input: α ∈ KNF Output: Boolescher Wert für die Erfüllbarkeit function DPR(α : KNF) : boolean; begin if ( es gibt kein Atom, das positiv und negativ vorkommt ) then return(true); wähle ein Atom A aus α, das positiv und negativ vorkommt; S(A) := {(β \ {A}) ∪ (γ \ {¬A}) | β, γ Klauseln in α}; if ∈ S(A) then return(false); α := α ∪ S(A); { entferne in α alle Klauseln mit Atom A }; D(A) := {β | A ∈ β oder ¬A ∈ β}; α := α \ D(A); return (DPR(α)); end;
Entsprechend den zuvor angestellten Überlegungen folgt sofort, daß die Funktion DPR den Wert false liefert, falls die Formel widerspruchsvoll ist, und ansonsten den Wert true.
1.7.6 Input–Resolution Die bisher vorgestellten Restriktionen und Strategien sind korrekt und widerlegungsvollständig für die gesamte Formelklasse KNF. Es gibt jedoch eine ganze Reihe von leistungsfähigen Restriktionen, die zwar im allgemeinen nicht widerlegungsvollständig sind, aber für Teilklassen, wie z.B. die Klasse der Horn– Formeln, ausreichen. Die erste Restriktion, die wir einführen wollen, ist die sogenannte Input–Resolution. Definition 1.7.19 (Input–Resolution) Sei α = {α1 , . . . , αn } ∈ KNF. Eine Resolutionsherleitung π1 , . . . , πm der Klausel π ist eine Input– 1 πi gilt mit Resolutionsherleitung aus α genau dann, wenn für alle 1 ≤ i ≤ m gilt πi ∈ α oder πj1 , πj2 | RES j1 , j2 < i und πj1 ∈ α oder πj2 ∈ α. Beispiel: Sei α = {(¬A ∨ ¬B), (B ∨ ¬D), (A ∨ ¬C), D, C}. Eine Input–Resolutionswiderlegung für α ist im Abbildung 1.22 dargestellt. 2 Da in jedem Resolutionsschritt eine der beteiligten Klauseln aus der zugrunde liegenden Formel stammt, muß die andere Klausel die Resolvente des vorherigen Resolutionsschrittes sein, um einen Herleitungsbaum zu erhalten. Daher ist jede Input–Resolutionsherleitung auch linear. Entsprechend verwenden wir wieder
KAPITEL 1. EINFÜHRUNG IN DIE AUSSAGENLOGIK
68 ¬A ∨ ¬B
e e e
B ∨ ¬D
%
% %
¬A ∨ ¬D
e e e
A ∨ ¬C
% % %
¬C ∨ ¬D
S S S
C
¬D
e e e
D
% % %
Abbildung 1.22: Input–Resolutionswiderlegung für α die Bezeichnungen Verbindungsklauseln und Seitenklauseln. In Input–Resolutionsherleitungen ist jede der Seitenklauseln und natürlich auch die Anfangsklausel in der Ausgangsformel α enthalten. Wie man an der Beispielformel α = {(A ∨ ¬B), (¬A ∨ B), (A ∨ B), (¬A ∨ ¬B)} sieht, ist die Input– Resolution nicht widerlegungsvollständig. O.B.d.A. sei der erste Resolutionsschritt (A ∨ ¬B), (A ∨ 1 A. Dann gibt es für A zwei mögliche Klauseln, und zwar (¬A ∨ B) und (¬A ∨ ¬B). WähB) | RES len wir die erste Klausel, so erhalten wir als nächste Resolvente B. Dafür gibt es wieder nur zwei Klauseln (A ∨ ¬B) und (¬A ∨ ¬B). Durch Verwendung der ersten Klausel erhalten wir wieder A, diese Herleitung brauchen wir daher nicht weiter zu verfolgen. Im anderen Fall ist ¬A das Ergebnis, das wiederum nur mit (A ∨ ¬B) oder (A ∨ B) resolviert werden kann. Damit sind wir in der gleichen Situation wie nach dem ersten Resolutionsschritt. Es treten insgesamt als Resolventen der Input–Resolution nur die Unit–Klauseln A, ¬A, B, ¬B auf, daher wiederholt sich spätestens nach dem fünften Resolutionsschritt die Resolvente. Folgerung 1.7.20 klasse KNF.
Die Input–Resolution ist korrekt, aber nicht widerlegungsvollständig für die Formel-
Da die Input–Resolution nicht widerlegungsvollständig für Formeln in KNF ist, müssen wir allerdings eine noch einfachere Struktur der Formeln verlangen. Wir werden zeigen, daß die Input–Resolution für Horn– Formeln ein ausreichend starker Herleitungsapparat ist. Es sind in der Literatur eine Reihe von Verfeinerungen der Input–Resolution zu finden, obwohl sie, wie auch alle Kombinationen mit weiteren Restriktionen, nicht widerlegungsvollständig für die Klasse KNF sind. Nachfolgend stellen wir eine Auswahl solcher Kombinationen vor. Da die Input–Resolution eine spezielle lineare Resolution ist, liegt es nahe, auch hier die Restriktion „Selected Literal“ zusätzlich zu fordern. Durch Umgruppieren der Resolutionsschritte können wir aus jeder Input–Resolutionsherleitung eine Herleitung erhalten, die gleichzeitig auch eine SL–Resolutionsherleitung ist. Definition 1.7.21 ((SL,Input)–Resolution) Eine (SL,Input)–Resolutionsherleitung ist eine Input–Resolutionsherleitung, die gleichzeitig auch eine SL– Resolutionsherleitung ist. Beispiel: Sei also wieder α = {(¬A ∨ ¬B), (A ∨ ¬C), (B ∨ ¬D), D, C}. Der Herleitungsbaum in Abbildung 1.23 beschreibt eine Widerlegung, die der SL– und der Input–Restriktion genügt. Die Input–Herleitung der leeren Klausel für diese Formel, die im letzten Beispiel gegeben wurde, besaß diese Eigenschaft nicht. 2
1.7. GRUNDLAGEN DER RESOLUTION
69
¬A ∨ ¬B
e e
B ∨ ¬D
%
%
¬A ∨ ¬D
S S
D
¬A
S S
A ∨ ¬C
¬C
S S
S
C
Abbildung 1.23: SL–Input–Resolutionswiderlegung für α Wir können die Input–Resolution auch mit anderen Restriktionen kombinieren, die nicht aus dem Umfeld der linearen Resolution stammen. Wir können beispielsweise verlangen, daß alle Verbindungsklauseln negative Klauseln sind. (Da wir die leere Klausel als negative Klausel auffassen können, kann die Forderung auch in Widerlegungen erfüllt werden.) Diese zusätzliche Restriktion wird sowohl im Beispiel für die Input–Resolution als auch für die (SL,Input)–Resolution erfüllt. Definition 1.7.22 (Input,N)–Resolution Eine (Input,N)–Resolutionsherleitung ist eine Input–Resolutionsherleitung, die gleichzeitig auch eine N– Resolutionsherleitung ist, d.h. alle Verbindungsklauseln und die Startklausel müssen negative Klauseln sein. Diese Bedingung, daß die Verbindungsklauseln negative Klauseln sein müssen, ist sehr restriktiv. Denn es ist nicht mehr möglich, in einer Herleitung eine Klausel mit mehr als einem positiven Literal zu verwenden. In diesem Fall enthielte die Resolvente mindestens ein positives Literal, ist also keine negative Klausel mehr. Alle an einer (Input,N)–Resolutionsherleitung beteiligten Klauseln müssen demnach negativ sein oder dürfen höchstens ein positives Literal enthalten. Diese Klauseln sind gerade Horn–Klauseln, die (Input,N)– Resolution ist daher auch nur sinnvoll für Horn–Formeln. Als Kombination der (SL,Input)– und der (Input,N)–Resolution erhalten wir die SLDS –Resolution, die wir nur noch für die Klasse der Horn–Formeln einführen. Definition 1.7.23 (SLDS –Resolution) Eine SLDS –Resolutionsherleitung aus einer Formel α ∈ HORN ist eine (SL,Input)–Resolutionsherleitung, die gleichzeitig auch eine (Input,N)–Resolutionsherleitung ist. Die Beschränkung der SLDS –Resolution auf Horn–Formeln ist nach der Bemerkung für die (Input,N)– Resolution sinnvoll, da man hiermit nur Widersprüche im Horn–Teil von Formeln zeigen kann. Die Bezeichnung SLD steht für „Selected Literal for Definite Horn–clauses“, da als Seitenklauseln nur definite Horn–Klauseln in Frage kommen. Der Index S kennzeichnet, daß Klauseln als Mengen (Sets) von Literalen aufgefaßt werden. Ein Kennzeichen von Mengen ist, daß kein Element mehrfach in einer Menge auftritt. Im Resolutionskontext bedeutet dies, daß ein Literal in der Regel bei weitem nicht so oft eliminiert werden muß, wie es durch Seitenklauseln in die Resolvente eingegangen ist. Wir verallgemeinern daher das Konzept der Menge zu sogenannten Multimengen. Mit Multimenge bezeichnen wir eine Menge, in der auch doppelte Vorkommen von Elementen erlaubt sind. Beispielsweise
KAPITEL 1. EINFÜHRUNG IN DIE AUSSAGENLOGIK
70
sind {A, B, C, A} und {A, B, C} zwei verschiedene Multimengen, die zur einer Menge transformiert beide {A, B, C} ergeben. Im Gegensatz zu Listen ist in Multimengen die Reihenfolge (der Nennung) der Elemente beliebig. 2 Die Resolutionsoperation läßt sich kanonisch auf Klauseln erweitern, die wir als Multimengen auffassen. So liefert die Resolution für die Klauseln {A, ¬B} und {¬A, ¬B} die Resolvente {¬B, ¬B}. Doppelte Vorkommen dürfen also nicht entfernt werden. Definition 1.7.24 (SLD–Resolution) Eine SLD–Resolutionsherleitung aus einer Horn–Formel ist eine SLDS –Resolutionsherleitung, in der die Klauseln als Multimengen aufgefaßt und verarbeitet werden. Die Verwendung von Multimengen kann natürlich zu einer Erhöhung der Anzahl der Resolutionsschritte führen. Aus einer SLDS –Resolutionsherleitung kann aber eine SLD–Resolutionsherleitung konstruiert werden, da eine Verkürzung der Resolventen zur leeren Klausel letztendlich auf positiven Unit–Klauseln beruht. Diese können natürlich beliebig häufig in einer Widerlegung eingesetzt werden, um Mehrfachvorkommen in Multimengen zu eliminieren. Beispiel: Sei α = {¬A, (A ∨ ¬B ∨ ¬C), (B ∨ ¬C), C}. Abbildung 1.24 zeigt eine SLD– Resolutionswiderlegung fur α. Die zweitletzte Klausel {¬C, ¬C} durfte nicht zu {¬C} vereinfacht werden. {¬A}M
{A, ¬B, ¬C}M
@ @
{¬B, ¬C}M
{B, ¬C}M
@ @
{¬C, ¬C}M
{C}M
@ @
{¬C}M
@ @
{C}M {}M
Abbildung 1.24: SLD–Resolutionswiderlegung für α Wir mußten also mit {C} zweimal resolvieren.
2
Anders als bei Horn–Formeln können wir auch mit der allgemeinen Resolutionsregel allein keinen Beweiskalkül für Formeln in KNF aufbauen, wenn wir die Klauseln als Multimengen auffassen. Dies zeigt bereits der Versuch, aus der Formel α = {{A, B}, {¬A, B}, {A, ¬B}, {¬A, ¬B}} nur mit der Resolution unter Verwendung von Multimengen die leere Klausel herzuleiten. Abgesehen von der Wahl der geeigneten Seitenklauseln bleibt bei der SLD–Resolution noch offen, in welcher Reihenfolge wir die Literale eliminieren wollen. Die SL–Resolution fordert nur, daß zunächst eines der in der letzten Seitenklausel eingeführten Literale als erstes eliminiert wird. Diese Wahlfreiheit ist aufgehoben, wenn wir statt der Multimengen für die Klauseldarstellung nun Listen verwenden. Listen implizieren im Gegensatz zu Mengen eine Ordnung auf ihren Elementen, die durch die 2
Wir können Multimengen als Mengen darstellen, indem wir jedem Element der Multimenge einen Index zuordnen, also Paare aus Element und Index bilden, z.B. {(A, 1), (B, 1), (C, 1), (A, 2)} für die obige Multimenge. Der Index gibt das n–te Vorkommen an. Passende Relationen ∈M , ∪M , ∩M , ⊂M , \M , . . . zur Berücksichtigung dieser Indizes lassen sich einfach definieren.
1.7. GRUNDLAGEN DER RESOLUTION
71
Reihenfolge gegeben ist. Eine Klausel (L1 ∨ . . . ∨ Ln ) ist also als Liste [L1 , . . . , Ln ] gesehen eine (geordnete) Folge von Literalen. Im Gegensatz zur (Multi–)Mengendarstellung unterscheiden sich nun z.B. [L1 , . . . , Ln ] und [Ln , . . . , L1 ] voneinander. Mehrfache Vorkommen von Literalen dürfen in der Listendarstellung natürlich ebenfalls nicht entfernt werden. Für Horn–Formeln fordern wir, daß positive Literale immer am Anfang der Klausellisten stehen, gefolgt von negativen Literalen. Wir legen nun fest, daß eine Resolution nur mit den Literalen am Listenanfang erlaubt ist. Definition 1.7.25 (SLDF –Resolution) Eine SLDF –Resolutionsherleitung aus einer Horn–Formel ist eine SLD–Resolutionsherleitung, in der die Klauseln als Listen aufgefaßt und verarbeitet werden. In jedem Resolutionsschritt tritt das Atom A, über das resolviert wird, als negatives Literal am Anfang der Liste für die Verbindungsklausel [¬A, ¬B1 , . . . , ¬Br ] auf und als positives Literal am Anfang der Liste für die Seitenklausel [A, ¬C1 , . . . , ¬Cs ]. Die Resolventenliste entsteht, indem wir die Restliste der Verbindungsklausel an die Restliste der Seitenklausel anhängen [¬C1 , . . . , ¬Cs , ¬B1 , . . . , ¬Br ]. Der Index F bei der SLDF –Resolution steht für „first literal“. Anstelle des ersten Literals der Verbindungsklausel hätten wir auch das letzte Literal oder eine andere vernünftige Auswahl festlegen können. Die einzige Freiheit besteht bei der SLDF –Resolution nur noch in der Wahl der Seitenklauseln, d.h. der definiten Horn–Klauseln, die mit der negativen Verbindungsklausel resolviert werden. Dies hat aus Sicht der Implementation deutliche Vorteile. Es kann darauf verzichtet werden, mehrfache Vorkommen von Literalen in der Resolvente zu finden. Zur Aufzählung aller möglichen Herleitungen genügt es, z.B. mit einem geeignet gesteuerten Backtracking–Verfahren (Iterative Deepening) alle möglichen Seitenklauseln der Reihe nach durchzuprobieren, es sind aber nicht mehr alle zu irgendeinem Literal der Verbindungsklausel passenden Seitenklauseln zu untersuchen. Da wir im Verfahren so nur eine Schleife haben, erhöht sich die Übersichtlichkeit. Andererseits darf man nicht vergessen, daß diese Einschränkung der Wahlmöglichkeiten mit im allgemeinen längeren Herleitungen „bezahlt“ werden muß. Im Kapitel über die Horn–Logik werden wir noch näher auf die SLDS –, SLD– und die SLDF –Resolution eingehen. An dieser Stelle wollen wir die Besprechung mit dem Beweis der Widerlegungsvollständigkeit für die Klasse der Horn–Formeln beenden. Satz 1.7.26 Jede der folgenden Resolutionsrestriktionen ist korrekt, aber nicht widerlegungsvollständig für Formeln in KNF, jedoch widerlegungsvollständig für Horn–Formeln: 1. Input–Resolution 2. (SL,Input)–Resolution 3. (Input,N)–Resolution 4. SLDS –Resolution 5. SLD–Resolution 6. SLDF –Resolution Beweis: Die Korrektheit jeder der genannten Restriktionen ist offensichtlich. An dem Beispiel α = {(A ∨ B), (¬A ∨ B), (A ∨ ¬B), (¬A ∨ ¬B)} haben wir bereits gezeigt, daß mit Hilfe der Input–Resolution die leere Klausel nicht hergeleitet werden kann, obwohl die Formel widerspruchsvoll
72
KAPITEL 1. EINFÜHRUNG IN DIE AUSSAGENLOGIK
ist. Jede der anderen Restriktionen kann als Input–Resolution aufgefaßt werden oder aus einer entsprechenden Herleitung schnell eine Input–Resolutionsherleitung konstruiert werden. Daher gilt die Aussage auch für diese Restriktionen. Für die Widerlegungsvollständigkeit für Horn–Formeln brauchen wir umgekehrt den Beweis nur für die schärfste Restriktion, die SLDF –Resolution zu führen. Sei α also eine widerspruchsvolle Horn–Formel. Daher muß α mindestens eine positive Unit–Klausel A enthalten. Ohne Beschränkung der Allgemeinheit können wir annehmen, daß α keine weiteren Klauseln der Form (A ∨ β) enthält. Wir zeigen nun durch eine Induktion über die Länge von α, daß es eine SLDF – Resolutionswiderlegung für α gibt. Für die kürzeste widerspruchsvolle Horn–Formel α = {¬A, A} mit |α| = 2 ist eine SLDF –Resolutionsherleitung der leeren Klausel offensichtlich. Sei nun |α| > 2 und α enthalte wieder die Unit–Klausel A, aber keine weiteren Klauseln mit dem Literal A. Wir nehmen weiter an, daß α die Klausel ¬A nicht enthält. Bilden wir nun die Formel α[A/1], so liegt damit eine wiederum widerspruchsvolle Horn–Formel vor, für die nach Induktionsvoraussetzung eine SLDF –Resolutionsherleitung der leeren Klausel existiert. Die Schritte dieser Herleitung können analog in α durchgeführt werden. Tritt dabei in einer Verbindungsklausel als erstes Literal der Liste ¬A auf, so fügen wir einen Resolutionsschritt mit der Unit–Klausel A der Ausgangsformel α ein. Insgesamt erhalten wir so eine SLDF –Resolutionswiderlegung für α.
1.7.7 Unit–Resolution Eine weitere unvollständige Resolutionsrestriktion ist die Unit–Resolution, bei der eine der Elternklausel immer eine Unit–Klausel, d.h. eine aus nur einem Literal bestehende Klausel sein muß. Definition 1.7.27 (Unit–Resolution) Eine Unit–Resolutionsherleitung ist eine Resolutionsherleitung, bei der in jedem Schritt eine der Eltern1 bzw. | U-RES . Für eine Formel klauseln eine Unit–Klausel ist. Als Bezeichnungen verwenden wir |U-RES ∗ Φ ∈ KNF ist der Unit–Resolutionsabschluß von Φ die Menge U Res (Φ) := {π | Φ | U-RES π}. Die Unit–Resolution läßt sich auch ganz analog zur allgemeinen Resolution über eine eingeschränkte Resolutionsregel definieren: L (¬L ∨ α) (Unit-Res) α (L bezeichnet ein Literal, wir können also mit positiven oder negativen Unit–Klauseln resolvieren.) Im Gegensatz zu den linearen Restriktionen handelt es sich hier nicht um eine Einschränkung der Herleitungen, sondern wie bei N–/P–Resolution um eine Restriktion der Resolutionsregel selbst. Ein Unit–Resolutionsschritt bewirkt immer eine Verkürzung einer Elternklausel, so daß jede Resolvente eine Teilklausel einer der Elternklauseln ist. Unit–Resolutionsschritte sind daher auch beliebig vertauschbar, da keine neuen Literale in die Resolventen eingeführt werden. Es gilt für eine Formel α ∈ KNF mit der Unit–Klausel {L1 } ∈ α die logische Äquivalenz α ≈ L1 ∧ α[L1 /1]. Die Streichungen von Literalen ¬L1 aus Klauseln in α sind gerade Unit–Resolutionsschritte. Können wir den Prozeß mit Unit–Klauseln aus den reduzierten Formeln fortsetzen, so erhalten wir schließlich α ≈ L1 ∧ . . . ∧ Lk ∧ α[L1 /1, . . . , Lk /1]. Enthält α[L1 /1, . . . , Lk /1] die leere Klausel, so war α widerspruchsvoll und wir haben eine Unit– Resolutionswiderlegung gefunden. Allerdings treten bei diesem Prozeß zwei Probleme auf. Zum einen können wir zu einer widerspruchsvollen Formel gelangen, die keine Unit–Klausel mehr enthält. Die Formel α = {(A ∨ B), (¬A ∨ B), (A ∨
1.7. GRUNDLAGEN DER RESOLUTION
73
¬B), (¬A ∨ ¬B)} ist ein Beispiel für eine widerspruchsvolle Formel, auf die die Unit–Resolution nicht anwendbar ist. Folgerung 1.7.28 Die Unit–Resolution ist korrekt, aber nicht widerlegungsvollständig für die Formelklasse KNF. In Kapitel 1.8 werden wir zeigen, daß die Unit–Resolution für eine Formel α genau dann zur leeren Klausel führt, wenn α eine Teilformel besitzt, die durch Umbenennung in eine Horn–Formel transformiert werden kann und diese Horn–Formel widerspruchsvoll ist. Für diese Formelklasse, also insbesondere für die Horn–Formeln ist die Unit–Resolution widerlegungsvollständig, d.h. mit der Unit–Resolution kann die leere Klausel erzeugt werden. An dieser Stelle wollen wir die Unit–Resolution mit der Input–Resolution vergleichen. Der folgende Satz aus [Cha 70] zeigt die Äquivalenz der Unit– und der Input–Resolution hinsichtlich widerlegbarer Formeln. Unterschiede finden sich zwischen den beiden Restriktionen zum Beispiel in Bezug auf Herleitbarkeit von Primimplikanten. Näheres dazu werden wir im Kapitel 1.8 besprechen. Satz 1.7.29
Sei α ∈ KNF, dann gilt: α | U-RES ⇐⇒ α | Input-Res
Beweis: Aufgrund der Korrektheit beider Restriktionen erhalten wir für jede Richtung aus der Existenz der entsprechenden Herleitung der leeren Klausel auch, daß die Ausgangsformel widerspruchsvoll ist. Durch Induktion über die Anzahl der Atome in α zeigen wir zunächst die Richtung α |Input-Res =⇒ α | U-RES . Es gelte also α | Input-Res . Enthält α genau ein Atom, so sind A und ¬A Klauseln in α und es gilt A, ¬A |RES . Es handelt sich hierbei sowohl um eine Input– als auch um eine Unit–Resolution. Gelte nun |atoms (α)| > 1. Da die leere Klausel sich im letzten Herleitungsschritt nur aus zwei Unit–Klauseln ergeben kann, gibt es Literale L und ¬L mit α |Input-Res L und ¬L ist Unit–Klausel in α. Wir können ohne Einschränkung davon ausgehen, daß außer in diesem letzten Schritt in der Input– Resolutionswiderlegung nicht über das Literal L resolviert wird. (Ein solcher Schritt kann weggelassen werden und verkürzt die Widerlegung.) Daher kann die Herleitung α |Input-Res L analog in α[L/0] durchgeführt werden und liefert dort die leere Klausel . Nach Induktionsvoraussetzung existiert dann auch eine Unit–Resolutionswiderlegung für α[L/0]. Resolvieren wir nun zuerst die Unit–Klausel ¬L mit allen Klauseln in α mit Literal L, so erhalten wir α | U-RES α[L/0]. Durch Verbinden der Herleitungsteile ergibt sich eine Widerlegung für α, d.h. α | U-RES . Die umgekehrte Richtung α | U-RES =⇒ α | Input-Res zeigen wir ebenfalls mit einer Induktion über die Anzahl der Atome in α. Der Induktionsanfang kann aus der vorherigen Induktion übernommen werden. Gelte nun wieder |atoms (α)| > 1. Aus α | U-RES folgt, daß α mindestens eine Unit–Klausel L enthält. Mit dem Vertauschungslemma 1.7.3 können wir den Herleitungsbaum und damit die Herleitung so umstrukturieren, daß alle Resolutionen über das Literal L nur mit der Klausel L und einer weiteren Klausel aus α an den Blättern des Herleitungsbaumes durchgeführt werden. Resolvieren wir L mit allen Klauseln mit Literal ¬L, so erhalten wir α |Unit-Res α[L/1] und haben, wenn wir die transformierte Herleitung noch entsprechend verkürzen, eine Unit–Resolutionswiderlegung für α[L/1].
KAPITEL 1. EINFÜHRUNG IN DIE AUSSAGENLOGIK
74
Nach Induktionsvoraussetzung folgt α[L/1] |Input-Res . Diese Input–Resolutionswiderlegung kann analog für die Formel α[L/1](¬L) durchgeführt werden, so daß wir sofort α[L/1](¬L) |Input-Res erhalten oder aber α[L/1](¬L) | Input-Res ¬L. In letzterem Fall kann mit einem weiteren Input–Resolutionsschritt mit der Klausel L die Widerlegung beendet werden. Aus der Widerlegungsvollständigkeit der Input–Resolution für Horn–Formeln (Satz 1.7.26) folgt sofort die Widerlegungsvollständigkeit der Unit–Resolution für diese Formelklasse. Korollar 1.7.30
Die Unit–Resolution ist widerlegungsvollständig für die Klasse der Horn–Formeln.
Bereits am Anfang dieses Abschnitts hatten wir mit einer recht groben Abschätzung gezeigt, daß mit der Unit–Resolution in O(|α|2 ) eine Formel α widerlegt werden kann, sofern dies mit der Unit–Resolution überhaupt möglich ist. Aufgrund dieser geringen Komplexität ist die Unit–Resolution ein Verfahren, daß sinnvoll als erster Test eingesetzt werden kann, bevor eine widerlegungsvollständige Restriktion die Erfüllbarkeit entscheidet. Die Frage ist daher, wie schnell sich mit der Unit–Resolution tatsächlich entscheiden läßt, ob eine Horn–Formel widerspruchsvoll ist, bzw. ob es zu einer beliebigen Formel in KNF eine Unit– Resolutionswiderlegung gibt. Die Grundidee für ein solches Verfahren ist recht einfach, und zwar resolvieren wir mit den Unit–Klauseln nacheinander solange, bis die leere Klausel erzeugt worden ist oder keine neue Anwendung mehr möglich ist. Wir nutzen zusätzlich die triviale, aber wichtige Beobachtung aus, daß nach einer Unit–Resolution der Klauseln π = {L1 , . . . , Ln , L} und {¬L} die Elternklausel π durch die Resolvente ersetzt werden kann, da diese eine Teilklausel von π ist. In jeder weiteren Verwendung von π in einer Widerlegung kann stattdessen die Resolvente genutzt und die Widerlegung sogar noch gekürzt werden. Es genügt also, die zu den Unit–Klauseln komplementären Literale in den Klauseln mit mehr als einem Literal zu streichen. Neu auftretende Unit–Klauseln werden anschließend genauso behandelt. Dieser Prozeß wird in einer Schleife maximal so oft durchgeführt, wie die Formel lang ist, endet aber schon vorher bei Auftreten komplementärer Unit–Klauseln oder dann, wenn alle anfangs vorhandenen oder sich ergebende Unit–Klauseln entsprechend zur Formelkürzung eingesetzt worden sind. Um einen Linearzeit–Algorithmus zu erhalten, genügt es also, die entsprechenden Stellen der komplementären Auftreten von Literalen in konstanter Zeit zu finden und zu bearbeiten. Mit einer geeigneten Datenstruktur läßt sich dies erreichen. Wenn wir die Atome in einem Array realisieren und voraussetzen, daß die Atome der Formel durchnumeriert sind (Nummer des Atoms gleich Index im Array), so ist auch das Einlesen in linearer Zeit möglich. (Andernfalls müssen wir für die Suche zur Erkennung eines Namens für ein Atom O(log n) Zeit aufwenden.) Wir werden diesen Algorithmus in Kapitel 1.8 näher eingehen und dort auch den folgenden Satz beweisen. Satz 1.7.31 Für α ∈ KNF ist die Herleitbarkeit der leeren Klausel mit der Unit–Resolution α |Unit-Res in linearer Zeit entscheidbar.
1.7.8 Unit–Preference Strategie Die Unit–Resolution weist gegenüber anderen Restriktionen deutliche Vorteile auf: Resolventen sind Verkürzungen einer Elternklausel und können diese ersetzen, der Zeitaufwand und die Länge der Herleitung sind gering. Leider ist die Unit–Resolution nicht widerlegungsvollständig für die gesamte Klasse KNF.
1.7. GRUNDLAGEN DER RESOLUTION
75
Die Unit–Preference Strategie versucht die Vorteile der Unit–Resolution weitgehend zu erhalten, ohne die Widerlegungsvollständigkeit einzubüßen. Sie nutzt aus, daß es häufig sinnvoll sein kann, zuerst mit kurzen Klauseln, also insbesondere mit Unit–Klauseln zu resolvieren, so daß dadurch umfangreiche Resolventen möglichst lange vermieden werden. Generell ist die Durchführung von Unit–Resolutionsschritten sinnvoll, da hieraus immer eine Vereinfachung der Ausgangsformel resultiert. Es handelt sich bei der Unit–Preference Strategie um eine Ordnungsstrategie, die als Verfeinerung der Stufensättigungsstrategie aufgefaßt werden kann. Die Unit–Preference Strategie, wie sie in [WoCaRo 64] eingeführt worden ist, betrachtet die Klauseln der Ausgangsformel geordnet nach ihrer Länge (d.h. der Anzahl der Literale). Vereinfacht läßt sie sich durch folgende Schritte beschreiben: 1. Führe alle (neuen) Unit–Resolutionen durch, die möglich sind. 2. Ansonsten wähle ein beliebiges, noch nicht benutztes Klauselpaar zur Resolution entsprechend der Stufensättigungsstrategie. 3. Wenn eine neue Unit–Klausel erzeugt worden ist, dann gehe zu Schritt 1, ansonsten gehe zu Schritt 2. Diese Schleife wird so lange ausgeführt, wie noch neue Resolventen generiert werden können oder die leere Klausel als Resolvente auftritt. 3 Wir wollen zunächst auf das schon einmal angesprochene Problem der kürzesten Resolutionsbeweise eingehen, d.h. auf die Frage, welche Widerlegungslängen die Vorgehensweise der Unit–Preference Strategie liefert. Als erstes betrachten wir die reine Unit–Resolution. Wir vergleichen dazu die Länge der kürzesten Unit–Resolutionswiderlegungen und die Länge der kürzesten Resolutionswiderlegungen. Es wird sich zeigen, daß die kürzeste Unit–Resolutionswiderlegung für eine minimale widerspruchsvolle Formel Φ die Länge O(n2 ) haben kann, während die Länge der kürzesten Resolutionswiderlegung von Φ aber nur O(n) ist. Zusätzlich zeigen wir noch, daß dieses Größenverhältnis das beste ist, das wir erreichen können. Satz 1.7.32
Für alle n ≥ 3 gibt es eine Formel Φn , so daß gilt:
1. Φn ist minimal widerspruchsvoll. 2. |Φn | = n2 + 4n + 1 3. Die kürzeste Unit–Resolutionswiderlegung benötigt n2 + 2n Schritte. 4. Die kürzeste Resolutionswiderlegung benötigt 2n + 1 Schritte. Beweis: Für jedes n definieren wir die Formel Φn = {(B1 ∨ . . . ∨ Bn ), (D)}∪ {(¬Bi ∨ A1 ∨ . . . ∨ An ) | 1 ≤ i ≤ n} ∪ {(¬Ai ∨ ¬D) | 1 ≤ i ≤ n} Φn ist offensichtlich widerspruchsvoll. Wenn wir dagegen eine Klausel entfernen, ist die resultierende Formel erfüllbar, d.h. Φn ist auch minimal widerspruchsvoll. Die Länge von Φn ist n+1+n·(n+1)+2n = n2 + 4n + 1. 3 In der Prädikatenlogik ist die Generierung unendlich vieler Resolventen möglich. Daher muß in einer Implementation der Unit–Preference Strategie zur Vermeidung einer Endlosschleife das Programm z.B. bei Erreichen einer bestimmten Stufe in der Stufensättigungsstrategie abgebrochen werden. Hierbei muß auch die Zugehörigkeit der Unit–Klauseln zu den Stufen beachtet werden, da auch die Generierung unendlich vieler Unit–Klauseln möglich ist.
76
KAPITEL 1. EINFÜHRUNG IN DIE AUSSAGENLOGIK
Die Länge der kürzesten Unit–Resolutionswiderlegung ist n2 + 2n, wie man leicht sehen kann. (n Unit– Resolutionen mit D, je n Unit–Resolutionen mit ¬Ai für 1 ≤ i ≤ n und zuletzt n Unit–Resolutionen mit B1 , . . . , Bn .) Die Länge der kürzesten Resolutionswiderlegung ist 2n+1. Dazu resolvieren wir nacheinander die Klauseln (¬Bi ∨ A1 ∨ . . . ∨ An ) für 1 ≤ i ≤ n mit der Klausel (B1 ∨ . . . ∨ Bn ) bzw. der vorherigen Resolvente. Wir erhalten in n Schritten die Klausel (A1 ∨ . . . ∨ An ). Anschließend erreichen wir mit weiteren n + 1 Resolutionsschritten die leere Klausel. Definition 1.7.33 (Minimalität für die Unit–Resolution) Eine Formel Φ ∈ KNF bezeichnen wir als minimal für die Unit–Resolution, falls Φ |U-RES gilt und für jede echte Teilformel Φ∗ ⊂ Φ es keine Unit–Resolutionswiderlegung gibt. Wir zeigen nun, daß solche für die Unit–Resolution minimalen Formeln nur beschränkt kürzere Resolutionswiderlegungen besitzen können. Satz 1.7.34 Sei Φ eine widerspruchsvolle Formel, die minimal für die Unit–Resolution ist und deren kürzeste Unit–Resolutionswiderlegung t Schritte benötigt. Dann benötigt die kürzeste Resolutionswiderlegung √ mindestens t Resolutionsschritte. Beweis: Wir führen den Beweis durch eine Induktion über die Länge der Formel. Für Φ = {A, ¬A} benötigen die Unit–Resolution und auch die unbeschränkte Resolution jeweils einen Schritt. Nehmen wir nun an, daß Φ die Länge t + 1 besitzt. An dieser Stelle verwenden wir im Vorgriff auf das Kapitel der Horn–Formeln den Satz 1.8.18. Dieser Satz besagt, daß jede unerfüllbare und für die Unit– Resolution minimale Formel Φ in eine Horn–Formel umbenannt werden kann. Wir können daher ohne Beschränkung der Allgemeinheit annehmen, daß Φ eine Horn–Formel ist. Da Φ wiederspruchsvoll ist, muß Φ mindestens eine positive Klausel, d.h. als Horn–Formel eine positive Unit–Klausel A enthalten. Da Φ minimal ist, enthält keine weitere Klausel das Literal A. Mit Hilfe der Unit–Resolution können wir daher die wiederum widerspruchsvolle und für die Unit–Resolution minimale Formel Φ[A/1] erzeugen. Da Φ[A/1] auch kürzer als Φ ist, folgt nach Induktionsvoraussetzung: Wenn die kürzeste Unit–Resolutionswiderlegung für Φ[A/1] insgesamt r Schritte benötigt, dann benötigt die kürzeste √ Resolutionswiderlegung mindestens r Schritte. Wir nehmen nun an, daß ¬A in s Klauseln auftritt. Dann benötigt die kürzeste Unit–Resolutionswiderlegung für Φ r + s Schritte, denn im Laufe jeder Unit–Resolutionswiderlegung muß jedes Vorkommen von ¬A einzeln durch eine Unit–Resolution eliminiert werden. Da Φ minimal für die Unit–Resolution ist, sind außerdem alle Klauseln mit Literal ¬A an der Widerlegung beteiligt. Sei qA die Länge der kürzesten Resolutionswiderlegung für Φ[A/1]. Die kürzeste Resolutionswiderlegung für Φ benötigt qA + 1 Schritte, da Φ aufgrund der Minimalität für die Unit–Resolution auch minimal im Hinblick auf die Resolution ist. Hier wird ausgenutzt, daß Φ eine Horn–Formel ist. Dann gilt:
2 + 2qA + 1 ≤ (qA + 1)2 r + s ≤ r + 2qA + 1 ≤ qA
Die erste Ungleichung gilt, da die Anzahl der Resolutionsschritte qA größer oder gleich s − 1 sein muß, da Φ[A/1] mindestens die s Klauseln enthält, die durch Streichung von ¬A entstehen, und alle Klauseln aufgrund der Minimalität von Φ[A/1] bezüglich der Resolution auch an jeder Resolutionsherleitung beteiligt sind.
1.7. GRUNDLAGEN DER RESOLUTION
77
Damit haben wir das gewünschte Ergebnis gezeigt. Für die detailierte Untersuchung der Unit–Preference Strategie führen wir an dieser Stelle die sogenannte k–Resolution ein, bei der die Länge einer der Elternklauseln durch k beschränkt ist. Als Spezialfall erhalten wir als 1–Resolution die Unit–Resolution. Definition 1.7.35 (k–Resolution) Ein k–Resolutionsschritt ist ein Resolutionsschritt mit der Einschränkung, daß eine der Elternklauseln eine k–Klausel ist. Formal heißt das für Klauseln ϕ und ψ 1 ϕ, ψ | k-Res π
⇐⇒
1 ϕ, ψ | RES π und (|ϕ| ≤ k oder |ψ| ≤ k)
1 . Mit | k-Res bezeichnen wir wie üblich die reflexive und transitive Erweiterung von |k-Res
Wir bezeichnen für eine Formel Φ ∈ KNF den k–Resolutionsabschluß von Φ mit k-Res∗ (Φ) := {π | Φ | k-Res π}. Man beachte, daß natürlich alle Klauseln von Φ in k-Res∗ (Φ) enthalten sind. Für jede Widerlegung werden aus k-Res∗ (Φ) nur solche Klauseln benötigt, die maximal jedes Atom einmal enthalten, da längere Klauseln tautologisch sind. D.h. für jede widerspruchsvolle Formel Φ ∈ KNF kann für k > |atoms (Φ)| eine k–Resolutionwiderlegung angegeben werden. Für k = 1 ist, wie gesagt, die k–Resolution gerade die Unit–Resolution. Für k = 2, d.h. eine der Elternklauseln besitzt höchstens zwei Literale, sieht man sofort, daß die 2–Resolution mächtiger als die Unit– Resolution, aber nicht widerlegungsvollständig für Formeln in 3–KNF ist. Offensichtlich ist sogar für jedes k die k–Resolution nicht widerlegungsvollständig für die Klasse KNF. Denn ein einfaches Beispiel für eine mit der k–Resolution nicht widerlegbare Formel ist Φk+1 ∈ k + 1–KNF, die Formel über den Atomen {A1 , . . . , Ak+1 }, die aus allen Klauseln bestehen, die alle diese Atome enthalten. Jede dieser Formeln Φk+1 ist aber widerspruchsvoll, aber die k–Resolution kann nicht angewendet werden, da Φk+1 nur Klauseln der Länge k + 1 besitzt. Eine modifizierte Version der Unit–Preference Strategie basiert auf der sukzessiven Berechnung der k– Resolutionsabschlußmengen. Diese Berechnung erfolgt im nachfolgenden Algorithmus durch die Funktion k–RES, die die Datenstruktur der Ausgangsformel um die mit der k–Resolution herleitbaren Klauseln erweitert. Innerhalb dieser Funktion k–RES kann wieder die Länge der Klauseln und Resolventen bei der Generierung der Resolutionsabschlußmengen berücksichtigt werden; wir wollen hierauf aber nicht näher eingehen, eine Vorgehensweise ist in [WoCaRo 64] beschrieben. Algorithmus 1.11: SHORT–CLAUSES Input: Φ ∈ KNF Output: true, falls Φ erfüllbar und false sonst begin k := 0; while ∈ / Φ or k ≤ |atoms (Φ)| do begin { Level k + 1 } k := k + 1; Φ := k–RES(Φ); end; if ∈ Φ then return(false) else return(true);
KAPITEL 1. EINFÜHRUNG IN DIE AUSSAGENLOGIK
78 end;
Bei der Analyse des Algorithmus stößt man sofort auf die Frage, wie sich der Transformationsalgorithmus T–TRANS–3–KNF, der eine Formeln in KNF in eine erfüllbarkeitsäquivalente Formel in 3–KNF überführt, auf die Widerlegbarkeit mit der k–Resolution auswirkt. Der Algorithmus T–TRANS–3–KNF ersetzt lange Klauseln durch mehrere kurze Klauseln. Dabei wird jede Klausel (L1 ∨ . . . ∨ Ln ) mit n > 3 ersetzt durch die Klauseln (L1 ∨ L2 ∨ P1 ), (¬P1 ∨ L3 ∨ P2 ), . . . , (¬Pn−3 ∨ Ln−1 ∨ Ln ), wobei P1 , . . . , Pn−3 jeweils neue Atome für die Ausgangsformel sind. Dann gilt natürlich für k ≥ 3, daß, falls die ursprüngliche Formel mit der k–Resolution widerlegbar ist, sie auch nach der Transformation in 3–KNF mit der k–Resolution widerlegbar ist. Lemma 1.7.36
Für k ≥ 3 und Φ ∈ KNF gilt: Φ | k-Res
=⇒
T–TRANS–3–KNF(Φ) | k-Res
Umgekehrt gibt es aber Beispiele, für die T–TRANS–3–KNF(Φ) | k-Res gilt, jedoch nicht Φ | k-Res .
1.8. HORN-LOGIK
79
1.8 Horn-Logik Die im folgenden behandelten Formeln, die sogenannten Horn–Formeln, wurden bereits in Kapitel 1.2 eingeführt. Eine Klausel π ist eine Horn–Klausel genau dann, wenn π maximal ein positives Literal enthält. Eine Horn–Formel ist eine Konjunktion von Horn–Klauseln. Die Klasse der Horn–Formeln wird mit HORN bezeichnet. Beispiele für Horn–Klauseln sind (A ∨ ¬B ∨ ¬C) und (¬A ∨ ¬B), A und ¬B. Keine Horn– Klauseln sind dagegen (A ∨ B) und (A ∨ B ∨ ¬C). Der Anteil der Horn–Formeln an allen Formeln in KNF ist zwar relativ gering, trotzdem lassen sich viele Anwendungen als Horn–Formeln darstellen. Wir wollen hier nur kurz auf die Größenverhältnisse eingehen. Betrachten wir Formeln in 3–KNF mit n Klauseln der Länge 3, so gibt es insgesamt M (3n) = A(3n) · 23n Formeln. A(3n) bezeichnet die Anzahl der Verteilungen von bis zu 3n Atomen auf 3n Stellen. 23n drückt die Anzahl der möglichen Verteilungen von Negationen auf 3n Stellen aus. Für Horn–Formeln mit n Klauseln der Länge 3 gibt es ebenso A(3n) Verteilungen von Atomen. Die Anzahl der möglichen Verteilungen von Negationen auf n Klauseln beträgt aber hier nur 4n . Insgesamt erhalten wir als Anzahl der Horn–Formeln H(3n) = A(3n) · 22n . Daraus ergibt sich als Verhältnis H(3n) : M (3n) = 1 : 2n . Eine wichtige Teilklasse der Horn–Formeln sind die sogenannten definiten Horn–Formeln, die ebenfalls in Kapitel 1.2 eingeführt wurden. Eine definite Horn–Klausel ist eine Klausel mit genau einem positiven Literal. Eine Konjunktion von definiten Horn–Klauseln bezeichnen wir als definite Horn–Formel und die Klasse dieser Formeln mit DHORN. Eine definite Horn–Klausel A1 ∨¬A2 . . . ∨¬An läßt sich auch als Implikation A1 ← A2 , . . . , An schreiben. Für Horn–Formeln lassen sich einige einfache, jedoch hilfreiche Aussagen zeigen. Lemma 1.8.1
Für Horn–Formeln gilt:
1. Jede definite Horn–Formel ist erfüllbar. 2. Eine Horn–Formel α ist erfüllbar, falls α keine positive Unit–Klausel enthält. Eine Horn–Formel kann also nur dann widerspruchsvoll sein, falls sie mindestens eine negative Klausel enthält. In einer widerspruchsvollen Horn–Formel gibt es unter den negativen Klauseln immer eine, so daß die Menge der definiten Horn–Klauseln zusammen mit dieser einen negativen Klauseln schon widerspruchsvoll ist. Lemma 1.8.2 Sei α = β ∪ γ eine widerspruchsvolle Horn–Formel, wobei β nur definite Horn–Klauseln und γ nur negative Klauseln enthält, dann gilt: α ist widerspruchsvoll
⇐⇒
∃γ0 ∈ γ : (β ∪ {γ0 } ist widerspruchsvoll)
Beweis: Sei α = β ∪ γ widerspruchsvoll und sei für alle γ0 ∈ γ die Formel β ∪ {γ0 } erfüllbar. Sind A1 , . . . , Am die aus β folgerbaren Atome, d.h. β |= Aj für 1 ≤ j ≤ m, dann gilt atoms (γ0 ) ⊆ {A1 , . . . , Am }. Sei eine Bewertung mit (Aj ) = 1 für 1 ≤ j ≤ m und für alle Atome B ∈ {A1 , . . . , Am } sei (B) = 0. Dann folgt (γ0 ) = 1 für alle γ0 ∈ γ. Andererseits besitzt eine unter dieser Bewertung unerfüllbare Klausel aus β Prämissen nur aus {A1 , . . . , Am }. Damit ist die Konklusion ebenfalls ein folgerbares Atom, im Widerspruch zur Unerfüllbarkeit der Klausel. Also gilt (β) = 1 und daher (α) = 1 im Widerspruch zur Voraussetzung.
80
KAPITEL 1. EINFÜHRUNG IN DIE AUSSAGENLOGIK
Lemma 1.8.3 Die Klassen HORN, DHORN und 2–KNF sind abgeschlossen gegen Deduktion, d.h. sei α ∈ HORN (DHORN, 2–KNF) und π eine nicht tautologische Klausel mit α |= π, dann gibt eine Teilklausel ρ von π, mit α |= ρ und ρ ist Horn–Klausel (definite Horn–Klausel, 2–Klausel). Beweis: Wegen Lemma 1.7.5 wissen wir, daß für jede nicht tautologische Klausel π, die aus einer Formel α ∈ KNF folgt, es eine Teilklausel ρ von π gibt, die mit Hilfe der Resolution aus α erzeugt werden kann. Da die Resolution, angewandt auf Horn–Klauseln (definite Horn–Klauseln, 2–Klauseln), wieder eine Horn– Klausel (definite Horn–Klausel, 2–Klausel) ergibt, folgt sofort die Behauptung, wenn wir die leere Klausel als Horn–Klausel bzw. 2–Klausel auffassen. (Formeln aus DHORN sind immer erfüllbar!) Eine weitere Besonderheit von Horn–Formeln ist die Abgeschlossenheit gegenüber der Durchschnittbildung für erfüllende Bewertungen. Der Durchschnitt zweier Bewertungen 1 und 2 über Atomen A1 , . . . , An ist definiert als ( 1 ∩ 2 )(Ai ) := 1 (Ai ) · 2 (Ai ) für 1 ≤ i ≤ n. Lemma 1.8.4 Sei α eine erfüllbare Horn–Formel mit erfüllenden Bewertungen 1 und 2 , dann ist auch der Durchschnitt dieser Bewertungen ( 1 ∩ 2 ) eine erfüllende Bewertung von α. Beweis: Sei α eine erfüllbare Horn–Formel mit atoms (α) = {A1 , . . . , An } und seien 1 und 2 zwei erfüllende Bewertungen von α. Wir zeigen, daß jede Klausel in α vom Durchschnitt ( 1 ∩ 2 ) erfüllt wird. Ist L eine Unit–Klausel in α, dann gilt 1 (L) = 2 (L) = ( 1 ∩ 2 )(L). Sei nun π = (A0 ∨ ¬A1 ∨ . . . ∨ ¬Ak ) eine definite Horn–Klausel in α. Für 1 (A0 ) = 2 (A0 ) = 1 folgt ( 1 ∩ 2 )(π) = 1. Falls 1 (A0 ) = 2 (A0 ) = 0, dann gibt es ein r und s mit 1 (Ar ) = 2 (As ) = 0. Damit gilt auch ( 1 ∩ 2 )(Ar ) = ( 1 ∩ 2 )(As ) = 0 und daher ( 1 ∩ 2 )(π) = 1. Sei 1 (A0 ) = 1 und 2 (A0 ) = 0, dann gibt es ein r mit 2 (Ar ) = 0. Da ( 1 ∩ 2 )(Ar ) = 0 gilt, folgt sofort ( 1 ∩ 2 )(π) = 1. Sei π = (¬A1 ∨ . . . ∨ ¬At ) eine negative Klausel, dann gibt es r und s mit 1 (¬Ar ) = 1 und 2 (¬As ) = 1. Also gilt ( 1 ∩ 2 )(Ar ) = ( 1 ∩ 2 )(As ) = 0 und damit ( 1 ∩ 2 )(π) = 1. Wir haben also für jeden Klauseltyp gezeigt, daß der Durchschnitt von 1 und 2 die Klausel erfüllt. Also erfüllt ( 1 ∩ 2 ) auch die Formel α.
1.8.1 Umbenennung Zu Beginn des letzten Absatzes hatten wir bereits gesagt, daß der Anteil der Horn–Formeln in der Klasse KNF eher klein ist. Daher existiert natürlich nicht zu jeder Formel in KNF eine äquivalente Horn–Formel, wie schon das Beispiel (A ∨ B) zeigt. Eine Möglichkeit für manche Formeln zwar nicht zu einer logisch äquivalenten Horn–Formel, aber ohne umfangreiche strukturelle Transformationen doch zu einer erfüllbarkeitsäquivalenten Horn–Formel zu gelangen, ist die simultane Ersetzung von Atomen durch die entsprechenden negierten Atome. Wenn wir in der Formel (A ∨ B) das Atom A durch ¬A ersetzen, erhalten wir mit (¬A ∨ B) eine Horn–Klausel. Auf diese Umbenennung, die auch als Renaming bezeichnet wird, wollen wir nun näher eingehen. Definition 1.8.5 (Umbenennung) Sei α eine Formel in KNF, dann heißt eine Funktion f : literals (α) → literals (α) Umbenennung genau dann, wenn für alle L ∈ literals (α) gilt: f (L) ∈ {¬L, L} und f (¬L) ≈ ¬f (L). Die Menge aller Umbenennungen von α bezeichnen wir mit U (α).
1.8. HORN-LOGIK
81
Beispiele: a) Sei α = {(A ∨ B ∨ ¬C), (¬A ∨ ¬C), (B ∨ ¬D)} und f (A) = ¬A, f (B) = ¬B, f (C) = C und f (D) = D, dann erhalten wir mit dieser Umbenennung die Horn–Formel f (α) = {(¬A ∨ ¬B ∨ ¬C), (A ∨ ¬C), (¬B ∨ ¬D)}. b) Für die Formel β = {(A ∨ B ∨ C), (¬A ∨ ¬B ∨ ¬C)} gibt es dagegen keine Umbenennung, die zu einer Horn–Formel führt. 2 Die Existenz einer Umbenennung, die zu einer Horn–Formel führt, kann sogar in linearer Zeit entschieden werden kann. Wir stellen einen Algorithmus vor, der auf den Arbeiten [Asp 80] und [Le 78] basiert. Satz 1.8.6
Die Klasse {α ∈ KNF | ∃f ∈ U (α) : f (α) ∈ HORN} ist in linearer Zeit entscheidbar.
Beweis: Der Beweis beruht im wesentlichen auf einer linearen Transformation, die einer beliebigen Formel α ∈ KNF eine Formel T (α) aus 2–KNF zuordnet, so daß T (α) erfüllbar ist genau dann, wenn es eine Umbenennung f ∈ U (α) mit f (α) ∈ HORN gibt. Jede erfüllende Bewertung für T (α) liefert eine Umbenennung. Da Unit–Klauseln unter allen Umbenennungen Horn–Klauseln bleiben, brauchen sie nicht berücksichtigt zu werden. Wir gehen daher im folgenden von einer Formel α = {α1 , . . . , αm } ∈ KNF aus, die keine Unit–Klauseln enthält. Die Idee besteht nun darin, für jede Klausel zu fordern, daß nach der Umbenennung von je zwei Literalen aus der Klausel mindestems eines negativ sein muß. Es kann dann also höchstens ein positives Literal in jeder Klausel geben. Man kann dies durch eine Formel aus 2–KNF ausdrücken, die alle möglichen Literalpaare jeder Klausel enthält. Eine erfüllende Bewertung für diese Formel bewertet von je zwei Literalen der Klausel mindestens eines positiv und somit höchstens ein Literal negativ. Hieraus kann die Umbenennung abgelesen werden. Allerdings würde bei diesem Vorgehen die Bildung aller Literalpaare zu jeder Klausel bei nicht beschränkten Klausellängen zu einem insgesamt quadratischen Aufwand führen. Man hilft sich hier mit neuen zur Abkürzung eingeführten Atomen, entsprechend dem Vorgehen beim Verfahren T–TRANS–k–KNF. Für jede Klausel αi = (Li,1 ∨ . . . ∨ Li,ki ) führen wir neue Atome Yi,1 , . . . , Yi,ki −1 ein und definieren T (αi ) := {(Li,1 ∨ Yi,1 )} ∪ {(¬Yi,j−1 ∨ Li,j ), (¬Yi,j−1 ∨ Yi,j ), (Li,j ∨ Yi,j )} ∪ 1<j
{(¬Yi,ki −1 ∨ Li,ki )}; T (αi ). T (α) := 1≤i≤m
Als Implikationsgraph stellt sich T (αi ) so dar: ¬Li,3 ... ¬Li,ki ¬Li,2 ↓ ↓ ... ↓ ¬Yi,1 ← ¬Yi,2 ← . . . ← ¬Yi,ki−1 ↓ ↓ ... ↓ Li,2 ... Li,ki−1 Li,1 Offensichtlich gilt T (α) |= Li,j ∨ Li,p für 1 ≤ i ≤ m und 1 ≤ j < p ≤ ki , also für je zwei verschiedene Literale einer Klausel. Denn sei z.B. j < p, dann gilt: (Li,j ∨ Yi,j ), (¬Yi,j ∨ Yi,j+1 ), (¬Yi,j+1 ∨
82
KAPITEL 1. EINFÜHRUNG IN DIE AUSSAGENLOGIK
Yi,j+2 ), . . . , (¬Yi,p−2 ∨Yi,p−1), (¬Yi,p−1 ∨Li,p ) |= (Li,j ∨Li,p ). Somit erhalten wir T (α) |= {(Li,j ∨Li,p ) | 1 ≤ i ≤ m, 1 ≤ j = p ≤ ki } =: S(α). Wir zeigen nun zuerst, daß die Existenz einer Umbenennung f mit f (α) ∈ HORN die Erfüllbarkeit von T (α) impliziert. Sei f ∈ U (α) mit f (α) ∈ HORN gegeben. Wir führen eine partielle erfüllende Bewertung ein, und zwar sei (Li,j ) = 1, falls f (Li,j ) negativ ist, und (Li,j ) = 0 sonst. Offensichtlich gilt für jede Klausel αi , daß für je zwei Literale f (Li,j ) und f (Li,j ) für 1 ≤ j < p ≤ ki mindestens eines der Literale negativ ist und daß maximal ein positives Literal f (Li,t ) mit 1 ≤ t ≤ ki existiert. Damit folgt auch (Li,j ∨ Li,p ) = 1 für alle 1 ≤ j < p ≤ ki . Eine solche Klausel kann unter nur dann den Wert 0 annehmen, wenn beide Literale f (Li,j ) und f (Li,p ) positiv sind. Dies steht aber im Widerspruch zu f (αi ) ∈ HORN. Es bleibt noch zu zeigen, daß aus der Erfüllbarkeit von S(α) unter auch die Erfüllbarkeit von T (α) unter
folgt. Dazu führen wir eine Fallunterscheidung nach der Belegung der Atome unter durch, die man pro Klausel leicht am oben angegebenen Implikationsgraphen von T (αi ) verfolgen kann. Offensichtlich genügt es, der Reihe nach für alle 1 ≤ p ≤ ki den Fall zu betrachten, daß (Li,p ) = 0 und für alle 1 ≤ j < p aber (Li,j ) = 1 gilt. Da (S(α)) = 1 gilt und entsprechende 2–Klauseln in S(α) enthalten sind, folgt (Li,q ) = 1 für alle p < q ≤ ki . Damit erhalten wir die Möglichkeit, die Werte für Yi,1 , . . . , Yi,ki −1 unter festzulegen. Mit
(Yi,j ) := 0 für 1 ≤ j < p und (Yi,q ) := 1 für p ≤ q < ki erhalten wir (T (αi )) = 1. Da die Atome Yi,j mit 1 ≤ j ≤ ki für jede Klausel insgesamt neu gewählt wurden, für je zwei Klauseln also disjunkt sind, haben wir eine zulässige Erweiterung von auf T (α) definiert mit (T (α)) = 1. Im zweiten Schritt zeigen wir nun umgekehrt, wie aus einer erfüllenden Bewertung von T (α) eine Umbenennung f bestimmt werden kann mit f (α) ∈ HORN. Da T (α) erfüllbar ist, muß auch S(α) erfüllbar sein. Für eine erfüllende Bewertung und eine Klausel αi folgt dann ({Li,j ∨ Li,p | 1 ≤ j = p ≤ ki }) = 1 und daher gilt für maximal ein t mit 1 ≤ t ≤ ki die Aussage (Li,t ) = 0. Auf dieser Eigenschaft erfüllender Bewertungen von T (α) beruht die Konstruktion einer Umbenennung. Wir definieren für jedes Atom A ∈ atoms (α) f (A) = ¬A, falls (A) = 1 und f (A) = A sonst. Die Umbenennung impliziert f (αi ) ∈ HORN für jede Klausel αi , denn enthielte f (αi ) zwei positive Literale f (Li,j ) und f (Li,p ) mit 1 ≤ j < p ≤ ki , so wäre die Klausel Li,j ∨ Li,p aus S(α) unter nicht erfüllbar. Betrachten wir die Konstruktion von T (α), so sehen wir, daß die Länge von T (α) linear von der Länge von α abhängt und T (α) in linearer Zeit generiert werden kann. Außerdem ist T (α) eine Formel in 2–KNF. Wir können den Linearzeit–Algorithmus SAT–2–KNF auf T (α) anwenden und erhalten in linearer Zeit, falls T (α) erfüllbar ist, eine erfüllende Bewertung und damit eine Umbenennung f mit f (α) ∈ HORN . Insgesamt erhalten wir einen Linearzeit–Algorithmus, den wir mit UMBENENNUNG bezeichnen. Algorithmus 1.12: UMBENENNUNG Input: α ∈ KNF Output: true und ein f ∈ U (α) mit f (α) ∈ HORN, falls eine Umbenennung existiert, false sonst function UMBENENNUNG(α : KNF) : boolean; begin
1.8. HORN-LOGIK
83
{ Sei α = {α1 , . . . , αn , αn+1 , . . . , αr } mit {αn+1 , . . . , αr } Unit–Klauseln } σ := {α1 , . . . , αn }; β := {αn+1 , . . . , αr }; T (α) := ∅; for i = 1 to n do begin { Sei αi = (Li,1 ∨ . . . ∨ Li,k )} for j = 1 to k − 1 do Yi,j := new-atom(); Ti := {(Li,1 ∨ Yi,1 )} ∪ {(¬Yi,k−1 ∨ Li,k )}; Ti := Ti ∪ 1<j
Eine Reihe von Transformationen erhalten die Eigenschaft, daß eine Umbenennung in eine Horn–Formel existiert. Ein Beispiel dafür ist die Anwendung des Algorithmus T–TRANS–3–KNF aus Abschnitt 1.2, der zu jeder Formel aus KNF eine erfüllbarkeitsäquivalente Formel in 3–KNF erzeugt. Der Beweis verbleibt als Übungsaufgabe. Lemma 1.8.7
Sei α ∈ KNF und β = T–TRANS–3–KNF(α), dann gilt: ∃f0 ∈ U (α) : f0 (α) ∈ HORN
⇐⇒
∃f1 ∈ U (β) : f1 (β) ∈ HORN
Der Beweis des folgenden Satzes zeigt, daß Formeln in 2–KNF für die Umbenennung eine interessante Rolle spielen. Satz 1.8.8
Sei α ∈ 2–KNF.
a) α enthalte keine Unit–Klauseln, dann gilt: ∃f ∈ U (α) : f (α) ∈ HORN =⇒ α ist erfüllbar. b) α ist erfüllbar =⇒ ∃f ∈ U (α) : f (α) ∈ HORN Beweis: Ad a: Enthält eine Horn–Formel keine Unit–Klauseln, dann ist die Formel erfüllbar. Da eine Umbenennung die Erfüllbarkeit erhält, folgt sofort die Behauptung. Ad b: Im ersten Schritt wenden wir den Algorithmus SAT-2-KNF auf α an und erhalten in linearer Zeit eine erfüllende Bewertung . Eine brauchbare Umbenennung ist dann f (A) = ¬A, falls (A) = 1 und f (A) = A sonst.
KAPITEL 1. EINFÜHRUNG IN DIE AUSSAGENLOGIK
84
Sei αi = (L1 ∨ L2 ) eine Klausel in α, dann gilt (L1 ) = 1 oder (L2 ) = 1. O.B.d.A. gelte (L1 ) = 1. Sei L1 = A, dann ist f (L1 ) = ¬L1 . Für L1 = ¬A und wegen (L1 ) = (¬A) = 1 folgt sofort f (L1 ) = f (¬A) = ¬A = L1 . Also ist f (L1 ) ein negiertes Atom. Da wir nur Klauseln mit maximal 2 Literalen betrachten, ist jede Klausel eine Horn–Klausel. Schränkt man die Syntax der Zielformeln einer Umbenennung noch weiter ein, führt dies eventuell zu einem wesentlich komplexeren Problem. Eine mögliche und sinnvolle Zielklasse sind die definiten Horn–Formeln DHORN. Satz 1.8.9
{α ∈ HORN | ∃f ∈ U (α) : f (α) ∈ DHORN} ist NP–vollständig.
Beweis: Das Problem kann mit einem nicht–deterministischen Algorithmus in polynomialer Zeit gelöst werden, indem eine Umbenennung geraten und die Struktureigenschaft überprüft wird. Die Vollständigkeit zeigen wir durch eine Reduktion des 1–3–SAT-Problems, wobei wir an Stelle der positiven Klauseln nur negative Klauseln zulassen. Sei α = {α1 , . . . , αm } mit αi = (¬Ai,1 ∨ ¬Ai,2 ∨ ¬Ai,3 ) und Atomen Ai,j gegeben. Man beachte, daß α eine Horn–Formel ist. Dann gilt: α ∈ 1–3–SAT
⇐⇒
∃f ∈ U (α) : f (α) ∈ DHORN.
Sei α ∈ 1–3–SAT, dann gibt es eine Bewertung , so daß für jedes i mit 1 ≤ i ≤ m genau ein j mit 1 ≤ j ≤ 3 mit (¬Ai,j ) = 1 existiert. Die Umbenennung f ist dann definiert durch f (A) = ¬A, falls
(¬A) = 1 und f (A) = A sonst. Da in jeder Klausel genau ein negiertes Atom durch ein nicht–negiertes Atom ersetzt wird, ist f (α) eine definite Horn–Formel. Sei nun umgekehrt eine Umbenennung f (α) ∈ DHORN gegeben. Dann gibt es zu jeder Klausel αi = (¬Ai,1 ∨ ¬Ai,2 ∨ ¬Ai,3 ) ein negiertes Atom ¬Ai,j , das durch Ai,j ersetzt wird. Die anderen negierten Atome bleiben bestehen. Mit der Definition (¬A) = 1 falls f (A) = ¬A und f (A) = A sonst, erhalten wir eine erfüllende Bewertung, die den Anforderungen genügt. Also liegt α in 1–3–SAT. Als Konsequenz aus dem vorherigen Satz ergibt sich dieses Lemma. Lemma 1.8.10
{α ∈ KNF | ∃f ∈ U (α) : f (α) ∈ DHORN} ist NP–vollständig.
Betrachten wir anstelle der Horn–Formeln oder der KNF–Formeln Ausdrücke in 2–KNF, so ist dagegen sehr schnell feststellbar, ob es eine Umbenennung in eine definite Horn–Formel gibt. Lemma 1.8.11
{α ∈2–KNF | ∃f ∈ U (α) : f (α) ∈ DHORN} ist in linearer Zeit entscheidbar.
Beweis: Wir nutzen wieder den Algorithmus SAT–2–KNF aus, der in linearer Zeit eine Formel aus 2–KNF auf Erfüllbarkeit testet. Zu jeder Formel α = {α1 , . . . , αm } ∈ 2–KNF konstruieren wir eine Formel β ∈ 2–KNF, die genau dann erfüllbar ist, wenn es eine Umbenennung f ∈ U (α) gibt mit f (α) ∈ DHORN. Für αi = (¬A ∨ ¬B) oder (A ∨ B) sei βi := (¬A ↔ B); für αi = (¬A ∨ B) oder (A ∨ ¬B) sei βi := (A ↔ B); für αi = A sei βi = A und für αi = ¬A sei βi = ¬A. Sei nun β erfüllbar mit der Bewertung , dann überführt die Umbenennung f (A) = A, falls (A) = 1, und f (A) = ¬A sonst, die Formel α in eine definite Horn–Formel. Gelte nun umgekehrt, daß es eine Umbenennung f ∈ U (α) mit f (α) ∈ DHORN gibt. Eine erfüllende Bewertung für β erhalten wir mit (A) = 1, falls f (A) = A, und (A) = 0 sonst.
1.8. HORN-LOGIK
85
Insgesamt ergibt sich ein linearer Aufwand, da β in linearer Zeit konstruiert werden kann und eine Formel in 2–KNF in linearer Zeit mit dem Algorithmus SAT–2–KNF auf Erfüllbarkeit überprüft werden kann. Der nachfolgende Algorithmus UMBENENNUNG–2–KNF–DHORN realisiert dieses Verfahren; die Umbenennung f kann in Form einer Markierung der Atom–Knoten der Datenstruktur an das aufrufende Programm zurückgegeben werden. Algorithmus 1.13: UMBENENNUNG–2-KNF–DHORN Input: α = {α1 , . . . , αm } ∈ 2–KNF Output: true und f ∈ U (α) : f (α) ∈ DHORN, falls f existiert und false sonst function UMBENENNUNG–2-KNF–DHORN(α : 2–KNF) : boolean; begin for i = 1 to m do begin if αi = (¬A ∨ ¬B) or αi = (A ∨ B) then βi := (A ∨ B) ∧ (¬A ∨ ¬B); if αi = (¬A ∨ B) or αi = (A ∨ ¬B) then βi := (¬A ∨ B) ∧ (A ∨ ¬B); if αi = A then βi = A; if αi = ¬A then βi = ¬A; end; {β := {β1 , . . . , βm }} if SAT–2–KNF(β) = false then return(false) else begin { (β) = 1} foreach atom A ∈ α do if (A) = 1 then f (A) := A else f (A) := ¬A; return(true); end; end;
Wenn wir schon nicht alle Formeln in KNF durch eine Umbenennung in eine Horn–Formel transformieren können, dann ist es manchmal doch hilfreich, zumindest einen Teil der Klauseln in Horn–Klauseln umzubenennen. Eine mögliche Frage ist, ob von einer Formel in KNF nicht mindestens m Klauseln in eine Horn–Formel umbenannt werden können. Diese Problemstellung bezeichnen wir mit „Partial Renaming HORN“. Problem: Partial Renaming HORN Eingabe: α = {α1 , . . . , αn } ∈ KNF, m ≤ n fest Frage:
Gibt es eine Umbenennung f ∈ U (α), so daß wenigstens m Klauseln αi1 , . . . , αim aus α nach der Umbenennung in HORN sind, d.h. f ({αi1 , . . . , αim }) ∈ HORN
Lemma 1.8.12
Das Problem Partial Renaming HORN ist NP–vollständig.
Beweis: Die NP–Vollständigkeit zeigen wir ebenfals durch eine Reduktion des 1–3–SAT–Problems. Sei α = {(A1,1 ∨ A1,2 ∨ A1,3 ), . . . , (An,1 ∨ An,2 ∨ An,3 )} eine Formel, in der nur positive Literale auftreten. Wir ordnen der Formel α die folgende Formel β zu:
KAPITEL 1. EINFÜHRUNG IN DIE AUSSAGENLOGIK
86 Zu jeder Klausel (Ai,1 ∨ Ai,2 ∨ Ai,3 ) sei
βi := {(Ai,1 ∨ Ai,2 ∨ Ai,3 ), (¬Ai,1 ∨ ¬Ai,2 ), (¬Ai,2 ∨ ¬Ai,3 ), (¬Ai,1 ∨ ¬Ai,3 ), (¬Ai,1 ∨ Ai,2 ∨ Ai,3 ), (Ai,1 ∨ ¬Ai,2 ∨ Ai,3 ), (Ai,1 ∨ Ai,2 ∨ ¬Ai,3 )} und β := β1 ∪ . . . ∪ βn . Wir zeigen nun α ∈ 1–3–SAT ⇐⇒ ∃δ ⊆ β : die Anzahl der Klauseln in δ ist mindestens 5n und es gibt eine Umbenennung f ∈ U (β) mit f (δ) ∈ HORN. Sei α ∈ 1–3–SAT, dann gibt es eine Bewertung , so daß genau ein Atom Ai,j in jeder Klausel für diese Bewertung wahr wird. O.B.d.A. sei für alle i dieses Atom Ai,1 . Wir definieren dann f (A) = ¬A, falls
(A) = 1 und f (A) = A sonst. Mit dieser Umbenennung sind 5 Klauseln aus βi in Horn–Form, und zwar die zweite, dritte, vierte, sechste und siebte Klausel. Nehmen wir nun an, daß eine entsprechende Umbenennung f existiert. Dann gilt für jedes i, daß es genau ein j mit f (Ai,j ) = ¬Ai,j gibt und f (Ai,t ) = Ai,t für t = j. (Wie man leicht sieht erhält man für ein i höchstens vier Horn–Klauseln, wenn nicht genau ein Atom verändert wird.) Die Umbenennung f induziert eine Bewertung , und zwar (Ai,j ) = 1, falls f (Ai,j ) = ¬Ai,j und falsch sonst, für die genau ein Atom pro Klausel in α wahr wird. Damit haben wir α ∈ 1–3–SAT bewiesen. Indem wir die Anzahl der in HORN umbenennbaren Klauseln schrittweise erhöhen, erhalten wir einen NP– Algorithmus für das Problem der Bestimmung einer maximalen nach HORN umbenennbaren Teilformel. Zusammen mit dem in [ChHo 92] gezeigten Resultat, daß dieses Problem NP–hart ist, erhalten wir die NP–Vollständigkeit. Ein zweites Problem, das Auswahlproblem, ist ein weiteres Beispiel für eine Fragestellung, die bereits für Horn–Formeln nicht leicht zu lösen ist. Wir stellen uns vor, eine Formel α (eine Wissensbasis) sei gegeben und ein Anwender kann gewisse Fakten, d.h. positive Unit–Klauseln (als Beschreibung einer Situation) hinzufügen. Dazu sei für jede Eingabe der Vorrat an Fakten festgelegt. Das Problem ist nun festzustellen, ob es Eingabekombinationen gibt, die zu einem Widerspruch führen (Fehlersituation). Formal läßt sich dies folgendermaßen beschreiben. Problem: Auswahl HORN Eingabe: {A1 , B1 }, . . . , {An , Bn } Mengen von Atomen; α ∈ HORN Frage:
∃X1 ∈ {A1 , B1 } . . . ∃Xn ∈ {An , Bn } : α ∪
Lemma 1.8.13
1≤i≤n {Xi }
ist widerspruchsvoll.
Das Problem Auswahl HORN ist NP–vollständig.
Beweis: Das Problem liegt in NP, denn es genügt eine Folge (X1 , . . . , Xn ) zu raten und anschließend in linearer Zeit zu überprüfen, ob α ∪ {X1 , . . . , Xn } widerspruchsvoll ist. Den Beweis der Vollständigkeit führen wir mittels einer Reduktion des 3–SAT–Problems.
Sei α = 1≤i≤n {(Li,1 ∨ Li,2 ∨ Li,3 )} mit Literalen Li,j und den Atomen A1 , . . . , Am gegeben. Dann − + − definieren wir für neue Atome A+ i und Ai die Mengen Mi := {Ai , Ai } und
L∗i,j
:=
A+ falls Li,j = Ak k − Ak falls Li,j = ¬Ak
1.8. HORN-LOGIK
87
Weiterhin legen wir fest β := {L∗i,j → Yi | 1 ≤ j ≤ 3, 1 ≤ i ≤ n} ∪ {Y1 ∧ . . . ∧ Yn → Y + } ∪ {Y1 ∧ . . . ∧ Yn → Y − } ∪ − + − {¬A+ i ∨ ¬Ai | 1 ≤ i ≤ n} ∪ {¬Y ∨ ¬Y }, wobei Y1 , . . . , Yn , Y + , Y − neue Atome sind. Die Formel β ist eine Horn–Formel und es gilt, daß α erfüllbar ist genau dann, wenn eine Auswahl X1 ∈ M1 , . . . , Xn ∈ Mn existiert, so daß β ∪ {X1 , . . . , Xn } widerspruchsvoll ist. Sei α ∈ 3–SAT, dann gibt es eine Bewertung , so daß für jedes i mindestens ein j mit (Li,j ) = 1 existiert. Wir definieren deshalb A+ , falls (Ak ) = 1 k Xk := , falls (Ak ) = 0 A− k Für alle i gibt es also ein j und ein k mit L∗i,j = Xk . Daraus folgt X1 ∧ . . . ∧ Xn ∧ β |= Y1 ∧ . . . ∧ Yn |= Y + ∧ Y − und zusammen mit (¬Y + ∨ ¬Y − ) ein Widerspruch. Umgekehrt gebe es nun Xi ∈ Mi (1 ≤ i ≤ n), so daß X1 ∧ . . . ∧ Xn ∧ β widerspruchsvoll ist. Ohne die Klausel (¬Y + ∨ ¬Y − ) ist die Formel auf jeden Fall erfüllbar. Y + und Y − können nur folgen, wenn Y1 , . . . , Yn folgen. D.h. für jedes i (1 ≤ i ≤ n) folgt ein L∗i,j . Also gibt es ein Xt mit Xt = L∗i,j , wobei − Xt = A+ t oder Xt = At . Definieren wir eine Bewertung mit (At ) = 1, falls Xt = A+ t und falsch sonst, dann gibt es für jede Klausel (Li,1 ∨ Li,2 ∨ Li,3 ) ein Li,j mit (Li,j ) = 1, d.h. α ist erfüllbar. Man kann Umbenennungen auch nutzen, um Formeln in andere Klassen als HORN zu überführen. Betrachten wir beispielsweise die Klasse MAX–2–POS = {Φ ∈ KNF | jede Klausel enthält maximal 2 positive Literale}. Wie man sofort sieht, ist für MAX–2–POS nicht nur das Erfüllbarkeitsproblem NP–vollständig, sondern auch das Problem, ob eine Umbenennung in MAX–2–POS existiert. Problem: Renaming MAX–2–POS Eingabe: Φ ∈ KNF Frage:
Gibt es eine Umbenennung f mit f (Φ) ∈MAX–2–POS?
Lemma 1.8.14
Das Problem Renaming MAX–2–POS ist NP–vollständig.
Beweis: Für den Beweis der NP–Vollständigkeit verwenden wir wieder eine Reduktion des 1–3–SAT Problems. Sei Φ = {ϕ1 , . . . , ϕn } ∈ 3–KNF und jede Klausel enthalte nur positive Literale. Weiterhin sei ψ0 = (A ∨ B ∨ ¬P ) ∧ (A ∨ ¬B ∨ ¬P ) ∧ (¬A ∨ B ∨ ¬P ) ∧ (¬A ∨ ¬B ∨ ¬P ) Dann gilt für alle Umbenennungen f mit f (ψ0 ) ∈ MAX-2–POS, daß f (P ) = P sein muß. Jeder Klausel ϕi = (Ai,1 ∨ Ai,2 ∨ Ai,3 ) ordnen wir die Formel zu ψi = (Ai,1 ∨ Ai,2 ∨ Ai,3 ∨ P ) ∧ (¬Ai,1 ∨ ¬Ai,2 ∨ ¬Ai,3 ) Weiterhin sei Ψ = ψ0 ∧ ψ1 ∧ . . . ∧ ψn . Wir zeigen nun: Φ ∈ 1–3–SAT ⇔ ∃ Umbenennung f mit f (Ψ) ∈ MAX–2–POS.
KAPITEL 1. EINFÜHRUNG IN DIE AUSSAGENLOGIK
88
Gelte Φ ∈1–3–SAT und sei eine Bewertung, die genau ein Literal in jeder Klausel wahr macht. Die Umbenennung f (A) = A, f (B) = B, f (P ) = P und f (Ai,j ) = Ai,j genau dann, wenn (Ai,j ) = 1 liefert offensichtlich f (Ψ) ∈ MAX–2–POS. Gebe es nun umgekehrt eine Umbenennung f mit f (Ψ) ∈ MAX–2–POS. Da f (P ) = P sein muß, wird in den Klauseln (Ai,1 ∨ Ai,2 ∨ Ai,3 ∨ P ) höchstens ein Atom Ai,j unverändert gelassen. Wegen der Klausel (¬Ai,1 ∨ ¬Ai,2 ∨ ¬Ai,3 ) bleibt mindestens ein Literal ¬Ai,j bestehen. Also werden, abgesehen von P , zwei Atome durch f negiert und ein Atom bleibt positiv. Indem wir (Ai,j ) =1 genau dann, wenn f (Ai,j ) = Ai,j festlegen, erhalten wir eine erfüllende Bewertung, die genau ein Atom in jeder Klausel von Φ wahr macht.
1.8.2 Unit–Resolution Eine für Horn–Formeln häufig eingesetzte Resolution ist die sogenannte Unit–Resolution, die wir schon in Abschnitt 1.7.7 vorgestellt haben. Bei der Unit–Resolution muß in jedem Resolutionsschritt eine der Elternklauseln eine Unit–Klausel sein, darf also aus nur einem Literal bestehen. Die Widerlegungsvollständigkeit der Unit–Resolution ist für Horn–Formeln über den Umweg der Input– Resolution schon in Korollar 1.7.30 gezeigt worden. Für Formeln in KNF gilt dies nicht, wie man anhand der folgenden Beispielformel schnell sieht. Beispiel: Sei α = {(A ∨ B, (¬A ∨ B), (A ∨ ¬B), (¬A ∨ ¬B)}, dann ist α widerspruchsvoll, aber die Unit–Resolution ist nicht anwendbar. 2 Die Widerlegungsvollständigkeit der Unit–Resolution läßt sich auch direkt zeigen. Da die Beweismethode auch in anderen Situationen einsetzbar ist, wollen wir sie hier vorstellen. Satz 1.8.15 (Widerlegungsvollständigkeit und Korrektheit der Unit–Resolution für HORN–Formeln) Sei α eine Horn–Formel, dann gilt: α ist widerspruchsvoll
⇐⇒
α | U-RES
Beweis: Die Korrektheit der Unit–Resolution („⇐=“) folgt natürlich aus der Korrektheit der Resolution (Satz 1.7.4). Die Vollständigkeit zeigen wir durch eine Induktion über die Anzahl der Atome der widerspruchsvollen Horn–Formeln. Für den Induktionsanfang n = 1 haben wir nur einen Typ widerspruchsvoller Formeln, nämlich α = {A, ¬A}. Es folgt sofort die Behauptung. Sei nun n > 1 und α eine widerspruchsvolle Horn–Formel mit n Atomen. Dann gibt es eine positive Klausel in α. Diese ist wegen α ∈ HORN eine Unit–Klausel A. Gibt es eine Klausel ¬A in α, dann resolvieren wir mit einem Unit–Resolutionsschritt A und ¬A. Andernfalls resolvieren wir A mit allen Klauseln, die ¬A als Literal enthalten. Die Resolventen zusammen mit allen Klauseln von α, die ¬A nicht enthalten, bilden eine wiederum widerspruchsvolle Horn–Formel und zwar α[A/1]. Mit der Induktionsvoraussetzung erhalten wir α[A/1] | U-RES . Da α | U-RES α[A/1] gilt, erhalten wir insgesamt eine Unit–Resolutionswiderlegung von α. Der Beweis des Satzes zeigt, daß wir beim Versuch, die leere Klausel herzuleiten, keine zusätzliche Klauseln speichern müssen, sondern stets eine der Elternklauseln durch die Resolvente ersetzen können. 1 σ. Dann Bemerkung: Sei α = {α1 , . . . , αn } eine Horn–Formel, L ein Literal und es gelte L, αj | U-RES gilt:
α widerspruchsvoll
⇐⇒
(α \ {αj }) ∪ {σ} widerspruchsvoll.
1.8. HORN-LOGIK
89
Durch einen Unit–Resolutionsschritt mit einer positiven Unit–Klausel wird die Prämissenliste einer Horn– Klausel verkürzt. Dadurch können neue positive Unit–Klauseln abgeleitet werden. Für erfüllbare Horn– Formeln lassen sich mit Hilfe der Unit–Resolution sogar alle folgerbaren positiven Unit–Klauseln erzeugen. Korollar 1.8.16
Sei α ∈ HORN und sei αerfüllbar, dann gilt für jedes Atom A: α |= A
⇐⇒
α | U-RES A
Der Grund hierfür liegt in der Vertauschbarkeit von Resolutionsschritten innerhalb einer Unit– Resolutionsherleitung. Denn es ist sofort klar, daß für eine aus einer Horn–Formel α folgerbare Unit A die Formel α ∧ ¬A widerspruchsvoll ist und daher mit der Unit–Resolution widerlegt werden kann. Intuitiv würde man vielleicht zunächst mit der Unit ¬A resolvieren wollen, wodurch man zwar eine Unit– Resolutionswiderlegung, aber keine Herleitung von A erhalten kann. Der genaue Beweis bleibt den Lesern als Übung überlassen. Für die Ableitung der negativen Literale reicht die Unit–Resolution dagegen nicht aus, wie das Beispiel α = {(A ∨ ¬B), (¬A ∨ ¬B)} zeigt. Denn es gilt α |= ¬B, aber die Unit–Resolution ist nicht anwendbar. Die in Abschnitt 1.7.8 vorgestellte 2–Resolution, bei der eine der Elternklauseln maximal 2 Literale besitzt, hat dagegen diese Eigenschaft. Lemma 1.8.17
Sei α eine erfüllbare Horn–Formel. Für alle Literale L gilt: α |= L
⇐⇒
α | 2-Res L
Beweis: Sei α eine erfüllbare Horn–Formel. Wegen des vorherigen Lemmas genügt es, die Aussage für negative Literale L zu beweisen. Da weiterhin die Resolution und damit auch die 2–Resolution korrekt ist, bleibt also zu zeigen, daß für Atome A die Folgerbarkeit einer negativen Unit α |= ¬A die Ableitbarkeit mit der 2–Resolution impliziert, α | 2-Res ¬A. Wir nutzen aus, daß die Folgerbarkeit eines Literals L nur gegeben sein kann, wenn das entsprechende Atom in atoms (α) enthalten ist. Gelte nun α |= ¬A. Dann ist α ∧ A eine widerspruchsvolle Horn–Formel und es gibt eine Unit– Resolutionswiderlegung α∧A | U-RES . Betrachten wir α[A/1], so folgt ebenfalls α[A/1] | U-RES . Fügen wir nun in α[A/1] die eliminierten Vorkommen von ¬A wieder ein, dann gilt für die resultierende Formel α[A/1](¬A) | 2-Res ¬A. Denn da α erfüllbar ist, muß es Klauseln mit dem Literal ¬A geben und ein Teil hiervon ist notwendig für die Widerlegung α ∧ A |U-RES . Die Formel α[A/1](¬A) ist eine Teilformel von α. Es gilt also α | 2-Res ¬A. Die Widerlegungsvollständigkeit der Unit–Resolution beschränkt sich aber nicht auf die Klasse der Horn– Formeln. Vielmehr kann die Klasse der nach HORN umbenennbaren Formeln durch die Unit–Resolution charakterisiert werden, d.h. eine Formel ist unit–widerlegbar (d.h. mit der Unit–Resolution widerlegbar) genau dann, wenn es in ihr eine widerspruchsvolle Teilformel gibt, die in eine Horn–Formel umbenannt werden kann. Satz 1.8.18
Sei α ∈ KNF, dann gilt: α | U-RES
⇐⇒
∃α ⊆ α ∃f ∈ U (α ) : f (α ) ∈ HORN und f (α ) widerspruchsvoll
90
KAPITEL 1. EINFÜHRUNG IN DIE AUSSAGENLOGIK
Beweis: Es genügt offensichtlich, die Richtung von links nach rechts zu zeigen. Denn eine Unit– Widerlegung bleibt eine Unit–Widerlegung, auch wenn die Umbenennung rückgängig gemacht wird. Gelte α | U-RES und sei α eine minimale Teilmenge der Klauseln aus α, so daß α | U-RES gilt. Durch Induktion über die Anzahl der Atome in α zeigen wir die Behauptung: Besitzt α nur ein Atom, dann ist α = {A, ¬A} und damit eine Horn-Formel. Enthalte α nun n + 1 Atome. Da α unit–widerlegbar ist, enthält α eine Unit–Klausel L. Da α minimal ist, kommt keine weitere Klausel in α vor, die L enthält. Streichen wir in α nun diese Unit–Klausel und alle Vorkommen von ¬L in den übrigen Klauseln, dann gilt für die resultierende Formel α [L/1] | U-RES und α [L/1] ist auch minimal. Mit der Induktionsvoraussetzung gibt es eine Umbenennung f (α [L/1]) ∈ HORN, die wir zu einer Umbenennung für α erweitern können. Ist L positiv, dann sei f (L) = L, ansonsten sei f (L) = ¬L. Für die so erweiterte Umbenennung f gilt f (α ) ∈ HORN. Eine wichtige Frage ist nun, wie schnell wir entscheiden können, ob eine Horn–Formel widerspruchsvoll ist. Ein einfacher Algorithmus für den Test auf Widersprüchlichkeit für Horn–Formeln basiert auf der Anwendung der Unit–Resolution, bis kein Unit–Resolutionschritt mehr durchführbar ist, bzw. bis die leere Klausel erzeugt ist. Angewendet auf Formeln in KNF liefert der Algorithmus EINFACH–UNIT–RES genau dann das Ergebnis falsch, wenn die Formel unit–widerlegbar ist. Angewendet auf Formeln in HORN bezeichnen wir den Algorithmus daher auch mit EINFACH–SAT–HORN. Algorithmus 1.14: EINFACH-UNIT-RES Input: α ∈ KNF ohne tautologische Klauseln und ohne Mehrfachvorkommen von Literalen in einer Klausel Output: false, falls α unit–widerlegbar ist, und true sonst function EINFACH-UNIT-RES(α : KNF) : boolean; begin U := ∅; foreach clause κ ∈ α do if is-unit(κ) then U := U ∪ {κ}; while U = ∅ do begin L := select-element(U ); U := U \ {L}; foreach clause κ ∈ α do if L ∈ κ then delete-clause(κ, α); foreach clause κ ∈ α do if ¬L ∈ κ then begin delete-literal(¬L, κ); { Klausel κ wird in α durch Resolvente von κ und L ersetzt. } if κ = then return(false); if is-unit(κ) then U := U ∪ {κ}; end; end; {while} return(true); end;
Offensichlich ist der Algorithmus korrekt und vollständig, der zeitliche Aufwand ist aber größer als O(n) bzw. O(n log n), wenn in den for–Schleifen zur Bestimmung der zu löschenden oder zu kürzenden Klauseln jeweils die ganze Formel durchsucht werden muß. Durch eine geschickte Wahl der Datenstruktur können wir aber schon beim Einlesen einer Formel in KNF eine Struktur aufbauen, in der die entsprechenden Such-
1.8. HORN-LOGIK
91
prozesse in einem Schritt ausgeführt werden können. Solche Datenstrukturen und die darauf aufbauenden Verfahren werden für Horn–Formeln in [DoGa 84] und [Min 88] angegeben. Hierauf baut das im folgenden vorgestellte Verfahren auf. Eine wichtige Voraussetzung für das Erreichen eines maximal linearen Zeitaufwandes auch beim Einlesen ist, daß die Atome der Formel geordnet vorliegen, d.h. die Atome sind A1 , . . . , Am . Diese Randbedingung ermöglicht uns den Zugriff auf Atome in einem Schritt durch Verwendung eines entsprechenden Arrays. Ansonsten müßten wir parallel eine Symboltabelle aufbauen, deren Konstruktion beim Einlesen der Formel O(n log n) Schritte benötigt. Wir verwenden daher die folgende Datenstruktur. Die Atome werden in einem Arrays von Records dargestellt. Der Indexbereich des Arrays ist 1 . . . m, wobei das i-te Element das Atom Ai repräsentiert. Die Records enthalten ein Statusfeld zur Speicherung der Zustände pos für „als positive Unit ableitbar“, neg für „als negative Unit ableitbar“ und nounit für „nicht als Unit ableitbar“ bzw. „Ableitbarkeit unbekannt“. Weiterhin sind in den Records Verweise auf Vorkommenslisten enthalten, die getrennt nach positiven und negativen Vorkommen auf die Literale verweisen, die zu diesem Atom gehören. Die Literale werden ebenfalls durch Records dargestellt, die das Vorzeichen des Literals, einen Verweis auf das Atom des Literals und einen Verweis auf die Klausel enthalten. Klauseln werden durch Records dargestellt, die die Anzahl der Literale in der Klausel und einen Verweis auf die Liste der Literale enthalten. Klauselrecords und Literalrecord weisen zusätzlich ein Statusfeld auf, das durch entsprechende Belegung anzeigt, ob die Klausel / das Literal noch aktiv ist oder durch Reduzierungen im Algorithmus „gelöscht“ wurde. Als Beispiel ist in Abbildung 1.25 die Repräsentation der Formel (A1 ∨ A2 ) ∧ (A2 ∨ ¬A3 ) ∧ (A3 ) in der Datenstruktur dargestellt. Formel Atomfeld
- • A1 nounit • ◦ A2 nounit • ◦ A3 nounit • • 6 6 6 6 6 ? • active
•
2
•
66
-• •
? ? ? ? active • active • pos
• •
?
••
active 2
•
66
-• ◦
◦
pos
• •
-• •
• •
?
active 1
•
6
-• ◦
? ? ? active • active pos
•◦
•
◦
?
• ◦
neg
• •
-• ◦ ? active pos
• •
?
• ◦
Abbildung 1.25: Spezielle Datenstruktur für Algorithmus UNIT–RES Der folgende Algorithmus UNIT–RES entscheidet in linearer Zeit, ob eine Formel in KNF mit der Unit– Resolution widerlegt werden kann. Zur Vereinfachung setzten wir weiter voraus, daß die Formeln keine
92
KAPITEL 1. EINFÜHRUNG IN DIE AUSSAGENLOGIK
tautologischen Klauseln und keine mehrfachen Literalvorkommen in einer Klausel enthalten. Diese Bedingungen können aber durch ein einfaches Markierungsverfahren in linearer Zeit hergestellt werden. Der Algorithmus stoppt mit dem Ergebnis false, falls die Formel mit der Unit–Resolution widerlegt werden kann, also nicht erfüllbar ist. Wenn der Algorithmus mit Ergebnis true stoppt, wissen wir nur, daß die Formel nicht mit der Unit–Resolution widerlegbar ist. Es ist dann aber nicht bekannt, ob die Formel erfüllbar ist oder nicht. Die mit der Unit–Resolution ableitbaren Units sind in den Records der zugehörigen Atome entsprechend gekennzeichnet. Hierbei ist allerdings zu beachten, daß es positive und negative Units gibt, die aus einer Formel in KNF folgen, aber nicht mit Unit–Resolution abgeleitet werden können. Der Algorithmus verläuft im wesentlichen wie der Algorithmus EINFACH-UNIT-RES und beruht auf folgender Vorgehensweise: Für jede Unit–Klausel der Formel werden alle Vorkommen des entsprechenden Literals mit dem komplementären Vorzeichen gestrichen. Dazu werden die Unit–Klauseln, die zu bearbeiten sind, auf einem Stapel gesammelt und das entsprechende Atom wird mit dem Vorzeichen des Units gekennzeichnet. Ist das Atom schon mit dem gleichen Vorzeichen gekennzeichnet, wurde es schon hergeleitet. Ist es mit dem komplementären Vorzeichen gekennzeichnet, liegt eine widersprüchliche Formel vor. Das Streichen von Literalen einer Klausel wird durch Kennzeichnen des Literals und durch Dekrementieren des Literalzählers der Klausel erreicht. Dazu wird ein direkter Zugriff vom Literal auf die entsprechende Klausel benötigt. Ist der Literalzähler gleich eins, so ist das noch unmarkierte Literal als Unit–Klausel hergeleitet und wird wie oben beschrieben weiterverarbeitet. Ist der Stapel abgearbeitet, ohne daß ein Widerspruch auftrat, ist die Formel nicht mit der Unit–Resolution widerlegbar. Algorithmus 1.15: UNIT-RES Input: α ∈ KNF ohne tautologische Klauseln und ohne Mehrfachvorkommen von Literalen in einer Klausel Output: false, falls α unit–widerlegbar ist, und true sonst
1.8. HORN-LOGIK
93
function UNIT-RES(α : KNF) : boolean; begin { Sammeln der Units der anfänglichen Formel und } { Test auf Vorkommen komplementärer Units } foreach clause κ ∈ α do if is-unit(κ) then begin L := first-active-literal(κ); if state(atom(L)) = nounit then begin state(atom(L)) := sign(L); push(atom(L), stack); end else if state(atom(L)) = sign(L) then return(false); end; { Verarbeitung der Units vom Stapel } while not empty(stack) do begin A := top(stack); pop(stack); if state(A) = pos then delete-literal-list := neg-occ-list(A); else delete-literal-list := pos-occ-list(A); foreach literal L in delete-literal-list do if is-active(L) then begin κ := clause(L); delete-literal(L); if is-unit(κ) then begin L1 := first-active-literal(κ); if state(atom(L1)) = nounit then begin state(atom(L1)) := sign(L1); push(atom(L1), stack); end else if state(atom(L1)) = sign(L1) then return(false); end end; end; return(true); end;
Die Hilfsfunktion first-active-literal durchsucht die Literalliste der angegebenen Klausel nach dem ersten Literal, das nicht als gelöscht markiert ist und gibt dieses zurück. Die Funktion delete-literal setzt die Löschmarke des angegebenen Literals und dekrementiert den Literalzähler im Klauselknoten. Auf diese Weise kann die Funktion is-unit über einen Zugriff auf diesen Zähler
KAPITEL 1. EINFÜHRUNG IN DIE AUSSAGENLOGIK
94
einen entsprechenden Boole’schen Wert liefern, je nachdem ob es sich bei der angegebenen Klausel um eine Unit–Klausel handelt oder nicht. Liefert der Algorithmus UNIT–RES den Wert false zurück, so ist in den Markierungen der Atome ein Teil der ableitbaren Units markiert. Da aber ein Unit–Konflikt aufgetreten ist und die Formel daher widerspruchsvoll ist, sind natürlich alle Units aus literals (atoms (α)) folgerbar. Liefert der Algorithmus UNIT– RES den Wert true zurück, so sind alle mit der Unit–Resolution herleitbaren Units durch entsprechende Markierungen bei den Atomen angegeben. Abschließend können wir zum Platzbedarf der Datenstruktur und zur Laufzeit des Algorithmus noch folgendes feststellen. (Sei wieder m die Anzahl der Atome und n die Länge der Formel.) • Da aus dem Namen Ai direkt die Position des Atoms im Array der Atome bestimmt werden kann, läßt sich die Datenstruktur in O(n) aufbauen. Der Platzbedarf ist ebenfalls linear in n. • Ein Ausgeben der (Ergebnis–)Formel ist ebenfalls in O(n) Zeit möglich. • Jedes Atom wird höchstens einmal auf den Stapel gepackt, danach ist es entsprechend markiert. Beim Verarbeiten der Atome vom Stapel wird jedes Vorkommen eines Atoms über die Vorkommenslisten nur einmal besucht. Der Aufruf der Hilfsfunktion first-active-literal, die die Klausel durchsucht, erfolgt höchstens einmal für jede Klausel und das Aufsammeln der anfänglichen Units auf dem Stapel wird durch einmaliges Durchsuchen der Formel erreicht. Insgesamt ergibt dies eine Laufzeit von O(n) für UNIT–RES. • Falls die Formel nicht mit der Unit–Resolution widerlegbar ist, kann man in linearer Zeit die um die herleitbaren Units reduzierte Formel erhalten. Hierzu werden nur noch die von den Units subsumierten Klauseln gestrichen, was über die entsprechenden Vorkommenslisten der als Unit markierten Atome erfolgen kann. Zusammenfassend erhalten wir nun folgenden Satz. Satz 1.8.19 Der Algorithmus UNIT–RES entscheidet in linearer Zeit, ob eine Formel in KNF mit der Unit–Resolution widerlegt werden kann. Korollar 1.8.20 Das Erfüllbarkeitsproblem für Horn–Formeln ist mit dem Algorithmus UNIT–RES in linearer Zeit entscheidbar.
1.9 Kalküle Das Ziel dieses Abschnittes ist es, Ansätze und Verfahren zu diskutieren, die mit Hilfe von Beweisregeln das Folgerungsproblem und das Tautologieproblem lösen. Die meisten dieser Kalküle lassen sich durch zusätzliche Regeln kanonisch auf die Prädikatenlogik erster Stufe anwenden. Wie wir bereits festgestellt haben, ist das Folgerungsproblem, d.h. die Frage, ob eine Formel aus einer anderen folgt, coNP–vollständig. Im schlechtesten Fall ist also eine superpolynomielle Laufzeit eines deterministischen Algorithmus zu erwarten. Für die Qualität eines Kalküls spielt aber nicht nur die zu erwartende Laufzeit eine Rolle. Eine Reihe von zusätzlichen Anforderungen, die z.B. aus dem Einsatz als Inferenzkomponente in wissensbasierten Systemen stammen können, müssen oftmals ebenso berücksichtigt werden. Ein wichtiger Punkt ist etwa die Nachvollziehbarkeit oder die Erklärungsfähigkeit, d.h. warum ist eine Aussage folgerbar bzw. warum nicht.
1.9. KALKÜLE
95
1.9.1 Frege–Systeme Der Ausgangspunkt von Frege–Systemen ist die Frage, wie wir mit Hilfe von Regelsystemen — ähnlich wie bei Grammatiken für Formale Sprachen — alle tautologischen Formeln erzeugen können oder, wenn wir α |= β überprüfen wollen, durch Anwendungen von Regeln auf α die Formel β generieren können [Fre 79, HiBe34/39]. Wir suchen also nach geeigneten Regelsystemen zur syntaktischen Manipulation von Formeln, die, ausgedrückt in der Terminologie der Formalen Sprachen, eine bestimmte Menge von Formeln als Sprache erzeugt. Es gilt beispielsweise ϕ, ϕ → ψ |= ψ, wenn ϕ und ψ beliebige Formeln sind. Beschreiben wir diesen Sachverhalt in einer Regelform <ϕ, (ϕ → ψ); ψ>, so können wir β, α, (α → (β → γ)) |= γ durch zwei Anwendungen dieser Regel beweisen. Zunächst setzen wir ϕ = α und ψ = β → γ. ϕ und ϕ → ψ sind als Voraussetzungen gegeben, so daß wir ψ erhalten. Setzen wir nun ϕ = β und ψ = γ, dann ergibt sich durch erneute Regelanwendung die Zielformel γ, da ϕ als Voraussetzung und ϕ → ψ als Ergebnis der ersten Regelanwendung benutzt werden kann. Die obige Regel allein reicht nicht aus, um alle logischen Folgerungen auf diese Art zu überprüfen. Das nur aus der beschriebenen Regel bestehende System ist zwar korrekt, aber nicht vollständig. Bevor wir nun näher auf geeignete (d.h. vollständige) Regelmengen eingehen, müssen wir zunächst genauer sagen, was eine Regel ist und was unter einer Regelanwendung zu verstehen ist. Definition 1.9.1 (Frege–Regel) Eine Frege–Regel ist eine sogenannte Inferenzregel <M ; α>, wobei M eine Menge von Formeln und α eine Formel ist, für die gilt M |= α. Fehlt M in der Regel, so wird < ; α> auch als Axiom bezeichnet. Da es sich bei der Menge M der Voraussetzungen einer Frege–Regel immer nur um einzelne Formeln handeln wird, lassen wir der Einfachheit halber bei M die Mengenklammern weg. Beispiele: a) Sei α = (ϕ → (π → ψ)) und β = (π → (ϕ → ψ)), dann ist <α; β> eine Frege–Regel, denn es gilt α |= β. b) Sei M = {α, (α → β)}, dann ist <M ; β> eine Frege–Regel, denn es gilt α, α → β |= β. Diese Regel nennt man Modus Ponens. c) Da M |= α in einer Frege–Regel <M ; α> gilt, muß in einem Axiom die Formel α eine Tautologie sein. Ein Beispiel für ein Axiom ist daher die Regel <; (α → (β → α))>. 2 Bei der Anwendung einer Regel werden die „Formelvariablen“ durch die im konkreten Anwendungsfall benötigten Formeln substituiert. Definition 1.9.2 (Anwendung von Frege–Regeln) Sei R := <M ; α> eine Frege–Regel und sei σ eine beliebige Substitution für die (Formel–)Variablenn {ϕ1 , . . . , ϕn } von M und α. Dann heißt die Formel α[ϕ1 /σ(ϕ1 ), . . . , ϕn /σ(ϕn )] herleitbar aus M [ϕ1 /σ(ϕ1 ), . . . , ϕn /σ(ϕn )] mit der Frege–Regel R. Beispiel: Sei die Frege–Regel <α, (α → β); β> und die Substitution σ = [α/(D ∨ C), β/¬C] gegeben, dann ist σ(β) = ¬C aus σ({α, α → β}) = {(D ∨ C), (D ∨ C) → ¬C} mit dieser Regel herleitbar. 2
KAPITEL 1. EINFÜHRUNG IN DIE AUSSAGENLOGIK
96
Definition 1.9.3 (Herleitung mit Frege–Regeln) Seien α1 , . . . , αn Formeln und F eine Menge von Frege–Regeln, dann ist β in einem Schritt aus α1 , . . . , αn mit Hilfe von F herleitbar, α1 , . . . , αn | F1 β, falls eine Regel <M ; γ> in F und eine Substitution σ existiert, so daß σ(M ) ⊆ {α1 , . . . , αn } und σ(γ) = β gilt. Eine Herleitung von β mit F aus α1 , . . . , αn ist eine Folge γ1 , . . . , γr von Formeln mit γr = β und γi ∈ {α1 , . . . , αn } bzw. γ1 , . . . , γi−1 | F1 γi für 1 ≤ i ≤ r. Wir schreiben dann α1 , . . . , αn | F β. Die Anwendung von Axiomen kann also an beliebiger Stelle in Herleitungen erfolgen. Beispiel: Wir verwenden wieder die Frege–Regel Modus Ponens MP := <α, (α → β); β>. Dann ist π aus den Formeln ϕ, ψ und ϕ → (ψ → π) herleitbar, denn es gilt: ϕ, ϕ → (ψ → π) | R1 ψ → π mit σ1 = [α/ϕ, β/(ψ → π)] ψ, ψ → π | R1 π mit σ2 = [α/ψ, β/π] Auf die Angabe der konkreten Substitutionen werden wir in der Regel verzichten.
2
Definition 1.9.4 (implikationsvollständig, Frege–System) Eine Menge F von Frege–Regeln heißt implikationsvollständig über einer Menge K von Junktoren (logischen Verknüpfungen) genau dann, wenn für alle Formeln α1 , . . . , αn und β, die mit Junktoren aus K gebildet werden können, gilt: α1 , . . . , αn | F β ⇐⇒ α1 , . . . , αn |= β Eine implikationsvollständige Menge F von Frege–Regeln heißt Frege–System über K. Sei z.B. K = {→, ∧} und F 0 bestehe aus der schon mehrfach benutzten Regel R := <α, (α → β); β>. Dann ist F 0 kein Frege–System über K, denn es gilt α ∧ β |= α, aber nicht α ∧ β |F 0 β. Im folgenden wollen wir ein spezielles Beispiel für ein Frege–System über K = {→, ¬, ∨} vorstellen und zwar ein sogenanntes Hilbert–System. Hilbert–Systeme enthalten nur Axiome und den Modus Ponens als einzige Regel, die kein Axiom ist. Die Herleitung von Formeln in solch einem System geschieht also nur mit Hilfe der Axiome, der Substitution von Formelvariablen und durch Anwendung des Modus Ponens. Definition 1.9.5 (Hilbert–Kalkül) Die Frege–Axiome A0 : <; (ϕ → ϕ)> A1 : <; ((ϕ → ψ) → (¬ϕ ∨ ψ))> A2 : <; ((¬ϕ ∨ ψ) → (ϕ → ψ))> A3 : <; ((ϕ ∨ ϕ) → ϕ)> A4 : <; (ϕ → (ϕ ∨ ψ))> A5 : <; ((ϕ ∨ ψ) → (ψ ∨ ϕ))> A6 : <; ((ϕ → ψ) → ((χ → ϕ) → (χ → ψ)))> A7 : <; ((ϕ → (χ → ψ)) → (χ → (ϕ → ψ)))> A8 : <; ((ϕ → ψ) → ((ϕ ∨ χ) → (ψ ∨ χ)))> A9 : <; ((ϕ → ψ) → ((χ ∨ ϕ) → (χ ∨ ψ)))> A10 : <; (¬ϕ → (ϕ → ψ))> A11 : <; ((ϕ → ψ) → (¬ϕ → ¬ψ))> zusammen mit der Frege–Regel MP := <α, (α → β); β> (Modus Ponens) bezeichnen wir als das System Hilbert (oder einfach als Hilbert–Kalkül). Für die Herleitung schreiben wir | Hilbert .
1.9. KALKÜLE
97
Für die Regel Modus Ponens gilt α, α → β |= β und jede der rechten Seiten der Axiome ist eine Tautologie. Bereits für einen Teil der Aussagenlogik, in dem wir als Junktoren nur die Negation und die Implikation zulassen, ist das Vollständigkeitsproblem unendscheidbar, d.h. es ist unentscheidbar, ob eine beliebige aber feste Menge von Axiomen zusammen mit der Regel Modus Ponens ausreichend ist, um alle Tautologien herzuleiten. Ebenso unentscheidbar ist die Frage nach der Unabhängigkeit von Axiomen, d.h. ob ein Axiom aus den anderen Axiomen hergeleitet werden kann. Das Herleiten im Hilbert–Kalkül wollen wir an einem kleinen Beispiel verdeutlichen. Beispiel: Es gilt α → β, β → γ | Hilbert α → γ. Denn (1) (2) (3) (4) (5)
(β → γ) → ((α → β) → (α → γ)) erhalten wir aus Axiom A6 (β → γ) ist als Voraussetzung gegeben
((α → β) → (α → γ)) ergibt sich durch Anwendung der Regel Modus Ponens (α → β) ist ebenfalls als Voraussetzung gegeben (α → γ) ergibt sich durch Anwendung der Regel Modus Ponens 2
Wir haben damit die Regel Kettenschluß bewiesen (KS) KS := <(α → β), (β → γ); (α → γ)> Für die späteren Beweise benötigen wir noch drei weitere Hilfsregeln, die wir anschließend ebenfalls wie Regeln des Kalküls behandeln. Lemma 1.9.6 KS :
Im System Hilbert lassen sich die folgenden Regeln als Hilfsregeln verwenden: <(α → β), (β → γ); (α → γ)> α → β, β → γ | Hilbert α → γ
O1 : <(α → γ), (β → γ); ((α ∨ β) → γ)> α → γ, β → γ | Hilbert (α ∨ β) → γ
N 1 : <α, ¬α; β> α, ¬α | Hilbert β N 2 : <(¬α → α); α> ¬α → α | Hilbert α N 3 : <¬α, ¬β, (α ∨ β); γ> ¬α, ¬β, α ∨ β | Hilbert γ
KAPITEL 1. EINFÜHRUNG IN DIE AUSSAGENLOGIK
98 Beweis:
O1 : (1) (2) (3) (4) (5) (6) (7) (8) (9)
α→γ (α → γ) → (α ∨ β) → (γ ∨ β) (α ∨ β) → (γ ∨ β) β→γ (β → γ) → (γ ∨ β) → (γ ∨ γ) (γ ∨ β) → (γ ∨ γ) (γ ∨ γ) → γ (α ∨ β) → (γ ∨ γ) (α ∨ β) → γ
Voraussetzung A8 MP 1, 2 Voraussetzung A9 MP 4, 5 A3 KS 3, 6 KS 8, 7
N 1 : (1) (2) (3) (4) (5) (6) (7)
¬α → (¬α ∨ β) ¬α ¬α ∨ β (¬α ∨ β) → (α → β) α→β α β
A4 Voraussetzung MP 2, 1 A2 MP 4, 5 Voraussetzung MP 6, 5
N 2 : (1) (2) (3) (4) (5) (6)
¬α → α α→α (¬α ∨ α) → α (α → α) → (¬α ∨ α) (α → α) → α α
Voraussetzung A0 O1 1, 2 A1 KS 4, 3 MP 2, 5
N 3 : (1) (2) (3) (4) (5) (6) (7) (8) (9)
¬α ¬α → (α → γ) α→γ ¬β ¬β → (β → γ) β→γ (α ∨ β) → γ α∨β γ
Voraussetzung A10 MP 1, 2 Voraussetzung A10 MP 4, 5 O1 3, 6 Voraussetzung MP 8, 7
Die Leistungsfähigkeit des Hilbert–Kalküls zeigt der nachfolgende Satz, in dem die Implikationsvollständigkeit des Systems über der Junktorenmenge {→, ¬, ∨} bewiesen wird. Einen Beweis des Satzes findet man beispielsweise in [KBLe 94]. Satz 1.9.7 Sei α eine aussagenlogische Formeln, die mit →, ¬ und ∨ gebildet worden ist, und sei M eine Menge solcher Formeln. Dann gilt: 1. |= α ⇐⇒ | Hilbert α 2. M |= α ⇐⇒ M | Hilbert α Der Satz besagt, daß das Frege–System Hilbert genau die tautologischen Formeln erzeugt. Die Frage ist natürlich, wie lang minimale Herleitungen tautologischer Formeln werden.
1.9. KALKÜLE
99
Da das Tautologieproblem {α | α Tautologie} coNP–vollständig ist, würde eine polynomielle obere Schranke sofort NP = coNP implizieren. Gehen wir von NP = coNP aus, dann muß es eine unendliche Familie von Tautologien geben, deren Herleitung mit dem Hilbert–System superpolynomiell lang werden. Solche Formeln sind aber bis heute nicht bekannt.
1.9.2 Lineare Ungleichungssysteme Da das Erfüllbarkeitsproblem aussagenlogischer Formeln NP–vollständig ist, kann man sich überlegen, ob nicht Heuristiken und Algorithmen, die für andere NP–vollständige Probleme entwickelt worden sind, für die Aussagenlogik adaptiert werden können und welche Querverbindungen zwischen den Ansätzen vorhanden sind. Am Beispiel der linearen Ungleichungssystemen wollen wir dies exemplarisch durchführen. Eine Methode für die Überprüfung einer Formel auf Erfüllbarkeit beruht auf der Zuordnung und Überprüfung von arithmetischen Ausdrücken für die Formel, wobei Formeln in KNF meist klauselweise betrachtet werden. Verzichten wir für die Variablen dieser Gleichungssysteme auf die Bedingung, daß nur die Werte 0 und 1 (natürliche Zahlen) eingesetzt werden dürfen, so entstehen lineare Ungleichungssysteme mit der Eigenschaft, daß die Formel widerspruchsvoll ist genau dann, wenn das lineare Ungleichungssystem keine ganzzahlige Lösung besitzt. Wir führen zunächst lineare Ungleichungssysteme ein und geben Regeln zur Herleitung weiterer Ungleichungen an. Man kann dann zeigen, daß dieser Kalkül zu einer Ungleichung „m ≥ n“ mit m < n, z.B. 1 ≤ 0, führt, falls das Ausgangssystem keine ganzzahlige Lösung besitzt. Die linearen Ungleichungen kann man im Sinne der linearen Algebra als affine Halbräume auffassen. Die ganzzahligen Lösungen der Ausgangsungleichungen liegen im Schnitt der entsprechenden affinen Halbräume. Die begrenzenden Hyperebenen bilden eine konvexe Hülle aller ganzzahligen Lösungen, sie heißen „Cutting Planes“ und haben der Methode und dem Kalkül den Namen gegeben. Die Anwendung der Cutting Planes als Beweissystem für die Aussagenlogik wird in [CCT 87] vorgestellt. Weitere Verfeinerungen sowie eine Übersicht über das Gebiet finden sich in [Hoo 91]. Definition 1.9.8 (Lineares Ungleichungssystem) Ein lineares Ungleichungssystem S mit m Ungleichungen und ganzzahligen Koeffizienten hat die Form
1≤j≤n
aij xj ≥ bi (1 ≤ i ≤ m),
wobei die aij , bi ∈ ZZ für 1 ≤ i ≤ m und 1 ≤ j ≤ n Konstante und die xj mit 1 ≤ j ≤ n Variable sind. S besitzt eine ganzzahlige Lösung, falls es für jede Variable xj Werte in ZZ gibt, so daß jede Ungleichung richtig ist. Für die Transformation linearer Ungleichungen führen wir Regeln ein, die auch als Herleitungsregeln zur Gewinnung neuer Ungleichungen aufgefaßt werden können. 1.) Additionsregel
ai xi ≥ b, ci xi ≥ d (ADD) (ai + ci )xi ≥ b + d
2.) Multiplikationsregel (für c ∈ IN) ai xi ≥ b
cai xi ≥ cb
(M U L)
KAPITEL 1. EINFÜHRUNG IN DIE AUSSAGENLOGIK
100 3.) Divisionsregel Sei d ∈ IN \ {0} mit ai = 0
ai d
∈ ZZ und db = p (p ist kleinste ganze Zahl mit p ≥ b/d) und nicht alle
ai xi ≥ b
ai b d xi ≥ d
(DIV )
(Beachte: Die abgeleitete Ungleichung kann auch in der Form − adi xi ≤ !− db " geschrieben werden.) Für ein lineares Ungleichungssystem S verstehen wir dann unter einer Herleitung einer Ungleichung S aus S eine endliche Folge von linearen Ungleichungen S1 , S2 , . . . , Sn mit Sn = S, so daß jede Ungleichung Si aus S stammt oder durch Anwendung einer der Regeln (ADD), (MUL) oder (DIV) aus Ungleichungen dieser Herleitung mit kleineren Indizes gewonnen wurde. Für solch eine Herleitung schreiben wir kurz S | CP S mit CP als Abkürzung für „Cutting Plane“. Anstelle dieser Einzelregeln kann man auch als einen Schritt die Bildung einer Linearkombination von bereits vorliegenden Ungleichungen zulassen, wobei die resultierenden Koeffizienten der Variablen ganzzahlig sein müssen und das konstante Glied wie in der Regel (DIV) auf die nächste ganze Zahl abgerundet wird. Die Nichtexistenz einer ganzzahligen Lösung eines linearen Ungleichungssystems kann man auf die Herleitung einer widerspruchsvollen Aussage mit den genannten Regeln zurückführen. Satz 1.9.9 Ein lineares Ungleichungssystem S mit ganzzahligen Koeffizienten besitzt keine ganzzahlige Lösung genau dann, wenn S | CP m ≥ n für irgendwelche m, n ∈ ZZ mit m < n gilt. Für den Beweis dieser Aussage verweisen wir auf die Arbeiten [Chv 73] und [CCT 87]. Wir ordnen nun jeder Formel in KNF ein lineares Ungleichungssystem zu. Dazu verwenden wir folgende abkürzende Schreibweise. Für ein Atom X sei E(X) := x, d.h. dem Atom X wird die Variable x zugeordnet. Die Abbildung E wird auf Literale und Klauseln erweitert durch E(¬X) = −x und E(L1 ∨ . . . ∨ Lr ) = ri=1 E(Li ). Außerdem verwenden wir N (κ) als Bezeichnung der Anzahl der negativen Literale in der Klausel κ. Definition 1.9.10 Sei α = {α1 , . . . , αm } eine Formel in KNF mit den Atomen X1 , . . . , Xn , dann ordnen wir α das folgende lineare Ungleichungssystem S(α) zu: (1) (2)
S(αi ) : E(αi ) ≥ 1 − N (αi ) xj ≥ 0, −xj ≥ −1
(1 ≤ i ≤ m) (1 ≤ j ≤ n)
Die Ungleichungen unter (2) beschreiben die Forderung 1 ≥ xj ≥ 0, so daß eine ganzzahlige Lösung des gesamten Gleichungssystems nur Werte aus {0, 1} für alle Variablen liefern kann. Diese Lösungen entsprechen den Wahrheitswerten einer erfüllenden Bewertung. Beispiel: Der Formel α = {(X1 ∨ ¬X2 ∨ ¬X3 ), (¬X1 ∨ ¬X2 ), X2 , X3 } wird also das nachfolgende lineare Ungleichungssystem zugeordnet S(α) :
x1 − x2 − x3 ≥ 1 − 2 = −1 −x1 − x2 ≥ 1 − 2 = −1 x2 ≥ 1 − 0 = 1 x3 ≥ 1 − 0 = 1 x1 ≥ 0, −x1 ≥ −1, x2 ≥ 0, −x2 ≥ −1 x3 ≥ 0, −x3 ≥ −1
1.9. KALKÜLE
101 2
An dem obigen Beispiel wollen wir verdeutlichen, daß die Resolution durch lineare Ungleichungssysteme simuliert werden kann. Beispiel: (Fortsetzung) Durch Anwendung der Resolution auf α können wir die leere Klausel erzeugen. Eine analoge Herleitung von Ungleichungen wird nach jedem Resolutionsschritt angegeben. 1 (¬X3 ∨ ¬X2 ) 1.) (X1 ∨ ¬X2 ∨ ¬X3 ), (¬X1 ∨ ¬X2 ) | RES
(1) (2) (3) (4) (5) (6)
x1 − x2 − x3 ≥ −1 −x1 − x2 ≥ −1 −x3 − 2x2 ≥ −2 −x3 ≥ −1 −2x3 − 2x2 ≥ −3 −x3 − x2 ≥ −1
Vor. Vor. (ADD) (1), (2) Vor. (ADD) (3), (4) (DIV) (5) mit d = 2
1 ¬X3 2.) (¬X3 ∨ ¬X2 ), X2 | RES
(6) (7) (8)
−x3 − x2 ≥ −1 x2 ≥ 1 −x3 ≥ 0
Vor. (ADD) (6), (7)
1 3.) ¬X3 , X3 | RES
(8) −x3 ≥ 0 Vor. (9) x3 ≥ 1 (10) 0 ≥ 1 (ADD) (6), (7) 2 Anstelle der leeren Klausel im Fall der Resolutionswiderlegung führt die Anwendung der Beweisregeln für das lineare Ungleichungssystem zum Widerspruch 0 ≥ 1 und kennzeichnet so, daß keine ganzzahlige Lösung existiert. Die Simulation der Resolution, die wir an dem Beispiel exemplarisch verdeutlicht haben, gilt ganz allgemein. Lemma 1.9.11 (Simulationslemma) Sei π die Resolvente der Klauseln α1 und α2 mit den Atomen X1 , . . . , Xm . Dann gilt ≤n S(α1 ), S(α2 ) | CP S(π), wobei n die Länge der Klauseln α1 und α2 ist. Beweis: Sei α1 = (L1 ∨. . .∨Lk ∨X1 ∨Lk+1 ∨. . .∨Lp ) und α2 = (L1 ∨. . .∨Lk ∨¬X1 ∨Lk+1 ∨. . .∨Lr ) zwei Klauseln über den Atomen X1 , . . . , Xn . Hier bezeichnen L1 , . . . , Lk die in beiden Klauseln gemeinsamen Literale und X1 sei das Atom, über das resolviert wird. Mehrfachvorkommen eines Literals in einer Klausel seien ausgeschlossen. Wir betrachten anschließend nur die Ungleichungen für die Klauseln α1 und α2 und leiten daraus die Ungleichung für π her. Die Nebenungleichungen xi ≥ 0 und −xi ≥ −1 umfassen insbesondere die für die
KAPITEL 1. EINFÜHRUNG IN DIE AUSSAGENLOGIK
102
Resolvente benötigten weiteren Ungleichungen nach (2) der Definition. S(α1 ∧ α2 ) : (1a) (1b) (2)
k
+ pj=k+1 E(Lj ) + x1 ≥ 1 − N (α1 ) + rj=k+1 E(Lj ) − x1 ≥ 1 − N (α2 ) x1 ≥ 0, −x1 ≥ −1, . . . , xn ≥ 0, −xn ≥ −1 E(Lj ) j=1 k j=1 E(Lj )
Dann erhalten wir mit der Regel (ADD) aus (1a) und (1b) (3)
p k 2· j=1 E(Lj ) + j=k+1 E(Lj ) + ≥ 2 − N (α1 ) − N (α2 )
r
j=k+1 E(Lj )
Die Ungleichungen (4) (5)
p E(Lj ) ≥ −N (Lk+1 ∨ . . . ∨ Lp ) j=k+1 r j=k+1 E(Lj )
≥ −N (Lk+1 ∨ . . . ∨ Lr )
erhalten wir aus p– bzw. r–facher Anwendung der Additionsregel auf die passenden Ungleichungen aus (2), d.h. auf E(L) ≥ 0, falls L Atom, und E(L) ≥ −1, falls L negiertes Atom ist. Durch die Addition von (3), (4) und (5) folgt die Ungleichung (6)
p k r 2· j=1 E(Lj ) + j=k+1 E(Lj ) j=k+1 E(Lj ) + ≥ 2 − N (α1 ) − N (α2 ) − N (Lk+1 ∨ . . . ∨ Lp ) − N (Lk+1 ∨ . . . ∨ Lr )
Die rechte Seite formen wir so um, daß wir nur die negativen Literale in π ermitteln müssen: 2 − N (α1 ) − N (α2 ) − N (Lk+1 ∨ . . . ∨ Lp ) − N (Lk+1 ∨ . . . ∨ Lr ) = 2 − 1 − 2(N (L1 ∨ . . . ∨ Lk ) + N (Lk+1 ∨ . . . ∨ Lp ) + N (Lk+1 ∨ . . . ∨ Lr )) = 1 − 2 · N (π) Also können wir die Divisionsregel auf (6) mit d = 2 anwenden und erhalten die Hauptungleichung für die (π) = 12 − N (π). Insgesamt wurden einmal die Regel (DIV), einmal (ADD) zur Klausel π wegen 1−2·N 2 Herleitung von (6), p + r–mal (ADD) zur Herleitung von (4) und (5) und einmal (ADD) zur Herleitung von (3) angewendet. Insgesamt genügen also maximal |α1 ∧ α2 | Regelanwendungen. Mit Hilfe des Simulationslemmas läßt sich sofort der allgemeine Zusammenhang zwischen Erfüllbarkeit von Formeln und Lösbarkeit von linearen Ungleichungssystemen zeigen. Wir nutzen dazu die Widerlegungsvollständigkeit der Resolution und zeigen, daß ein Resolutionsbeweis der Länge n im Kalkül CP durch eine Herleitung der Länge O(n · |α|) simuliert werden kann. Satz 1.9.12
Sei α eine Formel in KNF, dann sind folgende Aussagen äquivalent:
1.) α ist widerspruchsvoll 2.) S(α) | CP 0 ≥ 1 3.) S(α) besitzt keine ganzzahlige Lösung. Beweis: (1 ⇒ 2) Sei α widerspruchsvoll, dann gibt es für ein Atom X aus α eine Resolutionswiderlegung
1.9. KALKÜLE
103
1 . Nach dem Simulationslemma existiert dann eine Herleitung S(α) |CP x ≥ α | RES X, ¬X | RES 1, −x ≥ 0. Mit Hilfe der Additionsregel erhalten wir 0 ≥ 1.
(2 ⇒ 3) Sei S(α) | CP 0 ≥ 1 gegeben. Nehmen wir an, es gebe für S(α) eine ganzzahlige Lösung. Da jede Beweisregel so gestaltet ist, daß jede abgeleitete Ungleichung eine Lösung besitzt, wenn die Ausgangsungleichungen eine Lösung besitzen, folgt sofort ein Widerspruch zu 0 ≥ 1. (3 ⇒ 1) Nehmen wir an, S(α) besitze keine ganzzahlige Lösung und α sei erfüllbar. Sei α = {α1 , . . . , αm }, wobei X1 , . . . , Xn die Atome von α sind, und sei eine erfüllende Bewertung für α. Dann definieren wir 1, falls (Xi ) = 1 xi := 0, falls (Xi ) = 0 Offensichtlich ist jede Ungleichung aus S(α) mit diesen Werten für xi lösbar, denn für αi = (¬Xi1 ∨ . . . ∨ ¬Xiri ∨ Xiri +1 ∨ . . . ∨ Xipi ) wird durch mindestens ein Literal mit dem Wert 1 bewertet. Der i i −xij + pj=r x ≥ 1 − ri unter der Bedingung kleinste Wert für die linke Seite der Ungleichung rj=1 i +1 ij x1 , . . . , xn ∈ {0, 1} ergibt sich, wenn kein Literal in αi mit 1 bewertet wird. Dieser Wert ist dann gerade −ri , so daß bei nur einem mit 1 bewerteten Literal der Wert der linken Seite der Ungleichung 1 − ri ist, diese Ungleichung also von der angegebenen Lösung auch erfüllt wird. Die Nebenungleichungen 0 ≤ xi ≤ 1 sind ebenfalls erfüllt. Also ist das Ungleichungssystem S(α) lösbar. Insgesamt haben wir gezeigt, daß lineare Ungleichungssysteme mit den Beweisregeln ADD, MUL und DIV die Resolution mit einem linearen Mehraufwand simulieren. Das folgende Beispiel zeigt, daß die Nicht–Erfüllbarkeit mancher Formeln durch lineare Ungleichungssysteme mit wesentlich kürzeren Beweisen gezeigt werden kann als durch die Resolution. Die Pigeonhole–Formeln haben die Form ϕn =
(¬Xi,k ∨ ¬Xi,j ) ∧
(1≤i≤n) (1≤k<j≤n+1)
(X1,j ∨ . . . ∨ Xn,j )
(1≤j≤n+1)
Für den Nachweis der Nicht–Erfüllbarkeit der Formeln ϕn gibt es keinen in |ϕn | polynomiell beschränkten Resolutionsbeweis. Im Kalkül CP ist dagegen ein Beweis kubischer Länge möglich [CCT 87]. Lemma 1.9.13 Die Nicht–Erfüllbarkeit der Pigeonhole–Formeln ϕn kann in CP in O(n3 ) Schritten be3) 0 ≥ 1. wiesen werden, d.h. S(ϕn ) |O(n CP Beweis: Das einer Pigeonhole–Formel zugeordnete lineare Ungleichungssystem S(ϕn ) besteht aus drei Gruppen von Ungleichungen (1) (2) (3)
n
i=1 xi,j ≥ 1 −xi,k − xi,l ≥ −1 xi,j ≥ 0, −xi,j ≥ −1
(1 ≤ j ≤ n + 1) (1 ≤ i ≤ n, 1 ≤ k < l ≤ n + 1) (1 ≤ i ≤ n, 1 ≤ j ≤ n + 1)
Hieraus erzeugen wir in quadratisch vielen Schritten die Ungleichungen (4)
n+1 j=1
−xi,j ≥ −1 (1 ≤ i ≤ n)
KAPITEL 1. EINFÜHRUNG IN DIE AUSSAGENLOGIK
104
Durch Induktion über r = 1, . . . , n zeigen wir zunächst, daß die Ungleichungsmengen (5)
M (r) =
j+r
k=j −xi,k ≥ −1 | 1 ≤ j ≤ n + 1 − r, 1 ≤ i ≤ n
r−1 in höchstens 3n(r(n + 1) − s=1 s) vielen Schritten erzeugt werden können. Die Ungleichungen (4) erhalten wir als Spezialfall für j = 1 und r = n + 1.
Die im Induktionsanfang für r = 1 herzuleitenden Ungleichungen −xi,j −xi,j+1 ≥ −1 sind in (2) enthalten, also jeweils mit Herleitungslänge 1 herleitbar. Sei nun r + 1 ≤ n, dann gilt wegen der Induktionsvoraussetzung j+r
−xi,k ≥ −1 und
k=j
j+r+1
−xi,k ≥ −1
k=j+1
Diese Ungleichungen liegen jeweils in M (r). Mit der passenden Ungleichung aus (2) folgt mit zwei Anwendungen von (ADD) j+r
j+r+1
−xi,k +
k=j
−xi,k + (−xi,j − xi,j+r+1 ) ≥ −3
k=j+1
Da jeder Summand auf der linken Seite der Ungleichung zweimal auftritt, erhalten wir durch Anwenden der Divisionsregel (DIV) die gesuchte Ungleichung aus M (r + 1) für dieses i und dieses j. Insgesamt sind für jedes i und jedes j jeweils 3 Regelanwendungen notwendig, um so — ausgehend von M (r) — die Ungleichungen aus M (r + 1) zu bilden. Insgesamt sind also zusätzlich n · (n + 1 − r) · 3 Regelanwendungen vorzunehmen. Wir erhalten also M (r + 1) in höchstens 3n(r(n + 1) −
r−1
s) + 3n(n + 1 − r) = 3n((r + 1)(n + 1) −
r
s)
s=1
l=s
n−1
Schritten. Für j = 1 und r = n sind dann die Ungleichungen von (4) in höchstens 3n(n(n + 1)+ Schritten erzeugbar.
s=1
−s)
Daraus folgt mit zusätzlichen n Anwendungen von (ADD) (6)
n
i=1
n+1 j=1
−xi,j ≥ −n
Andererseits folgt aus (1) mit n + 1 Anwendungen von (ADD) (7)
n+1 n j=1
i=1 xi,j
≥n+1
Mit einer letzten Anwendung der Additionsregel erhalten wir 0 ≥ 1.
Insgesamt haben wir höchstens 3n(n(n + 1) + nj=1 −j) + n + n + 1 + 1 = O(n3 ) Schritte in CP für die Erzeugung von 0 ≥ 1 ausgehend von dem Ungleichungssystem für ϕn benötigt. Das letzte Lemma zusammen mit Theorem 1.9.12 verdeutlicht, daß wir Resolutionsbeweise durch Cutting– Plane Beweise polynomiell simulieren können, es aber wesentlich kürzere Cutting–Plane Beweise geben kann.
Kapitel 2
Einführung in die Prädikatenlogik 2.1 Syntax und Semantik Prädikatenlogische Formeln sind im Gegensatz zur aussagenlogischen Formeln aufgebaut aus gewissermaßen parametrisierten Elementaraussagen. Auch diese können durch die logischen Operationen (Junktoren) verknüpft werden, zusätzlich können über Quantifizierungen Einschränkungen der “Parameter” vorgenommen werden. Zeichenvorrat: 1. Individuenvariablen: x, y, z, . . . , x1 , x2 , . . . 2. Individuenkonstanten: a, b, c, . . . , a1 , a2 , . . . 3. Funktionssymbole beliebiger Stelligkeiten: f, g, h, . . . , f1 , f2 , . . . 4. Prädikatssymbole beliebiger Stelligkeiten: P, Q, R, . . . , P1 , P2 , . . . 5. Junktoren: ∧, ∨, ¬ 6. Quantoren: ∀, ∃ 7. Hilfszeichen: (, ), , (Komma) Die Stelligkeit von Prädikats- und Funktionssymbolen wird bisweilen in Form eines oberen Indexes gekennzeichnet; so bezeichnet f (n) ein n-stelliges Funktionssymbol. Eine Auswahl von Individuenkonstanten, Funktionssymbolen mit festen Stelligkeiten, Prädikatssymbolen mit festen Stelligkeiten, die jeweils auch nur aus endlich vielen Elementen bestehen kann, wird als Signatur Σ bezeichnet. Man kann auf die Individuenkonstanten verzichten, wenn man 0-stellige Funktionszeichen zuläßt. (Eine 0-stellige Funktion hat keine Argumente, von denen der Funktionswert abhängen könnte; er ist daher konstant.) Läßt man 0-stellige Prädikatensymbole zu, so ist die Aussagenlogik unmittelbar eine Teilmenge der Prädikatenlogik. Mit Hilfe der Individuenvariablen, der Individuenkonstanten und der Funktionssymbole werden nun induktiv die Terme definiert, mit denen die Prädikate parametrisiert werden können.
105
106
KAPITEL 2. EINFÜHRUNG IN DIE PRÄDIKATENLOGIK
Definition 2.1.1 (Terme) Die Klasse der Terme wird induktiv definiert durch die folgenden vier Schritte. (1) Jede Individuenvariable ist ein Term. (2) Jede Individuenkonstante ist ein Term. (3) Sind t1 , . . . , tn Terme und f eine n-stellige Funktion, so ist auch f (t1 , . . . , tn ) ein Term. (4) Nur mit (1) – (3) gebildete Ausdrücke sind Terme. Man kann die Klasse der Terme auch einschränken durch eine gegebene Signatur und eine Menge von Variablen. TΣ (V ) bezeichnet die Klasse der Terme die mit Individuenkonstanten und Funktionssymbolen der Signatur Σ und Variablen aus der Variablenmenge V gebildet werden können. Aufbauend auf der Klasse der Terme wird — ebenfalls induktiv — die Klasse der prädikatenlogischen Formeln definiert. Definition 2.1.2 (Prädikatenlogische Formeln) Die Klasse der prädikatenlogischen Formeln wird induktiv definiert durch die folgenden fünf Schritte. (1) Sind t1 , . . . , tn Terme und P eine n-stelliges Prädikatssymbol, so ist P (t1 , . . . , tn ) eine Formel. (2) Ist α eine Formel, so ist auch (¬α) eine Formel. (3) Falls α und β Formeln sind, so sind auch (α ∧ β) und (α ∨ β) Formeln. (4) Falls α eine Formel ist und x eine Individuenvariable, so sind auch (∀xα) und (∃xα) Formeln. (5) Nur mit (1) – (4) gebildete Ausdrücke sind Formeln. Auch prädikatenlogische Formeln werden häufig auch als (prädikatenlogische) Ausdrücke bezeichnet; die nach (1) der vorstehenden Definition gebildeten atomaren Formeln heißen auch Primformeln. Jede prädikatenlogische Formel besitzt eine eindeutige Zerlegung: Sie ist entweder ein Atom, eine Negation, eine Konjunktion, eine Disjunktion oder eine existenz- bzw. allquantifizierte Formel. Die Quantoren beziehen sich nur auf Individuenvariablen. Es können also nur Aussagen über Existenz von Objekten bzw. universelle Aussagen gemacht werden. Wir sprechen daher von der Prädikatenlogik erster Stufe. Im Gegensatz dazu verfügt die Prädikatenlogik zweiter Stufe auch über Funktions- und Prädikatsvariablen, über die quantifiziert werden darf. Man kann dort Aussagen über z.B. die Existenz einer injektiven Abbildung machen. Da wir hier nur erststufige Formeln betrachten, sprechen wir statt von der Prädikatenlogik erster Stufe nur von der Prädikatenlogik, da keine Mißverständnisse zu befürchten sind. Werden in einer Formel nur die Individuenkonstanten, Funktionssymbole und Prädikatensymbole einer vorgegebenen Signatur Σ verwendet, so sprechen wir von Formeln über Σ. Umgekehrt induzieren die in einer Formel vorkommenden Symbole eine Signatur. Analog zur Aussagenlogik führen wir die Implikation (α → β) als eine Abkürzung für ((¬α) ∨ β) ein. Ebenfalls als Abkürzung verwenden wir wieder die Äquivalenz (α ↔ β) für ((α → β) ∧ (β → α)).
2.1. SYNTAX UND SEMANTIK
107
Zur Klammereinsparung ist es wieder sinnvoll, Bindungsregeln festzulegen. Bindungsregeln: 1.) ∀, ∃ und ¬ binden stärker als ∧. 2.) ∧ bindet stärker als ∨. 3.) Binäre Operatoren gleicher Stärke werden als links geklammert angesehen. Dabei ist zu beachten, daß in (4) der Definition der Formeln die Klammerung quantifizierter Formeln auch den Bindungsbereich der Variablen kennzeichnen. So ist es sinnvoll, in einer Formel ∀xP (x) ∨ Q(x) trotz Bindungsregeln die Klammerung (∀xP (x)) ∨ Q(x) beizubehalten, um Mißverständnissen vorzubeugen. Wie in der Aussagenlogik bezeichnen wir negierte und nicht-negierte Primformeln als Literale. Eine nichtnegierte Primformel P (t1 , . . . , tn ) heißt auch positives Literal und ¬P (t1 , . . . , tn ) negatives Literal. Für die späteren Definitionen ist es sinnvoll, unterscheiden zu können, ob Variablen im Bindungsbereich eines Quantors in einer Formel vorkommen oder nicht. Wir führen daher die Begriffe gebundene und freie Variable ein. Definition 2.1.3 (Gebundene / freie Variablen) Für Terme t und Formeln α der Prädikatenlogik definieren wir die Mengen vars (t) bzw. vars (α) der Variablen, freevars(α) der freien Variablen und boundvars(α) der gebundenen Variablen von t bzw. α induktiv durch: (1) Ist t eine Individuenvariable, t = x, so ist vars (t) = {x}. (2) Ist t eine Individuenkonstante, t = a, so ist vars (t) = ∅. (3) Ist t = f (t1 , . . . , tn ) mit Termen t1 , . . . , tn so ist vars (t) =
n
i=1 vars (ti ).
(4) Ist α = P (t1 , . . . , tn ) mit Termen t1 , . . . , tn , so ist vars (α) = freevars(α) = boundvars(α) = ∅. (5) Ist α = ¬β mit einer Formel β, so ist vars (α) = vars (β), freevars(α) = freevars(β) und boundvars(α) = boundvars(β). (6) Falls α = β ∧ γ oder α = β ∨ γ mit Formeln β und γ, so ist vars (α) = vars (β) ∪ vars (β), freevars(α) = freevars(β) ∪ freevars(β) und boundvars(α) = boundvars(β) ∪ boundvars(β). (7) Falls α = ∀xβ oder α = ∃xβ mit einer Formel β und einer Individuenvariablen x, so ist vars (α) = vars (β) ∪ {x}, freevars(α) = freevars(β) \ {x} und boundvars(α) = boundvars(β) ∪ {x}. Aufgrund der Schachtelung von Strukturen in den Termen können wir die Längendefinition über die Atomvorkommen in der Prädikatenlogik nicht verwenden. Als Längenmaß kann allerdings die Gesamtzahl aller Vorkommen von Variablen, Konstanten, Funktionen und Prädikaten verwendet werden. Eine Formel
KAPITEL 2. EINFÜHRUNG IN DIE PRÄDIKATENLOGIK
108
∀x∃y(P (f (x, x), y) ∨ ¬Q(x)) hat danach die Länge 9. Auf eine formale Definition des Längenmaßes verzichten wir hier, wollen aber dennoch bemerken, daß Schachtelungen von Negationen und die Längen der Bezeichner bei diesem Längenmaß genau wie in der Aussagenlogik unberücksichtigt bleiben. Definition 2.1.4 (Interpretation) Eine Interpretation ist ein nicht leerer Grundbereich ω zusammen mit einer Abbildung der Individuenvariablen, Individuenkonstanten, Funktionskonstanten und Prädikatskonstanten einer (durch eine Formel α induzierten) Signatur Σ und einer Variablenmenge V auf entsprechende Objekte (gleicher Stelligkeit) über dem Grundbereich ω:
: ω = ∅ f (n) #→ fω : ω n → ω x #→ xω ∈ ω .. .. . . P (n) #→ Pω ⊆ ω n .. .
a #→ aω ∈ ω .. .
Die Abbildung der Variablen und Konstanten auf Elemente von ω läßt sich induktiv erweitern zu einer ebenfalls mit bezeichneten Interpretation der Terme in TΣ (V ) durch Elemente von ω:
(f (t1 , . . . , tn ) = (f )( (t1 ), . . . , (tn )) Den Formeln können dann Wahrheitswerte zugewiesen werden durch eine auf der Interpretation der Terme basierende Funktion, die wieder mit bezeichnet wird: (1) (P (t1 , . . . , tn )) = 1 gdw. Pω ( (t1 ), . . . , (tn )) gilt. (2) (¬α) = 1 gdw. (α) = 0. (3) (α ∧ β) = 1 gdw. (α) = 1 und (β) = 1.
(α ∨ β) = 1 gdw. (α) = 1 oder (β) = 1. (4) (∀xα) = 1 gdw. für jedes xω ∈ ω gilt [x/xω ] (α) = 1
(∃xα) = 1 gdw. es ein xω ∈ ω gibt mit [x/xω ] (α) = 1. Dabei bezeichnet [x/xω ] die Interpretation, die mit völlig übereinstimmt bis auf die Zuweisung eines Wertes an die Variable x, die unter den Wert (x), unter [x/xω ] jedoch den Wert xω erhält. Für eine Formel α müssen zwei Interpretationen, die auf den in α vorkommenden Symbolen gleich sind, auch den gleichen Wahrheitswert liefern. Wie in der Aussagenlogik kann man daher auch in der Prädikatenlogik ein Koinzidenzlemma zeigen. Lemma 2.1.5 (Koinzidenzlemma) Seien 1 und 2 zwei Interpretationen für eine prädikatenlogische Formel α, Σα die von α induzierte Signatur. Stimmen 1 und 2 auf Σα und freevars(α) überein, so gilt 1 (α) = 2 (α) Die Anzahl der möglichen Interpretationen ist trotz dieses Koinzidenzlemmas nicht auf eine endliche Anzahl beschränkbar. Daher lassen sich Formeln der Prädikatenlogik nicht durch systematisches Testen der Interpretationen entscheiden. Beispiel: Sei α = ∀x∃yP (x, y) ∧ ∀z(P (z, z) → P (z, f (z))) ∧ ¬P (a, a). Dann ist durch mit
: ω = {1, 2} a #→ 1
f (1) P (2)
#→ fω : ω → ω fω (1) = 2, fω (2) = 1 #→ Pω = {(1, 2), (2, 1)}
2.1. SYNTAX UND SEMANTIK
109
Offensichtlich gilt für diese Interpretation:
=⇒ =⇒ =⇒
Für alle xω ∈ {1, 2} gibt es ein yω ∈ {1, 2} mit (xω , yω ) ∈ Pω . Für alle xω ∈ {1, 2} gibt es ein yω ∈ {1, 2} [x/xω ][y/yω ] (P (x, y)) = 1. Für alle xω ∈ {1, 2} gilt [x/xω ] (∃yP (x, y)) = 1.
(∀x∃yP (x, y)) = 1
Weiter gilt für : =⇒ =⇒
Für alle zω ∈ {1, 2} gilt mit (zω , zω ) ∈ Pω auch (zω , fω (zω )) ∈ Pω . Für alle zω ∈ {1, 2} gilt [z/zω ] (P (z, z) → P (z, f (z))) = 1.
(∀z(P (z, z) → P (z, f (z)))) = 1
Da auch noch (1, 1) ∈ Pω gilt, folgt insgesamt (α) = 1, diese Interpretation erfüllt also die prädikatenlogische Formel α. 2 Analog zur entsprechenden Definition in der Aussagenlogik können mit Hilfe der Interpretationen die Begriffe erfüllbar und widerspruchsvoll sowie der semantische Folgerungsbegriff definiert werden. Definition 2.1.6 (erfüllbar, widerspruchsvoll, Tautologie) Eine prädikatenlogische Formel α heißt erfüllbar genau dann, wenn es eine Interpretation mit (α) = 1 gibt. α heißt falsifizierbar genau dann, wenn es eine Interpretation mit (α) = 0 gibt. α heißt widerspruchsvoll genau dann, wenn für alle Interpretationen (α) = 0 gilt. α ist eine Tautologie genau dann, wenn für alle Interpretationen (α) = 1 gilt. Statt „α ist eine Tautologie“ verwendet man auch die Sprechweise „α ist (allgemein–)gültig“. Offensichtlich besteht wieder der folgende Zusammenhang zwischen den Begriffen. Für eine prädikatenlogische Formel α gilt: ⇐⇒
α ist widerspruchsvoll ¬α ist Tautologie
⇐⇒ ⇐⇒
α ist nicht erfüllbar ¬α ist nicht falsifizierbar
Definition 2.1.7 (Semantischer Folgerungsbegriff) Seien α und β Formeln, dann folgt β (semantisch) aus α (α |= β) genau dann, wenn für alle Bewertungen
gilt:
(α) = 1 =⇒ (β) = 1 Eine Formel β folgt also semantisch aus einer Formel α, wenn β in jedem Kontext wahr ist, in dem auch α wahr ist. Wir erweitern den Folgerungsbegriff wieder durch α1 , . . . , αn |= β bzw. F |= β mit einer Formelmenge F, wenn β gilt unter der Voraussetzung, daß alle α1 , . . . , αn bzw. alle Formeln aus F gelten. Die Schreibweise |= α ist damit äquivalent zu „α ist Tautologie“. Wie in der Aussagenlogik kann die Folgerung α |= β überprüft werden, indem wir (α∧¬β) auf Widerspruch testen. Lemma 2.1.8
Sei α eine aussagenlogische Formel, dann gilt:
a) α |= β ⇐⇒ (α ∧ ¬β) ist widerspruchsvoll. b) α ist widerspruchsvoll ⇐⇒ Für alle Formeln β gilt: α |= β c) α ist widerspruchsvoll ⇐⇒ Es gibt eine Formel β mit : α |= (β ∧ ¬β)
KAPITEL 2. EINFÜHRUNG IN DIE PRÄDIKATENLOGIK
110
Für den Folgerungsbegriff in der Prädikatenlogik läßt sich auch ein Deduktionstheorem beweisen. Lemma 2.1.9 (Deduktionstheorem für |=) Seien α und β prädikatenlogische Formeln und M eine Menge solcher Formeln, dann gilt: M ∪ {α} |= β
=⇒
M |= (α → β)
Auch zwei prädikatenlogische Formeln α und β heißen (logisch) äquivalent, abgekürzt α ≈ β, genau dann, wenn für jede Bewertung gilt: (α) = (β), d.h. wenn gilt |= α ↔ β. Die Manipulation prädikatenlogischer Formeln durch die Ersetzung von Vorkommen von Teilformeln durch andere logisch äquivalente Formeln ist ebenfalls möglich. Das Resultat einer solchen Ersetzung ist logisch äquivalent zur Ausgangsformel. Diese Ersetzungen dürfen nicht verwechselt werden mit den später noch zu definierenden Ersetzungen von Variablen durch Terme. Dort sind Restriktionen aus den Bindungsbereichen der Quantoren zu beachten. Die aus der Aussagenlogik bekannten Vererbungsregeln und Umformungsgesetze gelten auch hier, sowie einige zusätzliche, die die Quantifikationen berücksichtigen. α ≈ β =⇒ ¬α ≈ ¬β α ≈ β =⇒ γ ∧ α ≈ γ ∧ β und γ ∨ α ≈ γ ∨ β α ≈ β =⇒ ∃xα ≈ ∃xβ und ∀xα ≈ ∀xβ Negation ¬¬α ≈ α Idempotenz α∨α ≈ α α∧α ≈ α Kommutativität α∨β ≈β ∨α α∧β ≈β ∧α Assoziativität (α ∨ β) ∨ σ ≈ α ∨ (β ∨ σ) (α ∧ β) ∧ σ ≈ α ∧ (β ∧ σ) Distributivität (α ∧ β) ∨ σ ≈ (α ∨ σ) ∧ (β ∨ σ) (α ∨ β) ∧ σ ≈ (α ∧ σ) ∨ (β ∧ σ) De Morgan ¬(α ∧ β) ≈ ¬α ∨ ¬β ¬(α ∨ β) ≈ ¬α ∧ ¬β Quantorwechsel ¬(∃xα) ≈ ∀x(¬α) und ¬(∀xα) ≈ ∃x(¬α) Quantortausch ∃x∃yα ≈ ∃y∃xα und ∀x∀yα ≈ ∀y∀xα Quantorzusammenfassung ∃xα ∨ ∃xβ ≈ ∃x(α ∨ β) und ∀xα ∧ ∀xβ ≈ ∀x(α ∧ β) Quantorelimination (x ∈ freevars(α)) ∃xα ≈ α und ∀xα ≈ α Quantifizierung (x ∈ freevars(β)) ∃xα ∧ β ≈ ∃x(α ∧ β) und ∃xα ∨ β ≈ ∃x(α ∨ β) ∀xα ∧ β ≈ ∀x(α ∧ β) und ∀xα ∨ β ≈ ∀x(α ∨ β) Vererbung
2.2. NORMALFORMEN
111
Umbenennung (x ∈ vars (α)) ∃xα ≈ ∃x α[x/x ] und ∀xα ≈ ∀x α[x/x ] α[x/x ] bezeichnet die Ersetzung aller Vorkommen von x durch x .
Eine weitere Abschwächung des Äquivalenzbegriffes ist die sogenannte Erfüllbarkeitsäquivalenz. Sie verbindet zwei Formeln nur in Bezug auf ihre Erfüllbarkeit. Definition 2.1.10
(Erfüllbarkeitsäquivalenz) sat
Zwei Formeln α und β heißen erfüllbarkeitsäquivalent, abgekürzt α ≈ β, genau dann, wenn gilt: α ist erfüllbar
⇐⇒
β ist erfüllbar
Also sind auch alle erfüllbaren prädikatenlogischen Formeln erfüllbarkeitsäquivalent und auch alle widerspruchsvollen prädikatenlogischen Formeln.
2.2 Normalformen 2.2.1 Pränexe Normalform (PNF) Die im vorhergehenden Abschnitt genannten äquivalenzerhaltenden Umformungen erlauben unmittelbar die Transformation auch von prädikatenlogischen Formeln in die Negationsnormalform. Die Negationsnormalform (NNF) für prädikatenlogische Formeln erlaubt wie in der Aussagenlogik Negationszeichen nur direkt vor einer Primformel und keine zwei Negationszeichen direkt hintereinander. Lemma 2.2.1 Zu jeder prädikatenlogischen Formel α gibt es eine äquivalente Formel in Negationsnormalform (NNF). Die auch in der Negationsnormalform noch fast überall möglichen Quantoren ist die unmittelbare Anwendung von Distributivgesetzen für logisches Und und Oder meist nicht zulässig. Die Transformationsregeln für Quantoren erlauben aber die Bildung einer logisch äquivalenten pränexen Form, d.h. einer Formel, die zunächst ein Präfix aus Quantoren und dann einen quantorfreien Kern aufweist, Q1 x1 . . . Qn xn α mit Qi ∈ {∀, ∃} für 1 ≤ i ≤ n und boundvars(α) = ∅. Ist der Kern zusätzliche noch in Konjunktiver Normalform (KNF), so nennen wir diese Formelgestalt pränexe Normalform (PNF). Allerdings ist zu berücksichtigen, daß folgende Äquivalenzen nicht bestehen: ∃xα ∧ ∃xβ ≈ ∃x(α ∧ β) ∀xα ∨ ∀xβ ≈ ∀x(α ∨ β) Dies verifiziert man leicht durch α = P (x) und β = ¬P (x) mit der Interpretation “x ist gerade” für P (x) über dem Grundbereich der ganzen Zahlen. Zusätzlich sind bei den Äquivalenzen aus dem letzten Abschnitt die Bedingungen x ∈ freevars(β) für das Vorziehen der Quantifizierung zu berücksichtigen. Ein Ausweg aus diesem Dilemma ist das Umbenennen der gebundenen Variablen durch neue Variablen, die bisher nicht in der Formel vorkommen. Vermeidet man dann noch Quantorzusammenfassungen, so gelangt man zu einer logisch äquivalenten pränexen Form.
KAPITEL 2. EINFÜHRUNG IN DIE PRÄDIKATENLOGIK
112
Die Transformationsregeln erlauben folgendes Vorgehen: 1. Benenne durch Verwendung von neuen Variablen alle quantifizierten Variablen so um, daß verschiedene Quantoren sich auf verschiedene Variablen beziehen und keine quantifizierte Variable auch frei vorkommt. 2. Führe die folgenden Ersetzungsregeln solange aus, wie sie anwendbar sind. a) b) c) d) e) f)
Ersetze Ersetze Ersetze Ersetze Ersetze Ersetze
(∀xα) ∧ β (∃xα) ∧ β (∀xα) ∨ β (∃xα) ∨ β ¬∀xα ¬∃xα
durch durch durch durch durch durch
∀x(α ∧ β) ∃x(α ∧ β) ∀x(α ∨ β) ∃x(α ∨ β) ∃x¬α ∀x¬α
3. Führe die folgenden Ersetzungsregeln solange aus, wie sie anwendbar sind. g) h)
Ersetze Ersetze
¬(α ∧ β) ¬(α ∨ β)
durch durch
¬α ∨ ¬β ¬α ∧ ¬β
4. Führe die folgenden Ersetzungsregeln solange aus, wie sie anwendbar sind. i)
Ersetze
(α ∧ β) ∨ γ
durch
(α ∨ γ) ∧ (β ∨ γ)
Offensichtlich lassen sich die Schritte e) und f) aus 2) sowie 3) zur Bildung der Negationsnormalform auch vorab ausführen. Hier wird allerdings durch 1) und 2) zunächst eine pränexe Form erstellt, die in 3) zu einer pränexen Negationsnormalform transformiert wird. Schritt 4) schließlich transformiert den quantorfreien Kern von der Negationsnormalform in die Konjunktive Normalform um. Lemma 2.2.2 Zu jeder prädikatenlogischen Formel α gibt es eine äquivalente Formel in pränexer Normalform (PNF). Beispiel: α = ¬∀x(P (x) ∧ Q(x)) ∧ ∀x(¬P (x) → R(x)) ∧ ∀x(Q(x) ∧ ∃yR(y)) ≈ ¬∀x1 (P (x1 ) ∧ Q(x1 )) ∧ ∀x2 (¬P (x2 ) → R(x2 )) ∧ ∀x3 (Q(x3 ) ∧ ∃yR(y)) ≈ ∃x1 ¬(P (x1 ) ∧ Q(x1 )) ∧ ∀x2 (P (x2 ) ∨ R(x2 )) ∧ ∀x3 ∃y(Q(x3 ) ∧ R(y)) ≈ ∃x1 ∀x2 ∀x3 ∃y((¬P (x1 ) ∨ ¬Q(x1 )) ∧ (P (x2 ) ∨ R(x2 )) ∧ Q(x3 ) ∧ R(y)) 2 In der Aussagenlogik erlaubt das Verfahren von Tseitin die Bildung von Konjunktiven Normalformen mit polynomiellem Zeitaufwand. Allerdings wird bei jeder Transformation (α ∧ β) ∨ γ zu (α ∨ A) ∧ (β ∨ A) ∧ (¬A ∨ γ) ein neues Atom A eingeführt, so daß die resultierende Formel nur erfüllbarkeitsäquivalent zur Ausgangsformel ist. Dieses Verfahren kann man auch für die Transformation prädikatenlogischer Formeln einsetzen, jedoch nur unter Berücksichtigung der allquantifizierten Variablen, d.h. (α ∧ β) ∨ γ wird zu (α ∨ A(x1 , . . . , xn )) ∧ (β ∨ A(x1 , . . . , xn )) ∧ (¬A(x1 , . . . , xn ) ∨ γ) transformiert mit einem neuen Prädikat A, wobei x1 , . . . , xn alle allquantifizierten Variablen sind, die sowohl in α als auch β und auch in γ vorkommen.
2.2. NORMALFORMEN
113
2.2.2 Skolem-Normalform Die in einer pränexen Normalform vorkommenden Existenzquantoren werden in jeder Interpretation so gedeutet, daß in Abhängigkeit von den Werten der im Präfix vorstehenden allquantifizierten Variablen ein Wert für die existenzquantifiezierte Variable bestimmt werden muß, der die Formel erfüllt. Hierdurch wird auf dem Grundbereich der Interpretation eine Abbildung definiert, die den Werten der ∀-Variablen den Wert der ∃-Variablen zuordnet. Es ist daher naheliegend, anstelle der ∃-Variablen eine neue Funktion einzusetzen mit den ∀-Variablen als Argumenten. Diese Ersetzung nennt man Skolemisierung. Lemma 2.2.3 In einer geschlossenen prädikatenlogischen Formel α mit paarweise verschiedenen quantifizierten Variablen sei y eine existenzquantifizierte Variable, die im Bindungsbereich der allquantifizierten Variablen x1 , . . . , xn liegt. Sei β die Formel, die sich durch Elimination des Quantors ∃y und Ersetzung aller weiteren Vorkommen von y durch f (x1 , . . . , xn ) mit einer für α neuen Funktion f ergibt. Dann sind α und β erfüllbarkeitsäquivalent. Die Erweiterung erfüllender Interpretationen für α um eine Funktion für f in der zuvor beschriebenen Weise ergibt unmittelbar eine erfüllende Bewertung für β. Umgekehrt kann für y immer der Funktionswert für f (x1 , . . . , xn ) in einer erfüllenden Interpretation für β gewählt werden. Eine pränexe Normalform ohne Existenzquantoren nennen wir Skolem-Normalform (SKNF). Als unmittelbare Konsequenz erhalten wir das folgende Lemma. Lemma 2.2.4 Zu jeder prädikatenlogischen Formel α gibt es eine erfüllbarkeitsäquivalente Formel in Skolem-Normalform (SKNF). Beispiel: ∃x1 ∀x2 ∀x3 ∃y((¬P (x1 ) ∨ ¬Q(x1 )) ∧ (P (x2 ) ∨ R(x2 )) ∧ Q(x3 ) ∧ R(y)) SKN F
⇒
∀x2 ∀x3 ((¬P (ax1 ) ∨ ¬Q(ax1 )) ∧ (P (x2 ) ∨ R(x2 )) ∧ Q(x3 ) ∧ R(fy (x2 , x3 ))) 2
Die Skolem-Normalform ist die Basis für das weitere Arbeiten. Da der quantorfreie Kern der SkolemNormalform in Konjunktiver Normalfor vorliegt, lassen sich die Allquantoren, aus denen das Präfix ja nur noch besteht, auf die einzelnen Klauseln verteilen (Umkehrung der Regeln für Quantorzusammenfassung und für Quantifizierung). Mit Hilfe der Quantorelimination kann eine äquivalente Form erreicht werden, die aus einer Konjunktion geschlossener allquantifizierter Klauseln besteht ohne überflüssige Quantoren. Die so entstandene Form heißt Klauselnormalform. Lemma 2.2.5 Zu jeder prädikatenlogischen Formel α in Skolem-Normalform gibt es eine äquivalente Formel in Klauselnormalform. Für das Verständnis der Prädikatenlogischen Resolution sind folgende Eigenschaften der Klauselnormalform wichtig: • Klauseln, d.h. die allquantifizierten geschlossenen Disjunktionen können beliebig verdoppelt werden. • Die quantifizierten Variablen können beliebig umbenannt werden.
114
KAPITEL 2. EINFÜHRUNG IN DIE PRÄDIKATENLOGIK
Beide Manipulationen führen zu logisch äquivalenten Formeln. Weitere Einschränkungen der Klauseln in der Klauselnormalform werden analog zur Aussagenlogik definiert, d.h. Unit-Klauseln bestehen aus nur einem Literal, Horn-Klauseln besitzen höchstens ein positives Literal, etc. Da alle Variablen einer Klauselnormalform jeweils pro Klausel allquantifiziert sind und die Kommutativität des logischen Oder sowie die Invarianz bzgl. Literalverdopplung auch hier gelten, hat sich für die Prädikatenlogik ebenfalls eine mengenorientierte Schreibweise der Klauselnormalform eingebürgert. So steht in der mengenorientierten Schreibweise {{¬P (a, f (x)), ¬P (x, z)}, {P (a, f (b)), P (x, y), P (g(y), x)}} für die Formel ∀x∀z(¬P (a, f (x)) ∨ ¬P (x, z)) ∧ ∀x∀y(P (a, f (b)) ∨ P (x, y) ∨ P (g(y), x)) Zu beachten ist, das nur wirklich identische Literale als Mehrfachvorkommen gezählt werden können, nicht jedoch zwei Literale mit bis auf Variablen identische Struktur. So kann eine Klausel ∀x∀z(¬P (x, z) ∨ ¬P (x, z)) reduziert werden zu ∀x∀z¬P (x, z), nicht jedoch die Klausel ∀x∀z(¬P (x, z) ∨ ¬P (z, x)).
2.3 Substitution und Unifikation In der Aussagenlogik werden für die Resolution zwei Klauseln mit komplementären Literalen benötigt. Diese Klauseln werden — als Implikationen gesehen — wie durch einen Kettenschluß miteinander verschmolzen. In der Prädikatenlogik sind Literale aber nicht unbedingt sofort komplementär. Die Literale P (x) und ¬P (g(y)) umfassen bei passender Einsetzung für die allquantifizierten Variablen x und y aber durchaus komplementäre Spezialfälle, etwa P (g(g(a))) und ¬P (g(g(a))) mit einer Konstanten a. Die Grundlage für die Bildung dieser Spezialfälle ist die Ersetzung von Variablen durch Terme. Diese Ersetzung ist allerdings nicht so einfach zu handhaben wie die Ersetzung von Teilformeln durch logisch äquivalente andere Formeln, z.B. bei der Anwendung des Distibutivgesetzes für das logische Und. Die Forderung nach logischer Äquivalenz verhindert dort, daß fehlerhafte Ergebnisse entstehen. Ersetzen wir aber in der Formel ∀x∃yP (x, y) die Variable y durch den Term x, so erhalten wir mit ∀x∃yP (x, x), also ∀xP (x, x) eine Formel, die keine Folgerung der Ausgangsformel mehr ist, in diesem Sinne also kein Spezialfall der Ausgangsformel mehr ist. Problematisch ist bei diesen Ersetzungen, daß der eingesetzte Term Variablen enthalten kann, die ihrerseits durch andere Quantoren gebunden sind. Definition 2.3.1 (Substitution) Unter einer Substitution [x/t] verstehen wir die simultane Ersetzung aller Vorkommen der Variablen x durch einen Term t. Dieser Ersetzungsvorgang wird induktiv für Terme und Formeln definiert durch: (1) x[x/t] = t und für eine Individuenvariable y = x ist y[x/t] = y. (2) Für eine Individuenkonstante a ist a[x/t] = a. (3) Für eine n-stellige Funktion f und Terme t1 , . . . , tn ist f (t1 , . . . , tn )[x/t] = f (t1 [x/t], . . . , tn [x/t]). (4) Für ein n-stelliges Prädikat P und Terme t1 , . . . , tn ist P (t1 , . . . , tn )[x/t] = P (t1 [x/t], . . . , tn [x/t]).
2.3. SUBSTITUTION UND UNIFIKATION
115
(5) Ist α eine Formel und ist α[x/t] definiert, so ist (¬α)[x/t] = ¬α[x/t]. (6) Sind α und β Formeln und sind α[x/t] und β[x/t] definieert, so ist (α ∨ β)[x/t] = α[x/t] ∨ β[x/t] und (α ∧ β)[x/t] = α[x/t] ∧ β[x/t]. (7) Für eine Formel α und eine Variable y gilt: (a) Gilt x ∈ freevars(α), so ist (∃yα)[x/t] = ∃yα und (∀yα)[x/t] = ∀yα. (b) Gilt x ∈ freevars(α), y ∈ vars (t) und ist α[x/t] definieert, so ist (∃yα)[x/t] = ∃yα[x/t] und (∀yα)[x/t] = ∀yα[x/t]. Häufig fassen wir eine endliche Anzahl von Substitutionen zu einer zusammen und schreiben [x1 /t1 , . . . , xn /tn ] für die Hintereinanderausführung der Einzelsubstitutionen [x1 /t1 ], . . . , [xn /tn ] in genau dieser Reihenfolge. Da die Reihenfolge wichtig sein kann, sprechen wir auch von einer Ersetzungsliste. Die Zusammenfassung einer endlichen Anzahl von Substitutionen [x1 /t1 , . . . , xn /tn ] bzeichnen wir ebenfalls als Substitution. Für eine Formel α und eine Substitution σ ist ασ das Ergebnis der Substitution. Ist ασ variablenfrei, so bezeichenen wir σ als Grundsubstitution. Die simultane Ersetzung aller Vorkommen von x erlaubt, daß in dem hierfür einzusetzenden Term t die Variable x wieder vorkommen darf. Stellt man sich die Substitution [x/t] aber als sukzessive Ersetzung der einzelnen Vorkommen von x vor, so terminiert das Ersetzungsverfahren nicht. P (x) wird bei [x/f (x)] zu P (f (f (· · ·))) mit unendlich tiefer Schachtelung der Funktion f . Eine Ersetzungsliste läßt sich ohne weiteres in eine Form bringen, so daß die Einzelersetzungen unabhängig voneinander sind und damit in beliebiger Reihenfolge ausgeführt werden können. Eine Substitution dieser Art für [x1 /t1 , . . . , xn /tn ] ist beispielsweise [x1 /(t1 [x2 /t2 , . . . , xn /tn ]), x2 /(t2 [x3 /t3 , . . . , xn /tn ]), . . . , xn /tn ] Allerdings kann die Größe der Terme, die jetzt in der Substitution darzustellen sind, exponentiell sein im Vergleich zur Länge der Terme in der Ersetzungsliste. Wir werden nachfolgend immer nur Ersetzungslisten zur Darstellung von Substitutionen verwenden. Lemma 2.3.2 Seien x eine freie Variable der prädikatenlogischen Formel α, die in Skolem-Normalform vorliegt. Seien weiter x1 , . . . , xn die Variablen des Terms t. Für die Substitution [x/t] gilt ∀xα |= ∀x1 . . . ∀xn α[x/t]. Dieses Ergebnis überträgt sich natürlich sofort auf Ersetzungslisten von mehreren Einzelsubstitutionen. Da eine Substitution für eine Klausel als Bildung eines Spezialfalles dieser Klausel aufgefaßt werden kann, zeigt das Lemma, daß jede spezialisierte Klausel eine Folgerung der ursprünglichen Klausel ist. Definition 2.3.3 (Unifikator) Seien α1 und α2 prädikatenlogische Formeln. Eine Substitution [x1 /t1 , . . . , xn /tn ] heißt Unifikator von α1 und α2 , falls gilt α1 [x1 /t1 , . . . , xn /tn ] = α2 [x1 /t1 , . . . , xn /tn ]. α1 und α2 heißen dann unifizierbar. Der Begriff des Unifikators kann genauso auch für beliebige Formelmengen und nicht nur für zwei Formeln definiert werden. Für die Literale P (a, f (x)) und P (x , y ) ist [x /a, x/b, y /f (b)] ein Unifikator. Für die Formulierung einer Resolutionsregel für die Prädikatenlogik können wir nun davon ausgehen, daß eine Formel in Klauselnormalform vorliegt. Die Formel enthalte zwei Klauseln, die keine gemeinsame Variable haben und von denen die eine ein positives Literal und die andere ein negatives Literal über dem
116
KAPITEL 2. EINFÜHRUNG IN DIE PRÄDIKATENLOGIK
gleichen Prädikat P enthält. Indem wir nun geeignete Spezialisierungen der Klauseln betrachten, können wir auch hier von komplementären, sonst aber gleichen Literalen ausgehen. Allerdings sollten die Klauseln nicht überspezialisiert werden, um nachfolgend noch ein hohes Maß an weiteren Spezialisierungen in den nächsten Resolutionsschritten vornehmen zu können. Definition 2.3.4 (Allgemeinster Unifikator) Ein Unifikator σ der prädikatenlogischen Formeln α1 und α2 heißt allgemeinster Unifikator (most general unifier, mgu) von α1 und α2 , wenn es zu jedem anderen Unifikator τ von α1 und α2 eine Substitution τ existiert, so daß gilt τ ◦ σ = τ . τ ◦ σ bezeichnet die Hintereinanderausführung der beiden Substitutionen τ und σ. Sind beide durch Ersetzungslisten gegeben, etwa τ = [x1 /t1 , . . . , xn /tn ] und σ = [y1 /s1 , . . . , ym /sm ], dann ist τ ◦ σ = [y1 /s1 , . . . , ym /sm , x1 /t1 , . . . , xn /tn ]. Mann beachte die Umkehrung der Reihenfolge! Ein allgemeinster Unifikator umfaßt also nur die Substitutionen, die unbedingt nötig sind, zwei Formeln zu unifizieren. Jeder andere Unifikator läßt sich aus dem allgemeinsten Unifikator gewinnen, indem noch zusätzliche Substitutionen durchgeführt werden. Für die Literale P (a, f (x)) und P (x , y ) ist [x /a, y /f (x)] ein allgemeinster Unifikator. Zur Bestimmung des allgemeinsten Unifikators zweier Primformeln verwendet man häufig den Unifikationsalgorithmus nach Robinson. Zum Verständnis des Verfahrens ist die Identifikation der ersten Stelle wichtig, an der zich zwei Primformeln unterscheiden. Sind P (t1 , . . . , tn ) und P (t1 , . . . , tn ) zwei verschiedene Primformeln, so werden das erste minimale Paar korrespondierender Subterme (s, s ) von P (t1 , . . . , tn ) und P (t1 , . . . , tn ) dadurch bestimmt, daß man im Formelbaum mit der Tiefensuche von links nach rechts den ersten Knoten bestimmt, der in beiden Primformeln verschieden ist. Die Subterme, die durch die Teilbäume mit diesen Knoten als Wurzeln in den Formelbäumen gebildet werden, sind die gesuchten Subterme (s, s ). Diese Terme sind in der textuellen Schreibweise von links nach rechts die ersten und minimal in dem Sinne, daß bereits das erste Zeichen in s und s verschieden ist. Für die Literale P (a, f (x)) und P (x , y ) ist das erste minimale korrespondierende Paar Subterme (a, x ), für die Literale P (a, f (x)) und P (a, f (b)) ist dies (x, b), nicht jedoch (f (x), f (b)), da dies Paar nicht minimal verschieden ist aufgrund des in beiden Termen gleichen äußersten Funktors f . Im folgenden Algorithmus liefert die Funktion first-min-different-subterms für zwei Primformeln das gesuchte Termpaar. Algorithmus 2.1: Unifikationsalgorithmus nach Robinson Input: Primformeln P (t 1 , . . . , tn ) und P (t1 , . . . , tn ) Output: allgemeinster Unifikator σ für diese Primformeln, falls sie unifizierbar sind, NIL sonst begin σ := [] while P (t1 , . . . , tn )σ = P (t1 , . . . , tn )σ begin (s, s ) = first-min-different-subterms (P (t1 , . . . , tn )σ, P (t1 , . . . , tn )σ) if s ist Variable und s enthält s nicht then σ := σ[s/s ] else if s ist Variable und s enthält s nicht then σ := σ[s /s] else return (NIL) end while return (σ) end
2.4. PRÄDIKATENLOGISCHE RESOLUTION
117
Im Algorithmus ist zu beachten, daß die bisher gewonnene Substitution jedesmal angewendet wird, bevor das nächste Paar erster minimaler verschiedener Subterme bestimmt wird. Die neue Einzelsubstitution [s/s ] bzw. [s /s] unifiziert die Teilterme (s, s ), so daß das nächste Paar erster minimaler verschiedener Subterme nur weiter rechts im Formelbaum gefunden werden kann. Mit diesem Algorithmus können auch allgemeinste Unifikatoren für größere Mengen von Primformeln α1 , . . . , αn bestimmt werden, indem zunächst für zwei Primformeln α1 und α2 der allgemeinste Unifikator σ1 bestimmt wird, dann der allgemeinste Unifikator σ2 für α1 σ1 und α3 , dann der allgemeinste Unifikator σ3 für α1 σ1 σ2 und α4 , usw. Der gesuchte allgemeinste Unifikator ist schließlich σn−1 ◦ . . . ◦ σ2 ◦ σ1 .
2.4 Prädikatenlogische Resolution Wie in der Aussagenlogik können wir nun die Resolutionsregel anwenden, um Klauseln zu generieren, die Folgerungen der ursprünglichen Formel sind. α ≈ ∀x∀z(¬P (a, f (x)) ∨ ¬P (x, z)) ∧ ∀x∀y(P (a, f (b)) ∨ P (x, y) ∨ P (g(y), x)) Dazu erzeugen wir zunächst für zwei Klasueln mit komplementären Vorkommen eines Prädikates P zwei variablenfremde Kopien mit den Idempotenz- und Umbenennungsregeln. α ≈ α ∧ ∀x∀y(¬P (a, f (x)) ∨ ¬P (x, y)) ∧ ∀u∀v(P (a, f (b)) ∨ P (u, v) ∨ P (g(v), u)) Die beiden variablenfremden Klauseln können wir unter einem gemeinsamen Präfix zusammenfassen durch die Quantifizierungsregeln. α ≈ α ∧ ∀x∀y∀u∀v((¬P (a, f (x)) ∨ ¬P (x, y)) ∧ (P (a, f (b)) ∨ P (u, v) ∨ P (g(v), u))) Anschließend versuchen wir, einige der positiven Literale über P aus der einen Klausel und einige der negativen Literale über P aus der anderen Klausel zu unifizieren. P (a, f (x)), P (x, y), P (u, v) =⇒ σ = [x/a, y/f (a), u/a, v/f (a)] Falls ein allgemeinster Unifikator σ existiert, bilden wir die beiden entsprechend spezialisierten Klauseln. α ≈ α ∧ ((¬P (a, f (a)) ∨ ¬P (a, f (a))) ∧ (P (a, f (b)) ∨ P (a, f (a)) ∨ P (g(f (a)), a))) Die Anwendung der Resolutionsregel auf die spezialisierten Klauseln entspricht dann einem Kettenschluß. α ≈ α ∧ ((P (a, f (a)) → ) ∧ ((¬P (a, f (b)) ∧ ¬P (g(f (a)), a)) → P (a, f (a)))) Die Resolvente ist insgesamt eine Folgerung der Ausgangsformel. α ≈ α ∧ (P (a, f (b)) ∨ P (g(f (a)), a)) Natürlich wird nicht in jedem Fall jede Variable durch einen variablenfreien Term sustituiert werden, so daß im allgemeinen die Resolvente noch Variablen enthält. Da wir aus jeder Klausel mehr als ein Literal für die Resolution auswählen wollen, hat die mengenorientierte Resolutionsregel die folgende allgemeine Gestalt: {B1 , . . . , Bm } {L1 , . . . , Lk } (({L1 σ, L2 σ, . . . , Lk σ} \ {¬Lσ}) ∪ ({B1 σ, B2 σ, . . . , Bm σ} \ {Lσ}))
118
KAPITEL 2. EINFÜHRUNG IN DIE PRÄDIKATENLOGIK
mit σ mgu von L(. . . ), L(. . . ), . . . und L(. . . ), L(. . . ), . . .. Wenn wir wie hier die mengenorientierte Schreibweise verwenden mit der Vorstellung, daß alle vorkommenden Variablen allquantifiziert sind, lassen sich mehrere hintereinanderausgeführte Resolutionen recht einfach darstellen. Problematisch ist meist nur, daß Resolutionen nicht wie geschachtelte Brüche geschrieben werden können, da unterschiedliche Umbenennungen der Variablen nötig sein können. Das Verfahren zur Generierung einer Resolvente besteht dann aus folgenden Schritten: 1. Auswählen der Klauseln für die Resolution. 2. Umbenennen der Variablen, so daß die Klauseln variablenfremd werden. 3. Festlegen der Literale, über die resolviert wird (Seien dies ¬L(. . . ), ¬L(. . . ), . . . aus der ersten Klausel L1 , . . . , Lk und L(. . . ), L(. . . ), . . . aus der zweiten Klausel B1 , . . . , Bm ). 4. Bestimmen des mgu σ für ¬L(. . . ), ¬L(. . . ), . . . , L(. . . ), L(. . . ), . . .. 5. Bestimmung der Resolvente: (({L1 σ, L2 σ, . . . , Lk σ} \ {¬Lσ}) ∪ ({B1 σ, B2 σ, . . . , Bm σ} \ {Lσ})) 1 und | RES definieren. Hiefür kann der Wie in der Aussagenlogik kann man die Herleitungsbegriffe |RES folgende Satz gezeigt werden:
Satz 2.4.1 Sei α eine prädikatenlogische Formel in Klauselnormalform. Dann gilt α widerspruchsvoll genau dann, wenn α | RES gilt. Ebenfalls wie für die aussagenlogische Resolution lassen sich alle Resolutionsstrategien und Resolutionsrestriktionen auch für die Prädikatenlogik definieren. Die Auswahl von mehr als einem Literal pro Klausel ist auch notwendig, wie man an dem folgenden Beispiel erkennen kann: α := ∀x∀y(¬P (a, x) ∨ ¬P (y, b)) ∧ ∀x∀y(P (x, b) ∨ P (a, y)) Jede Auswahl von nur einem Literal pro Klausel führt zu Resolventen mit zwei Literalen, führt also nicht zur leeren Klausel.
2.4. PRÄDIKATENLOGISCHE RESOLUTION
119
Ein alternatives Konzept besteht aus den folgenden beiden Regeln: binäre Resolutionsregel: {K1 , . . . , Kr , ¬L } {L1 , . . . , Lk , L} {L1 σ, . . . , Lk σ, K1 σ, . . . , Kr σ} mit σ mgu von L und L . binäre Faktorisierungsregel:
{L1 , . . . , Lk , L, L } {L1 σ, . . . , Lk σ, Lσ}
mit σ mgu von L und L . Beide Konzepte sind äquivalent in dem Sinne, daß aus einer Formel die leere Klausel mit Hilfe der mengenorientierten Resolutionsregel hergeleitet werden kann, genau dann wenn die Herleitung der leeren Klausel auch mit Hilfe der binären Resolution und der binären Faktorisierungsregel gebildet werden kann. Das zweite Konzept ist allerdings implementationstechnisch einfacher zu handhaben, da in jedem Schritt jeweils nur zwei Literale beteiligt sind.
120
KAPITEL 2. EINFÜHRUNG IN DIE PRÄDIKATENLOGIK
Kapitel 3
Produktionsregelsysteme Abgeleitet von EMYCIN (Empty MYCIN) sind verschiedene Werkzeuge entwickelt worden, die eine vollständige Umgebung zur Erstellung regelbasierter Expertensysteme darstellen. Entsprechend hat sich auch eine spezifische Struktur von Produktionssystemen im Bereich regelbasierter Expertensysteme entwickelt. Im folgenden wollen wir, motiviert durch diese Struktur, einen speziellen Typ von Produktionssystemen definieren. Da wir dabei eine Struktur schaffen wollen, die es erlaubt, regelbasierte Expertensysteme abzubilden, wollen wir hierfür den Begriff Produktionsregelsysteme verwenden. Mit diesem Modell sollen aber nicht möglichst komplexe Wissensrepräsentationen und Inferenzverfahren abgebildet werden. Das Modell stellt vielmehr eine vereinfachende Abstraktion dar. Dadurch gewinnen wir allerdings die Möglichkeit, grundlegende Probleme wie Inkonsistenz, Schleifen, Äquivalenz von Darstellungen usw. zu erkennen und zu analysieren.
3.1 Definition von Produktionsregelsystemen Definition 3.1.1 (Produktionsregelsysteme) Ein Produktionsregelsystem P besteht aus einem Tupel P = (D, R), wobei D die Datenbasis beschreibt und R eine endliche Menge von Regeln darstellt. Die Elemente der Datenbasis D sind Parameter-Wert-Paare (Terme), gebildet aus einer endlichen Menge von Parametern P(P ) und einer endlichen Menge von Werten V(P ). Parameter und Wert sind hierbei durch den Operator = oder = zu einem Term miteinander verbunden. Der Term X = a wird interpretiert als “X ist gleich a”, der Term X = a als “X ist ungleich A”. Eine Regel r ∈ R hat die Gestalt “IF C THEN t”, wobei die Bedingung C aus Termen mit den Konnektoren ∧ (Konjunktion) und ∨ (Disjunktion) zusammengesetzt ist, während die Konklusion t ein einzelner Term ist. Bemerkungen: 1. Obwohl die Bedingungsteile eine hohe Komplexität aufweisen können, ist es bei der Formulierung von Regeln nicht zugelassen, die Konklusion als Konjunktion von mehreren Termen zu formulieren. Prinzipiell stellt dies aber keine größere Einschränkung dar. Eine Regel mit einer Konjunktion von Termen als Konklusion kann ohne weiteres in mehrere einzelne Regeln
121
KAPITEL 3. PRODUKTIONSREGELSYSTEME
122
mit jeweils einem Term als Konklusion aufgespalten werden, wie folgendes Beispiel zeigt: IF C THEN t1 ∧ t2
IF C THEN t1 IF C THEN t2
2. Im Gegensatz zu den meisten von EMYCIN abgeleiteten Shells lassen wir nur Parameter-Wert-Tupel anstelle von Objekt-Attribut-Wert-Tripeln als Terme zu. Ferner haben wir die Menge der Operatoren auf = und = eingeschränkt. Wie auch solche Eigenschaften eines regelbasierten Systems in ein Modell gefaßt werden können, zeigt beispielsweise [Bez 87] anhand eines Modells, das auf mehrsortiger Logik aufbaut. Für unsere weiteren Betrachtungen sind diese Einschränkungen zum Teil auch nur technischer Natur. Sind nämlich bei Objekt-Attribut-Wert-Tripeln keine Hierarchien über Objekte zugelassen und folglich auch keine Vererbungen möglich bzw. sind keine Aussagen über Objektklassen zugelassen, so können wir eine Kombination aus Objekt und Attribut als Parameter in unserem Modell auffassen. Mit der Einschränkung auf = und = als Operatoren ist das Modell sicherlich vereinfacht worden. Allerdings werden dadurch die grundlegenden Probleme wie Widersprüche u. ä. nicht ausgeschlossen, so daß wir diese Untersuchungen unbeeinträchtigt durchführen können. Zum Teil können andere Operatoren wie etwa Elementbeziehungen einer explizit angegebenen Menge durch Einführung von zusätzlichen Regeln auch simuliert werden. 3. Unsicherheiten, wie beispielsweise in EMYCIN durch ein Sicherheitsfaktorenkonzept beschreibbar sind, wollen wir in diesem Modell von Produktionsregelsystemen nicht berücksichtigen. 4. Bisher haben wir keine Negation in den Bedingungen von Regeln zugelassen. Wir betrachten also lediglich Produktionsregelsysteme ohne den Konnektor NOT. In einem späteren Abschnitt werden wir auch die Negation zulassen und dann die speziellen Probleme im Zusammenhang mit der Negation analysieren. Bevor wir nun den Begriff der Ableitung in Produktionsregelsystemen einführen können, müssen wir zunächst festlegen, wann eine Bedingung als erfüllt oder auch wahr interpretiert wird. Definition 3.1.2 (Erfüllung einer Bedingung) Eine Bedingung C ist genau dann erfüllt (wahr) für eine Datenbasis D, wenn sie folgenden Kriterien genügt: 1. Ein einzelner Term t ist genau dann wahr, wenn t Element von D ist. 2. Eine Konjunktion zweier Ausdrücke C1 ∧ C2 ist genau dann wahr, wenn sowohl C1 als auch C2 wahr sind. 3. Eine Disjunktion zweier Ausdrücke C1 ∨ C2 ist genau dann wahr, wenn C1 oder C2 wahr ist. 4. Nur Bedingungen, die gemäß 1. bis 3. wahr sind, sind wahr. Eine Regel r = IF C THEN t, für welche die Bedingung C wahr ist in Bezug zu einer Datenbasis D, werden wir auch als anwendbar für D bezeichnen.
3.1. DEFINITION VON PRODUKTIONSREGELSYSTEMEN
123
Definition 3.1.3 (Ableitung in Produktionsregelsystemen) 1 (D , R) genau dann, wenn Für Produktionsregelsysteme P = (D, R) und P = (D , R) gilt (D, R) | PS eine Regel r = IF C THEN t in R existiert mit 1. C ist wahr für D (d.h. r ist anwendbar für D) 2. D = D ∪ {t} Entsprechend definieren wir (D, R) | PS (D , R) als die reflexive und transitive Hülle der Einschritt1 (D , R). Ableitung (D, R) | PS
Durch diese Definition ist festgelegt, daß eine Regel genau dann angewendet (gefeuert) werden kann, wenn die Bedingung C für die aktuelle Datenbasis erfüllt ist. Die Wirkung einer Regelanwendung ist dann, daß die Konklusion t der Regel mit in die Datenbasis aufgenommen wird. Somit erhalten wir D als neue Datenbasis. Implizit enthält das Feuern einer Regel also eine Aktion, das Hinzufügen eines Terms zur Datenbasis. Darin wird deutlich, daß Produktionsregelsysteme nicht rein deklarativ zu sehen sind. Die Wirkung einer Regelanwendung ist die Ausführung der Prozedur “Füge Term zu Datenbasis hinzu”. Dies entspricht der prozeduralen Sichtweise eines Regelsystems. Dieser Aspekt ist vor allem nicht zu vernachlässigen, wenn wir in einem späteren Abschnitt Produktionsregelsysteme und Logik-Programme miteinander vergleichen werden. Der Vergleich läßt sich aber dadurch motivieren, daß der Wahrheitswert von Bedingungen genau von dem Vorhandensein von Termen in der Datenbasis abhängt, durch die Konklusion also letztendlich ein Wahrheitswert festgelegt wird. Dies entspricht der deklarativen Sichtweise. Mit der Einschritt-Ableitung ist die Möglichkeit einer einzelnen Regelanwendung definiert. Dagegen wird durch den reflexiven und transitiven Abschluß die Möglichkeit der mehrfachen Hintereinanderausführung (Verkettung) von Regeln festgelegt. Durch die Definition der Ableitung in Produktionsregelsystemen ist im Grunde auch der Kern des Interpreters festgelegt. Er besteht im wesentlichen aus einem sogenannten Recognize-Act-Zyklus. Zunächst muß die Konfliktmenge der anwendbaren Regeln bestimmt werden. Aus dieser Menge wird dann durch ein Selektionsverfahren eine Regel ausgewählt, die schließlich gefeuert wird. Die detailliertere Beschreibung des Interpreters besteht somit vor allem darin, wie die Konfliktmenge gebildet werden kann und aus welchen Kriterien die Selektionsprozedur aufgebaut ist. Zur vollständigen Beschreibung eines Produktionssystems fehlt aber immer noch eine Charakterisierung des Finalzustands. Bei regelbasierten Expertensystemen bietet sich eine der folgenden Bedingungen an: 1. Alle folgerbaren Terme sind abgeleitet, d.h. es kann keine Regel mehr angewendet werden. Dies entspricht der Idee, daß uns das System soviel wie nur möglich mitteilt. 2. Ein vorab angegebener Term ist in der Datenbasis enthalten. Dies entspricht der Idee, daß ein bestimmtes Ziel durch das System untersucht werden soll. Bemerkung: In Zukunft werden anstelle von (D, R) | PS (D , R) mit t ∈ D einfach (D, R) | PS t schreiben. Wir sagen auch D ist aus (D, R) ableitbar. Zunächst wollen wir eine wichtige Eigenschaft, die Kommutativität, für Produktionsregelsysteme definieren. Im Anschluß daran werden wir zeigen, daß Produktionsregelsysteme ohne Negation diese Eigenschaft besitzen.
124
KAPITEL 3. PRODUKTIONSREGELSYSTEME
Definition 3.1.4 (Kommutative (monotone) Produktionsregelsysteme) Eine Produktionsregelsystem P = (D, R) wird genau dann als kommutativ bezeichnet, wenn für jede Da˜ die aus P ableitbar ist, gilt: Jede Regel, die für D ˜ anwendbar ist, ist für jede Datenbasis D ˜ tenbasis D, ˜ ˜ anwendbar, für die (D, R) | PS (D , R) gilt. Eine direkte Folgerung aus der obigen Definition ist das folgende Lemma. Lemma 3.1.5 Für ein kommutatives Produktionsregelsystem P = (D, R) und eine beliebige Datenbasis ˜ die aus P ableitbar ist, gilt die folgende Eigenschaft: D, ˜ anwendbar ist. Die Datenbasis D ˜ , die durch Sei RD˜ eine beliebige Regelmenge, die für D () Feuern der Regeln aus RD˜ entsteht, ist invariant gegenüber der Reihenfolge der Anwendung der Regeln aus RD˜ . ˜ eine beliebige aus P ableitbare Datenbasis. Ferner sei Beweis: Sei P = (D, R) kommutativ und D ˜ anwendbar ist. Sei T := {t1 , . . . , tm } die Menge RD˜ := {r1 , . . . , rn } ⊆ R eine Regelmenge, die auf D aller Terme, die als Konklusion von Regeln aus RD˜ auftreten. Aus der Kommutativität von P folgt, daß ˜ mit (D, ˜ R) | ˜ , R) anwendbar ist. Daraus (D jede Regel r ∈ RD˜ für eine beliebige Datenbasis D PS folgt, daß alle Regeln r ∈ RD˜ in beliebiger Reihenfolge anwendbar bleiben. Die nach Anwendung aller ˜ ist für jede Reihenfolge gleich D ∪ {t1 , . . . , tm }. da die Wirkung jeder Regeln entstandene Datenbasis D Regelanwendung das Hinzufügen eines ti ∈ T zur Datenbasis ist. Bemerkung: Die Eigenschaft der Kommutativität bei Produktionsregelsystemen spiegelt die Eigenschaft commutative für Produktionssysteme nach Nilsson [Nil 82] wieder. Commutativity wird dort durch folgende drei Eigenschaften definiert: 1. Jede Regel, die auf eine beliebige Datenbasis D angewendet werden kann, bleibt anwendbar auf jede Datenbasis, die aus D durch Anwendung einer möglichen Regel entstanden ist. 2. Ist die Bedingung für den Endzustand für eine Datenbasis D erfüllt, so auch für jede Datenbasis, die aus D ableitbar ist. 3. Die Datenbasis, die aus einer beliebigen Reihenfolge von Regelanwendungen für D anwendbarer Regeln entsteht, ist invariant gegenüber der Reihenfolge der Regelanwendung. Die Eigenschaften 1. und 3. Sind wie aus Lemma 3.1.5 ersichtlich auch bei kommutativen Produktionsregelsystemen stets erfüllt. Da wir jedoch den Finalzustand von der Anwendung abhängig gemacht haben, ist eine genaue Aussage über 2. nicht möglich. Für die weiter oben gemachten Vorschläge trifft aber auch diese Eigenschaft zu. Als nächstes können wir für Produktionsregelsystemen ohne Negation zeigen, daß sie kommutativ sind. Satz 3.1.6 Produktionsregelsysteme ohne Negation sind kommutativ. ˜ sei eine beliebige aus D ableitbare Beweis: Sei P = (D, R) ein Produktionsregelsystem ohne Negation. D ˜ Datenbasis. RD˜ sei die Menge aller für D anwendbaren Regeln, d.h. für jedes r = IF C THEN t ∈ RD˜ ist C wahr. Da jede Bedingung C aus Termen mit Hilfe der Konnektoren ∧ und ∨ besteht, hängt die ˜ ab (siehe Definition 3.1.3, Punkt 1). Die Wirkung einer Erfüllung nur vom Vorhandensein der Terme in D Regelanwendung ist das Hinzufügen eines Terms zur Datenbasis. Folglich sind alle Bedingungen, die vor dem Feuern der Regel erfüllt waren, auch danach noch erfüllt. Damit ist P kommutativ.
3.1. DEFINITION VON PRODUKTIONSREGELSYSTEMEN
125
3.1.1 Algorithmische Darstellung des Interpreters Die Kommutativität von Produktionsregelsystemen ohne Negation kann bei der Beschreibung des Interpreters ausgenutzt werden. Der Kern dieser Eigenschaft ist gerade, daß die Reihenfolge der Regelanwendungen keinen Einfluß auf die Menge der abgeleiteten Terme hat. Dadurch kann auch das Verfahren des Interpreters für diesen Typ von Produktionsregelsystemen vereinfacht werden, d.h. die Selektion aus der Konfliktmenge ist letztendlich nicht von Bedeutung für das Endergebnis. Für Regelsysteme werden zur Realisierung des Interpreters Verkettungsverfahren angewendet. Diese Verfahren beruhen auf der Tatsache, daß wir aus der Menge von Termen und einer Regel, deren Bedingung für diese Menge wahr ist, eine neue Menge von Termen ableiten können. Dies ist dann die ursprüngliche Menge vereinigt mit dem in der Konklusion angegebenen Term. Daran anschließend kann eine erneute Regelanwendung stattfinden. Wir erhalten somit eine Kette von Regelanwendungen: D0 , IF C1 THEN t1 (C1 wahr für D0 ) D1 = D0 ∪ {t1 }, IF C2 THEN t2 (C2 wahr für D1 ) D2 = D1 ∪ {t2 }, IF C3 THEN t3 (C3 wahr für D2 ) D3 = D2 ∪ {t3 }, . . . .. . Deutlich erkennbar ist die in der Literatur oft zitierte Korrespondenz zur Regel Modus Ponens im Bereich der Logik, die dort bei der syntaktischen Herleitung von Formeln eine große Rolle spielt: α, α → β β, β → γ γ, γ → δ δ, . . . .. . Hier stehen α, β, γ, δ, . . . für beliebige logische Formeln. Generell können wir zwei unterschiedliche Gruppen von Verkettungsverfahren unterscheiden: • vorwärtsverkettende Verfahren (Forward-Chaining) • rückwärtsverkettende Verfahren (Backward-Chaining) Die Verfahren unterscheiden sich in der Verkettungsrichtung. Bei vorwärtsverkettenden Verfahren wird versucht, ausgehend von D0 einen bestimmten Term ti bzw. die Menge aller ableitbaren Terme zu bestimmen. (In der oben benutzten Schreibweise entspricht das dem Vorgehen “von oben nach unten”.) Bei rückwärtsverkettenden Verfahren wird dagegen von einem zu bestimmenden Term ti ausgegangen und versucht, diesen über Regeln auf die vorhandene Startdatenbasis D0 bzw. eine Teilmenge von D0 zurückzuführen. (In der obigen Schreibweise Vorgehen “von unten nach oben”.) Forward-Chaining Bei der vorwärtsverkettenden oder datengetriebenen Strategie werden ausgehend von der Startdatenbasis Regeln angewendet, deren Bedingung für die aktuelle Datenbasis wahr ist. Übertragen auf den “RecognizeAct-Zyklus” erhalten wir:
KAPITEL 3. PRODUKTIONSREGELSYSTEME
126 1. Recognize (d.h. Bilden der Konfliktmenge)
Bestimmung aller Regeln, deren Bedingung wahr ist. 2. Act (d.h. Feuern einer Regel) Auswahl einer bestimmten Regel aus der Konfliktmenge und Feuern dieser Regel. Forward-Chaining wird oftmals als die eigentliche Strategie zur Bestimmung der Ableitung in Produktionsregelsystemen angesehen. Dies resultiert wohl daher, daß hierbei der Gedanke des Produzierens, nämlich des Produzierens neuer Terme, sehr stark betont wird. Ausgedrückt wird dieser Sachverhalt auch dadurch, daß die Familie der OPS-Sprachen1 als spezielle Programmiersprachen zur Implementation von regelbasierten Systemen angesehen wird [Bro 85]. Betrachten wir dagegen kommerziell erhältliche Werkzeuge zur Erstellung von regelbasierten Expertensystemen oder auch EMYCIN, so sehen wir, daß dort rückwärtsverkettende Strategien eine entscheidende Rolle spielen. Wir wollen deshalb Forward-Chaining nicht als das zentrale Verfahren für Produktionsregelsysteme ansehen, sondern als eine Möglichkeit für ein Verfahren, mit dem wir den Ableitungsbegriff realisieren können. Da Produktionsregelsysteme ohne Negation kommutativ sind, führt jede Strategie für die Auswahl einer Regel bei Forward-Chaining zum gleichen Ergebnis. Wir können somit ganz auf eine Auswahlstrategie verzichten und brauchen auch keine bestimmte Anordnung der Regeln. Der Nichtdeterminismus des Verfahrens kann bei der Realisierung des Verfahrens auf einem Rechner durch eine beliebige Selektionsfunktion aufgehoben werden, ohne das Ergebnis des Verfahrens zu beeinflussen. Somit erhalten wir folgenden Algorithmus: Algorithmus 3.1: Forward-Chaining Input: Startdatenbasis D, Regelmenge R Output: Menge aller aus D mit R ableitbaren Terme D ∗ begin D∗ = D repeat Dtmp = D∗ R∗ = {IF C THEN t ∈ R | C wahr für D ∗ } D∗ = D∗ ∪ {t | IF C THEN t ∈ R∗ } until D∗ = Dtmp return (D ∗ ) end
Die Menge R∗ ist jeweils die Konfliktmenge für D∗ . Das Ergebnis des Algorithmus ist die Menge aller mit dem Ableitungsbegriff | PS aus D mit R ableitbaren Terme. Satz 3.1.7 Der Algorithmus 3.1 arbeitet korrekt und benötigt quadratische Zeit in der Größe von P = (D, R). Beweis: 1. Der Algorithmus terminiert bei jeder Eingabe. Die Größe von D∗ ist beschränkt durch die endliche Menge der möglichen Terme in P . Da bei jedem Durchlauf der Schleife mindestens ein Term zu D∗ hinzugefügt wird, muß das Verfahren abbrechen. 1
OPS5 steht für Official Production System, Version 5, wobei das Official nicht so genau zu nehmen ist.
3.1. DEFINITION VON PRODUKTIONSREGELSYSTEMEN
127
2. D∗ ist für jede beliebige Eingabe die maximale Menge der aus D und R mit |PS ableitbaren Terme. Aufgrund der Kommutativität von P gilt dabei für jeden Schleifendurchlauf (D∗ , R) | PS (D∗ ∪ {t | IF C THEN t ∈ R ∗ }, R) und somit gilt auch insgesamt (D, R) | PS (D∗ ∪ {t | IF C THEN t ∈ R∗ }, R), also gilt für alle t ∈ D∗ die Ableitbarkeit (D, R) | PS t. Umgekehrt zeigt die folgende Induktion über die Länge der Herleitung l, daß es keinen Term t ∈ D ∗ gibt mit (D, R) | PS t . l = 0: t ∈ D impliziert sofort t ∈ D∗ . 1 t . Nach Induktionsvoraussetzung l > 0: Angenommen es gilt (D, R) | PS (D , R) und (D , R) | PS gilt t ∈ D∗ für alle t ∈ D . Ferner muß es in R eine Regel IF C THEN t geben, deren Bedingung C für D erfüllt ist. Da P kommutativ ist, muß C auch für D∗ erfüllt sein und somit t auch in D∗ enthalten sein.
3. Unter der Voraussetzung, daß der Test, ob ein Term für eine Datenbasis D∗ wahr ist, sowie das Hinzufügen von Termen zu einer Datenbasis jeweils in einem Schritt möglich sind, benötigen wir lineare Zeit für jeden Schleifendurchlauf. Da die Größe von D∗ und damit die Anzahl der Schleifendurchläufe durch die Anzahl der Terme, die in P auftreten, begrenzt ist, erhalten wir insgesamt eine quadratische Laufzeit des Algorithmus.
Bemerkungen: 1. Mit geringfügigen Änderungen kann der Algorithmus auch eingesetzt werden, um zu testen, ob ein bestimmter Term t∗ ableitbar ist: Algorithmus 3.2: Forward-Chaining Input: Startdatenbasis D, Regelmenge R, Term t ∗ Output: true, falls (D, R) | PS t∗ , false sonst begin D∗ = D repeat Dtmp = D∗ R∗ = {IF C THEN t ∈ R | C wahr für D ∗ } D∗ = D∗ ∪ {t | IF C THEN t ∈ R∗ } until D∗ = Dtmp or t∗ ∈ D∗ if t∗ ∈ D∗ then return (true) else return (false) end
2. Die Performance des Algorithmus kann etwas verbessert werden, indem jede Regel, die einmal gefeuert hat, aus der Regelmenge entfernt wird. Da mit der Regelausführung auch der Term, der die Konklusion bildet, in die Datenbasis aufgenommen wurde und Terme nie aus der Datenbasis entfernt werden können, hat dies keinen Einfluß auf die Ableitung. Ebenso könnten gleich zu Beginn alle Regeln entfernt werden, die als Konklusion lediglich Terme enthalten, die bereits in der Startdatenbasis enthalten sind. Durch solche Maßnahmen bleibt die Komplexität für den schlechtesten Fall dennoch quadratisch. Es gibt allerdings Verfahren, die das Forward-Chaining simulieren und in linearer Zeit arbeiten. Die Verbesserung
KAPITEL 3. PRODUKTIONSREGELSYSTEME
128
beruht hauptsächlich auf der Verwendung einer entsprechenden Datenstruktur zur Repräsentierung der Regeln und der Datenbasis. Ein solches Verfahren ist beispielsweise für das korrespondierende Verfahren bei logischen Formeln, der Unit-Resolution, beschrieben worden [DoGa 84]. Dieses Verfahren, das auf dem Aufbau eines geeigneten Graphen und der Anwendung einer Pebbling-Strategie beruht, kann auch auf Produktionsregelsysteme ohne Negation übertragen werden. Backward-Chaining In die andere Richtung verläuft das zielgetriebene Verkettungsverfahren. Hier wird von einem zu prüfenden Term Ziel ausgegangen und versucht, ihn über Regeln auf Terme der Startdatenbasis zurückzuführen. Übertragen auf den Recognize-Act-Zyklus erhalten wir hier: 1. Recognize Bestimmung aller Regeln, welche zu prüfenden Term als Konklusion haben, bzw. Prüfung, ob der Term in der Startdatenbasis enthalten ist. 2. Act Auswahl einer Regel und Feuern dieser Regel. Die Folge einer Regelanwendung ist, daß die Bedingung dieser Regel anstelle des entsprechenden Terms im Ziel tritt. Entsprechend lassen wir auch einen beliebigen aus Termen, Konjunktionen und Disjunktionen gebildeten Ausdruck als Ziel zu. Leicht zu erkennen ist, daß wir hierbei zwei verschiedene Arten von Nichtdeterminismen vorliegen haben, für die entsprechende Strategien zur Auflösung beschrieben werden müssen. 1. Bei der Bearbeitung eines Terms t können mehrere Regeln angewendet werden, d.h. es gibt mehrere Regeln mit der Konklusion t. Hier stehen also mehrere Alternativen zur Verfügung. 2. Die Bedingung von Regeln besteht im allgemeinen nicht aus einem einzelnen Term, sondern aus mehreren durch Konjunktionen bzw. Disjunktionen verbundenen Termen. Durch eine Disjunktion wird hierbei eine Alternative ausgedrückt. Eine Konjunktion bedeutet dagegen, daß beide Teilausdrücke erfüllt sein müssen, wobei sich ebenfalls die Frage der Reihenfolge der Abarbeitung stellt. Gehen wir von einer festen Anordnung der Regeln bzw. der einzelnen Bestandteile einer Bedingung aus, können wir diese Wahlmöglichkeiten in einem geordneten Und/Oder-Baum abbilden. Definition 3.1.8 (Und/Oder-Baum) Zu einem Produktionsregelsystem P = (D, R) und einem Ziel G können wir wie folgt einen geordneten Und/Oder-Baum AOTP (G) konstruieren: 1. Die Wurzel von AOTP (G) erhält den Label G. 2. Ist der Label eines Knotens ein einzelner Term t, so erhält der Knoten einen Nachfolger • mit Label 2, falls t ∈ D, • mit Label Ci für jede Regel IF Ci THEN t in R. Die Kanten zu den Nachfolgern werden mit ODER gekennzeichnet. 3. Hat ein Knoten einen Label mit der Struktur C1 ∧ . . . ∧ Cn , so erhält der Knoten n Nachfolger mit den Labeln C1 bis Cn . Die Kanten zu den Nachfolgern werden mit UND gekennzeichnet.
3.1. DEFINITION VON PRODUKTIONSREGELSYSTEMEN
129
4. Hat ein Knoten einen Label mit der Struktur C1 ∨ . . . ∨ Cn , so erhält der Knoten n Nachfolger mit den Labeln C1 bis Cn . Die Kanten zu den Nachfolgern werden mit ODER gekennzeichnet. 5. AOTP (G) enthält nur Knoten und Kanten, die aufgrund von 1 bis 4 hinzugefügt wurden. Aus der Definition wird deutlich, daß wir zu einer eindeutigen Darstellung des Baums eine feste Anordnung der Regeln und der einzelnen Bestandteile der Bedingungen benötigen. Dazu treffen wir folgende Vereinbarung: • Knoten mit Label 2 sind links von anderen ODER-Brüdern im Baum angeordnet. Alle anderen ODER-Brüder, die auf Grund von Punkt 2 der Definition im Baum enthalten sind, werden entsprechend der Anordnung im Produktionsregelsystem von links nach rechts im Baum angeordnet. • UND-Brüder, die auf Grund von Punkt 3 der Definition im Baum enthalten sind, werden entsprechend der Anordnung der einzelnen Teilbedingungen von links nach rechts im Baum angeordnet. • ODER-Brüder, die auf Grund von Punkt 4 der Definition im Baum enthalten sind, werden entsprechend der Anordnung der einzelnen Teilbedingungen von links nach rechts im Baum geordnet. Beispiel: Betrachten wir folgendes Produktionsregelsystem P = (D, R): R = {r1 : IF (A = 1 ∧ B = 1) ∨ C = 0 THEN X = 1, r2 : IF D = 1 ∧ (A = 1 ∨ C = 0) THEN X = 1, r3 : IF E = 0 ∨ F = 1 THEN D = 1} D = {A = 1, E = 0} Dazu erhalten wir den Und/Oder-Baum aus Abbildung 3.1 bei der Bearbeitung des Ziels X = 1.
2
Die Suche nach einer möglichen Lösung entspricht damit der Anwendung eines Suchverfahrens in dem korrespondierenden Und/Oder-Baum. Dabei muß nach Blättern mit Label 2 gesucht werden. Für Knoten, deren Kanten zu den Nachfolgern mit UND gekennzeichnet sind, muß über jeden Nachfolger ein Weg zu einem Blatt mit 2 existieren. Für Knoten, deren Kanten zu den Nachfolgern mit ODER gekennzeichnet sind, muß über mindestens einen Nachfolger ein Weg zu einem Blatt 2 existieren. Im obigen Beispiel genügt also das Auffinden der beiden gefüllt dargestellten Boxen zum Nachweis, daß P |PS X = 1. Solche Suchverfahren gibt es in zahlreichen Varianten. Beispielsweise kann die Strategie der Tiefensuche mit Backtracking angewendet werden, d.h. es wird zuerst versucht, einen Ast in die Tiefe zu verfolgen. Eine andere Möglichkeit besteht darin, zuerst in die Breite zu suchen, also das Verfahren der Breitensuche anzuwenden. Für die Tiefensuche läßt sich relativ einfach ein Algorithmus formulieren, der den Baum in die Tiefe von links nach rechts abarbeitet. Algorithmus 3.3: Backward-Chaining mit Tiefensuche Input: Regelmenge R, Startdatenbasis D, Term t ∗ Output: true, falls t∗ ableitbar, sonst false, ggf. Endlosschleife function tiefe (t : term): boolean begin if t ∈ D then return (true) rulelist := Liste der Regeln in R mit Konklusion t
KAPITEL 3. PRODUKTIONSREGELSYSTEME
130
X =1 Q Q Q Q Q Q Q D = 1 ∧ (A = 1 ∨ C = 0) (A = 1 ∧ B = 1) ∨ C = 0 @ @ @ @ @ @ @ @ @ @ A=1 ∧ B =1 D =1 A=1 ∨ C =0 C =0 S S S S S S S S S S A=1 A=1 E =0 ∨ F =1 C =0 B =1 A A A A A 2 E =0 F =1
Abbildung 3.1: Und/Oder-Baum für Ziel X = 1 stop := false while rulelist = NIL and stop = false do rule := first (rulelist) cond := Bedingung von rule if conditiontest (cond ) = true then stop := true else rulelist := rest (rulelist) end while if stop = true then return (true) else return (false) end function conditiontest (cond : cond-expression): boolean begin if cond ist einzelner Term then return (tiefe (cond ) else if cond = cond 1∧ cond2 then return (conditiontest (cond 1 ) and conditiontest (cond 2 )) else return (conditiontest (cond 1) or conditiontest (cond 2)) end begin
A A
AA
UND
AA
ODER
3.1. DEFINITION VON PRODUKTIONSREGELSYSTEMEN
131
if tiefe (t∗ ) = true then return (true) else return (false) end
Durch die Verwendung von Disjunktionen und Konjunktionen in den Bedingungen der Regeln wird das Verfahren im Grunde unnötig kompliziert. Wir können uns überlegen, daß es ohne weiteres möglich ist, nur Konjunktionen in Regeln zuzulassen, ohne dadurch weitere Einschränkungen hinsichtlich der Darstellungsmöglichkeiten von Wissen als Regeln in Kauf zu nehmen. Dazu müssen wir lediglich eine Regel, die eine Disjunktion auf oberster Ebene enthält in zwei Hilfsregeln aufspalten. Daß eine solche Möglichkeit besteht, wird auch schon allein aus der Tatsache deutlich, daß im Und/Oder-Baum kein Unterschied gemacht wird, ob ODER-Kanten durch mehrere Regeln oder durch Disjunktionen im Bedingungsteil generiert worden sind. Die Umformungsregeln wollen wir exemplarisch an der Regelmenge aus dem obigen Beispiel zeigen. Beispiel: Die ursprüngliche Regelmenge war: r1 : IF (A = 1 ∧ B = 1) ∨ C = 0 THEN X = 1, r2 : IF D = 1 ∧ (A = 1 ∨ C = 0) THEN X = 1, r3 : IF E = 0 ∨ F = 1 THEN D = 1} Aus r1 wird:
Aus r3 wird:
r1.1 : IF A = 1 ∧ B = 1 THEN X = 1 r1.2 : IF C = 0 THEN X = 1 r3.1 : IF E = 0 THEN D = 1 r3.2 : IF F = 1 THEN D = 1
In diesen Fällen sind die Aufspaltungen einfach durchzuführen, da die Bedingungen bereits als Disjunktion von Konjunktionen vorliegen. Etwas komplizierter gestaltet sich die Umformung von R2 . Hier gibt es zwei mögliche Vorgehensweisen. 1. Wir können Hilfsterme einführen und erhalten dann r2.1 : IF D = 1 ∧ Hilf = 1 THEN X = 1 r2.2 : IF A = 1 THEN Hilf = 1, r2.3 : IF C = 0 THEN Hilf = 1, Dabei muß natürlich Hilf ein neu eingeführter Parameter sein. 2. Wir können auf eine Einführung von Hilfstermen verzichten, indem wir durch “Ausmultiplizieren” erreichen, daß die Bedingung in eine disjunktive Normalform (Disjunktion von Konjunktionen) umgeformt wird. Dies entspricht der Anwendung der folgenden verallgemeinerten Distributivgesetze: t ∧ (t1 ∨ . . . ∨ tn ) ≈ (t ∧ t1 ) ∨ . . . ∨ (t ∧ tn ) t ∨ (t1 ∧ . . . ∧ tn ) ≈ (t ∨ t1 ) ∧ . . . ∧ (t ∨ tn ) Durch entsprechende Anwendung dieser Umformungsregeln können wir die Bedingung in die gewünschte Form der Disjunktion von Konjunktionen bringen und dann eine Aufteilung in einzelne Regeln vornehmen. Wir erhalten somit: r2.1 : IF D = 1 ∧ A = 1 THEN X = 1 r2.2 : IF D = 1 ∧ C = 0 THEN X = 1
KAPITEL 3. PRODUKTIONSREGELSYSTEME
132
2 Mit dieser einfacheren Regelstruktur können wir auch die graphische Darstellung im Und/Oder-Baum vereinfachen. Dazu führen wir den Ableitungsbaum ein. Definition 3.1.9 (Ableitungsbaum) Gegeben sei ein Produktionsregelsystem P = (D, R) sowie ein Ziel G, bestehend aus einem einzelnen Term oder einer Konjunktion von Termen. Die Bedingungen der Regeln R enthalten keine Disjunktionen. Dazu definieren wir den Ableitungsbaum TP (G) wie folgt: 1. Die Wurzel von TP (G) erhält den Label G. 2. Jeder Knoten mit Label C = c1 ∧ . . . ∧ cn erhält einen Nachfolger mit Label c2 ∧ . . . ∧ cn , falls c1 ∈ D ( bzw. mit Label 2, n = 1). 3. Jeder Knoten mit Label C = c1 ∧ . . . ∧ cn erhält einen Nachfolger für jede Regel IF ai,1 ∧ . . . ∧ ai,ri THEN c1 in R mit dem Label ai,1 ∧ . . . ∧ ai,ri ∧ c2 ∧ . . . ∧ cn . 4. TP (G) enthält nur Knoten und Kanten nach 1 bis 3. Beispiel: Gegeben sei das Produktionsregelsystem P = (D, R) aus obigem Beispiel mit modifizierter Regelmenge r1.1 : IF A = 1 ∧ B = 1 THEN X = 1 r1.2 : IF C = 0 THEN X = 1 r2.1 : IF D = 1 ∧ A = 1 THEN X = 1 r2.2 : IF D = 1 ∧ C = 0 THEN X = 1 r3.1 : IF E = 0 THEN D = 1 r3.2 : IF F = 1 THEN D = 1 Für X = 1 ergibt sich der Ableitungsbaum TP (X = 1) in Abbildung 3.2. X =1 H HH HH HH HH A=1 ∧ B =1 C =0 D =1 ∧ A=1 D =1 ∧ C =0 C QQ C Q Q C Q C Q C Q E =0 ∧ A=1 B =1 F =1 ∧ A=1 E =0 ∧ C =0 F =1 ∧ C =0
A=1
C =0
2
Abbildung 3.2: Ableitungsbaum TP (X = 1)
2
3.1. DEFINITION VON PRODUKTIONSREGELSYSTEMEN
133
An diesem Beispiel erkennen wir, daß wir auf Grund der fehlenden Unterscheidung in UND- und ODERNachfolger nur noch einen Weg von der Wurzel zu einem Blatt mit Label 2 im Baum suchen müssen. Entsprechend können wir auch den Algorithmus etwas modifizieren.
134
KAPITEL 3. PRODUKTIONSREGELSYSTEME
Algorithmus 3.4: Backward-Chaining mit Tiefensuche für Regeln ohne Disjunktionen Input: Regelmenge R, Startdatenbasis D, Term t ∗ Output: true, falls t∗ ableitbar, sonst false, ggf. Endlosschleife function tiefe (goallist : list of term): boolean begin if goallist = NIL then return (true) rulelist := Liste der Listen der Bedingungen der Regeln in R mit Konklusion first (goallist) if first (goallist) ∈ D then rulelist := append (list (NIL),rulelist) stop := false while rulelist = NIL and stop = false do condlist := first (rulelist) newgoallist := append (condlist , rest (goallist)) if tiefe (newgoallist ) = true then stop := true else rulelist := rest (rulelist) end while if stop = true then return (true) else return (false) end
3.1. DEFINITION VON PRODUKTIONSREGELSYSTEMEN
135
begin if tiefe (list (t∗ )) = true then return (true) else return (false) end
Bevor wir darauf eingehen, daß der Algorithmus für zyklenfreie Regelmengen korrekt arbeitet, wollen wir zunächst den Begriff zyklenfrei definieren. Definition 3.1.10 (zyklenfreie Regelmenge) Zu einer Regelmenge R (ohne Disjunktionen) konstruieren wir zunächst einen gerichteten Graphen GR = (V, E) auf folgende Weise: 1. Für jeden in R auftretenden Term t wird ein Knoten vt in V aufgenommen. 2. Für jede Regel r aus R wird ein Knoten vr in V aufgenommen. 3. Für jede Regel r : IF c1 ∧ . . . ∧ cn THEN t werden Kanten von vci nach vr , für i = 1, . . . , n, und von vr nach vt in E aufgenommen. 4. GR enthält nur Knoten und Kanten aufgrund von 1 bis 3. R ist genau dann zyklenfrei, wenn GR keinen Zyklus enthält. Bemerkung: Der Test auf Zyklenfreiheit in einem gerichteten Graphen ist in linearer Zeit durchführbar [Tar 72, Ju 90], so daß sich die Vorbedingung “zyklenfreie Regelmenge” bei Produktionsregelsystemen ebenfalls in linearer Zeit testen läßt. Satz 3.1.11 Der Algorithmus 3.4 ist korrekt für zyklenfreie Regelmengen. Beweis: Angenommen der Term g ist aus dem Produktionsregelsystem P = (D, R) ableitbar. Dann können wir mit einer Induktion über die Länge der Herleitung zeigen, daß der Algorithmus mit dem Rückgabewert true terminiert. Sei l = 0, d.h. das Ziel g ist in D enthalten. Genau dann wird die Funktion tiefe im nächsten Schritt mit NIL als Argument aufgerufen und der Algorithmus terminiert mit dem Ergebnis true. 1 g. Dies bedeutet, daß eine Regel der Form r : Sei nun l > 0, d.h. es gilt (D, R) | PS (D , R) | PS IF c1 ∧ . . . ∧ cn THEN g in R enthalten sein muß. Ferner liefert die Induktionsannahme tiefe (ci ) = true für 1 ≤ i ≤ n. Wegen r ∈ R wird die Liste mit den Bedingungen c1 , . . . , cn in die Liste clist eingehängt. Da die Regelmenge keinen Zyklus enthält, bricht der Algorithmus schon zuvor beim Abarbeiten der Liste clist erfolgreich ab oder es wird die die Funktion tiefe für die Liste c1 , . . . , cn aufgerufen. Dieser Funktionsaufruf liefert gemäß Induktionsannahme den Wert true.
Angenommen g ist nicht aus P = (D, R) ableitbar. Dies impliziert, daß es ausgehend von D keine Regelkette bis hin zur Konklusion g gibt bzw. es gibt umgekehrt keine Möglichkeit, g auf Elemente aus D zurückzuführen. Dies ist aber gemäß dem Algorithmus die einzige Möglichkeit, die Liste NIL als Argument für tiefe zu erhalten und somit auch die einzige Möglichkeit eines erfolgreichen Abbruchs. Da R keine Zyklen enthält, kann die Funktion tiefe innerhalb einer Rekursion nicht mehrmals für eine mit dem gleichen Term beginnende Liste aufgerufen werden. Folglich ist die Anzahl der Aufrufe begrenzt, der Algorithmus bricht also ab und gibt den Wert false zurück.
KAPITEL 3. PRODUKTIONSREGELSYSTEME
136
Bemerkung: Die Voraussetzung “zyklenfrei” bei Satz 3.1.11 ist notwendig, da wir bei der Tiefensuche keine vollständige Suchstrategie vorliegen haben. Betrachten wir dazu folgendes Beispiel. Beispiel: Sei P = (D, R) ein Produktionsregelsystem mit D = {t3 } und R = { r1 : IF t1 THEN t2 r2 : IF t2 THEN t1 r3 : IF t3 THEN t2 } Die Regelmenge enthält offensichtlich einen Zyklus. Der zugehörige Ableitungsbaum TP (t2 ) sieht ist in Abbildung 3.3 angegeben.
t1
t1 .. .
t2 @ @ @ t3
t2 @ @ @ t3 2
2
Abbildung 3.3: Ableitungsbaum TP (t2 ) Für die Kontrollstrategie Tiefensuche von links nach rechts bedeutet dies, daß der ganz links liegende Ast in die Tiefe verfolgt wird. Da dieser unendlich ist, erhalten wir eine Endlosschleife wie auch die Aufrufreihenfolge für die Funktion tiefe zeigt: −→ tiefe ([t1 ]) −→ tiefe ([t2 ]) −→ tiefe ([t3 ]) .. .. . . 2 Somit ist es also im Zusammenhang mit rückwärtsverkettenden Verfahren und der Kontrollstrategie Tiefensuche wichtig, Schleifen während der Abarbeitung zu erkennen und so ein Terminieren des Verfahrens zu sichern. Diese Problematik werden wir in einem gesonderten Kapitel untersuchen. Lemma 3.1.12 Die Laufzeit von Algorithmus 3.4 ist auch bei zyklenfreien Regelmengen R nicht durch ein Polynom in Abhängigkeit von der Größe von P = (D, R) beschränkt. Beweis: Für den Beweis können wir eine ähnliche Konstruktion wie [KBLö 89] bei der Untersuchung des Laufzeitverhaltens des Prolog-Verfahrens verwenden. Wir betrachten folgendes Produktionsregelsystem Pn = (D, Rn ): D = {t0 } R = {IF ci,1 ∧ ci,2 THEN ti , IF ti−1 THEN ci,1 , IF ti−1 THEN ci,2 | 1 ≤ i ≤ n}
3.2. PROBLEME BEI PRODUKTIONSREGELSYSTEMEN MIT NEGATION
137
Die Anzahl der Regeln ist 3n. Wir analysieren nun die Anzahl der Aufrufe A(n) der Funktion tiefe für das Ziel tn in Abhängigkeit von n. Für n = 0 erhalten wir A(0) = 2, da t0 ∈ D gilt und somit der zweite Aufruf der Funktion entsprechend tiefe (NIL) lautet, womit der Abbruch erreicht ist. Für n = 1 erhalten wir folgende Aufrufe: −→ tiefe ([t1 ]) −→ tiefe ([c1,1 , c1,2 ]) −→ tiefe ([t0 , c1,2 ]) .. . {Anzahl der Aufrufe für t0 } −→ tiefe ([c1,2 ]) −→ tiefe ([t0 ]) .. . {Anzahl der Aufrufe für t } 0
Für n > 0 läßt sich allgemein herleiten: A(n) = 5 + 2 · A(n − 1) = 5 ·
n−1
i=0
2i + 2n+1 = 5
1 − 2n + 2n+1 = 5 · 2n + 2n+1 − 5 ≥ 2n 1−2
Damit haben wir aus den zwei Hauptgruppen vorwärtsverkettende Verfahren und rückwärtsverkettende Verfahren jeweils einen Vertreter näher beschrieben und analysiert. Es ist allerdings zu bemerken, daß auch durchaus eine Kombination aus beiden Verfahren zur Lösung des Ableitungsproblems betrachtet werden kann. Es kann auf der einen Seite vom Ziel rückwärts und “gleichzeitig” auf der anderen Seite von den Fakten aus vorwärts geschlossen werden. Verfahren, die auf diese Weise arbeiten, behandelt zum Beispiel Nilsson in [Nil 82]. Wählt man ein solches kombiniertes Vorgehen, so stellt sich natürlich die Frage, welche Regel mit welchem Verfahren verarbeitet werden soll. In [TrGe 87] finden wir einige Aussagen über die Bestimmung der optimalen Verarbeitungsrichtung. Dort wird von einem Regelsystem ausgegangen, welches aus Fakten (variablenfreie Atomformeln), Regeln (allquantifizierte Hornformeln ohne Funktionen) und Zielen (existenzquantifizierte Konjunktion von Atomformeln ohne Funktionen) besteht. Treitel und Genesereth führen die beiden Bedingungen “Kohärenz” und “keine doppelten Antworten” ein und zeigen, daß bei Einhaltung dieser beiden Bedingungen eine optimale Auswahl der Verarbeitungsrichtung in polynomieller Zeit möglich ist. Bei Wegfall einer der beiden Bedingungen wird dagegen das Problem NP-vollständig. Wir wollen aber im folgenden diese Probleme nicht weiter vertiefen, sondern bei unseren Untersuchungen von einer fest vorgegebenen Verarbeitungsrichtung ausgehen.
3.2 Probleme bei Produktionsregelsystemen mit Negation Im vorangegangenen Abschnitt haben wir die Negation in Bedingungen für Regeln nicht zugelassen. Diese Einschränkung wollen wir nun aufheben und analysieren, welche Auswirkungen daraus entstehen. Definition 3.2.1 (Produktionsregelsysteme mit Negation) Als Produktionsregelsysteme mit Negation PN = (D, RN ) bezeichnen wir Produktionsregelsysteme, bei denen der Bedingungsteil von Regeln aus Termen, den Konnektoren Konjunktion und Disjunktion und zusätzlich aus der Negation (NOT ) gebildet werden kann.
KAPITEL 3. PRODUKTIONSREGELSYSTEME
138 Beispiel: Die Regel
IF NOT X = a ∧ NOT (Y = a ∧ Z = b) THEN W = a 2
ist damit korrekt gebildet. Bemerkungen:
1. Wir können Regeln mit NOT so umformen, daß die Negation nur bei einzelnen Termen steht. Dies entspricht dem Erstellen einer Negationsnormalform des Bedingungsteils und ist im wesentlichen das Ergebnis der Anwendung von Umformungsregeln analog der de Morgan’schen Regeln, d.h. es werden die folgenden Transformationen für Bedingungen verwendet: NOT NOT
(t1 ∧ . . . ∧ tn ) ≈ NOT (t1 ) ∨ . . . ∨ NOT (tn ) (t1 ∨ . . . ∨ tn ) ≈ NOT (t1 ) ∧ . . . ∧ NOT (tn )
Für obige Regel ergibt sich damit beispielsweise: IF NOT X = a ∧ (NOT Y = a ∨ NOT Z = b) THEN W = a 2. Damit können wir Regeln auch so umformen, daß die Bedingungen nur Negationen bei einzelnen Termen und nur Konjunktionen als Konnektoren enthalten. Dies entspricht lediglich dem schon bekannten “Ausmultiplizieren” und anschließendem Aufspalten in mehrere Regeln. Für obige Regel erhalten wir dann: IF NOT X = a ∧ NOT Y = a THEN W = a IF NOT X = a ∧ NOT Z = b THEN W = a 3. Beide Transformationen stammen aus dem Bereich der Logik. Es ist kritisch zu prüfen, ob die transformierten Regeln bei der durch den Verarbeitungsmechanismus gegebenen Semantik die gleiche Bedeutung haben wie die ursprünglichen Regeln. Die Einführung des NOT impliziert sofort, daß wir zunächst die Definition des Erfülltseins für Bedingungen von Regeln, die ein NOT enthalten, erweitern müssen. Dafür sind im wesentlichen zwei unterschiedliche Möglichkeiten denkbar: • Interpretation entsprechend dem Negation-by-Failure Konzept • Interpretation im Bezug zur aktuellen Datenbasis Im folgenden wollen wir diese beiden Möglichkeiten diskutieren.
3.2.1 Interpretation entsprechend dem Negation-by-Failure Konzept Das Negation-by-Failure Konzept ist aus dem Bereich der Logik-Programmierung bekannt (vgl. [Cla 78, Llo 87]), beispielsweise wird es bei der Programmiersprache PROLOG verwandt [ClMe 84]. Da wir nur Terme betrachten und somit variablenfreie Ausdrücke vorliegen, kann eine recht einfache Charakterisierung des Konzepts angegeben werden. Wir gehen davon aus, daß die Bedingung NOT t für einen Term t erfüllt ist, falls t nicht ableitbar ist. Dies entspricht dem Negation-by-Failure Konzept im aussagenlogischen Fall. Hintergrund bei dieser Interpretation ist die sogenannte “Closed World Assumption”. Dies bedeutet, daß wir davon ausgehen, daß die Welt, die wir formalisieren wollen, vollständig beschrieben ist. Das heißt wiederum, alle Terme, die in dieser Welt gültig sind, sind auch ableitbar. Damit entspricht die Interpretation von NOT entsprechend dem Negation-by-Failure Konzept auch einem korrekten Abbild der zu modellierenden Welt.
3.2. PROBLEME BEI PRODUKTIONSREGELSYSTEMEN MIT NEGATION
139
Definition 3.2.2 (Erfülltsein einer negierten Bedingung entsprechend dem Negation-by-Failure Konzept) In einem Produktionsregelsystem PN = (D, RN ) ist eine Bedingung NOT C genau dann erfüllt (wahr), wenn C nicht aus PN ableitbar ist. Ist C hierbei eine Konjunktion von mehreren Teilausdrücken, so muß mindestens einer der Teilausdrücke nicht ableitbar sein, ist C eine Disjunktion von mehreren Teilausdrücken, so darf keiner der Teilausdrücke ableitbar sein, damit NOT C erfüllt ist. Damit wird die Ableitbarkeit von negierten Ausdrücken letztendlich auf die Ableitbarkeit einzelner Terme zurückgeführt. Diese Interpretation läßt sich damit kanonisch in rückwärtsverkettende Verfahren zur Bestimmung der Ableitbarkeit einbetten. Der Einfachheit halber gehen wir von Regeln aus, die Negationen nur bei einzelnen Termen und als Konnektoren nur die Konjunktion enthalten. Dann läßt sich der Algorithmus 3.4 auf einfache Weise erweitern, um auch auf Regelmengen mit NOT anwendbar zu sein. Algorithmus 3.5: Backward-Chaining mit Tiefensuche für Regeln mit Negationen Input: Regelmenge R, Startdatenbasis D, Term t ∗ Output: true, falls t∗ ableitbar, sonst false, ggf. Endlosschleife function tiefe (goallist : list of term): boolean begin if goallist = NIL then return (true) if first (goallist) = NOT t then begin if tiefe (list (t )) = true then return (false) else return (tiefe (rest (goallist))) end then rulelist := Liste der Listen der Bedingungen der Regeln in R mit Konklusion first (goallist) .. .. . . end begin if tiefe (list (t∗ )) = true then return (true) else return (false) end
Wir können uns ganz analog zu Algorithmus 3.5 überlegen, daß dieser Algorithmus für zyklenfreie Regelmengen korrekt arbeitet. Das Verfahren ist lediglich um eine Fallunterscheidung erweitert worden, um den Fall zu behandeln, daß das nächste zu bearbeitende Teilziel ein negierter Term NOT t ist. Ist dies der Fall, so müssen wir testen, ob t erfolgreich abgeleitet werden kann. Entsprechend der Definition über das Erfülltsein einer negierten Bedingung erhalten wir, daß das zu bearbeitende Teilziel erfüllt ist und damit mit der Restliste der Bedingungen fortgefahren werden kann, wenn t nicht ableitbar ist. Ansonsten ist das Teilziel nicht erfüllt und es muß ein false für diesen Aufruf zurückgegeben werden. Probleme bereiten allerdings erneut zyklische Regelmengen. Die Situation wird durch die Negation eher etwas komplexer, da das Testen eines negierten Terms NOT t im Grunde der Generierung eines neuen Ableitungsbaums mit Wurzel t entspricht. Dies wird durch folgendes Beispiel erläutert.
KAPITEL 3. PRODUKTIONSREGELSYSTEME
140
Beispiel: Gegeben sei folgendes Produktionsregelsystem PN = (D, RN ) mit D = ∅ und RN = { r1 : IF NOT X = a THEN Y = b, r2 : IF NOT Y = b THEN X = a} Es ergibt sich eine Schleife sowohl für das Ziel Y = b als auch für X = a. Dies äußert sich darin, daß wir unendlich viele Ableitungsbäume auf Grund der Negation generieren müßten. 2 In diesem Fall können Schleifen also nicht einfach dadurch umgangen werden, daß wir, sobald wir feststellen, daß wir einen unendlichen Ast des Ableitungsbaums verfolgen, festlegen, daß die entsprechende Klausel fehlschlägt, und so nach einem alternativen Lösungsweg suchen. Die Festlegung, daß ein bestimmter Term fehlschlägt, könnte nun das Wahrwerden einer anderen Bedingung implizieren. Noch grundsätzlicher gestalten sich allerdings die Probleme, wenn wir versuchen, das Negation-by-Failure Konzept in ein vorwärtsverkettendes Verfahren zu integrieren. Das Erfülltsein einer Bedingung und damit die Bildung der Konfliktmenge ist bei einem solchen Verfahren von der aktuellen Datenbasis abhängig. Das Negation-by-Failure Konzept impliziert dagegen, daß das Erfülltsein einer Bedingung von der Ableitbarkeit von Termen abhängt. Dies bedeutet, daß ein reines vorwärtsverkettendes Verfahren bei Negation-by-Failure keinen Sinn macht, da bei negierten Bedingungen die Ableitbarkeit von Termen getestet werden muß und hierfür ein rückwärtsverkettendes Verfahren integriert werden müßte. Dieser Sachverhalt wird auch durch folgendes Beispiel verdeutlicht. Beispiel: Gegeben sei folgendes Produktionsregelsystem PN = (D, RN ) mit D = ∅ und RN = { r1 : IF Z = a THEN X = b, r2 : IF NOT Y = b THEN Z = a, r3 : IF U = 1 THEN Y = b} Wollen wir in diesem Fall die Konfliktmenge der anwendbaren Regeln bilden, so muß dafür die Ableitbarkeit von Y = b getestet werden. Dazu muß aber ein rückwärtsverkettendes Verfahren herangezogen werden. Das Resultat ist dann also eine Vermischung beider Strategien. 2 Wie schon erwähnt, liegt die Ursache für diese Schwierigkeit darin, daß bei vorwärtsverkettenden Verfahren im Gegensatz zu rückwärtsverkettenden Verfahren die Bildung der Konfliktmenge der anwendbaren Regeln vom aktuellen Stand der Datenbasis abhängt. Dies führt unmittelbar zu einer anderen Interpretation der Negation für vorwärtsverkettende Verfahren.
3.2.2 Interpretation der Negation in Bezug auf die aktuelle Datenbasis Zunächst wollen wir definieren, wann nun eine negierte Bedingung erfüllt ist. Definition 3.2.3 (Erfülltsein einer negierten Bedingung in Bezug auf eine Datenbasis D) Eine Bedingung NOT C ist in Bezug auf eine Datenbasis D genau dann erfüllt, wenn C in Bezug auf D nicht erfüllt ist. Im einzelnen: • Ist C ein einzelner Term t, so muß t ∈ D gelten. • Ist C ein zusammengesetzter Ausdruck, wird das Erfülltsein entsprechend der Konnektoren auf das Erfülltsein einzelner Ausdrücke zurückgeführt.
3.2. PROBLEME BEI PRODUKTIONSREGELSYSTEMEN MIT NEGATION
141
Diese Definition erscheint zunächst als eine kanonische Fortführung der Definition der Erfüllung einer Bedingung ohne Negationen wie sie in Abschnitt 3.1 eingeführt worden ist. Allerdings ergeben sich auch aus diesem Begriff Probleme, wie schon folgendes Lemma zeigt. Lemma 3.2.4 Produktionsregelsysteme mit Negation und der Interpretation der Negation in Bezug auf die Datenbasis sind nicht kommutativ. Beweis: Betrachte das Produktionsregelsystem PN = (D, RN ) mit D = ∅ und RN = { r1 : IF NOT X = a THEN Y = b, r2 : IF NOT Y = b THEN X = a} Wegen D = ∅ ist sowohl r1 als auch r2 anwendbar. Wir wählen beispielsweise r1 und erhalten 1 (D1 , RN ) mit D1 = {Y = b}. Für D1 ist aber die Bedingung von r2 nicht länger erfüllt, (D, RN ) | PS r2 ist also nicht anwendbar. Also ist PN nicht kommutativ. Die Kommutativität von Produktionsregelsystemen ohne Negation war allerdings eine wesentliche Voraussetzung für die Korrektheit des Algorithmus 3.1. Wir können das Verfahren auch nicht auf einfache Weise erweitern. Es ist nun lediglich die Angabe eines nichtdeterministischen Verfahrens möglich. Algorithmus 3.6: Forward-Chaining für Produktionsregelsysteme mit Negation Input: Startdatenbasis D, Regelmenge R, Term t ∗ Output: true, falls (D, R) | PS t∗ , unknown sonst begin D∗ = D stop := false repeat R∗ = {IF C THEN t ∈ R | C wahr für D ∗ } if R∗ = ∅ then stop := true else begin choose r : IF C THEN t ∈ R∗ D∗ = D∗ ∪ {t } end else until stop = true if t∗ ∈ D∗ then return (true) else return (unknown) end
Der Algorithmus terminiert für jede Eingabe PN = (D, RN ), da die Mächtigkeit von D∗ durch die Anzahl der Terme, die in (D, RN ) vorkommen, begrenzt ist und D∗ bei jedem Iterationsschritt um mindestens ein Element anwächst. Jeder Iterationsschritt des Algorithmus entspricht genau einem Schritt der Ableitung in Produktionsre1 . Somit gilt offensichtlich, daß (D, RN ) | PS t gilt, wenn der Algorithmus abbricht gelsystemen | PS und true zurückgibt. Falls umgekehrt (D, RN ) | PS t gilt, so gibt es eine Folge von Regelanwendungen 1 1 1 (D1 , RN ) | PS . . . | PS (Dk , RN ) mit t ∈ Dk , wobei jeweils Di durch Anwendung einer Re(D, RN ) | PS gel mit in Di−1 erfüllter Bedingung aus Di−1 entstanden ist. Wählt man die entsprechende Regeln in dieser Reihenfolge für die ersten k Schleifendurchläufe, so erhält man Dk ⊆ D∗ und damit auch die Ableitbarkeit von t. Folglich ist der Algorithmus korrekt.
KAPITEL 3. PRODUKTIONSREGELSYSTEME
142
Allerdings wird auch hier aufgrund des Nichtdeterminismus im Verfahren nicht in jedem Fall der Wert true vom Algorithmus zurückgegeben, wenn (D, RN ) | PS t gilt. Es gibt zwar eine erfolgreiche Regelkette, diese muß aber nicht gewählt worden sein. Aus diesem Grund können wir dann auch nur angeben, daß keine Aussage über die Ableitbarkeit von t getroffen werden kann. Der Nichtdeterminismus in Algorithmus 3.6 läßt sich entsprechend dem nachfolgenden Satz unter der Voraussetzung P = NP auch nicht so auflösen, daß ein polynomiell beschränktes deterministisches Verfahren zur Bestimmung der Ableitbarkeit entsteht. Für Details zur Definition der Begriffe P und NP, sowie die damit verbundenen Problemstellungen sei beispielsweise auf [GaJo 79] verwiesen. Satz 3.2.5 Die Menge {(PN , t) | PN | PS t, PN Produktionsregelsystem mit Negation, t Term} ist NP-vollständig. Beweis: Zuerst zeigen wir, daß wir die Ableitbarkeit eines Terms t auf nichtdeterministische Weise in polynomieller Zeit bestimmen können: • Wir können Algorithmus 3.6 anwenden, um zu entscheiden, ob PN = (D, RN ) | PS t gilt. Der Algorithmus arbeitet nichtdeterministisch und offenbar in polynomieller Zeit. Jeder Iterationsschritt ist polynomiell begrenzt und die Anzahl der Iterationen ist durch die Anzahl der Terme, die in PN = (D, RN ) auftreten, begrenzt. Um die NP-Härte des Problems zu beweisen, reduzieren wir das Erfüllbarkeitsproblem für aussagenlogische Formeln. Damit können wir das wohlbekannte Ergebnis verwenden, daß 3SAT ein NP-vollständiges Problem darstellt [Coo 71]. • Zu einer gegebenen aussagenlogischen Formel α konstruieren wir in polynomieller Zeit eine Menge Rα von Regeln, so daß α genau dann erfüllbar ist, wenn Pα = (∅, Rα ) | PS t gilt mit t = (Y = 1). Sei
α :≡
Ai,1 ∨ Ai,2 ∨ Ai,3
1≤i≤m
eine aussagenlogische Formel mit Literalen Ai,j über den Atomen x1 , . . . , xn . Für jedes Literal L von α definieren wir einen Term %L& von Rα durch
%L& :=
Xj = 1 falls L ≡ xj , Xj = 0 falls L ≡ ¬xj ,
und betrachten die folgende Menge Rα von Regeln: Rα := {IF %Ai,1 & ∨ %Ai,2 & ∨ %Ai,3 & THEN Yi = 1 | 1 ≤ i ≤ m}∪ {IF 1≤i≤m Yi = 1 THEN Y = 1} {IF NOT Xj = 0 THEN Xj = 1 | 1 ≤ j ≤ n}∪ {IF NOT Xj = 1 THEN Xj = 0 | 1 ≤ j ≤ n} • Sei α erfüllbar. Dann gibt es eine Belegung der Atome x1 , . . . , xn mit (α) = 1. Wir zeigen, daß nun gilt Pα = (∅, Rα ) | PS (Y = 1). Zuerst werden die folgenden Regeln gefeuert
3.3. EIN AUSSAGENLOGISCHES MODELL FÜR PRODUKTIONSREGELSYSTEME
143
für alle j mit (xj ) = 1: IF NOT Xj = 0 THEN Xj = 1 für alle j mit (xj ) = 0: IF NOT Xj = 1 THEN Xj = 0 Da die Formel α erfüllt, existiert für jedes i (1 ≤ i ≤ m) ein j (1 ≤ j ≤ 3) mit (Ai,j ) = 1. Aufgrund der Definition von %Ai,j & und den Regeln, die gefeuert haben, können wir nun Yi = 1 für alle 1 ≤ i ≤ m schließen. Somit kann Y = 1 von Pα abgeleitet werden. • Nehmen wir nun an, Pα | PS (Y = 1). Dies bedeutet, daß Yi = 1 für alle 1 ≤ i ≤ m von Pα ableitbar ist. Folglich muß für jedes i (1 ≤ i ≤ m) ein j (1 ≤ j ≤ 3) existieren, so daß %Ai,j & von Pα abgeleitet werden kann. Dabei ist zu beachten, daß nur entweder die Regel IF NOT Xk = 0 THEN Xk = 1 oder die Regel IF NOT Xk = 1 THEN Xk = 0 gefeuert werden kann, aber nie beide gleichzeitig. Indem wir für die Atome xk , für die keine solche Regel gefeuert wurde, eine beliebige Wahrheitswertbelegung wählen, erhalten wir insgesamt eine erfüllende Bewertung für α. Damit ist der Beweis abgeschlossen. Also haben wir gezeigt, daß es für diese Interpretation der Negation keinen einfachen Algorithmus zur Entscheidung der Ableitung gibt, d.h. daß unter der Voraussetzung P = NP kein polynomieller Algorithmus existiert.
3.3 Ein aussagenlogisches Modell für Produktionsregelsysteme Zu einem gegebenen Produktionsregelsystem P = (D, R) wollen wir nun ein aussagenlogisches Logikprogramm α(D,R) konstruieren, das folgender Bedingung genügt: Sei α(D,R) das zu P = (D, R) korrespondierende Logikprogramm, dann gilt genau dann (D, R) | PS (D , R), wenn α(D,R) |= α(D ,R) gilt. Dazu kodieren wir einen Term t eines Produktionsregelsystems (D, R) durch ein Atom %t&. Wir definieren für jeden Parameter X und jeden Wert a: %X = a& := [X, a]+ %X = a& := [X, a]− Falls C die Bedingung einer Regel eines Produktionsregelsystems ist, erhalten wir %C& aus C, indem wir jedes Vorkommen eines Terms t in C durch %t& ersetzen. Somit stellt %C& eine aussagenlogische Formel dar. Diese Vorüberlegungen führen zu folgender Definition: Definition 3.3.1 (Korrespondierendes Logikprogramm) Gegeben sei ein Produktionsregelsystem P = (D, R). Dazu definieren wir eine aussagenlogische Formel α(D,R) = αD ∧ αR auf folgende Weise: 1. Die Datenbasis D von P wird durch eine Konjunktion der Fakten, die in D vorkommen, kodiert: αD :=
(X=a)∈D
[X, a]+ ∧
(X =a)∈D
[X, a]−
KAPITEL 3. PRODUKTIONSREGELSYSTEME
144
2. Die Regeln R von P werden durch folgende Implikationen kodiert: αR :=
%C& → %t&
(IF C THEN t)∈R
Offensichtlich ist α(D,R) in definiter Hornform und stellt somit ein (aussagenlogisches) Logikprogramm dar. Um die eingangs an das korrespondierende Logikprogramm gestellten Anforderungen für diese Kodierung nachweisen zu können, zeigen wir zunächst die beiden folgenden Lemmata. Lemma 3.3.2 Unter der Voraussetzung (D, R) | PS (D , R) gilt auch α(D,R) |= α(D ,R) . Beweis: Wir führen den Beweis mittels einer Induktion über die Länge l der Ableitung. Ist l = 0, dann gilt die Behauptung offensichtlich. Im Fall l > 0 gibt es eine Ableitung der Form 1 (D , R) und aufgrund der Induktionsannahme gilt α(D,R) |= α(D ,R) . Ferner (D, R) | PS (D , R) | PS gilt D = D ∪ {t} für einen beliebigen Term t, wobei es eine Regel IF C THEN t ∈ R gibt und C für D erfüllt ist. Betrachten wir eine beliebige Bewertung , die α(D ,R) erfüllt. Da dann auch αD erfüllt und C wahr ist für D , erhalten wir (C) = 1. Folglich gilt dann auch (%t&) = 1, da %C& → %t& eine Klausel von αR ist und (αR ) = 1 gilt. Für das folgende Lemma benötigen wir zunächst eine Definition. Definition 3.3.3 Zu einer Datenbasis D und einem Produktionsregelsystem P = (D, R) definieren wir die Bewertung D von α(D,R) durch 1 falls t ∈ D
D (%t&) := 0 sonst Bemerkung: Betrachten wir Produktionsregelsysteme ohne Negation, so gilt offensichtlich, daß es zu jedem solchen Produktionsregelsystem eine eindeutige Menge D∗ gibt, die alle ableitbaren Terme enthält. Diese kann beispielsweise über Algorithmus 3.1 bestimmt werden. Lemma 3.3.4 Sei D∗ die Menge aller aus P = (D, R) ableitbaren Terme. Dann ist D∗ eine erfüllende Bewertung für α(D,R) . Beweis: Offensichtlich erfüllt D∗ die Formel αD∗ . Damit ist D∗ auch eine erfüllende Bewertung für αD wegen D ⊆ D∗ . Sei %C& → %t& eine beliebige Klausel von αR und angenommen es gilt D∗ (%C&) = 1. Dann ist C wahr für D∗ und es gilt t ∈ D∗ aufgrund der Konstruktion von D∗ . Somit erhalten wir
D∗ (%t&) = 1. Also erfüllt D∗ auch αR . Satz 3.3.5 Sei P = (D, R) ein Produktionsregelsystem. Dann gilt α(D,R) |= %t& genau dann, wenn (D, R) | PS t. Damit entsprechen die möglichen Folgerungen von α(D,R) genau den Termen, die aus (D, R) abgeleitet werden können. Beweis: Sei D∗ wiederum die maximale Menge der Terme t, für die (D, R) | PS t gilt. Es gilt also (D, R) | PS (D∗ , R). Dann gilt auch α(D,R) |= α(D∗ ,R) wegen Lemma 3.3.2 und folglich auch α(D,R) |= %t& für jedes t ∈ D∗ .
3.4. DAS PROBLEM DER INKONSISTENZ
145
Angenommen, es gilt α(D,R) |= %t&. Wegen Lemma 3.3.4 erfüllt D∗ die Formel α(D,R) . Damit gilt natürlich auch D∗ (%t&) = 1. Aufgrund der Definition von D∗ gilt so auch t ∈ D∗ und damit (D, R) | PS t. Damit haben wir gezeigt, daß wir an Stelle der Ableitung in Produktionsregelsystemen auch die Folgerungen im korrespondierenden Logikprogramm betrachten können.
3.4 Das Problem der Inkonsistenz Zu den gravierendsten fehlerhaften Zuständen für Wissensbasen zählt die Inkonsistenz der Wissensbasis, also die Möglichkeit, widersprüchliche Ableitungen zu erhalten. Sogar bei strukturierten Wissensbasen können noch versteckte Inkonsistenzen enthalten sein. Wünschenswert sind folglich Verfahren, welche inkonsistente Situationen entdecken. In diesem Abschnitt werden wir zunächst den Begriff Inkonsistenz für Produktionsregelsysteme definieren, um dann anschließend zu untersuchen, welche Lösungsmöglichkeiten für dieses Problem bestehen. Definition 3.4.1 (Inkonsistente Datenbasis) Eine Datenbasis D ist genau dann inkonsistent, wenn es Terme X = a und X = a gibt, die beide in der Datenbasis enthalten sind. Beispiel: Sei D die Datenbasis eines Produktionsregelsystems mit D = { Gehäuse = aluminium, Schraube = senkkopf, Schraube = senkkopf}. Sowohl Schraube = senkkopf als auch Schraube = senkkopf sind in D enthalten, damit ist D inkonsistent. 2 Definition 3.4.2 (Inkonsistentes Produktionsregelsystem) Ein Produktionsregelsystem P = (D, R) ist genau dann inkonsistent, wenn es eine Datenbasis D gibt mit (D, R) | PS (D , R) und D ist inkonsistent. Somit kann ein Produktionsregelsystem P = (D, R) mit konsistenter Datenbasis D inkonsistent sein, wenn es möglich ist, nach beliebig vielen Ableitungsschritten in eine inkonsistente Situation zu geraten. Beispiel: Sei P = (D, R) ein Produktionsregelsystem mit D = { Motor = hochleistung, Einbau = ja, Verbindung = stark } R = { r1 : IF Motor = hochleistung THEN Gehäuse = aluminium, r2 : IF Gehäuse = aluminium ∧ Einbau = ja THEN Schraube = senkkopf, r3 : IF Verbindung = stark THEN Schraube = senkkopf }. Offensichtlich gilt, daß D konsistent ist. Dagegen ist P = (D, R) inkonsistent, da (D, R) |PS (D , R) gilt mit D = { Motor = hochleistung, Einbau = ja, Verbindung = stark, Gehäuse = aluminium, Schraube = senkkopf, Schraube = senkkopf}. und damit D inkonsistent ist.
2
146
KAPITEL 3. PRODUKTIONSREGELSYSTEME
Bemerkung: Betrachtet man Shells zur Realisierung von Expertensystemen, so enthalten diese oft noch zusätzliche einschränkende Anforderungen für Parameter, welche Auswirkungen auf die Konsistenz haben können. Dazu zählen Wertebereichseinschränkungen oder auch Definition einzelner Parameter als einwertig oder mehrwertig. • X mehrwertig in P bedeutet, daß es erlaubt ist, daß gleichzeitig X = a und X = b für a = b und a, b ∈ Val(P ) in der Datenbasis enthalten sind. • X einwertig in P bedeutet, daß es nicht gestattet ist, daß gleichzeitig X = a und X = b für a = b und a, b ∈ Val(P ) gleichzeitig in der Datenbasis enthalten sind. Dies führt natürlich zu einem anderen Typ inkonsistenter Situationen. Die Einschränkung einwertig kann aber in unserem Modell für Produktionsregelsysteme beispielsweise durch zusätzliche Regeln simuliert werden. Sei P = (D, R) ein Produktionsregelsystem mit Parametern Par(P ) = {X1 , . . . , Xm } und Werten Val(P ) = {a1 , . . . , an }. Außerdem sei festgelegt, daß ein Parameter Xk einwertig in P sein soll. Dann können wir dies in einem Produktionsregelsystem P = (D, R ) formulieren durch zusätzliche Regeln: R = R ∪ {IF Xk = ai THEN Xk = aj | 1 ≤ i, j ≤ n, i = j} Wir erhalten hierfür, daß P genau dann inkonsistent ist, wenn P = (D, R ) inkonsistent ist. Damit können wir annehmen, daß ein Parameter mehrwertig ist, und für alle einwertigen Parameter eine solche Menge von Regeln hinzufügen.
3.4.1 Ein Algorithmus zum Test auf Inkonsistenz In diesem Abschnitt beschreiben wir einen Algorithmus, der ein Produktionsregelsystem ohne Negation P = (D, R) auf Inkonsistenz testet. Der Algorithmus beruht auf einem datengetriebenen Verfahren (vgl. Algorithmus 3.1). Ausgehend von der Startdatenbasis D werden einfach alle Terme generiert, die von P abgeleitet werden können. Die so entstandene Menge D∗ wird dann auf Konsistenz getestet.
3.4. DAS PROBLEM DER INKONSISTENZ
147
Algorithmus 3.7: Test auf Inkonsistenz Input: Startdatenbasis D, Regelmenge R Output: consistent, falls (D, R) konsistent, inconsistent sonst begin D∗ = D repeat Dtmp = D∗ R∗ = {IF C THEN t ∈ R | C wahr für D ∗ } D∗ = D∗ ∪ {t | IF C THEN t ∈ R∗ } until D∗ = Dtmp if ∃ X = a, X = a ∈ D ∗ then return (inconsistent) else return (consistent) end
Satz 3.4.3 Der Algorithmus 3.7 arbeitet korrekt und benötigt linearen Platz und quadratische Zeit in Abhängigkeit der Größe von P = (D, R). Beweis: Der Algorithmus 3.7 ist offensichtlich lediglich eine Modifikation von Algorithmus 3.1. Damit können wir gemäß Satz 3.1.7 folgern, daß t ∈ D∗ genau dann, wenn (D, R) | PS t. Damit enthält D∗ alle Terme, die aus P ableitbar sind, und folglich ist P genau dann inkonsistent, wenn D∗ inkonsistent ist. Also arbeitet der Algorithmus korrekt. Die Argumentation bezüglich des Laufzeitverhaltens können wir ebenfalls übernehmen und erhalten so den quadratischen Zeitbedarf. Bemerkung: Natürlich könnte auch ein zielgetriebener Algorithmus zur Feststellung der Inkonsistenz verwendet werden (vgl. Algorithmus 3.4). Dazu müßte man für alle Terme X = a und X = a als Ziel, die beide in P enthalten sind, die gleichzeitige Ableitbarkeit testen. P ist genau dann inkonsistent, wenn es ein solches Paar gibt.
3.4.2 Inkonsistenz und das aussagenlogische Modell Im Abschnitt 3.3 haben wir die Korrespondenz zwischen Logikprogrammen und Produktionsregelsystemen aufgezeigt. Dazu haben wir eine zu einem Produktionsregelsystem P korrespondierende aussagenlogische Formel αP in definiter Hornform aufgestellt. In diesem Abschnitt wollen wir nun diese aussagenlogische Formel so modifizieren, daß wir auch eine Korrespondenz für die Konsistenz erreichen. Bisher hat αP nämlich leider nicht die Eigenschaft, daß sie genau dann konsistent (erfüllbar) ist, wenn auch P konsistent ist, wie folgendes Beispiel zeigt. Beispiel: Sei P = (D, R) ein Produktionsregelsystem mit D = { E = h, I = y, C = s}, R = { r1 : IF E = h THEN B = a, r2 : IF B = a ∧ I = y THEN S = c, r3 : IF C = s THEN S = c}. Wir erhalten dazu α(D,R) = αD ∧ αR mit αD = [E, h]+ ∧ [I, y]+ ∧ [C, s]+ αR = ([E, h]+ → [B, a]+ ) ∧ (([B, a]+ ∧ [I, y]+ ) → [S, c]+ ) ∧ ([C, s]+ → [S, c]− )
KAPITEL 3. PRODUKTIONSREGELSYSTEME
148
Offensichtlich ist diese Formel erfüllbar durch folgende Belegung: [E, h]+ = [I, y]+ = [C, s]+ = [B, a]+ = [S, c]+ = [S, c]− = 1 Dagegen ist P inkonsistent, da sowohl S = c als auch S = c ableitbar sind.
2
Die Ursache hierfür ist, daß durch α(D,R) nicht ausgedrückt wird, daß nicht gleichzeitig [S, c]+ = 1 und [S, c]− = 1 sein darf. Dazu wollen wir nun eine aussagenlogische Formel β(D,R) angeben, die diesen Sachverhalt berücksichtigt und damit folgende beiden Eigenschaften besitzt: 1. Ein Produktionsregelsystem (D, R) ist inkonsistent genau dann, wenn die Formel β(D,R) nicht erfüllbar ist. 2. Falls ein Produktionsregelsystem (D, R) konsistent ist, dann gilt (D, R) |PS (D , R) genau dann, wenn β(D,R) |= β(D ,R) gilt. Die Einschränkung, die nun unter Punkt 2 notwendig ist, erscheint sofort einleuchtend, wenn man bedenkt, daß aus einer inkonsistenten Formel beliebige Formeln gefolgert werden können, aus einem inkonsistenten Produktionsregelsystem allerdings nicht beliebige Terme abgeleitet werden können. Hier kommt der unterschiedliche Charakter der beiden Beschreibungen zum Tragen, und es wird deutlich, daß die rein deskriptive aussagenlogische Beschreibung nur eine Charakterisierung für ein eher prozedural zu verstehende Produktionsregelsystem ist, die genau die Eigenschaften des Produktionsregelsystem in der oben angegebenen Weise reflektiert. Definition 3.4.4 Gegeben sei ein Produktionsregelsystem P = (D, R). Dazu definieren wir eine aussagenlogische Formel β(D,R) = βD ∧ βR auf folgende Weise: 1. Die Datenbasis D von P wird durch eine Konjunktion der Fakten, die in D vorkommen, kodiert. Zusätzlich legen wir fest, daß nicht gleichzeitig X = a und X = a für einen beliebigen Parameter X und einen beliebigen Wert a enthalten sein darf. βD :=
[X, a]+ ∧ (X =a)∈D [X, a]− (X=a)∈D + − X Parameter
a Wert ¬([X, a]
∧ [X, a] )
2. Die Regeln R von P werden durch folgende Implikationen kodiert: βR :=
%C& → %t&
(IF C THEN t)∈R
β(D,R) stellt nun zwar kein Logikprogramm mehr dar, ist aber in Hornform (die Formel enthält nun auch Klauseln, welche nur negative Literale enthalten). Dadurch lassen sich nach wie vor interessante Resolutionsstrategien wie beispielsweise die Unit-Resolution für einen effizienten Erfüllbarkeitstest anwenden. Die von uns vorgenommene Erweiterung des korrespondierenden Logikprogramms entspricht im übrigen der Einführung der zusätzlichen Constraints im Ansatz von Mellis. Bevor wir nun zeigen, daß β(D,R) auch die geforderten Eigenschaften erfüllt, möchten wir noch auf einige bereits erwähnte Eigenschaften von Produktionsregelsystemen ohne Negation hinweisen. Zu solchen Systemen existiert genau eine Menge D∗ von Termen, die alle ableitbaren Terme enthält. Diese kann beispielsweise mit dem datengetriebenen Algorithmus 3.1 bestimmt werden. Somit gilt, daß (D, R) genau dann inkonsistent ist, wenn D∗ inkonsistent ist.
3.5. DAS PROBLEM DER ÄQUIVALENZ
149
Lemma 3.4.5 Unter der Voraussetzung (D, R) | PS (D , R) gilt auch β(D,R) |= β(D ,R) . Beweis: Der Beweis verläuft analog zu dem von Lemma 3.3.2. Für die Interpretation D∗ nach Definition 3.3.3 zeigen wir das folgende Lemma. Offensichtlich gilt für eine Interpretation D , daß sie βD erfüllt, genau dann, wenn D konsistent ist. Lemma 3.4.6 Sei (D, R) ein konsistentes Produktionsregelsystem. Dann ist D∗ eine erfüllende Bewertung für β(D,R) . Beweis: Da (D, R) konsistent ist, gilt dies auch für D∗ . Damit erfüllt D∗ auch βD∗ . Der Rest des Beweises verläuft analog zu dem von Lemma 3.3.4. Satz 3.4.7 Sei P = (D, R) ein Produktionsregelsystem. Dann gilt: 1. (D, R) ist genau dann inkonsistent, wenn β(D,R) nicht erfüllbar ist. 2. Ist (D, R) konsistent, so gilt β(D,R) |= %t& genau dann, wenn (D, R) | PS t gilt. Unter dieser Voraussetzung entsprechen die möglichen Folgerungen von β(D,R) genau den Termen, die aus (D, R) abgeleitet werden können. Beweis: Der Satz wird mit den beiden vorstehenden Lemmata gezeigt. 1. Nehmen wir an, (D, R) sei inkonsistent. Damit ist D∗ inkonsistent und damit βD∗ nicht erfüllbar. Aufgrund von (D, R) | PS (D∗ , R) erhalten wir β(D,R) |= β(D∗ ,R) , weshalb auch β(D,R) nicht erfüllbar sein kann. Nehmen wir umgekehrt an, (D, R) sei konsistent. Dann erfüllt D∗ die Formel β(D,R) . 2. Wir setzen voraus, daß (D, R) konsistent ist. Es gilt (D, R) | PS (D∗ , R). Dann gilt auch β(D,R) |= β(D∗ ,R) und folglich auch α(D,R) |= %t& für jedes t ∈ D∗ . Falls β(D,R) |= %t&, erfüllt D∗ die Formel β(D,R) . Damit gilt natürlich auch D∗ (%t&) = 1. Aufgrund der Definition von D∗ gilt so auch t ∈ D∗ und damit (D, R) | PS t. Damit ist der Satz gezeigt.
3.5 Das Problem der Äquivalenz Oftmals haben wir bei Produktionsregelsystemen das Problem, daß mehrere unterschiedliche Darstellungen der Wissensbasis eines Anwendungsgebiets vorliegen. Dies kann beispielsweise der Fall sein, wenn mehrere Anwender für die Pflege eines Systems zuständig sind. In diesem Bereich stellt sich nun die Frage, wann zwei solche Beschreibungen zueinander äquivalent sind. Dazu müssen wir zunächst festlegen, was wir unter dem Begriff Äquivalenz genau verstehen wollen. Von Interesse sind dann Verfahren, welche für zwei Beschreibungen möglichst effizient feststellen, ob sie äquivalent sind. Können wir ein solches Verfahren angeben, so lassen sich damit z.B. Redundanzen bei der Pflege und Aktualisierung vermeiden.
150
KAPITEL 3. PRODUKTIONSREGELSYSTEME
3.5.1 Äquivalenz bei aussagenlogischen Formeln In diesem Abschnitt wollen wir zunächst kurz einige bekannte Ergebnisse zur Entscheidung der Äquivalenz aus dem Bereich aussagenlogischer Formeln vorstellen. Dies betrifft vor allem die Komplexität der Entscheidung, ob zwei aussagenlogische Formeln α1 und α2 äquivalent sind. Definition 3.5.1 (Äquivalenz aussagenlogischer Formeln) Zwei aussagenlogische Formeln α1 und α2 heißen äquivalent (α1 ≈ α2 ) genau dann, wenn für alle Formeln γ gilt: α1 |= γ genau dann, wenn α1 |= γ. Aus der NP-Vollständigkeit des Erfüllbarkeitsproblems aussagenlogischer Formeln (vgl. [Coo 71]) können wir sofort folgenden Sachverhalt ableiten. Lemma 3.5.2 Das Äquivalenz-Problem {(α1 , α2 ) | α1 , α2 ∈ 3–KNF, α1 ≈ α2 } ist coNP-vollständig. Beweis: Sei α1 :≡ A1 ∧ ¬A1 . Dann ist α1 offensichtlich widerspruchsvoll, also nicht erfüllbar. Für beliebiges α2 gilt daher α1 ≈ α2 genau dann, wenn auch α2 nicht erfüllbar ist. Der Erfüllbarkeitstest aussagenlogischer Formeln ist NP-vollständig, womit wir die Behauptung gezeigt haben. Es ist bekannt. daß zwei Formeln α1 und α2 äquivalent sind, wenn man gezeigt hat α1 |= α2 |= α1 . Ferner gilt natürlich α1 |= α2 genau dann, wenn α1 ∧ ¬α2 widerspruchsvoll ist. Schließlich gilt α |= α1 ∧ . . . ∧ αn genau dann, wenn α |= αi für jedes i mit 1 ≤ i ≤ n gilt. Aus diesen Zusammenhängen lassen sich die beiden folgenden Lemmata ableiten. Lemma 3.5.3 α1 ≈ α2 kann für α1 , α2 ∈ 2–KNF deterministisch in quadratischer Zeit und linearem Platz in Abhängigkeit von der Länge von α1 ∧ α2 entschieden werden. Beweis: Nach [AsPlTa 79] gilt, daß α |= L1 ∨ L2 für eine Formel α ∈ 2–KNF und eine Klausel L1 ∨ L2 deterministisch in linearer Zeit entschieden werden kann. Zusammen mit den obigen Beobachtungen können wir daraus sofort die Behauptung ableiten. Lemma 3.5.4 α1 ≈ α2 kann für α1 , α2 ∈ HORN deterministisch in quadratischer Zeit und linearem Platz in Abhängigkeit von der Länge von α1 ∧ α2 entschieden werden. Beweis: Aus [DoGa 84] folgt, daß α |= L1 ∨ . . . ∨ Ln für eine Formel α ∈ HORN und eine Klausel L1 ∨ . . . ∨ Ln deterministisch in linearer Zeit entschieden werden kann. Wieder folgt damit zusammen mit den obigen Beobachtungen direkt die Behauptung.
3.5.2 Äquivalenz von Produktionsregelsystemen Als erstes müssen wir festlegen, was wir unter der Äquivalenz zweier Produktionsregelsysteme verstehen wollen. Auch bei Produktionsregelsystemen wollen wir den Begriff der Äquivalenz an der Ableitbarkeit von Termen festmachen. Definition 3.5.5 (Äquivalenz von Produktionsregelsystemen) Zwei Produktionsregelsysteme P1 und P2 heißen zueinander äquivalent (P1 ≈ P2 ), wenn für alle Terme t gilt: P1 | PS t genau dann, wenn P2 | PS t. Daraus können wir sofort folgendes Lemma ableiten.
3.6. INTEGRATION VON PROZEDURALEN ELEMENTEN
151
Lemma 3.5.6 Gegeben seien zwei Produktionsregelsysteme P1 = (D1 , R1 ) und P2 = (D2 , R2 ). Dann gilt P1 ≈ P2 genau dann, wenn für die korrespondierenden Logikprogramme α(D1 ,R1 ) und α(D2 ,R2 ) gilt α(D1 ,R1 ) ≈ α(D2 ,R2 ) . Beweis: Die Aussage folgt unmittelbar aus Satz 3.3.5, nach dem für einen beliebigen Term t gilt (D, R) | PS t genau dann, wenn α(D,R) |= %t&. Aus diesem Lemma folgt natürlich sofort, daß die Äquivalenz von Produktionsregelsystemen in polynomieller Zeit entschieden werden kann. Lemma 3.5.7 P1 ≈ P2 kann für beliebige Produktionsregelsysteme P1 und P2 in quadratischer Zeit entschieden werden. Beweis: Wir können unmittelbar das Lemma 3.5.4 anwenden, da αP1 und αP2 jeweils Horn-Formeln sind und ferner gemäß Lemma 3.5.6 P1 ≈ P2 genau dann gilt, wenn αP1 ≈ αP2 . Aus diesen Aussagen können wir folgern, daß zur weiteren Untersuchung der Äquivalenz alternativ Logikprogramme oder Produktionsregelsysteme herangezogen werden können. Die Ergebnisse lassen sich jeweils auf die andere Darstellung übertragen.
3.6 Integration von prozeduralen Elementen Bisher haben wir reine Produktionsregelsysteme betrachtet, die keine Möglichkeiten enthielten, Prozeduren zu integrieren. Dagegen sind aber bei praktisch einsetzbaren Systemen Prozeduren von Interesse, da ein wissensbasiertes System auch in die gesamte EDV-Umwelt einbettbar sein sollte. So existieren oftmals Prozeduren zur Berechnung von Werten. In anderen Situationen kann es sinnvoll sein, abhängig von einer erreichten Situation, bestimmte Aktionen durchzuführen, z.B. andere Programmpakete zu starten. Für die Integration von Prozeduren muß daher eine Strategie existieren, die vor allem Aussagen über den Ausführungszeitpunkt enthält. Ein Beispiel für die Integration von Prozeduren stellt die Programmiersprache PROLOG dar. Im wesentlichen besteht der Sprachumfang von PROLOG aus Logikprogrammen, die nach dem Prolog-Verfahren abgearbeitet werden. Dies bezeichnen wir dann auch als “reines” Prolog. Hinzu kommen aber Prozeduren z.B. zum I/O-Handling, Verändern der Datensammlung usw. Bei PROLOG dürfen diese Prozeduren nur im Bedingungsteil von Regeln verwendet werden. Damit existiert eine kanonische Einbettungsstrategie in das zielorientierte Verfahren von PROLOG. Ist bei der Abarbeitung des Widerlegungsbaums das erste Element des zu bearbeitenden Ziels ein Prozeduraufruf, so wird dieser ausgeführt. Ein weiteres Beispiel für die Integration von prozeduralen Elementen in die Regelverarbeitung finden wir bei OPS5. Dort besteht die Regelsprache im wesentlichen aus Regeln der Form Bedingung −→ Aktion. Da Aktionen beliebige Prozedurausführungen sein können, liegt hier eine wesentlich stärkere Betonung auf dem prozeduralen Aspekt als bei dem von uns benutzten Modell für Produktionsregelsysteme. Aufgrund der datengetriebenen Verarbeitungsstrategie bei OPS5 kann auch hier eine kanonische Strategie für die Ausführung der Prozeduren angegeben werden. Wenn die Bedingung einer Regel erfüllt ist, werden alle zugehörigen Prozeduren ausgeführt. Bei beiden bisherigen Beispielen handelt es sich im wesentlichen um Programmiersprachen, bei denen eine fest vorgegebene Menge an Prozeduren verwendet werden kann (sogenannte Built-in-Prädikate bei PROLOG). Es gibt allerdings auch Implementationen, die die Einbindung von Code in anderen Programmiersprachen erlauben (z.B. bieten Prolog-Interpreter oftmals Schnittstellen zu C oder PASCAL). Bei manchen
KAPITEL 3. PRODUKTIONSREGELSYSTEME
152
Dialekten kann auch Code in der Implementationssprache integriert werden. Daneben gibt es auch Ansätze, die einen gemischten Quell-Code aus prozeduralen und Regelbestandteilen erlauben, beispielsweise IBM Knowledge Tool. Die Entwicklung der letzten Jahre zeigt, daß ein großes Interesse daran besteht, verschiedene Sprachkonzepte zu integrieren. Dabei sind Probleme einer kanonischen Integrationsstrategie bei gleichzeitiger klarer Trennung der verschiedenen Konzepte zu lösen. Betrachten wir nun die Integration von Prozeduren in Produktionsregelsysteme, so sind vor allem folgende Punkte zu beachten: • Bei PROLOG und OPS5 erkennen wir, daß eine sinnvolle Integrationsstrategie von Prozeduren im Bedingungsteil bei rückwärtsverkettenden Verfahren und im Aktionsteil bei vorwärtsverkettenden Verfahren existiert. Es stellt sich die Frage, ob eine solche Strategie verarbeitungsabhängig ist oder ob für das jeweils andere Verarbeitungsverfahren ebenfalls eine kanonische Einbettungsstrategie existiert. • Wir müssen verschiedene Arten von Prozeduren unterscheiden. Dabei können wir eine grobe Einteilung wie folgt vornehmen: – Es gibt Prozeduren ohne Auswirkung auf das Erfülltsein von Bedingungen, z.B. die Ausgabe von Text auf dem Bildschirm. Im wesentlichen bedeutet dies, daß solche Prozeduren keine Änderungen an der Datenbasis vornehmen. – Es gibt Prozeduren, die Auswirkungen auf das Erfülltsein anderer Bedingungen haben, d.h. eine Aufruf kann die Datenbasis verändern. Dabei können wir uns auf die Betrachtung der beiden Prozeduren EINFÜGEN und LÖSCHEN beschränken. Sicherlich haben wir durch diese Kriterien nicht alle interessanten Punkte beachtet. Beispielsweise stellt die Negation im Zusammenhang mit Prozeduren einen weiteren interessanten Aspekt dar, da dann auf Grund eines Nichtausführens (Sperrens) einer Prozedur möglicherweise eine Bedingung erfüllt ist. Da wir für Negationen aber bereits ohne Prozeduren gezeigt haben, daß der Ableitungsbegriff NP-vollständig ist (vgl. Satz 3.2.5), wollen wir die Negation hier nicht weiter betrachten. Im folgenden werden wir für Prozeduren im Aktionsteil eine entsprechende Integrationsstrategie angeben und die daraus resultierenden Probleme diskutieren.
3.6.1 Prozeduren im Aktionsteil Zunächst wollen wir die Syntax von Regeln entsprechend erweitern. Wir gehen dabei o.B.d.A. von Regeln aus, deren Bedingungsteil eine Konjunktion von Termen darstellt. Der Konklusions- bzw. Aktionsteil besteht nun nicht mehr lediglich aus einem Term t, sondern zusätzlich aus mehreren Prozeduraufrufen P1 , . . . , Pm . Ferner sei noch zugelassen, daß der Term t in der Konklusion entfallen kann. Damit erhalten wir folgende Gestalt für eine Regel: IF c1 ∧ . . . ∧ cn THEN [t] ∧ P1 ∧ . . . ∧ Pm
3.6. INTEGRATION VON PROZEDURALEN ELEMENTEN
153
Bemerkungen: 1. Wir nehmen an, daß die Reihenfolge der Prozedurausführungen nicht von Bedeutung ist, d.h. die Prozeduren sind unabhängig voneinander. 2. Sollen mehrere Terme als Konklusion zugelassen sein, ist nun keine einfache Umformung in die oben angegebene Syntax mehr möglich. Das Aufspalten gestaltet sich nicht länger problemlos, da unklar ist, zu welchen Regeln die Prozeduren geschlagen werden sollen. Als Interpretation für die Prozeduren P1 , . . . , Pm bietet sich die kanonische Festlegung an, daß die Prozeduren ausgeführt werden sollen, sobald die Regel feuert. Damit ist auch der Ausführungszeitpunkt festgelegt. Zusätzlich zum Hinzufügen von t werden nun einfach die entsprechenden Prozedurausführungen veranlaßt. Probleme bereiten allerdings Prozeduren mit Auswirkungen auf die Datenbasis. Das Entfernen von Termen aus D bewirkt nämlich, daß die Kommutativität des Produktionsregelsystems verlorengeht. Wir erhalten dadurch ähnliche Probleme wie bei der Negation. Dazu definieren wir eine Prozedur LÖSCHEN(term). Diese hat die Wirkung, daß bei Ausführung der Prozedur der Term term aus der Datenbasis entfernt wird, falls er in der Datenbasis enthalten ist. Ansonsten bleibt der Prozeduraufruf ohne Wirkung. Beispiel: Gegeben sei ein Produktionsregelsystem P = (D, R) mit D := { c1 , c2 } R := { r1 : IF c1 THEN t1 ∧ LÖSCHEN(c2 ), r2 : IF c2 THEN t2 r3 : IF t1 ∧ t2 THEN g 2 Dieses Beispiels liefert zugleich den Beweis für das folgende Lemma. Lemma 3.6.1 Produktionsregelsysteme, bei denen die Prozedur LÖSCHEN im Aktionsteil verwendet werden kann, sind nicht kommutativ. Aufgrund der Ähnlichkeit der Probleme zur Einführung der Negation in Abschnitt 3.2.2 liegt es nahe, über eine ähnliche Reduktion des Erfüllbarkeitsproblems aussagenlogischer Formeln wie bei Satz 3.2.5 die NPHärte des Ableitungsbegriffs zu zeigen. Um zu beweisen, daß das Problem auch NP-vollständig ist, geben wir zunächst einen Algorithmus an, der die Frage der Ableitung nichtdeterministisch in polynomieller Zeit löst. Dazu verwenden wir erneut eine Modifikation von Algorithmus 3.2. Algorithmus 3.8: Forward-Chaining mit LÖSCHEN Input: Startdatenbasis D, Regelmenge R, Term t ∗ Output: true, falls (D, R) | PS t∗ , unknown sonst begin D∗ = D Dakt = D repeat Dtmp = D∗ R∗ = {IF C THEN t ∈ R | C wahr für D akt } if R∗ = ∅ then begin n choose r : IF C THEN t ∧ i=1 LÖSCHEN(ti ) ∈ R∗ D∗ = D∗ ∪ {t }
KAPITEL 3. PRODUKTIONSREGELSYSTEME
154 Dakt = Dakt ∪ {t } \ {t1 , . . . , tn } end until D∗ = Dtmp or t∗ ∈ Dakt if t∗ ∈ D∗ then return (true) else return (unknown) end
Der Algorithmus arbeitet offensichtlich korrekt. Jeder Iterationsschritt des Algorithmus entspricht genau 1 einem Schritt der Ableitung in Produktionsregelsystemen |PS . Folglich wird ein Term t nur in Dakt aufgenommen, wenn es eine entsprechende Hintereinanderausführung solcher Einschrittableitungen gibt. Folglich gilt dann auch (D, R) | PS t für alle t ∈ Dakt . Gilt für jeden Term t umgekehrt (D, R) | PS t, so gibt es eine Folge von Regelanwendungen 1 1 1 (D1 , R) | PS . . . | PS (Dk , R) mit t ∈ Dk , wobei jeweils Di durch Anwendung einer Regel (D, R) | PS in R mit erfüllter Bedingung aus Di−1 entstanden ist. Wählen wir nun genau diese k Regeln für die ersten k Iterationsschritte in dieser Reihenfolge, so erhalten wir auch t ∈ Dakt und somit ein korrektes Terminieren des Verfahrens.
Es sei darauf hingewiesen, daß wir im Falle t ∈ Dakt keine Aussage darüber machen können, ob t aus (D, R) ableitbar ist. Wir können gerade eine Regelreihenfolge gewählt haben, die nicht erfolgreich ist, obwohl es eine erfolgreiche Regelreihenfolge gibt. Schließlich ist auch sichergestellt, daß das Verfahren terminiert. Die Menge D∗ wächst bei jedem Iterationsschritt um ein Element an. Insgesamt ist die Mächtigkeit von D∗ aber durch die Anzahl der in (D, R) vorkommenden Terme begrenzt. Nun sind wir in der Lage, den folgenden Satz zu zeigen. Satz 3.6.2 Die Menge {(P, t) | P ist ein Produktionsregelsystem mit der Prozedur LÖSCHEN,t Term und P |PS t} ist NP-vollständig. Beweis: Wir können den Algorithmus 3.8 benutzen, um das Problem nichtdeterministisch in polynomieller Zeit zu lösen. Der Algorithmus arbeitet in polynomieller Zeit, da die Anzahl der Schleifendurchläufe durch die Länge von P begrenzt ist und jeder Schleifendurchlauf nur polynomielle Zeit benötigt. Die NP-Härte des Problems läßt sich über eine Reduktion von 3SAT zeigen. Sei
α :≡
Li,1 ∨ Li,2 ∨ Li,3
1≤i≤m
eine aussagenlogische Formel mit Literalen Li,j über den Atomen x1 , . . . , xn . Dieser Formel ordnen wir ein Produktionsregelsystem Pα zu. Für jedes Literal L von α definieren wir einen Term %L& von Pα durch
%L& :=
Xk = 1 falls L ≡ xk Xk = 0 falls L ≡ ¬xk
3.6. INTEGRATION VON PROZEDURALEN ELEMENTEN
155
und definieren Pα := (Dα , Rα ) durch Rα :={IF %Ai,j & THEN Yi = 1 | 1 ≤ i ≤ m, 1 ≤ j ≤ 3}∪ Yi = 1 THEN Y = 1}∪ {IF 1≤i≤m
{IF Zj = 1 THEN Xj = 1 ∧ LÖSCHEN(Zj = 0) | 1 ≤ j ≤ n}∪ {IF Zj = 0 THEN Xj = 0 ∧ LÖSCHEN(Zj = 1) | 1 ≤ j ≤ n} Dα :=
n
{Zj = 1, Zj = 0}
j=1
Hierfür läßt sich völlig analog zum Beweis von Satz 3.2.5 zeigen, daß gilt: (Dα , Rα ) | PS Y = 1
⇐⇒
α ∈ 3–KNF
Damit ist eine Reduktion eines NP-vollständigen Problems gegeben. Das Einfügen von Termen in die Datenbasis als Auswirkung von Prozeduraufrufen hat dagegen keine Auswirkung auf die Komplexität der Ableitung, da hiervon die Kommutativität nicht beeinflußt wird. Wir werden nun skizzieren, wie die Ausführung von Prozeduren auf recht kanonische Weise in die Verfahren zur Realisierung der Vorwärtsverkettung bzw. Rückwärtsverkettung eingebettet werden kann. Vorwärtsverkettung: Das Verfahren kann ohne größeren Aufwand kanonisch erweitert werden. Wir brauchen lediglich in die entsprechenden Algorithmen einzufügen, daß im Falle eines Erfülltseins der Bedingungen einer Regel nicht nur der Term zur Datenbasis hinzugenommen werden soll, sondern auch die entsprechenden Prozeduren ausgeführt werden sollen. Da wir angenommen haben, daß die Prozeduren unabhängig voneinander sind, kann die Ausführung der einzelnen Prozeduren in beliebiger Reihenfolge geschehen. Für den Sonderfall der Prozedur LÖSCHEN haben wir mit Algorithmus 3.8 bereits eine Integration in ein vorwärtsverkettendes Verfahren angegeben. Rückwärtsverkettung: Auch hier lassen sich Prozeduren recht einfach in das Verarbeitungsverfahren integrieren. Wir wollen dies am Beispiel des Tiefensuche-Verfahrens mit Backtracking erläutern. Angenommen es ist ein Ziel g1 , . . . , gk zu bearbeiten. Ferner sei eine Regel IF c1 ∧ . . . ∧ cn THEN g1 ∧ P1 ∧ . . . ∧ Pm in der Regelmenge enthalten, die als nächste angewendet werden soll. Dann erhält der Knoten mit Label [g1 , . . . , gk ] im Ableitungsbaum einen Nachfolger [c1 , . . . , cn , P1 , . . . , Pm , g2 , . . . , gk ]. Ist nun ein Ziel zu bearbeiten, das als erstes Element eine Prozedur enthält, wird diese Prozedur ausgeführt. Dies bedeutet also, daß wir genau dann die Prozeduren P1 , . . . , Pm ausführen, wenn die Bedingungen c1 , . . . , cn erfolgreich getestet worden sind, die Regel also feuert. Damit können wir festhalten, daß die Integration von Prozeduren im Aktionsteil verarbeitungsunabhängig auf kanonische Weise durchgeführt werden kann. Entsprechend bieten auch die auf dem Markt befindlichen Shells solche Formulierungsmöglichkeiten. Probleme entstehen allerdings, wenn über Prozeduren Terme aus der Datenbasis entfernt werden können, d.h. die Kommutativität des Systems aufgehoben wird. Dies sind dann Problemstellungen wie sie beispielsweise auch im Bereich des nichtmonotonen Schließens auftreten.
156
KAPITEL 3. PRODUKTIONSREGELSYSTEME
Kapitel 4
Fuzzy–Logik Ende der achtziger, Anfang der neunziger Jahre wurde die Theorie der unscharfen Mengen, die bereits 1965 von L.A. Zadeh entwickelt worden war (siehe [Zah 65]), von der japanischen Industrie aufgegriffen und in zahlreichen industriellen Anwendungen realisiert. Zadeh führte verbale Ausdrücke — linguistische Variable und Operatoren — in die sonst rein mathematische Theorie ein. Auf diese Weise wurde auch empirisches Prozeßwissen in Steuerungsstrategien integrierbar. Eine Prämisse der Fuzzy–Theorie ist die Unvereinbarkeit hoher Komplexität und hoher Präzision, d.h., daß überall dort, wo eine Problemlösung Toleranzen in der Präzision zuläßt, diese Toleranzen ausgenutzt werden können, um eine weniger exakte und dennoch ausreichende Lösung des Problems zu erreichen. Hierbei bietet diese Theorie der unscharfen Mengen ein Konzept, das näher an menschlicher Denkweise orientiert ist, als die klassische Mengenlehre. Sie erreicht dies, indem sprachlich unscharfe Begriffe wie groß, viele, sehr klein, ziemlich wahrscheinlich usw. modelliert werden können. Somit sind durch die Fuzzy–Theorie komplexe Sachverhalte und prinzipielle Zusammenhänge einfacher zu beschreiben und es wird die Möglichkeit geboten, unscharfe Beschreibungen einer mathematischen Modellierung zugänglich zu machen. Nachfolgend werden zunächst Grundbegriffe der Fuzzy–Logik definiert und anhand einzelner Beispiele erläutert. Danach werden die Behandlung von Fuzzy-Regeln und anschließend linguistische Variablen und Modifizierer vorgestellt. Die darauf basierenden Verfahren Fuzzifikation und Defuzzifikation zusammen mit approximativem Schließen bilden die Grundlage der Inferenzverfahren der Fuzzy–Logik. Abschließend folgt die Beschreibung einer Anwendung der Fuzzy–Logik im Bereich der Diagnosesysteme. Illustriert wird diese Anwendung anhand eines komplexen Beispiels. Ausführlichere Darstellungen des Gebietes findet man etwa in [Bothe 93] oder [Böhme 93].
4.1 Grundbegriffe 4.1.1 Zugehörigkeitsfunktion und Fuzzy-Menge Ein betrachtetes Element eines Grundbereichs X kann einer Menge A ganz oder auch nur zu einem gewissen Grad angehören. Die Zugehörigkeit eines Elementes x ∈ X zur Menge A kann durch eine charakteristische Funktion µA auf folgende Weise beschrieben werden:
µA : X → {0, 1},
µA (x) =
157
1, f u ¨r x ∈ A 0, sonst
KAPITEL 4. FUZZY–LOGIK
158
Diesen klassischen Mengen (scharfe Mengen) sind also solche charakteristische Funktionen zugeordnet, die nur zwei Werte annehmen können. Eben diese Zweiwertigkeit soll aufgehoben werden, indem der Wertevorrat der charakteristischen Funktion µA auf alle reelen Zahlen zwischen 0 und 1 erweitert wird. Die charakteristische Funktion µA wird dann als Zugehörigkeitsfunktion bezeichnet und als quantitatives Maß interpretiert, ein Maß dafür, inwieweit ein Element die Eigenschaften einer nun unscharfen Menge A erfüllt. A = {(x, µA (x))|x ∈ X} wird auch als Fuzzy–Menge und µA (x) als Zugehörigkeitsgrad von x bzgl. A bezeichnet. µA : X → [0, 1] x #→ µA (x) Eine Fuzzy–Menge A kann somit durch ihre Zugehörigkeitsfunktion µA repräsentiert werden, aber auch durch die folgende von Zadeh eingeführte Darstellungsform: Wenn der Grundbereich X = {x1 , . . . , xn } eine endliche Menge ist, dann wird die Fuzzy– Menge A beschrieben durch: A=
n µA (xn ) µA (x1 ) + ... + = µA (xi )/xi x1 xn i=1
(Zu beachten ist hier, daß die Repräsentation von Zadeh nicht als die Summe der Brüche definiert ist, sondern nur einer Notation entspricht.) Ist X eine unendliche Menge, so schreibt man: A=
X
µA (x)/x
Zur besseren Übersicht werden die xi , deren Zugehörigkeitsgrad 0 ist, vernachlässigt. Besitzt die Zugehörigkeitsfunktion einer Fuzzy–Menge nur 0 und 1 als Werte, so wird diese Menge A zu einer gewöhnlichen Menge (scharfe Menge). Beispiel: Betrachtet man das Alter der Menschen, das im Intervall X = [0, 100] liegt, dann kann die Fuzzy–Menge Ajung mit Hilfe der Zugehörigkeitsfunktion µjung wie folgt beschrieben werden:
µjung (x) = Ajung =
X
µ (x) 1
1, [1 +
2 −1 ( x−25 5 ) ] ,
falls 0 ≤ x ≤ 25 falls 25 < x ≤ 100
µjung (x)/x mit X = {0, 1, . . . , 100}
µ jung
0.5
0
25
50
75
100
Jahre
Der nicht konstante Teil der obigen Zugehörigkeitsfunktion ist eine Konkretisierung des folgenden parametrisierten Ansatzes: µ(x; c1 , p) = [1 + c1 |x − x0 |p ]−1 c1 > 0; p > 1
4.1. GRUNDBEGRIFFE
159
Funktionen dieser Art nehmen für den festen Wert x0 den Wert 1 an und sinken links und rechts davon monoton ab. 2
4.1.2 Träger und α–Schnitt einer Fuzzy–Menge Der Träger T (A) einer Fuzzy–Menge A ist die Menge der Elemente x der Grundmenge X, deren Zugehörigkeitsgrad µA (x) bzgl. A größer als Null ist: T (A) = {x | x ∈ X, µA (x) > 0} Der Träger einer Fuzzy–Menge ist nicht mehr eine Fuzzy–Menge, sondern eine gewöhnliche Menge. Die Elemente, die nicht zum Träger gehören, werden in der Repräsentation einer Fuzzy–Menge weggelassen. Ein α-Schnitt Aα einer Fuzzy–Menge A ist die Menge der Elemente x der Grundmenge X, deren Zugehörigkeitsgrad µA (x) bzgl. A größer oder gleich der reellen Zahl α ∈ [0, 1] ist: Aα = {x | x ∈ X, µA (x) ≥ α} Ebenso wie der Träger ist der α–Schnitt nur eine Teilmenge des Grundbereichs, also eine gewöhnliche Menge. Der 1-Schnitt A1 (x) = {x | x ∈ X, µA (x) = 1} von A heißt auch Kern von A. Durch den α-Schnitt kann eine Fuzzy–Menge in eine gewöhnliche Menge verwandelt werden, deren charakteristische Funktion beschrieben wird durch:
µAα (x) =
1, wenn µA (x) ≥ α 0, wenn µA (x) < α
Eine weitere Kenngröße ist die Höhe H(A) einer unscharfen Menge A, die über das Supremum der Zugehörigkeitswerte definiert ist: H(A) = sup µA (x) x∈X
Unscharfe Mengen mit H(A) = 1 heißen normalisiert (normal), nicht leere unscharfe Mengen mit H(A) < 1 heißen subnormal. Für unscharfe Mengen mit endlichem Träger bezeichnet man die Summe der Zugehörigkeitswerte als Kardinalität:
µA (x) C(A) = x∈X
Beispiel: Acht Studenten x1 , x2 , . . . , x8 haben in einer Prüfung folgende Punktzahlen bei einer Maximalpunktzahl von 75 erhalten. Normiert zu 1, d.h. nach Division durch 75, können wir die Punktzahlen als Zugehörigkeitsgrade zu einer Fuzzy–Menge A betrachten: Student x1 x2 x3 x4 x5 x6 x7 x8 Punkte 69 26 52 55 60 41 46 53 µA 0.92 0.346 0.693 0.73 0.8 0.546 0.613 0.706 Dann ist der Träger von A T (A) = {x1 , x2 , x3 , x4 , x5 , x6 , x7 , x8 },
KAPITEL 4. FUZZY–LOGIK
160 die Höhe von A ist
H(A) = sup{0.92, 0.346, 0.693, 0.73, 0.8, 0.546, 0.613, 0.706} = 0.92, der α-Schnitt von A für α = 0.65, d.h. die Menge der Studenten, die 65% der Punkte erreicht und damit bestanden haben, ist Aα = {x1 , x3 , x4 , x5 , x8 }, der α-Schnitt von A für α = 0.90, d.h. die Menge der ausgezeichneten Studenten, ist Aα = {x1 } und die Kardinalität von A ist C(A) = 0.92 + 0.346 + 0.693 + 0.73 + 0.8 + 0.546 + 0.613 + 0.70 = 5.36 2
4.1.3 Fuzzy–Mengenoperationen Fuzzy–Mengen wurden im vorherigen Abschnitt durch reelle Zugehörigkeitsfunktionen erklärt. Somit werden auch jetzt Beziehungen zwischen reellen Zahlen verwendet, um damit Beziehungen zwischen Fuzzy– Mengen zu definieren. Über einer gemeinsamen Grundmenge X seien die Fuzzy–Mengen A mittels µA und B mittels µB erklärt. Dann gelte: Teilmenge A ⊆ B ⇐⇒ µA (x) ≤ µB (x) ∀x ∈ X Gleichheit A = B ⇐⇒ µA (x) = µB (x) ∀x ∈ X Während Teilmengen– und Gleichheitsbeziehungen über Eigenschaften der Zugehörigkeitsfunktionen µA und µB definiert werden, muß für Vereinigung, Durchschnitt und Komplement von Fuzzy–Mengen jeweils die Zugehörigkeitsfunktion der neu gebildeten Fuzzy–Menge angegeben werden. Fuzzy–Mengen–Durchschnitt A ∩ B : µA∩B (x) = min(µA (x), µB (x)) Fuzzy–Mengen–Vereinigung
A ∪ B : µA∪B (x) = max(µA (x), µB (x)) ∀x ∈ X
Fuzzy–Mengen–Komplement
¬A :
µ¬A (x) =
1
x
1 − µA (x)
µA U B
∀x ∈ X
1 µ
A
0.5
µB
µA
1
µ
1 0
A
U
1
0
∀x ∈ X
x
µ
B
1
0
x
1 0
A x
1
Eine leere Fuzzy–Menge ∅ wird durch die Zugehörigkeitsfunktion µ∅ mit ∀x ∈ X : µ∅ (x) = 0 beschrieben und die Universalmenge X durch µX mit ∀x ∈ X : µX (x) = 1.
4.1. GRUNDBEGRIFFE
161
Eine weitere Mengenoperation Aα (α ist reelle Zahl) ist definiert durch: C = Aα ⇐⇒ ∀x ∈ X : µC (x) = [µA (x)]α Diese Operation wird definiert, um beispielsweise den Effekt der linguistischen Modifizierer „sehr“ (A2 ) und „mehr oder weniger“ (A0.5 ) zu approximieren. Beispiel: Es seien der Grundbereich über X durch: A = B = C =
X = {x1 , x2 , x3 , x4 , x5 } gegeben und drei Fuzzy–Mengen A, B, C 0.7/x1 + 0.3/x2 + 0.4/x3 + 0.2/x4 0.5/x1 + 0.6/x4 + 1/x5 0.3/x1 + 0.2/x3 + 0.1/x4
Dann ist C eine Fuzzy–Teilmenge von A, B jedoch nicht. Weiter gilt: ¬A
=
5 (1−µA (xi )) i=1
=
xi
1−0.7 x1
+
1−0.3 x2
+
1−0.4 x3
+
1−0.2 x4
+
1−0.0 x5
= 0.3/x1 + 0.7/x2 + 0.6/x3 + 0.8/x4 + 1/x5 A∪B =
5 max(µA (xi ),µB (xi )) xi
i=1
=
max(0.7,0.5) x1
+
max(0.3,0) x2
+
max(0.4,0) x3
+
max(0.2,0.6) x4
+
max(0.0,1) x5
= 0.7/x1 + 0.3/x2 + 0.4/x3 + 0.6/x4 + 1/x5 A∩B =
5 min(µA (xi ),µB (xi )) xi
i=1
=
min(0.7,0.5) x1
+
min(0.3,0) x2
+
min(0.4,0) x3
+
min(0.2,0.6) x4
+
min(0.0,1) x5
= 0.5/x1 + 0.2/x4 A2
=
5 (µA (xi ))2 i=1
xi
=
0.72 x1
+
0.32 x2
+
0.42 x3
+
0.22 x4
= 0.49/x1 + 0.09/x2 + 0.16/x3 + 0.04/x4 2 Aus diesen Operationen über Zugehörigkeitsfunktionen kann man ohne Schwierigkeiten sofort eine Reihe von einfachen Rechengesetzen herleiten. So gilt für ∪, ∩ und ¬ sowie für beliebige Fuzzy–Mengen A, B und C über einer gemeinsamen Grundmenge X: Kommutativität: Assoziativität: Idempotenz: Distributivität: neutrales Element: Absorption: de Morgan: Involution:
A ∪ B = B ∪ A, A ∪ (B ∪ C) = (A ∪ B) ∪ C, A ∪ A = A, A ∪ (B ∩ C) = (A ∪ B) ∩ (A ∪ C), A ∪ ∅ = A, A ∪ (A ∩ B) = A, ¬(A ∪ B) = ¬A ∩ ¬B, ¬¬A = A
A∩B =B∩A A ∩ (B ∩ C) = (A ∩ B) ∩ C A∩A=A A ∩ (B ∪ C) = (A ∩ B) ∪ (A ∩ C) A∩X =A A ∩ (A ∪ B) = A ¬(A ∩ B) = ¬A ∪ ¬B
Die Gültigkeit des Satzes von de Morgan für Fuzzy–Mengen beweist man beispielsweise folgendermaßen: µ¬(A∪B) (x) = 1 − max(µA (x), µB (x)) = min(1 − µA (x), 1 − µB (x)) = µ¬A∩¬B (x)
KAPITEL 4. FUZZY–LOGIK
162 Auf ähnliche Weise sind die anderen Gesetze beweisbar.
Obwohl wir ¬A als Komplement von A bezeichnet haben, fehlen einige Eigenschaften des gewöhnlichen Komplements: Sowohl A ∪ ¬A = X als auch A ∩ ¬A = ∅ sind möglich, und so gilt µA∩¬A (x) = min(µA (x), 1 − µA (x)) = 0 für A ∩ ¬A, wenn 0 < µA (x) < 1 gilt. Nicht alle Rechengesetze der gewöhnlichen Mengen lassen sich somit auf Fuzzy–Mengen übertragen.
4.1.4 Fuzzy-Relation und zugehörige Operationen In der klassischen Algebra werden zweistellige Beziehungen durch Paarmengen über den Mengen X und Y modelliert. Auf der Grundmenge aller Paare, dem kartesischen Produkt, wird dann eine Relationsvorschrift R erklärt, welche dann aus der Menge X ×Y alle diejenigen Paare herausfiltert, die diese Vorschrift erfüllen, beispielsweise R≤ . Diese Teilmenge R von X × Y ist eine zweistellige Relation und folgendermaßen definiert: R = {(x, y)|x ∈ X, y ∈ Y, R(x, y)} Die charakteristische Funktion µR ist dann eine Abbildung µR : X × Y → {0, 1} mit µR (x, y) = 1 genau dann, wenn R(x, y) gilt. Zur Fuzzifizierung dieses Ansatzes können wir µR verallgemeinern zu einer zweistelligen Zugehörigkeitsfunktion über den Grundbereichen X und Y mit Fuzzy–Mengen A und B: µR : X × Y → [0, 1] µR (x, y) = min{µA (x), µB (y)} Damit ist eine zweistellige (binäre) Fuzzy–Relation definiert durch: R = {((x, y), µR (x, y))|x ∈ X, y ∈ Y } Die Definition von µR stellt dabei nur eine von mehreren Möglichkeiten dar. In den folgenden Abschnitten werden Regeln bzw. Fuzzy–Regeln durch Fuzzy–Relationen repräsentiert. Auf Grundlage der Fuzzy–Regeln sollen dann unscharfe Schlüsse gezogen werden können. Sei R eine Fuzzy–Relation über X, die inverse Relation R−1 wird definiert durch R−1 = {(b, a)|(a, b) ∈ R} mit Zugehörigkeitsfunktion µR−1 µR−1 (b, a) = µR (a, b) für (a, b) ∈ X × Y. Gegeben seien die Fuzzy–Relationen R über X1 × X2 und S über X2 × X3 . Dann wird die Verkettung R ◦ S und ihre Zugehörigkeitsfunktion µR◦S definiert durch R ◦ S = {(a, b) | ∃c : ((a, c) ∈ R und (c, b) ∈ S)} und aufgrund der Definition der Zugehörigkeitsfunktionen der Relationen µR◦S (a, b) =
sup min{µR (a, c), µS (c, b)}. und (c,b)∈S}
{c∈X2 |(a,c)∈R
4.2. FUZZY-REGELN
163
Beispiel: Seien X = {a, b, c, d} sowie A = 0.4/a + 0.9/b + 1/d, B = 0.6/a + 0.5/b und C = 0.4/a + 1/b + 0.8/d gegeben. Dann ist: R = A × B = 0.4/(a, a) + 0.4/(a, b) + 0.6/(b, a) + 0.5/(b, b) + 0.6/(d, a) + 0.5/(d, b) S = B × C = 0.4/(a, a) + 0.6/(a, b) + 0.6/(a, d) + 0.4/(b, a) + 0.5/(b, b) + 0.5/(b, d) R−1 = 0.4/(a, a) + 0.4/(b, a) + 0.6/(a, b) + 0.5/(b, b) + 0.6/(a, d) + 0.5/(b, d) R ◦ S = 0.4/(a, a) + 0.4/(a, b) + 0.4/(a, d) + 0.4/(b, a) + 0.6/(b, b) + 0.6/(b, d) +0.4/(d, a) + 0.6/(d, b) + 0.6/(d, d) 2 Wird eine einstellige Relation A (Fuzzy–Menge A) mit einer zweistelligen Relation R verkettet, ergibt sich eine neue einstellige Relation B: B = A ◦ R = {b | a ∈ A, (a, b) ∈ R} Die Zugehörigkeitsfunktion von B wird durch folgende Formel beschrieben: µB (b) =
sup
{a∈A|(a,b)∈R}
{min(µA (a), µR (a, b)}
Diese Verkettung ist bei der unscharfen Implikation nützlich. Zu einer Regel “If x = A Then y = B” kann eine Fuzzy–Relation R : A → B gebildet werden. Die Fuzzy–Regel wird also durch eine entsprechende Fuzzy–Relation repräsentiert. Somit wird in dem folgenden Abschnitt über Fuzzy–Regeln nur noch die Behandlung der Bedingung einer Regel erläutert.
4.2 Fuzzy-Regeln Bedingungen einer Regel können in der Fuzzy–Logik, wie in der klassischen zweiwertigen Logik, miteinander durch die Operatoren Und, Oder, Nicht verknüpft werden, deren Semantik durch entsprechende Verknüpfungsfunktionen festgelegt wird. Bei der Und–Verknüpfung wirkt die am geringsten erfüllte Bedingung einer Regel. Bei der Verwendung eines Oder–Operators genügt es, daß eine der Bedingungen erfüllt ist. Wegen der Unschärfe der Verknüpfungen gelten gegenüber der Booleschen Algebra, der klassischen scharfen Logik, erweiterte Definitionen für die bekannten Und–, Oder–, Nicht–Operatoren. Der Zugehörigkeitsgrad der Und–Verknüpfung zweier Fuzzy–Mengen wird durch das Minimum der einzelnen Zugehörigkeitsgrade beschrieben, d.h. der Zugehörigkeitsgrad µC der Schnittmenge C zweier Fuzzy– Mengen A und B über X berechnet sich aus µA und µB durch µC (x) = min{(µA (x), µB (x))} für x ∈ X. Der Zugehörigkeitsgrad der Oder–Verknüpfung wird durch das Maximum beschrieben, d.h. der Zugehörigkeitsgrad µD der Vereinigungsmenge D von A und B berechnet sich durch µD (x) = max{(µA (x), µB (x))} für x ∈ X. Der Zugehörigkeitsgrad des Nicht–Operators wird durch das Komplement bzgl. 1 beschrieben, d.h. der Zugehörigkeitsgrad µE berechnet sich durch µE (x) = {(1 − µA (x))} für x ∈ X}.
KAPITEL 4. FUZZY–LOGIK
164
4.3 Linguistische Variablen und Modifizierer Die Werte einer linguistischen Variablen sind Wörter bzw. Terme einer natürlichen Sprache. Sie werden durch unscharfe Mengen Ai bzw. deren Zugehörigkeitsfunktion über einer Basisvariablen x eines Grundbereichs X repräsentiert. Diese Zugehörigkeitsfunktionen bilden eine linguistische auf eine numerische Werteskala ab. Beispiel: Linguistische Variable “Wahrheit” mit den Modifizierern “mehr-oder-weniger”, “absolut” und “sehr”:
µ (v) mehr-oder-weniger
mehr-oder-weniger
falsch
unentschieden
wahr
1 falsch
wahr
sehr falsch
sehr wahr
absolut falsch
absolut wahr
0 0
1
v
Die Grundmenge X = {x ∈ IR | 0 ≤ x ≤ 1} wird von den numerischen Wahrheitswerten x gebildet, die alle Werte zwischen 0 und 1 annehmen können. Die Zugehörigkeitsfunktionen der Terme auf X sind bestimmt durch:
µabsolut wahr(x) =
1 0
x = 1; sonst
µabsolut falsch(x) =
1 0
x = 0; sonst
µwahr (x) = x
µfalsch (x) = 1 − x
µsehr wahr (x) = x2
µsehr falsch (x) = (1 − x)2
µmehr-oder-weniger wahr(x) = x1/2
µmehr-oder-weniger falsch(x) = (1 − x)1/2
µunentschieden (x) = 1 2 Die sogenannten Modifizierer oder Gradworte können als Operatoren (z.B. “sehr”,“mehr-oder-weniger”, “ziemlich” usw.) betrachtet werden, die einen Wahrheitswert zwar beeinflussen, aber nicht grundsätzlich ändern. Die linguistischen Bedeutungen werden verstärkt oder abgeschwächt. Die Modifizierung der Zugehörigkeitsfunktionen kann durch die Anwendung der entsprechenden Operationen auf die Zugehörigkeitsfunktion erzielt werden. Beispiel:
4.3. LINGUISTISCHE VARIABLEN UND MODIFIZIERER Linguistische Variable:
Alter
Fuzzy Menge:
Aalt =
100 x=51
−1
−2 [1 + ( x−50 5 ) ]
165
/x
Dann gilt: 100
Asehr alt = Amehr-oder-weniger alt = Aweniger alt =
(µalt (x))2 /x =
100
x=51
x=51
100
100
(µalt (x))0.5 /x =
x=51
x=51
100
100
(µalt (x))0.25 /x =
x=51
x=51
−2
−2 [1 + ( x−50 5 ) ]
/x
−0.5
−2 [1 + ( x−50 5 ) ]
/x
−0.25
−2 [1 + ( x−50 5 ) ]
/x
Grad
µ alt µsehr_alt
1
µ mehr-oder-weniger alt 0.71
0.5
0.25
0
40
60
50
Jahre
70
2 Manche Verneinungen von Worten haben umgangssprachlich keine entgegengesetzten Bedeutungen. In der klassischen Logik stellt man Verneinung und Gegenteil immer durch Negation “¬” dar. Aber umgangssprachlich trifft dies nicht unbedingt zu. “Der Schnee ist nicht weiß”, wird nicht verstanden als “Der Schnee ist schwarz”. Ebenso bedeutet “nicht sehr alt” nicht “sehr jung”. Beispiel: (Fortsetzung)
µjung (x) =
1 2 −1 [1 + ( x−25 5 ) ]
falls 0 ≤ x ≤ 25 falls x > 25
µsehr jung (x) = [µjung (x)]2 Für “nicht sehr alt” können dann folgende Definitionen angegeben werden:
µnicht-sehr alt(x) = oder
1 2 −1 [1 + ( x−40 5 ) ]
falls 0 ≤ x ≤ 40 falls 40 < x ≤ 100
µnicht-sehr alt(x) = 1 − µsehr alt (x) 2
KAPITEL 4. FUZZY–LOGIK
166
Grad
1
µ nicht_sehr_alt
µsehr jung
µsehr_alt
µjung
0.5
0
25
50
40
60
70
Jahre
4.3.1 Approximatives Schließen Ein häufig verwendeter Ansatz für das Schließen ist der “Modus Ponens” der Logik: hier wird auf der Basis einer Implikation und einer Prämisse geschlossen. Diese Modellierung des “Wenn-dann”, in Verbindung mit einer typischen Schlußfigur, bildet den Kern der Fuzzy-Logik. Implikation: Prämisse: Folgerung:
If x = A x=A
Then y = B y=B
Beim approximativen Schließen auf der Basis unscharfer Regeln und Fakten wird dagegen von einem “erweiterten oder generalisierten Modus Ponens” auf der Basis gradueller numerischer Wahrheitswerte der Aussagen mit möglichen Zwischenwerten v ∈ [0, 1] ausgegangen. Bei Vorgabe einer Implikation und einer dazugehörenden Prämisse erhält man folgendes Schema: Implikation: Prämisse: Folgerung:
If u = A(x) u = A (x)
Then v = B(y) v = B (y)
u und v seien linguistische Variablen mit ihren linguistischen Werten A(x) und B(y) sowie daraus leicht modifizierten Werten A (x) und B (y) über den Grundbereichen X und Y .1 Die Regel A → B ist unscharf formuliert über dem kartesischen Produkt der Grundbereiche X und Y . Aus dieser unscharf formulierten Regel, A → B, kann eine Fuzzy-Relation R(x,y) erzeugt werden. Die Schlußfolgerung wird dann als Verkettung der Relation betrachtet: B = A ◦ R; R : A → B A (x) und B (y) sind den unscharfen Mengen A(x) und B(y) zugeordnet, wobei die Modifikationsvorschriften in der Regel unterschiedlich sind. 1
4.3. LINGUISTISCHE VARIABLEN UND MODIFIZIERER
167
Die Operation “◦” ist die Verkettung (oder das Relationsprodukt) der Fuzzy–Relation, die mittels der folgenden Zugehörigkeitsfunktion dargestellt werden kann: µB (y) =
sup
{x∈A|(x,y)∈R}
{min(µA (x), µR (x, y)}
Diese Darstellung der Zugehörigkeitsfunktion der Verkettung ist nur eine von vielen Möglichkeiten und beruht auf einer Definition von Mamdani. Die Unschärfe von B (y) ist einerseits auf die Unschärfen von A(x), B(y) und A (x) zurückzuführen, andererseits auch auf den Folgerungsalgorithmus an sich, d.h. auf die Umsetzung des erweiterten Modus Ponens in einen mathematischen Formalismus. Beispiel: Wir wollen Aussagen über den Reifegrad von Tomaten anhand ihrer Farbe machen. Die Terme rot und reif werden mit Hilfe der unscharfen Mengen A(x) und B(y) auf eine Farb– bzw. Zustandsskala abgebildet. Zwischen den Termen besteht der folgende Zusammenhang: Implikation:
If Tomatenfarbe u = rot Then
Zustand v = reif
Im Falle einer sehr roten Tomate entsteht im Prinzip die folgende Situation: Implikation: Prämisse: Folgerung:
If u = rot Then u = sehr rot
v = reif v = sehr reif 2
Die Unschärfe der Folgerung “Zustand v = sehr reif” entsteht durch das Zusammenwirken der vorgegebenen Unschärfen der Terme “rot”, “reif” und “sehr rot” mit der Tatsache, daß die Bedingung “Tomatenfarbe u = rot” der Implikation nur graduell von der Prämisse erfüllt wird. Die Folgerung beinhaltet damit quasi eine mehrfache Unschärfe. Allerdings können ohne Zusatzaussagen sehr leicht Fehlschlüsse gezogen werden. Ersetzt man beispielsweise reif durch gutschmeckend, so könnte in diesem Fall die Tomate zu rot sein, um noch gut zu schmecken. Somit ist hier eine alle Grundzustände beschreibende Regelbank notwendig, d.h. eine Anzahl repräsentativer Einzelregeln. Für die Relation RA→B existieren verschiedene Definitionen, aufgrund derer es auch unterschiedliche Schlußfolgerungen gibt:1 Seien A, B zwei Fuzzy-Mengen über X, Y . Dann kann man aus der unscharfen Aussage A → B die Fuzzy-Relation R definieren: • Definition von Zadeh: Max-Minimum Regel: Rm = (A × B) ∪ (¬A × X) =
max{min{µA (x), µB (y)}, (1 − µA (x))}/(x, y)
X×Y
Wenn die unscharfe Prämisse A bestimmt ist, ergibt sich durch Verkettung: = A ◦ Rm = A ◦ [(A × B) ∪ (¬A × X)] Bm 1
Weitere Definitionen, beispielsweise von Lukasiewicz, Reichenbach u.a. finden sich in [Böhme 93].
KAPITEL 4. FUZZY–LOGIK
168 ist: Die Zugehörigkeitsfunktion der Fuzzy–Menge Bm (y) = µBm
sup
{x∈A|(x,y)∈Rm }
{min{µA (x), max{min{µA (x), µB (y)}, (1 − µA (x))}}}
• Definition von Mamdani:
Rc = A × B =
min{µA (x), µB (y)}/(x, y)
X×Y
Hier ergibt sich dann durch Verkettung: Bc = A ◦ Rc = A ◦ (A × B) und µBc (y) =
sup
{min{µA (x), µA (x), µB (y)}}
{x∈A|(x,y)∈Rc }
4.4 Fuzzifikation Eingangswerte können in einem Diagnosesystem beispielsweise durch Sensoren gewonnen werden. Diese scharfen Werte müssen zunächst auf linguistische Werteskalen abgebildet werden. Mit anderen Worten, die Eingangssignale werden in den Zugehörigkeitsraum der beteiligten linguistischen Terme transformiert. Wird eine linguistische Variable durch n Terme beschrieben, dann entsteht als fuzzifiziertes Signal ein ndimensionaler Vektor. Dieser Vektor wird beim Herleiten von Folgerungen weiterverarbeitet. Beispiel: Bei einer Nenndrehzahl eines Gleichstromgenerators entstehe eine Spannung UN enn = 5V mit einer systembedingten Fehlerspannung von ±1V. Somit erscheint ein Übergang von einer scharfen Zahl x = 5 über ein Intervall x = [4, 6] auf eine unscharfe Zahl x = ungefähr 5 als bewertetes Intervall plausibel.
µ (x)
µ(x)
X = ungefähr 5
X=5
1
1
0.5
0.5
0
5
X
0
4
5
6
X
2 Beispiel: Die Temperatur einer Flüssigkeit sei entsprechend folgender Abbildung durch die Terme niedrig, mittel und hoch beschrieben. Der scharfe Eingangswert T = 50o C aktiviert die beiden Terme niedrig und mittel mit den Faktoren 0.8 und 0.2. Der Term hoch wird nicht, d.h. mit dem Faktor 0 aktiviert. 2
4.5. DEFUZZIFIKATION
169
Grad
1
niedrig
mittel
hoch
0.5
o
0
10
50
90 Temperatur
130
170
C
4.5 Defuzzifikation Um aus den unscharfen Ausgangsmengen, die durch verschiedene Schlußfolgerungen gewonnen werden, scharfe Werte zu erzeugen, bieten sich mehrere Methoden an:1 • Max-Methode: Als scharfer Wert wird dasjenige y0 über Y ausgewählt, für das µB (y0 ) maximal ist. Im Fall mehrerer lokaler Maxima bzw. eines Maximum-Plateaus bieten sich die folgenden Methoden an: • Mittelwert-Max-Methode: Als scharfer Wert wird das arithmetische Mittel der lokalen Maxima gewählt. • Centroiden-Methode: Als Ausgangswert wird hier der Abzissenwert y0 des Schwerpunktes der Fläche unterhalb der Zugehörigkeitsfunktion µB (y) mit y ∈ Y berechnet. Danach ergibt sich bei Integration über Y : y µB (y) dy y0 = Y Y
µB (y) dy
Beispiel: Sei das Verhalten eines unscharfen Reglers zur Einstellung einer Kühlventilöffnung durch folgende Regeln beschrieben: Regel 1 W ENN Temperatur ist niedrig DANN Kühlventil ist halb offen Regel 2 W ENN Temperatur ist mittel DANN Kühlventil ist fast offen Wird eine Temperatur von 18o C gemessen, so ergibt sich folgende Situation: Somit ergibt sich nach der Centroiden–Methode für den unscharfen Regler ein scharfer Einstellwert von 70%. Die Max–Methode kann hier nicht angewendet werden, da kein einzelner maximaler Einstellwert existiert, sondern mehrere lokale Maxima in Form eines Maximum–Plateaus vorliegen. Somit kann hier die Mittelwert–Max–Methode verwendet werden. Es ergibt sich dann ein Einstellwert von 75%. 2 1
Weitere Methoden finden sich z.B. in [Bothe 93].
KAPITEL 4. FUZZY–LOGIK
170
1
Temperatur niedrig
1
0.5
0.5
0.2
0.2
0
18
oC
Kühlventil halb offen
0
Bildung des Flächenschwerpunkts
1 %
50
IF Temperatur = niedrig THEN Kühlventil = halb offen
1
Temperatur mittel
0.5 0.2
Kühlventil fast offen
1
0
%
50
70 36
0.5
0.5
64 68 . . . 82
0.2
0
18
oC
0
50
%
IF Temperatur = mittel THEN Kühlventil = fast offen
4.6 Anwendungsbeispiel Eine fuzzy–logisch unterstützte Diagnose gliedert sich im wesentlichen in fünf Schritte: 1. Fuzzifizierung der möglichen Symptome (siehe folgende Abbildungen zu den linguistischen Variablen “Kühltemperatur”, “Netzspannung”, usw.). 2. Linguistische Formulierung des Regelalgorithmus, d.h. die Regeln innerhalb eines Diagnosesystems werden unscharf formuliert. 3. Ermittlung der Zugehörigkeitsgrade der verschiedenen Sensorwerte. Jeder Sensor wird durch verschiedene linguistische Terme repräsentiert. 4. Die Werte der linguistischen Variablen werden dann dem Diagnosesystem übertragen. Hier werden dann aufgrund der Beobachtungen unscharfe Schlüsse gezogen. 5. Mit Hilfe verschiedener Defuzzifikationsmethoden können dann aus diesen unscharfen Schlüssen scharfe Werte gewonnen werden. Das folgende Beispiel für eine fuzzy–logisch unterstützte Diagnose beschreibt die Fehlersuche in Kühlsystemen (z.B. Klimaanlagen, Kühlschränke usw.). Der Problembereich besteht aus zwei Fuzzy–Mengen (Lösungen und Problemmerkmale) sowie Regeln über Beziehungen zwischen diesen Mengen. Beispielsweise bestehe die Menge der möglichen Diagnosen aus: D = {“zu wenig Kühlmittel”; “wenig Kühlmittel”; ... ; “zu viel Kühlmittel”; “Motor defekt”; “Kompressor defekt”; usw.} Folgende Symptome können beobachtet werden: S= {“Kühltemperatur ist niedrig”; “Kühltemperatur ist mittel”; “Kühltemperatur ist nicht ausreichend”; “Motortemperatur ist kalt”; “Motortemperatur ist normal”; “Motortemperatur ist heiß”; usw.} Die entsprechenden linguistischen Variablen sind durch folgende graphisch dargestellte Zugehörigkeitsfunktionen beschrieben:
4.6. ANWENDUNGSBEISPIEL
171
Grad
Grad
mittel
zu tief
1
nicht ausreichend
zu niedrig
1
niedrig
mittel
hoch
6
8
10
zu hoch
0.5
0.5
0
-25
-20
-15
o
-5
-10
C
O
4
Kühltemperatur
12
Grad
Grad
niedrig
1
normal
hoch
1
0.5
kalt
normal
heiß
0.5
0
500
1000
1500
U/min
0
10
Drehzahl des Motors
130 90 Gehäusetemperatur des Motors 50
Grad
1
zu niedrig
niedrig
normal
hoch
zu hoch
230
250
270
0.5
0
190
210
Volt
Netzspannung
Zusätzlich verfüge das Diagnosesystem über folgende Regeln, die die Fuzzy–Aussagen enthalten: Regel 1 WENN DANN
Motortemperatur ist heiß UND Kühlung ist nicht ausreichend Netzspannung ist zu niedrig ODER Spule hat Kurzschluß
Regel 2 WENN DANN
Motortemperatur ist normal Motordrehzahl ist normal
Regel 3 WENN DANN
Motordrehzahl ist normal UND Kühlung ist nicht ausreichend Kühlmittel ist zu wenig ODER Kühlmittel ist zu viel
Regel 4 WENN DANN
Kg/cm 2
Druck des inneren Wärmetauschers
Druck des inneren Wärmetauschers ist zu niedrig Kühlmittel ist zu wenig
170
o
C
KAPITEL 4. FUZZY–LOGIK
172 Regel 5 Druck des inneren Wärmetauschers ist zu hoch DANN Kühlmittel ist zu viel ODER Kreislauf enthält Luft WENN
Weiterhin werden die folgende Symptome beobachtet: 1. Motortemperatur = 97◦ C 2. Kühltemperatur = 7◦ C 3. Druck des inneren Wärmetauschers = 4.3kg/cm2 4. Netzspannung = 228Volt Die Beobachtungen werden in die folgenden Fuzzy–Aussagen umgewandelt: 1. Motortemperatur ist normal (µ(normal) = 0.8, µ(heiß) = 0.2) 2. Kühltemperatur ist nicht ausreichend (µ(nicht ausreichend) = 1) 3. Druck des inneren Wärmetauschers ist zu niedrig (µ(zu niedrig) = 0.85) 4. Netzspannung ist normal (µ(normal) = 0.9, µ(niedrig) = 0.1) Um nun aus einer unscharfen Regel A → B eine Relation R zu erzeugen, verwenden wir hier die Methode von Mamdani. Zunächst können wir Regel 2 aufgrund des beobachteten Symptoms 1 anwenden. Anhand des beobachteten Symptoms 1 und der Regel 2 läßt sich folgende Matrix erzeugen, die diese unscharfe Regel repräsentiert: A→B 50 55 60 65 70 75 80 85 90 95 100 105 110 115 120 125 130
500|550|600 |650 |700 |750 |800 |850 |900 |950 |1000 |1050 |1100 |1150 |1200 |1250 |1300 |1350 |1400 |1450|1500 0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 0 |0.1 |0.125|0.125|0.125|0.125|0.125|0.125|0.125|0.125|0.125|0.125|0.125|0.125|0.125|0.125|0.125|0.125|0.125|0.1 |0 0 |0.1 |0.2 |0.25 |0.25 |0.25 |0.25 |0.25 |0.25 |0.25 |0.25 |0.25 |0.25 |0.25 |0.25 |0.25 |0.25 |0.25 |0.2 |0.1 |0 0 |0.1 |0.2 |0.3 |0.375|0.375|0.375|0.375|0.375|0.375|0.375|0.375|0.375|0.375|0.375|0.375|0.375|0.3 |0.2 |0.1 |0 0 |0.1 |0.2 |0.3 |0.4 |0.5 |0.5 |0.5 |0.5 |0.5 |0.5 |0.5 |0.5 |0.5 |0.5 |0.5 |0.4 |0.3 |0.2 |0.1 |0 0 |0.1 |0.2 |0.3 |0.4 |0.5 |0.6 |0.625|0.625|0.625|0.625|0.625|0.625|0.625|0.6 |0.5 |0.4 |0.3 |0.2 |0.1 |0 0 |0.1 |0.2 |0.3 |0.4 |0.5 |0.6 |0.7 |0.75 |0.75 |0.75 |0.75 |0.75 |0.7 |0.6 |0.5 |0.4 |0.3 |0.2 |0.1 |0 0 |0.1 |0.2 |0.3 |0.4 |0.5 |0.6 |0.7 |0.8 |0.875|0.875|0.875|0.8 |0.7 |0.6 |0.5 |0.4 |0.3 |0.2 |0.1 |0 0 |0.1 |0.2 |0.3 |0.4 |0.5 |0.6 |0.7 |0.8 |0.9 |1 |0.9 |0.8 |0.7 |0.6 |0.5 |0.4 |0.3 |0.2 |0.1 |0 0 |0.1 |0.2 |0.3 |0.4 |0.5 |0.6 |0.7 |0.8 |0.875|0.875|0.875|0.8 |0.7 |0.6 |0.5 |0.4 |0.3 |0.2 |0.1 |0 0 |0.1 |0.2 |0.3 |0.4 |0.5 |0.6 |0.7 |0.75 |0.75 |0.75 |0.75 |0.75 |0.7 |0.6 |0.5 |0.4 |0.3 |0.2 |0.1 |0 0 |0.1 |0.2 |0.3 |0.4 |0.5 |0.6 |0.625|0.625|0.625|0.625|0.625|0.625|0.625|0.6 |0.5 |0.4 |0.3 |0.2 |0.1 |0 0 |0.1 |0.2 |0.3 |0.4 |0.5 |0.5 |0.5 |0.5 |0.5 |0.5 |0.5 |0.5 |0.5 |0.5 |0.5 |0.4 |0.3 |0.2 |0.1 |0 0 |0.1 |0.2 |0.3 |0.375|0.375|0.375|0.375|0.375|0.375|0.375|0.375|0.375|0.375|0.375|0.375|0.375|0.3 |0.2 |0.1 |0 0 |0.1 |0.2 |0.25 |0.25 |0.25 |0.25 |0.25 |0.25 |0.25 |0.25 |0.25 |0.25 |0.25 |0.25 |0.25 |0.25 |0.25 |0.2 |0.1 |0 0 |0.1 |0.125|0.125|0.125|0.125|0.125|0.125|0.125|0.125|0.125|0.125|0.125|0.125|0.125|0.125|0.125|0.125|0.125|0.1 |0 0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0
In die weiteren Betrachtungen werden die Temperaturwerte von 50 und 130o C nicht einbezogen, da sie keine Elemente der Fuzzy–Menge “Temperatur normal” darstellen. Aus den gleichen Gründen können die Drehzahlwerte von 500 und 1500 U/min vernachlässigt werden. Aus obiger Matrix sowie der Beobachtung “Motortemperatur normal” läßt sich dann die Zugehörigkeitsfunktion von B berechnen: µB (y) =
sup
{min(µA (x), µA→B (x, y)}
{x∈A|(x,y)∈A→B}
Wir brauchen also nur die Spalten der obigen Matrix zu betrachten und erhalten für B bzgl. der Beobachtung A:
4.7. HEURISTISCHE ANSÄTZE
y B (y)
173
500|550|600|650|700|750|800|850|900|950|1000|1050|1100|1150|1200|1250|1300|1350|1400|1450|1500 0 |0.1 |0.2 |0.3 |0.4 |0.5 |0.6 |0.7 |0.8 |0.8 |0.8 |0.8 |0.8 |0.7 |0.6 |0.5 |0.4 |0.3 |0.2 |0.1 |0
Durch die Mittelwert–Max–Methode zur Defuzzifikation kann schließlich ein scharfer Wert für die Motordrehzahl ermittelt werden. Hierbei ergibt sich der Zugehörigkeitsgrad 0.8 und somit eine durchschnittliche Drehzahl von 1000 U/min. Mit diesem Zugehörigkeitswert kann dann die nächste Regel feuern (Regel 3 inklusive der Beobachtung 2). Somit erhalten wir also aus der zweiten Beobachtung und Regel 3 die Aussage “Kühlmittel ist zu wenig oder zu viel”. Weiterhin folgt aus der dritten Beobachtung und Regel 4 die Lösung “Kühlmittel ist zu wenig” mit einem Zugehörigkeitsgrad von 0.85. Das bedeutet, daß weniger als 153.75 kg Kühlmittel im Kühlsystem vorhanden sind. Die folgenden Darstellungen veranschaulichen diesen Zusammenhang. Regel 4 WENN DANN
Druck des inneren Wärmetauschers ist zu niedrig Kühlmittel ist zu wenig
Regel 4:
W ENN Druck des inneren Wärmetauschers ist zu niedrig DANN Kühlmittel ist zu wenig
Symptom:
Druck des inneren Wärmetauschers: 4.3kg/cm2 also µA (x) = 0.85
Die Relation R : A → B wird berechnet durch µR (x, y) = min{µA (x), µB (y)}. Folgende Matrix repräsentiert die auf wenige Werte eingeschränkte Relation R: A→B 4 5 6
150 1 0.5 0
155 0.8 0.5 0
160 0.6 0.5 0
165 0.4 0.4 0
170 0.2 0.2 0
175 0 0 0
Aus dieser Matrix läßt sich dann wie zuvor für Regel 2 die Schlußfolgerung B berechnen. y B (y)
150 0.85
155 0.8
160 0.6
165 0.4
170 0.2
Nach Anwendung der Max–Methode zur Defuzzifikation erhalten wir einen scharfen Wert für die Quantität des Kühlmittels von 150kg. Ein genauerer Wert läßt sich nur nach Verkleinerung der Schrittweiten bzgl. Druck und Quantität berechnen. Der gesamte Vorgang läßt sich aber auch graphisch darstellen und somit ein genauerer Wert für die Menge des Kühlmittels im System ermitteln. Da sich ein Maximum–Plateau zwischen den Quantitätswerten von 150kg und ca. 154kg befindet, kann hier die Mittelwert–Max–Methode verwendet werden. Es ergibt sich somit ein scharfer Wert von durchschnittlich 152kg Kühlmittel.
4.7 Heuristische Ansätze Die heuristischen Ansätze sind in der Expertensystementwicklung weit verbreitet. Die meisten kommerziell verfügbaren Werkzeuge unterstützen vorrangig heuristische Ansätze.
KAPITEL 4. FUZZY–LOGIK
174
1
Druck zu niedrig
1
Kühlmittel zu wenig
0.85
0.5
0.5
0
44.3 5
6
kg/cm2
0
150 153.75
175
kg
IF Druck zu niedrig THEN Kühlmittel zu wenig
Heuristische Systeme machen in den meisten Fällen starken Gebrauch von Regeln. Das Erfahrungswissen von Experten wird in solchen Systemen meist durch Assoziationen der Form „Kriterien → Lösung“ modelliert, die als Regeln repräsentiert sind. Aufgrund dieser Darstellung werden die heuristischen Ansätze auch häufig als assoziative Ansätze bezeichnet. Die Assoziationen (Regeln) modellieren meist auch das Wissen darüber, mit welcher Sicherheit die Ausprägung von Kriterien oder Kriterienkombinationen auf bestimmte Lösungen hindeuten. Auf der Basis der Kriterien werden Hinweise für das Vorliegen einer Lösung gesammelt, wobei die Sicherheitsfaktoren mit unterschiedlichen Verfahren akkumuliert werden. Sobald genügend Hinweise für eine Lösung gewonnen sind, wird diese Lösung ausgegeben. Es erfolgt die Auswahl einer Lösung mit der höchsten Bewertung auf der Basis der Kriterien.
4.7.1 Regeln mit Konfidenzen Die Verwendung der bisher eingeführten Regeln wird unsicherem Wissen oft nicht gerecht. Eine mögliche Erweiterung ist die Bewertung des „Wahrheitsgehaltes“ von Fakten und Regeln. Begriffe und Definitionen Glaubwürdigkeitsmaß Ein Glaubwürdigkeitsmaß (Measure of Believe) ist eine Abbildung µB : A #→ x ∈ [0; 1]. A ist ein Zusammenhang der Form „Hypothese Hi gilt unter der Voraussetzung, daß Annahme E gilt“. E ist meist komplexer zusammengesetzt, während Hi eine einfache Aussage ist. Man beachte, daß im Gegensatz zur Aussagenlogik die Aussagen nicht entweder wahr oder falsch sein müssen, sondern „zu einem gewissen Grad“ wahr bzw. unwahr sind. µB (Hi |E) kann als (heuristisches) Gegenstück zu den (exakten) bedingten Wahrscheinlichkeiten angesehen werden. Fragwürdigkeitsmaß Ein Fragwürdigkeitsmaß (Measure of Disbelieve) ist eine Abbildung µD : A #→ x ∈ [0; 1]. A bezeichnet eine Aussage der gleichen Form wie bei µB . µD (Hi |E) ist ein Maß dafür, wie stark die Annahme von E gegen die Gültigkeit der Hypothese Hi spricht. Sowohl Glaubwürdigkeitsmaß als auch Fragwürdigkeitsmaß modellieren Unwissen über den exakten Zusammenhang und nicht Wahrscheinlichkeiten. Konfidenzfaktor Der Konfidenzfaktor (Certainty Factor) CF (Hi |E) = µB (Hi |E) − µD (Hi |E) ist ein Maß für die Zustimmung für Hi unter E. Der Wert kann folgendermaßen interpretiert werden:
4.7. HEURISTISCHE ANSÄTZE
175
CF (Hi |E) CF (Hi |E) CF (Hi |E)
>0 =0 <0
Zustimmung Keine Aussage möglich Ablehnung
Die numerischen Werte können auf sprachliche Formulierungen abgebildet werden: −1 −0,9 −0,5 −0,2 0 0,2 0,5 0,9 1
Wenn E Wenn E Wenn E Wenn E Wenn E Wenn E Wenn E Wenn E Wenn E
gilt, gilt Hi sicher nicht gilt, gilt Hi höchstwahrscheinlich nicht gilt, gilt Hi wahrscheinlich nicht gilt, gilt Hi möglicherweise nicht gilt, wissen wir nichts über Hi gilt, gilt Hi möglicherweise auch gilt, gilt Hi wahrscheinlich auch gilt, gilt Hi höchstwahrscheinlich auch gilt, gilt Hi sicher auch
Ist in der Schreibweise CF (H|E) die Voraussetzung E sicher, schreibt man auch CF (H). Konfidenzfaktor einer Regel Eine Regel hat die Form IF E THEN H, wobei E eine Annahme und H eine Hypothese ist. Der Konfidenzfaktor der Regel wird mit CF (H|E) bezeichnet. Er kann als Maß für die Gültigkeit der Regel angesehen werden. Verrechnung der Konfidenzen bei Regelanwendungen Bei der Anwendung von Regeln müssen die Konfidenzfaktoren verrechnet werden, um die Glaubwürdigkeit der abgeleiteten Fakten einschätzen zu können. Die Konfidenzfaktoren der einzelnen Fakten werden mit dem Faktor der Regel kombiniert, um dann die Bewertung für die einzelnen Schlußfolgerungen zu ergeben. Dazu werden zuerst die Konfidenzfaktoren der mit UND und ODER verbundenen Prämissen einer Regel zu einem Faktor verrechnet. Dabei gilt: • CF (P1 ∧ P2 ) = min(CF (P1 ), CF (P2 )) • CF (P1 ∨ P2 ) = max(CF (P1 ), CF (P2 )) Der auf diese Weise bestimmte Konfidenzfaktor der Prämisse wird mit dem Konfidenzfaktor der Regel multipliziert, um die Bewertung einer einzelnen Konklusionen zu bestimmen. Kann eine Konklusion K mit mehreren Regeln hergeleitet werden, so müssen die jeweiligen Konfidenzfaktoren verrechnet werden. Es sei CF (K|P1 ) der Konfidenzfaktor für die Regel R1 (IF P1 THEN K) und eine (neue) Regel R2 (IF P2 THEN K) besitze den Faktor CF (K|P2 ). Dann wird die neue Bewertung CF (K|P1 ∧ P2 ) wie folgt bestimmt:
CF (K|P1 ∧ P2 ) =
X + Y − (X · Y )
X + Y + (X · Y )
falls X, Y < 0
X +Y 1 − min(|X|, |Y |)
sonst.
falls X, Y > 0
176 mit X = CF (K|P1 ) und Y = CF (K|P2 ).
KAPITEL 4. FUZZY–LOGIK
4.7. HEURISTISCHE ANSÄTZE
177
Es ergeben sich die folgenden Gesetze für Konfidenzfaktoren: 1. CF (H|E1 ∧ E2 ) = CF (H|E2 ∧ E1 ) 2. CF (H|E1 ∧ (E2 ∧ E3 )) = CF (H|(E1 ∧ E2 ) ∧ E3 ) 3. CF (H|E) = 0 ⇒ CF (H|E ∧ E1 ) = CF (H|E1 ) 4. 1 = CF (H|E1 ) = −CF (H|E2 ) ⇒ CF (H|E1 ∧ E2 ) = 0 5. CF (H|E1 ) = 1; CF (H|E2 ) = −1 ⇒ CF (H|E1 ∧ E2 ) nicht definiert Bemerkung: Die Kommutativität (Gesetz 1.) und die Assoziativität der Verrechnung (Gesetz 2.) sind wichtig, da sonst die Reihenfolge der Regelanwendung Einfluß auf das Ergebnis hätte. Probleme des Ansatzes Wird ein Faktum durch zwei nur scheinbar unabhängige Regeln hergeleitet, erhöht sich der Gesamtfaktor, obwohl die selbe Prämisse verwendet wurde. Die Regeln • IF A THEN B, CF (B|A) = 0,5 • IF B THEN D, CF (D|B) = 1 • IF A THEN C, CF (C|A) = 0,5 • IF C THEN D, CF (D|C) = 1 ergeben für D den Wert 0,75, wenn A sicher ist. Die gleichwertige Regel IF A THEN D ergçÃe jedoch mit CF (D|A) = 0,5 den Wert 0,5. Bei großen Regelmengen mit langen Ketten ist es nahezu unmöglich, solche Abhängigkeiten zu entdecken. Ein weiteres Problem stellen Rekursionen der Form IF A THEN B und IF B THEN A dar. Ein solcher Kreislauf würde sich selbst „hochschaukeln“ und die Konfidenzfaktoren konvergierten gegen 1. Ist z. B. CF (B|A) = 0,3 und CF (A|B) = 0,4, CF (A) = 0,7 und CF (B) = 0,3, so ergibt sich zunächst der (Zwischen–)Wert für B: CF (B) = 0,3 · 0,7 = 0,21. Dieser muß nun mit dem alten Wert für B verrechnet werden: CF (B) = 0,21 + 0,3 − 0,21 · 0,3 = 0,447. Dieser neue Wert liefert durch die Regel „IF B THEN A“ CF (A) = 0,447 · 0,4 = 0, 1788. Die Verrechnung mit den alten Wert ergibt CF (A) = 0,7 + 0,1788 − 0,7 · 0,1788 = 0,75364. Die Folge der Konfidenzfaktoren sieht demnach folgendermaßen aus: A 0,75364 0,81001 0,86139 0,90351 0,93535 0,95795 .. .
B 0,44700 0,57203 0,67603 0,75975 0,82487 0,87401 .. .
1,000000
1,000000
KAPITEL 4. FUZZY–LOGIK
178 Beispiel für die Verrechnung von Konfidenzfaktoren Gegeben seien die Regeln: R1 (0,7): IF (P1 and P2 ) or P3 THEN K1 R2 (0,3): IF (P1 and P2 ) or P3 THEN K2 Wir formen die Schreibweise um: CF (K1 |(P1 and P2 ) or P3 ) = 0,7 CF (K2 |(P1 and P2 ) or P3 ) = 0,3
Im Laufe einer Konsultation seien für die Prämissen P1 , P2 und P3 folgende Konfidenzfaktoren hergeleitet worden: CF (P1 ) = 0,6, CF (P2 ) = 0,4 und CF (P3 ) = 0,2. Damit ergibt sich: CF (P1 and P2 ) = min(0,6; 0,4) = 0,4 CF ((P1 and P2 ) or P3 ) = max(0,4; 0,2) = 0,4 CF (K1 ) = 0,4 · 0,7 = 0,28 CF (K2 ) = 0,4 · 0,3 = 0,12
Die beiden neuen Fakten K1 und K2 werden also mit 0,28 bzw. 0,12 bewertet. Wird nun K1 mit einer anderen Regel R3 mit dem Konfidenzfaktor −0,8 hergeleitet, müssen die beiden Werte 0,28 und −0,8 zu einem neuen verrechnet werden: CF (K1 ) =
0,28 − 0,8 ≈ −0,72 1 − min(|0,28|, |0,8|)
Beispiel für ein Diagnosesystem Gegeben seien die folgenden Regeln für die Diagnose einer nicht funktionierenden Zimmerleuchte. (Die zugehörigen Konfidenzwerte sind in Klammern angegeben.) R1 (0,9): IF kein-Licht THEN Lampe-defekt R2 (0,1): IF kein-Licht THEN Schalter-defekt R3 (0,3): IF kein-Licht THEN Sicherung-defekt R4 (−0,9): IF Phasenprüfer-dunkel THEN Lampe-defekt R5 (1,0): IF andere-Leuchte-brennt THEN Strom-vorhanden R6 (−1,0): IF Strom-vorhanden THEN Sicherung-defekt R7 (−0,1): IF Schalter-defekt THEN kein-Strom R8 (1,0): IF Sicherung-defekt THEN kein-Strom R9 (0,8): IF Phasenprüfer-dunkel AND andere-Leuchte-brennt THEN Schalter-defekt
4.7. HEURISTISCHE ANSÄTZE
179
Bemerkungen: 1. Der Wert 1,0 bedeutet, daß die Regel mit Sicherheit zutrifft, der Wert −1,0 besagt, daß die betreffende Regel mit Sicherheit nicht zutrifft. 2. Eine Regel „IF A THEN B“ mit CF (B|A) = −1, wobei B eine Aussage ist, kann umgeformt werden in „IF A THEN ¬B“ mit CF (¬B|A) = 1. 3. Die Fakten X mit |CF (X)| = 1 können als Aussagen (im aussagenlogischen Sinne) gedeutet werden. Es werden die Symptome „kein-Licht“, „Phasenprüfer-dunkel“ und „andere-Leuchte-brennt“ beobachtet. Die Symptome erhalten, da sie gesichert sind, die Konfidenzfaktoren 1. Die folgende Abbildung zeigt die Verrechnung der Konfidenzfaktoren über Regelverkettung. Als Diagnose wird die Schlußfolgerung mit dem höchsten (End–)Wert gewählt. -0.9
(1) Phasenprüfer dunkel
Lampe defekt (0)
0.8
min
Schalter defekt (0.82) 0.9
kein Strom (-1)
0.1 Sicherung defekt (-1)
(1) kein Licht
-0.1
1
0.3 -1
(1) andere Leuchte brennt
1
Strom vorhanden (1)
Abbildung 4.1: Berechnung der Konfidenzfaktoren. Bemerkungen: 1. Für „Lampe-defekt“ wird sowohl der Wert −0,9 als auch der Wert 0,9 über zwei verschiedene Regeln hergeleitet. Dies muß aber nicht unbedingt einen Widerspruch darstellen; vielmehr folgt daraus, daß keine verläßliche Aussage möglich ist. Dies zeigt auch der resultierende Wert 0. 2. Können Fakten mit den Konfidenzfaktoren 1 bzw. −1 hergeleitet werden, setzen sich diese Werte, unabhängig von den durch andere Regeln hergeleiteten Werten, durch. Man beachte allerdings, daß ein Widerspruch auftritt, wenn sich für ein Fakt 1 und −1 ergibt. Dies entspricht dem aussagenlogischen Fall A und ¬A.
180
KAPITEL 4. FUZZY–LOGIK
Kapitel 5
Maschinelles Lernen Im täglichen Leben begegnet uns das Lernen meist in einer Mischung aus den Aspekten der Vergrößerung von Wissen und der Verbesserung von Fähigkeiten. Beim Erlernen einer Fremdsprache werden Grammatik, Vokabeln, Sprachstil, etc. als Wissen erworben und die Fähigkeit der Artikulation verbessert. Beim Erlernen einer Sportart stehen dagegen die Verbesserung von (motorischen) Fähigkeiten im Vordergrund, dazu kommen aber auch Spielregeln, Taktiken, etc., die eher als Wissen aufzufassen sind. Das Wissen in einem wissensbasierten System muß ebenso modifizierbar sein, um auch geänderten Anforderungen zu genügen. Die notwendigen Manipulationen, die hiermit zusammenhängen, wie etwa Testen auf Konsistenz, Löschen, Ändern und Hinzufügen von Wissen faßt man unter dem Begriff Wissensaktualisierung zusammen. Beim Hinzufügen von Wissen unterscheidet man • Wissenserwerb, bei dem neues Wissen von außen eingegeben wird, und • Lernen, bei dem das Wissen selbständig erweitert wird. Letzteres könnte etwa durch Analyse gelöster Probleme geschehen, etwa durch Beispielsammlungen von Symptome/Diagnose-Kombinationen. Das menschliche Lernen kann danach aufgeteilt werden, wieviel „Intelligenz“ hierfür nötig ist: • Auswendiglernen, • Lernen durch Anleitung, • Lernen durch Analogiebildung, • Lernen aus Beispielen, • Lernen aus selbständig gemachten Beobachtungen. Für die wissensbasierten Systeme besteht das Problem, daß die Akquisition von Expertenwissen zeitaufwendig, mühsam und leider auch fehleranfällig ist. Daher bietet es sich an, (zumindest teilweise) Verfahren der automatischen Wissensakquisition einzusetzen, insbesondere wenn „Rohdaten“ in Tabellenform vorliegen.
181
KAPITEL 5. MASCHINELLES LERNEN
182
5.1 Lernen von Entscheidungsbäumen und Regelmengen Wir gehen davon aus, daß eine Sammlung von Lernbeispielen vorliegt, die verschiedene Konzepte repräsentieren. Die Aufgabe besteht darin, einen Entscheidungsbaum zu generieren, der für diese Konzepte effizient ist (Baumgröße, Entscheidungsgeschwindigkeit, etc.). Die Lernbeispiele sind charakterisiert durch eine feste Anzahl von Attributen mit jeweils endlich vielen Ausprägungen und durch eine Klassifikation, die die möglichen Entscheidungen angibt. Im Gegensatz zur Mustererkennung haben wir es hier also mit diskreten Attributwerten zu tun. Die Beispiele lassen sich daher einfach als Tabelle angeben: A1 val1,1 val2,1 .. . .. . .. .
A2 val1,2 val2,2 .. . .. . .. .
valm,1 valm,2
... ... ... ..
. ..
. ..
...
.
An val1,n val2,n .. . .. . .. .
C class1 class2 .. . .. . .. .
valm,n classm
Hier bezeichnen A1 , . . . , An die verschiedenen Attribute wie z.B. Kosten in DM, Autofarbe, Abiturnote, etc. ai,1 , . . . , ai,ki sind die möglichen Ausprägungen eines Attributs, etwa {rot, gelb, grün, blau, schwarz} für das Attribut Autofarbe. Also gilt valj,i ∈ {ai,1 , . . . , ai,ki }. Die Klassifikation wird durch C gegeben, wobei c1 , . . . , ck die möglichen Werte seien, d.h. classj ∈ {c1 , . . . , ck }. Beispiele sind die Kreditwürdigkeit mit den Möglichkeiten ja, eingeschränkt und nein oder aber die Eßbarkeit von Pilzen mit den Möglichkeiten eßbar und giftig. Wir schreiben kurz:
Ai = {ai,1 , . . . , ai,ki } C = {c1 , . . . , ck }
1≤i≤n
Die Beispielsammlung oder Objektsammlung M wird also gebildet durch m Objekte, die durch n Attribute mit jeweils ki Ausprägungen beschrieben werden und die in k Klassen fallen. Wir gehen weiter davon aus, daß M folgende Bedingungen erfüllt: 1. M ist nicht trivial, d.h. C enthält mindestens zwei verschiedene Klassifikationen. 2. M ist konsistent, d.h. M enthält keine Beispiele, die bei gleichen Attributausprägungen verschiedene Klassifikationen erhalten. Für zwei Beispiele (valu,1 , . . . , valu,n , classu ) und (valv,1 , . . . , valv,n , classv ) folgt also aus valu,j = valv,j für 1 ≤ j ≤ n auch sofort classu = classv . Ein Entscheidungsbaum ist nun ein Baum, in dem jeder innere Knoten ein Attribut als Label hat, so daß auf keinem Pfad von der Wurzel zu einem Blatt ein Attribut mehrfach vorkommt, und in dem jede Kante, die von einem Knoten mit Label Ai zu einem Nachfolger des Knotens geht, eine Ausprägung ai,j dieses Attributes als Label erhält, so daß alle Kanten zu den Nachfolgern eines Knotens verschiedene Label aufweisen. Die Blätter des Baumes erhalten als Label eine Klassifikation. Wenn als Beispielsammlung für jedes Tupel von Ausprägungen der Attribute ein Beispiel vorliegt, d.h. m = k1 · . . . · kn , können wir einen sehr einfachen Entscheidungsbaum generieren. Der Wurzelknoten (Knoten der Tiefe 0) erhält A1 als Label und k1 Nachfolgerknoten. Die Kanten der Knoten werden mit den Labeln a1,1 , . . . , a1,k1 versehen. Die Knoten der Tiefe i mit 1 ≤ i < n erhalten als Label alle das Attribut
5.1. LERNEN VON ENTSCHEIDUNGSBÄUMEN UND REGELMENGEN
183
Ai+1 und jeweils ki+1 Nachfolger mit den Kantenlabeln ai+1,1 , . . . , ai+1,ki+1 . Die Blätter erhalten als Label die Klassifikation des Beispiels, das durch die Label der Kanten auf dem Pfad von der Wurzel zu diesem Blatt beschrieben wird. Jeder Pfad beschreibt (hier genau) ein Beispiel der Objektsammlung; zu jedem Beispiel gibt es einen Pfad, der das Beispiel darstellt. In diesem Fall sagen wir, daß der Entscheidungsbaum die Objektsammlung repräsentiert. A1 a
1
a
............
k1
A2
A2
........
........
......................... C1
C2
.........................
C m-1 C m
Abbildung 5.1: Entscheidungsbaum für vollständige Objektsammlung Da wir von einer konsistenten Objektsammlung ausgehen, kommt jedes Tupel von Ausprägungen der Attribute höchstens einmal vor. Wenn nicht für jedes Tupel ein Beispiel vorliegt, können wir den gerade beschriebenen Baum dadurch auf die kleinere Objektsammlung anpassen, daß die Blätter entfernt werden, für die kein entsprechendes Beispiel vorhanden ist, und alle inneren Knoten entfernen, die keinen Nachfolger haben. Nach wie vor repräsentiert jeder Pfad dieses Baumes genau ein Beispiel. In einem gemäß der Definition gebildeten Entscheidungsbaum repräsentiert jeder Pfad von der Wurzel zu einem Blatt aber eine Gruppe von Beispielen mit gleicher Klassifikation. Die Label der Kanten auf dem Pfad geben die vorgeschriebenen Attributausprägungen an, der Label des Blattknotens die für alle Beispiele gleich Klassifikation. Attribute, die nicht als Knotenlabel in dem Pfad auftreten, können eine beliebige Ausprägung haben; die Entscheidung ist von ihnen nicht abhängig. Die Blätter eines Entscheidungsbaumes müssen daher auch nicht unbedingt alle in gleicher Tiefe auftreten. Die Größe des Entscheidungsbaumes und damit auch die Geschwindigkeit einer Entscheidung hängt also von einer geschickten Gruppierung der Beispiele mit gleicher Klassifikation ab. Beispiel: Es sei die folgende Beispielsammlung für Pilze gegeben. Farbe rot braun braun grün rot
Größe klein klein groß klein groß
Punkte ja nein ja nein nein
Klasse giftig eßbar eßbar eßbar eßbar
Wie man an den Entscheidungsbäumen des Beispiels erkennen kann, liegen im allgemeinen die Blätter nicht alle auf gleicher Ebene. Obwohl beide Bäume die gleiche Tiefe haben, werden im linken Baum die Beispiele im Schnitt früher entschieden als im rechten Baum. 2 Um die Qualität eines Entscheidungsbaumes beurteilen zu können, benötigt man geeignete Maße. Die
KAPITEL 5. MASCHINELLES LERNEN
184 Farbe rot
Größe braun
klein
groß
grün Größe klein giftig 1 Objekt
eßbar 1 Objekt
eßbar 2 Objekte
Punkte
groß eßbar 1 Objekt
ja
eßbar 2 Objekte nein
giftig 1 Objekt
eßbar 2 Objekte
Abbildung 5.2: Entscheidungsbäume für Pilzbeispielsammlung einfachsten Möglichkeiten wie Anzahl der Knoten des Baumes oder die Tiefe des Baumes reichen zur Beschreibung nicht aus, wie das vorstehende Beispiel zeigt. Als Kriterien bieten sich an • Anzahl der Blätter Die Anzahl der Blätter entspricht der Anzahl der Regeln, die man aus einem Entscheidungsbaum generiert. • Höhe des Baumes Die Höhe des Baumes entspricht der maximalen Regellänge, d.h. der Anzahl der maximal zu verifizierenden Prämissen für eine Entscheidung. • externe Pfadlänge Die externe Pfadlänge ist definiert als die Summe der Längen aller Pfade von der Wurzel zu einem Blatt. Dieses Maß gibt Auskunft über den Speicheraufwand für die aus dem Baum generierte Regelmenge. • gewichtete externe Pfadlänge Die gewichtete externe Pfadlänge wird berechnet wie die externe Pfadlänge, außer das die Längen der Pfade jeweils multipliziert werden mit der Anzahl der Beispiele, die dieser Pfad repräsentiert. Dieses Maß bewertet die Klassifikationskosten, indem für jedes Beispiel die Länge der zu testenden Regel berücksichtigt wird. Beispiel: Für die beiden Bäume aus dem Beispiel ergibt sich: Kriterium Anz. Blätter Höhe ext. Pfadlänge gew. ext. Pfadlänge
linker Baum 4 2 6 7
rechter Baum 5 2 5 8 2
Zur Komplexität des Problems, einen Entscheidungsbaum zur effizienten Repräsentation einer Objektsammlung zu finden, läßt sich folgender Satz zeigen. Satz 5.1.1 Das Problem der Entscheidung, ob für eine beliebige Objektsammlung M ein Entscheidungsbaum T (M ) mit einer durch eine gegebene Konstante k beschränkten externen Pfadlänge existiert, ist NPvollständig.
5.2. ID3 - EIN HEURISTISCHER ALGORITHMUS
185
5.2 ID3 - Ein heuristischer Algorithmus Die Güte eines Entscheidungsbaumes hängt wesentlich von der geschickten Wahl der Attribute ab, nach denen verzweigt wird. Abgesehen davon läßt sich die Generierung eines Entscheidungsbaumes durch einen einfachen rekursiven Algorithmus bewerkstelligen: 1. Ist M trivial, so ist der Entscheidungsbaum ein Blattknoten mit der Klassifikation der Beispiele in M als Label. 2. Ansonsten wähle (nach einer geeigneten Heuristik) ein Attribut Ai ∈ {A1 , . . . , An } und zerlege M in r disjunkte Teilmenge M1 , . . . , Mr , wobei ai,i1 , . . . , ai,ir die verschiedenen für das Attribut Ai angenommenen Werte von Beispielen in M sind und Mj genau die Beispiele enthält, für die das Attribut Ai den Wert ai,ij annimmt. 3. Entferne das Attribut Ai aus {A1 , . . . , An } und die Attributwerte aus den Beispielen in M1 , . . . , Mr . Wende den Algorithmus rekursiv auf jedes Mj an. Sind T (M1 ), . . . , T (Mr ) die generierten Entscheidungsbäume für M1 , . . . , Mr , so bilde T (M ) wie in folgender Skizze: Ai
T(M): a
i 1
T(M 1)
a
............
i r
T(M r )
Abbildung 5.3: Rekursives Generieren des Entscheidungsbaumes Die Anzahl der möglichen Entscheidungsbäume ist zu groß, als daß eine systematische Suche nach einem optimalen Entscheidungsbaum möglich wäre. Bei n Attributen mit je 2 Ausprägungen gibt es bereits mehr als n! verschiedene Entscheidungbäume, die pro Blatt genau ein Beispiel repräsentieren (n Möglichkeiten für das erste Attribut und für jeden Teilbaum alle Möglichkeiten mit n − 1 Attributen). Daher muß man versuchen, mit geeigneten Heuristiken die Auswahl des nächsten Attributes so vorzunehmen, daß insgesamt ein möglichst optimaler Entscheidungsbaum generiert wird.
5.2.1 Die Attributauswahlheuristik ID3 Grundlage dieser Heuristik ID3 (Iterative Dichotomizer Version 3, Dichotomizer, da ursprünglich C = {c1 , c2 }) sind informationstheoretische Überlegungen. Dabei gehen wir von folgenden Voraussetzungen aus: 1. Ein Entscheidungsbaum für M soll Beispiele entscheiden, deren relative Häufigkeiten genauso verteilt sind wie für die Beispiele in M . 2. Ein Entscheidungsbaum kann als eine Informationsquelle aufgefaßt werden, dessen Äste jeweils die Information der Klassifikation im Blatt des Astes darstellen.
KAPITEL 5. MASCHINELLES LERNEN
186
Wenn wir nun eine große Gruppe von Beispielen in der Objektsammlung haben, für die die Klassifikation gleich ist und die sich nicht in allen Attributausprägungen unterscheiden, so ist der Informationsgehalt des Tupels der Attibutwerte geringer als bei einer Klassifikation, für die nur ein Beispiel in der Sammlung existiert. Definition 5.2.1 Tritt ein Ereignis E mit Wahrscheinlichkeit p(E) ein, dann ist der Informationsgehalt I(E) dieses Eintretens I(E) = − log(p(E)) Wir betrachten im folgenden immer den Logarithmus zur Basis 2, d.h. log = log2 . Da die Wahrscheinlichkeiten immer Werte im Intervall [0, 1] sind, ist der Informationsgehalt für Ereignisse mit positiver Wahrscheinlichkeit definiert und hat ebenfalls einen positiven Wert. Der Informationsgehalt eines Ereignisses ist also um so größer, je seltener das Ereignis ist. Da die Häufigkeit von Ereignissen variiert, betrachtet man den mittleren Informationsgehalt. Definition 5.2.2 (Entropie) Hat ein Versuch E die r möglichen Ausgänge E1 , . . . , Er , so heißt der mittlere Informationsgehalt H(E) = −
r
p(Ei ) log(p(Ei ))
i=1
die Entropie des Versuchs. Hat ein zweiter auf der gleichen Objektmenge durchgeführter Versuch F die s Ausgänge F1 , . . . , Fs , dann ist die bedingte Entropie des kombinierten Versuchs (F|E) gegeben durch H(F|E) = −
r
i=1
p(Ei )
s
p(Fj |Ei ) log(p(Fj |Ei ))
j=1
Der mittlere Informationsgewinn, der durch den Versuch E entsteht, ist dann definiert als H(F) − H(F|E) Der Versuch F wird dabei auf den Gruppen von Objekten mit gleichem Ausgang bei Versuch E durchgeführt. In unserem Kontext der Entscheidungsbäume ist das Ereignis E das ausgewählte Attribut At , die Ausgänge des Versuchs sind die (zufälligen) Werte des Attributs at,1 , . . . , at,kt , d.h. wir haben r = kt Ausgänge. Der Versuch F ist die Klassifikation der Objekte, wir haben daher die Ausgänge c1 , . . . , ck und r = k. Attributauswahlheuristik ID3: Maximiere den mittleren Informationsgewinn, d.h. wähle als nächstes Attribut dasjenige mit höchsten mittleren Informationsgewinn. Unter der Voraussetzung, daß die Beispielsammlung die Wahrscheinlichkeiten der Attributausprägungen und Klassifikationen korrekt widerspiegelt, können wir alle vorkommenden Wahrscheinlichkeitswerte über
5.2. ID3 - EIN HEURISTISCHER ALGORITHMUS
187
die relativen Häufigkeiten berechnen. Wir nehmen weiter an, das jede Ausprägung eines Attributes auch tatsächlich in mindestens einem Beispiel auftritt. (# bezeichnet die Anzahl der Elemente einer Menge.) := #{ Objekte in M mit Wert at,i für At } xi := P (Ei ) = xmi pi xi,j := #{ Objekte in M mit Wert at,i für At und Klassifikation cj } Bezeichnen wir F mit der Klassifikation C und E mit dem Attribut At , läßt sich die bedingte Entropie berechnen als kt k
xi,j xi,j pi log( ) H(C|At ) = − x x i i i=1 j=1 Mit der Festlegung 0 log 0 := 0 können den mittleren Informationsgewinn H(C) − H(C|At ) also einfach ausrechnen. Wollen wir das Attribut bestimmen, für den er maximal ist, so müssen wir das t mit minimalem Wert H(C|At ) bestimmen, da H(C) konstant ist. Dieses Attribut liefert den höchsten mittleren Informationsgewinn. Berechnungsvorschrift für Attributauswahlheuristik ID3: Bestimme t mit 1 ≤ t ≤ n mit H(C|At ) minimal. Beispiel: (Fortsetzung) Wir betrachten die Beispielsammlung zur Pilzklassifikation. Um das erste Attribut auszuwählen, wird zunächst für jedes Attribut die Matrix der bedingten Vorkommen X = (xi,j ) aufgestellt. Die Summen der Zeilen ergeben die Werte xi . Anschließend werden die Werte für die bedingte Entropien bestimmt und das Attribut At mit minimalem Wert gewählt. Auf die Teil-Beispielsammlungen Mj mit festem Attributwert at,j für dieses Attribut wird das Verfahren rekursiv angewandt. Rekursionsebene I: i. Farbe:
X=
rot braun grün
giftig 1 0 0
eßbar 1 2 1
=⇒
=2 =2 =1
xrot xbraun xgrün
Es folgt wegen m = 5 prot =
2 2 1 = 0.4, pbraun = = 0.4, pgrün = = 0.2 5 5 5
und damit H(C|AFarbe ) = −[0.4( 12 log 12 + 12 log 12 ) + 0.4( 02 log . . . + 0.2( 01 log 01 + 11 log 11 )] = −[0.4(−1) + 0 + 0] = 0.4 (Beachte 2−1 = 12 .)
0 2
+ 22 log 22 )
KAPITEL 5. MASCHINELLES LERNEN
188 ii. Größe: giftig 1 0
klein groß
X= Also
pklein =
eßbar 2 2
=⇒
=3 =2
xklein xgroß
3 2 = 0.6, pgroß = = 0.4 5 5
und damit H(C|AGröße ) = −[0.6( 13 log 13 + 23 log 23 ) + 0.4( 02 log = −[0.4(− log 3 + 23 ) + 0] ≈ 0.4562
0 2
+
2 2
log 22 )]
(Beachte log xy = log x − log y und log 2 = 1 sowie log 1 = 0.) iii. Punkte:
X=
giftig 1 0
ja nein
Also pja =
eßbar 1 3
xja xnein
=⇒
=2 =3
2 3 = 0.4, pnein = = 0.6 5 5
und damit H(C|APunkte ) = −[0.4( 12 log 12 + = −[0.4(−1) + 0] = 0.4
1 2
log 12 ) + 0.6( 03 log 03 + 33 log 33 )]
Damit ist die bedingte Entropie minimal für das Attribut Farbe und auch für das Attribut Punkte. Wir wählen das Attribut Punkte aus, da es weniger Teilprobleme erzeugt. Punkte ja
nein
Farbe
Größe
Klasse
Farbe
Größe
Klasse
rot braun
klein groß
giftig eßbar
braun grün rot
klein klein groß
eßbar eßbar eßbar
Abbildung 5.4: Entscheidungsbaum nach Rekursionsebene I Rekursionsstufe II: (a) Objektsammlung Mnein besteht aus 3 Beispielen, die alle in die Klasse der eßbaren Pilze gehören. Also ist Mnein trivial und der Entscheidungsbaum T (Mnein ) besteht nur aus einem Blattknoten mit Label „eßbar“. (b) Objektsammlung Mja besteht aus 2 Beispielen mit verschiedenen Klassifikationen. i. Farbe: Das Attribut Farbe unterscheidet die Beispiele, daher könnte dieses Attribut sofort gewählt werden.
5.2. ID3 - EIN HEURISTISCHER ALGORITHMUS
189 Punkte
ja
nein
Farbe
Größe
Klasse
rot braun
klein groß
giftig eßbar
eßbar
Abbildung 5.5: Entscheidungsbaum nach Rekursionsebene II, Teil 1 ii. Größe: Das Attribut Größe unterscheidet die Beispiele ebenfalls, daher könnte auch dieses Attribut sofort gewählt werden. Die Werte für die bedingte Entropie sind offensichtlich gleich, da in beiden Fällen analoge Situationen vorliegen. Wir wählen als Attribut die Farbe. Punkte ja
nein
Farbe eßbar rot
braun
Größe
Klasse
Größe
Klasse
klein
giftig
groß
eßbar
Abbildung 5.6: Entscheidungsbaum nach Rekursionsebene II Rekursionsstufe III: (a) Objektsammlung Mja,rot (b) Objektsammlung Mja,braun Da jeweils nur noch ein Beispiel übrig ist, sind die Objektsammlungen trivial, die Entscheidungsbäume bestehen nur aus den Blättern mit Label giftig bzw. eßbar. 2 Bemerkungen: 1. Die Heuristik dadurch verbessert werden, daß Attribute, für die keine Beispiele mit verschiedenen Ausprägungen in der Objektsammlung vorhanden sind, von der Auswahl ausgeschlossen werden. Hätte das Attribut Größe in Rekursionsstufe II hat in beiden Beispielen den Wert klein, unterscheidet es die Beispiele nicht. Wie man leicht nachrechnet ergibt die bedingte Entropie für einen solchen Fall
KAPITEL 5. MASCHINELLES LERNEN
190
Punkte ja
nein
Farbe eßbar rot
giftig
braun
eßbar
Abbildung 5.7: Entscheidungsbaum nach Rekursionsebene III den Wert 0, wenn alle Beispiele die gleiche Attributausprägung besitzen. Der Entscheidungsbaum weist für ein solches Attribut einen inneren Knoten mit genau einem Nachfolger auf, so daß man diesen Knoten ohne Bedenken eliminieren kann. 2. Wenn nur noch ein Attribut übrig ist, braucht natürlich keine Berechnung zu erfolgen, wir wählen dieses Attribut. 3. Der Entscheidungsbaum wird nur dann von hoher Güte sein, wenn die Beispielsammlung repräsentativ ist für die anschließend anhand des Entscheidungsbaumes vorgenommenen Klassifikationen.
5.2.2 Komplexität Es ist leicht zu sehen, daß für alle benötigten Hilfsoperationen wie Test auf triviale Objektsammlung, Berechnung der vorkommenden Attributausprägungen, Berechnung der reduzierten Objektsammlungen, etc. ein Zeitaufwand von O(mn) pro Berechnung ausreicht. Offensichtlich ist die Anzahl der rekursiven Aufrufe des Verfahrens maximal, wenn der Entscheidungsbaum die Tiefe n hat und auch alle Blätter in der Ebene n liegen. Es zeigt sich, daß in diesem Fall die Rechenzeit für die Konstruktion des gesamten Baumes (ohne Berücksichtigung der Attributauswahlheuristik) in O(mn2 ) liegt. Unter Berücksichtigung der Heuristik ergibt sich eine Gesamtkomplexität von O(mn2 + nfh(m, n)) unter der Annahme, daß fh (Zeitschranke für die Berechnung des nächsten Attributes bei m Beispielen und n Attributen) für die Heuristik h ein Polynom in m und n ist. Für die ID3 Heuristik zeigte Quinlan die Komplexität O(mn) und eine Gesamtkomplexität von O(mnα), wobei α die Anzahl der inneren Knoten während der Konstruktion des Baumes ist. Im beschriebenen schlechtesten Fall liegt α in der Größenordnung von m, so daß sich wegen m > n eine Gesamtkomplexität von O(m2 n) ergibt. Da aber üblicherweise m ' n gilt, erscheint diese Schranke als zu hoch. Setzen wir die Komplexität O(mn) für ID3 in die Gesamtkomplexität ein so erhalten wir O(mn2 ) als Komplexität für das Verfahren mit der Heuristik ID3.
Kapitel 6
Neuronale Netze 6.1 Theoretische Grundlagen Die Hauptmerkmale biologischer neuronaler Netze sind die hochgradig parallele Arbeitsweise, die starke Konnektivität und vor allem ihre Lernfähigkeit. Ein natürliches Absterben von vielen Nervenzellen ist erlaubt, ohne das Information im Sinne schlichter Redundanz doppelt vorhanden sein müßte, um nicht verloren zu gehen. Das heißt, daß eine Information als Ganzes betrachtet, nicht in wenigen Nervenzellen, sondern verteilt im gesamtem Neuronennetzwerk gespeichert ist. Aus diesem Grund besitzt das Gehirn sehr gute Eigenschaften in Bezug auf Parallelität, Fehlertoleranz, Speicherzugriff, Erkennen von Mustern, Ausnutzen von Ähnlichkeiten, Rekonstruktion verrauschter Daten, Verallgemeinern von Beispielen und der Selbstorganisation. Konnektionistische Modelle nutzen einige dieser im menschlichen Gehirn erkannten oder vermuteten Organisationsprinzipien aus. Anfangs neurobiologisch motiviert, können neuronale Netze heute unterschiedliche Aufgaben wie Mustererkennung, Mustervervollständigung, Bestimmung von Ähnlichkeiten zwischen Daten, Optimierungsprobleme oder automatische Klassifikation bewältigen. Ausgehend von der Problembeschreibung werden die verschiedenen Typen neuronaler Netze in überwachte (supervised) und unüberwachte (unsupervised) Lernalgorithmen unterteilt. Ein neuronales Netz soll mit Hilfe einer Lernregel den Zusammenhang zwischen einer Ein- und Ausgabemenge von Mustern lernen, um später bei gleichen oder ähnlichen Eingaben mit einer geeigneten Ausgabe zu reagieren. Hauptziel beim Lernen ist, die Fähigkeit zur Generalisierung zu erlangen, d.h. die Verallgemeinerung anhand von Beispielen – eine Art Regelgewinnung zur Klassifizierung.
6.1.1 Das konnektionistische Modell Die meisten Lernalgorithmen arbeiten auf künstlichen neuronalen Feedforward Netzen (Multilayer Perceptrons, MP), die durch folgende statische Eigenschaften definiert sind: Definition 6.1.1 Ein neuronales Feedforward Netz ist ein Tupel (N,B,W,A,NET) mit • einer Menge N von Neuronen mit N = N0 ∪ . . . ∪ Nn , wobei n ≥ 1 ist. Es gilt: ∀i ∈ {0, . . . , n} : Ni = ∅ und ∀i, j ∈ {0, . . . , n}, i = j : Ni ∩ Nj = ∅ N0 ist die Eingabe-, Nn die Ausgabeschicht (oder auch NI Input-/ NO Outputlayer). N1 , . . . , Nn−1 sind verdeckte Schichten (Hiddenlayer). 191
KAPITEL 6. NEURONALE NETZE
192
• einer Menge B, mit wi ∈ B ⊂ IR, die jedem Neuron ni ∈ Nk , k > 0, einen Bias (Schwellwert) zuordnet. • einer Abbildung W:N × N −→ IR ( Netzwerkstruktur W von gewichteten und gerichteten Verbindungen, auch Gewichtsvektor genannt ). • einer Menge A von Aktivierungsfunktionen γi , mit γi : IR −→ IR, die jedem Neuron ni ∈ N eine Funktion zuordnet. • einer Menge N ET von Propagierungsfunktionen, die jedem ni ∈ N eine Netzeingabefunktion N ETi zuordnet. Ausgehend von Definition 6.1.1 werden nun die einzelnen Punkte näher betrachtet. Die Netzstruktur Die Netzwerkstruktur, die durch W beschrieben wird, bildet mit der Menge N der Neuronen einen azyklischen, gerichteten Graphen G = (N,W) (Streng vorwärts gerichtet, d.h ∀ wij gilt: sei ni ∈ Nk , nj ∈ Nl =⇒ k < l, siehe auch Abbildung 6.1). Die Knoten werden den Neuronen zugeordnet, während die bewerteten Kanten wij ∈ W die gewichteten Kommunikationsverbindungen zwischen ni und nj repräsentieren. Die Neuronen arbeiten wie einfache Automaten (Abbildung 6.3), die mit einer neuen Eingabe und einem aktuellen Zustand eine neue Ausgabe generieren. Bei Feedforward Netzen kann das neuronale Netz aus mehreren Schichten (Multilayer-Perceptron) aufgebaut sein (siehe Abbildung 6.1). Besitzt die Struktur keine verdeckten Hiddenlayer, so wird das Netz Perceptron genannt. Während die Input- und Outputschicht, oder auch Input- und Outputlayer genannt, die Kommunikationsverbindung zur Außenwelt darstellen, sind die verdeckten Schichten (Hiddenlayer), von außen nicht zu erkennen.
N0
N1
Nn-2
Nn-1
Nn
Abbildung 6.1: Multilayer Perceptron mit n + 1 Schichten. Dabei kann man sich die meist komplexe Graphenstruktur als ein System mit Gedächtnis vorstellen, in der das vorhandene ¨‘Wissen¨’ verteilt gespeichert ist, so daß jedes Neuron ein Teil zur Information beiträgt. Die Netzstruktur zusammen mit den Gewichten ergeben den assoziativen Speicher. W , der Gewichtsvektor des neuronalen Netzes, wird während der Lernphase ständig angepaßt; mit Hilfe einer Lernregel wird versucht, den Gewichtsvektor so zu verändern, daß eine gewünschte Assoziation zwischen Ein- und Ausgabe erreicht wird.
6.1. THEORETISCHE GRUNDLAGEN
193
Lineare Separabilität Die Struktur bzw. Anzahl der Schichten eines Neuronalen Netzes ist abhängig von der linearen Separabilität des Problems in Abhängigkeit zur Eingabe. So läßt sich das AND-Problem linear trennen und mittels eines einzigen Perzeptrons lösen. Das XOR-Problem zählt beispielsweise zu den nicht linear separierbaren Problemen und benötigt ein Netz mit einer Hidden-Schicht. Folgende Abbildung soll diesen Sachverhalt kurz verdeutlichen.
Eine Gerade löst das AND Problem
Für XOR werden zwei Geraden benötigt
Lösungen der AND und XOR Funktionen Weitere Erläuterungen sind dem Abschnitt Topologien (siehe Abschnitt 6.2.2) zu entnehmen. Bias Ein Neuron mit Schwellwert θ und n angeschlossenen Eingabeleitungen mit den jeweiligen Gewichten w1 , . . . , wn kann in ein äquivalentes Neuron mit Schwellenwert 0 transformiert werden. Dafür ist es lediglich notwendig, den negativen Schwellenwert als Gewicht einer zusätzlichen Kante zu verwenden. Dieser sogenannte Bias wird oft wie in Abbildung 6.2 realisiert. Dabei wird ein zusätzliches Neuron, mit konstanter Ausgabe (Aktivität) −1 und einer Kante mit Gewicht wi ∈ B zu jedem Neuron ni ∈ Nk 1 < k ≤ n, eingeführt. Diese Kante unterscheidet sich beim Gewichtsupdate nicht von den anderen Kanten im Netzwerk. Die Bedeutung des Bias wird in Kapitel 6.2.2 erläutert – erwähnt sei nur, daß er einen Teil zu der Leistungsfähigkeit Neuronaler Netze beiträgt.
Aktivierungsfunktion Jedem Neuron ni ∈ N ist im Netzwerk eine Aktivierungsfunktion γi zugeordnet, die mit der Propagierungsfunktion N ETi und dem Bias wi ∈ B (Schwellwert), die Aktivierung oi von ni berechnet. In der Regel haben die Neuronen in derselben Schicht die gleiche Aktivierungsfunktion. Die Wahl der Funktion ist stark modell- und problemabhängig. Ebenso ist sie abhängig von der Wahl des Lernalgorithmus, in diesem Fall vom Backpropagationverfahren. Ausgehend von dem Fehlersignal eines Neurons, benötig man zu dessen Berechnung die Ableitung der Aktivierungsfunktion. Demzufolge werden ausschließlich differenzierbare Funktionen verwendet. Die Aktivierungsfunktionen, welche es erlauben nichtlineare Funktionen durch ein neuronales Netz darzustellen, sind verantwortlich für die Leistungsfähigkeit der multilayer Netzwerke: eine Verknüpfung von
KAPITEL 6. NEURONALE NETZE
194
Biasneuron Output : -1
N
0
N
N
1
2
Abbildung 6.2: Realisierung eines Schwellwert (Bias) für Multilayer Perceptrons. linearen Funktionen ergibt wieder eine lineare Funktion. Ohne Aktivierungsfunktionen sind neuronale Netze von der Leistung nicht wesentlich besser als ein einfaches Perceptron[FAQ 96]. Abbildung 6.3 repräsentiert eine schematische Darstellung eines Neurons mit Bias und Aktivierungsfunktion. Bei jedem Gewichtsupdate wird neben den Gewichten auch der Bias eines jeden Neurons entsprechend angepaßt. Bias -1
Wi
W1i W2i
Neuron Ni
W3i
Ausgaben
y(t)
W4i
Ok
0 net(Oki ,wki ,wi )
Wki
+1
wi
Ausgabe Oi
-1
Propagierungs- Aktivierungsfunktion funktion
Abbildung 6.3: Aufbau eines künstlichen Neurons Ni . Die populärsten und am meisten eingesetzten Aktivierungsfunktionen sind Gauss- und Sigmoidfunktionen. Doch auch andere Funktionen wie Sinus, Identity oder Tanh können als Aktivierungsfunktionen im Backpropagationverfahren eingesetzt werden – einzige Voraussetzung ist die schon erwähnte Differenzierbarkeit. Tabelle 6.1 zeigt die gängigsten Funktionen. Ein erwähnenswerter Punkt ist das Flat Spot Problem. Fahlman [Fah 88] entdeckte bei der Arbeit mit der Standard Backpropagation Methode und der Sigmoid Aktivierungsfunktion, daß die Lernfortschritte Anfangs sehr groß sind, und am Ende der Lernphase das Training der Outputneuronen stagniert, ein “toter Punkt” wird erreicht. Je mehr Hiddenneuronen die Topologie besitzt, desto häufiger trat dieser Effekt auf. Eine Studie ergab, daß durch die Addition eines Offset, dem Sigmoidprimeoffset mit dem Wert 0.1, zu der
6.1. THEORETISCHE GRUNDLAGEN Funktionsname Sigmoid Shift Sigmoid Variable Sigmoid Tanh Sinus Identity Gaussian
195 γ(x) =
1 1+e−x 1 1+e−x − 0.5 M ax−M in + M in 1+e−x ex −e−x ex +e−x
sin(x) x (− 12 ∗x2 ) e
Wertebereich [0,1] [-0.5,0.5] [Min,Max] [-1,1] [0,1] IR [0,1]
Abkürzung1 SG SS VS TH SN ID GS
Tabelle 6.1: Mögliche Aktivierungsfunktionen Ableitung der jeweilgen Sigmoid Aktivierungsfunktion, das Flat Spot Problem behoben werden kann. Propagierungsfunktion Die Abbildung NET ordnet jedem Neuron eine Funktion N ETi zu (Propagierungsfunktion). In der Regel verwenden fast alle konnektionistischen Modelle für jedes Neuronen die selbe Funktion: die gewichtete Summe über der Eingabe des Neurons ni : N ETi =
wji oj + wi , ∀ni ∈ N
(6.1)
j
Mit den bisher vorgestellten Grundlagen neuronaler Feedforward Netze, veranschaulichen wir im nächsten Abschnitt die Arbeitsweise eines solchen Netzes.
6.1.2 Arbeitsweise neuronaler Netze Unberücksichtigt von Lernvorgängen betrachten wir nun ein neuronales Netz, dessen Abbildung W , also die Gewichte wij , und die Biase der Neuronen, wi ∈ B, vorgegeben und konstant sind. Beispiel: Ausgehend von dem neuronalen Netz (N, B, W, A, N ET ) wird folgendes festgelegt (Abbildung 6.4(a)): • N = N0 ∪ N1 ∪ N2 = {n0 , n1 , n2 , n3 }, mit N0 = {n0 , n1 } , N1 = {n2 } und N2 = {n3 }. N0 : Inputlayer, N1 : Hiddenlayer und N2 : Outputlayer. • B = {w2 , w3 } = {−12.61, −4.21} • Gewichtsmatrix W 1 : ∀i ∈ {2, 3} • γi (N ETi ) = 1+e−NET i γi (N ETi ) = N ETi : ∀i ∈ {0, 1}
• N ETi =
j
wji oj + wi ∀ni ∈ N1 ∪ N2 2
1
Diese Abkürzungen werden in den folgenden Kapiteln benutzt, um die Aktivierungsfunktion einer Neuronenschicht zu beschreiben
KAPITEL 6. NEURONALE NETZE
196 Neuron n0 n1 n2 n3
n0
n1
n2 26.53 -26.09
n3 -9.62 -9.27 -9.62
n3
N2
-4.21
-9.62
-9.62
-9.27
N1
-12.61
n2 26.53
n0
-26.09
n
N0
n0 0 0 1 1
n1 0 1 0 1
n3 0 1 1 0
1
(a) Einfaches Netz. Gewichte an den Kanten, Biaswerte in den Neuronen
(b) Trainingsmuster n0 , n1 Eingabevektor, n3 Ausgabevektor
Abbildung 6.4: Das XOR Problem Der Berechnungsablauf kann nun in drei Phasen eingeteilt werden, der Ruhe-, der Initialisierungs- und der Arbeitsphase: 1) In der Ruhephase ist das Neuronale Netz in Ruhe, d.h. die Aktivierungen aller Neuronen bleiben konstant. 2) Dann folgt die Initialisierung, in der ein Muster µk an die Inputneuronen “angelegt” wird: sei µk ∈ L (z.B. für k = 1 aus Abbildung 6.4(b) ist µ1 = (0, 0, 0)) das k-te Muster aus der Lernaufgabe L, dann gilt: ∀ni ∈ N0 : oi = µki . 3) Anschließend erfolgt die Arbeitsphase, in der alle Neuronen der gleichen Schicht parallel ihre Aktivierung berechnen: ∀nj ∈ Ni (i = 1, 2) : oj = γj (N ETj ). Dabei werden die Ausgaben der Units Schichtweise von der Ein- bis zur Ausgabeschicht berechnet, bis die Aktivierung aller Outputunits vorliegt. Dann erfolgt wieder die Ruhephase und das nächste Muster kann berechnet werden.
Doch bevor ein neuronales Netz auf Eingaben korrekte Ausgaben mit einer gewissen Fehlertoleranz erzeugen kann, muß die Topologie trainiert werden. Dies wird in den folgenden Abschnitten in mehreren Stufen erklärt.
6.1. THEORETISCHE GRUNDLAGEN
197
6.1.3 Selbstorganisation - Lernen Wesentlicher Bestandteil neuronaler Netze sind Lernalgorithmen, die den Gewichtsvektor W einer Architektur adaptiv verändern. Ziel des Lernvorgangs ist es, W so anzupassen, daß das Netz die Lernaufgabe erfüllt, und bei entsprechender Wahl der Trainingsmuster, auch die Fähigkeit der Verallgemeinerung (Generalisierung) erlangt, d.h. auf neue, unbekannte Eingaben mit geeigneten Ausgaben zu reagieren. Dieser Vorgang entspricht einer Art Regelgewinnung, oder auch Interpolation [NaKlKr 94]. Im Folgenden wird ein einfacher Lernalgorithmus für ein einzelnes Neuron beschrieben und geometrisch visualisiert. Für den Lernalgorithmus betrachten wir nur Perzeptronen mit dem Schwellenwert 0. Dies ist keine Einschränkung, da sich jedes Perzeptron mit Schwellenwert θ in ein Perzeptron mit Schwellenwert 0 verwandeln läßt. In diesem Fall wird der erweiterte Eingabevektor x = (x1 , x2 , . . . , xn , 1) und der erweiterte Gewichtsvektor w = (w1 , w2 , . . . , wn , −θ) verwendet. Der Lernalgorithmus versucht, zwei Eingabemengen P und N in zwei Halbräume linear zu trennen. Definition 6.1.2 Der offene (abgeschlossene) positive (n + 1)-dimensionale Halbraum für einen vorgegebenen Gewichtsvektor w der Dimension n + 1 ist die Menge aller Punkte x = (x1 , . . . , xn , −θ) für die w · x > 0 (w · x ≥ 0) gilt. Der offene (abgeschlossene) negative (n + 1)-dimensionale Halbraum ist die Menge aller Punkte x = (x1 , . . . , xn , −θ) mit w · x < 0 (w · x ≤ 0). Dabei soll ein w so gefunden werden, das die Punkte aus P nachher im abgeschlossenen positiven Halbraum und die Punkte aus N im offenen negativen Halbraum liegen. Der Lernalgorithmus Start:
Der Gewichtsvektor w0 wird zufällig generiert. Setze t := 0.
Testen:
Ein Punkt x in P ∪ N wird zufällig gewählt. Falls x ∈ P und wt · x > 0 gehe zu Testen. Falls x ∈ P und wt · x ≤ 0 gehe zu Addieren. Falls x ∈ N und wt · x < 0 gehe zu Testen. Falls x ∈ N und wt · x ≥ 0 gehe zu Subtrahieren.
Addieren:
Setze wt+1 = wt + x. Setze t := t + 1. Gehe zu Testen.
Subtrahieren:
Setze wt+1 = wt − x. Setze t := t + 1. Gehe zu Testen.
Die Funktionsweise des Algorithmus soll nun anhand von zweidimensionalen Vektoren veranschaulicht werden. Abbildung 6.5 zeigt eine erfolgreiche lineare Trennung der Punkte aus P und aus N durch einen Gewichtsvektor w. In Abbildung 6.6 sieht man, wie der Algorithmus bei einem zufällig gewähltem w den Vektor n1 von w abzieht und danach den Vektor p1 zu w addiert. Der Gewichtsvektor w wird bei jedem Lernschritt länger. Der Lernalgorithmus reagiert auf Korrekturen immer weniger stark.
KAPITEL 6. NEURONALE NETZE
198
p1
w p2
n1 P n2
N
Abbildung 6.5: Sollsituation
p1 p1 p2
p2 n1
n1
n1 n2
n2
p1
p2 n1
n2 Abbildung 6.6: Lernverlauf
p1
6.1. THEORETISCHE GRUNDLAGEN
199
Die Herkunft der Eingabe ist bekannt (aus P oder N) und die Einordnung in den positiven bzw. negativen Halbraum ebenfalls. Der gewonnene Gewichtsvektor kann somit nach erfolgreichem Training alle Elemente aus P und N korrekt klassifizieren. Es handelt sich hierbei um einen überwachten (supervised) Lernalgorithmus. Überwachtes Lernen wird dabei wie folgt definiert: Definition 6.1.3 Überwachtes Lernen besteht aus einer Lernaufgabe L, deren Datenmenge Ein/Ausgabepaare, µ = (i, t) ∈ L, enthalten. Das neuronale Netz erfüllt die Lernaufgabe, wenn zu jeder Eingabe i eine entsprechende Ausgabe o erzeugt wird, wobei o in Bezug auf t eine Fehlerschranke unterschreiten muß. Wird diese zu Anfang festgelegte Schranke unterschritten, erfüllt das Netz dieses Muster. Gilt dies für alle Muster, so erfüllt das Netz die Lernaufgabe. Die Generalisierungsfähigkeit ermöglicht es neuronalen Netzen, auf unvollständige oder fehlerhafte Muster entsprechend zu reagieren - neuronale Netze sind in diesem Sinne fehlertolerant. Ist die Unähnlichleit eines unbekannten Musters jedoch zu groß, so ist auch der Fehler entsprechend größer. Zur Steuerung des Lernvorgangs benötig man ein Kriterium, inwieweit das Lernen erfolgreich ist und eventuell abgebrochen werden kann. Zugleich bildet sie die Grundlage für eine adaptive Veränderung der Gewichtsmatrix W , um den Fehler des Netzes zu verringern. Definition 6.1.4 Sei L eine Lernaufgabe und µ = (i, t) ∈ L ein zu lernendes Musterpaar. Während i der Teilvektor von Beispiel µ für die Eingabeschicht ist, repräsentiert t die zu lernende Zielvorgabe für die Ausgabeschicht des Netzes; o entspricht der erreichten Netzausgabe. Dann wird das Fehlermaß folgendermaßen definiert: • Das Fehlermaß E eines überwachten Lernalgorithmus ist eine Abbildung: E : IRNn × IRNn −→ IR+ 0
(6.2)
mit Nn Menge der Outputneuronen. Dabei gilt ∀o, t ∈ IRNn E(o, t) = 0 ⇐⇒ o = t
(6.3)
(t: Soll-Ausgabe, o: Ist-Ausgabe) • Enµi ist der Fehler des Outputneurons ni ∈ Nn auf dem Muster µ. Er wird definiert als Differenz zwischen dem vorgegebenen Ausgabewert tµni und dem tatsächlichen Wert oµni : Enµi = tµni − oµni
(6.4)
• das verwendete Fehlermaß ist nun:
Eµ =
ni ∈Nn
(tµni − oµni )2
(6.5)
Dabei verhindert die Quadrierung, daß sich positive und negative Abweichungen gegenseitig aufheben. Betrachtet man tµ und oµ als Punkte in IRNn , so ergibt sich Eµ als das Quadrat des euklidischen Abstands der beiden Punkte. Mit Hilfe des Gesamtfehlermaßes E, welches als Summe der Einzelfehler berechnet wird, E=
µ∈L
Eµ
(6.6)
KAPITEL 6. NEURONALE NETZE
200
kann ein Fehlersignal an den Outputneuronen berechnet werden, das als Grundlage zur Gewichtskorrektur verwendet wird. Dabei wird der Gewichtsvektor W derart verändert, so daß für jedes Muster µ = (i, t) ∈ L die Einzelfehler E(oµ , tµ ) minimiert werden. Der Gesamtfehler wird nach jeder Epoche neu berechnet. Dabei entspricht einer Epoche eine vollständige Betrachtung der gesamten Lernaufgabe, d.h. jedes Muster wird einmal vom Lernalgorithmus bearbeitet. Ist der Gesamtfehler kleiner als eine vorher festgelegte Fehlerschranke, oder ein Mißerfolgskriterium erfüllt, so bricht der Lernalgorithmus ab. Ein Lernalgorithmus kann nun in fünf Schritte gegliedert werden: 1. Wähle ein Muster µ = (i, t) ∈ L und initialisiere das Netz mit iµ . 2. Propagiere die Eingabe iµ durch das Netz, d.h. berechne Schichtweise von N1 bis Nn die Netzeingabe und die Aktivierung der einzelnen Neuronen in der jeweiligen Schicht. 3. Vergleiche die Netzausgabe oµ mit der Zielvorgabe tµ . Bestimme den Fehler E(oµ , tµ ) und füge ihn zum Gesamtfehler hinzu. 4. Ändere W derart, daß E(oµ , tµ ) verringert wird. 5. Am Ende einer Epoche prüfe, ob der Gesamtfehler E ≤ ist, mit reeler Wert nahe 0. Wird dies erfüllt, so ist der Lernvorgang erfolgreich und wird beendet. Ist E > , prüfe, ob ein Abbruchkriterium erfüllt ist. Trifft dies zu, so wird der Lernvorgang als erfolglos abgebrochen. Andernfalls wird mit Schritt 1 fortgefahren. Die allgemeine Delta-Regel Ausgehend vom Gesamtfehler E der Outputneuronen, muß nun eine rückwärtige Ausbreitung des Fehlersignals erfolgen. Aufgrund dessen können dann die inneren Neuronen ihren eigenen Fehler berechnen. Dies erfolgt mit der allgemeinen Delta-Regel, deren Herleitung im folgenden nach [SNNS 93] und [KrSm 93] aufgeführt wird. Sei µ = (i, t) ∈ L ein Trainingsmuster, Nn die Menge der Outputneuronen und oµi die Aktivität von Neuron ni auf dem Muster µ. Als Gesamtfehlermaß E (auch Energiefunktion genannt) wird die Summe der quadrierten Abweichungen zwischen tatsächlicher und vorgegebener Abweichung der Lernaufgabe gewählt:
E=
Eµ =
µ∈L
n|
|N
µ
(ti − oµi )2
(6.7)
µ∈L i=1
Die Ausgabe, oder auch Aktivität oµi = γi (N ETiµ )
(6.8)
eines Neurons ni ∈ N ist durch seine Aktivierungsfunktion γi und der Netzfunktion N ETi N ETiµ =
wji oµj + wi
(6.9)
j
gegeben. Ziel ist die nährungsweise Minimierung des Gesamtfehlers; dies erfolgt mit dem bekannten Gradientenverfahren [BrSe 87] aus der nichtlinearen Optimierung. Aus diesem Grund wird die Gewichtsänderung
6.1. THEORETISCHE GRUNDLAGEN
201
µ = −η ∆wji
∂E µ ∂wji
(6.10)
gesetzt. Die Energiefunktion Eµ ist somit ein proportionaler Wert für den Fehler des Beispiels µ an den Ausgabeneuronen. Diese Ableitung wird unter Anwendung der Kettenregel in zwei Faktoren aufgeteilt. Ersterer reflektiert die Änderung des Fehlers bezüglich der Änderung der Netzeingabe eines Neurons, wohingegen der zweite Faktor den Effekt der Änderung eines bestimmten Gewichts auf die Netzeingabe repräsentiert [NaKlKr 94]: ∂E µ ∂N ETiµ ∂E µ = ∂wji ∂N ETiµ ∂wji
(6.11)
Nach Gleichung (6.9) erhält man für den zweiten Faktor ∂N ETiµ = oµj ∂wji
(6.12)
Das Fehlersignal δiµ eines Neurons ni ∈ N und einem gegebenen Muster µ ergibt sich durch δiµ = −
∂E µ ∂N ETiµ
(6.13)
Als Gewichtsänderung mit einem Gradientenabstieg 2 in E erhält man µ = ηδiµ oµj ∆wji
(6.14)
(wji : gerichtete Kante von Neuron nj nach Neuron ni , δiµ Fehler von Neuron ni , oµj Ausgabe von Neuron nj , η Lernfaktor und µ aktuelles Beispiel). Nun wird noch das Fehlersignal δiµ für jedes Neuron bestimmt. Um δiµ zu berechnen, wird die Kettenregel angewandt, damit die partielle Devariante als Produkt zweier Faktoren geschrieben werden kann: δiµ = −
∂E µ ∂E µ ∂oµi = − ∂N ETiµ ∂oµi ∂N ETiµ
(6.15)
Mit Gleichung (6.8) erhalten wir für den zweiten Faktor ∂oµi = γi (N ETiµ ) ∂N ETiµ
(6.16)
Um den ersten Faktor zu berechnen, werden zwei Fälle unterschieden: 1. Im ersten gehen wir davon aus, daß Neuron ni ein Ausgabeneuron ist. In diesem Fall erhalten wir mit der Definition von Eµ und µ = (i, t) ∈ L: 2 Nach [BrSe 87] bedeutet ein Gradientenabstieg in E die nährungsweise Minimierung des Fehlers, also E(W 1 ) ≥ E(W 2 ) ≥ . . . ≥ E(W n ) ≥ . . .
KAPITEL 6. NEURONALE NETZE
202
∂E µ = −(tµi − oµi ) ∂oµi
(6.17)
Mit Gleichung (6.15) und (6.16) erhalten wir für alle Ausgabeneuronen:
δiµ = (tµi − oµi )γi (N ETiµ )
(6.18)
2. Im zweiten Fall ist ni ∈ Nk mit 1 ≤ k ≤ n − 1, kein Ausgabeneuron. Dann muß der Fehler als Funktion der Netzeingabe über die Hiddenneuronen bis hin zu den Ausgabeneuronen geschrieben werden – also Eµ = E µ (N ET1µ , ..., N ETiµ , ...). Mit der Kettenregel erhält man für den ersten Faktor von Gleichung 6.15 eine Summe über die Neuronen nj ∈ Nh (k < h), die eine Verbindung über ein Kantengewicht mit Neuron ni haben: ∂E µ ∂oµi
=
nj ∈Nh
=
nj ∈Nh
=
µ
∂E µ ∂N ETj ∂N ETjµ oµi
∂E µ ∂ wij oµi µ ∂N ETj ∂oµi n ∈N i
∂E µ
nj ∈Nh
∂N ETjµ
= −
nj ∈Nh
i
wij
δjµ wij
(6.19)
Mit Gleichung (6.15) ergibt sich:
δiµ = γi (N ETiµ )
nj ∈Nh
δjµ wij
(6.20)
Gleichung (6.18) und (6.20) liefern nun den rekursiven Algorithmus, um die Fehlersignale im gesamten Netz zu berechnen - die allgemeine Delta-Regel: Definition 6.1.5 Die Delta-Regel
δiµ
=
γi (N ETiµ )(tµi − oµi ) , falls Neuron i Ausgabeneuron γi (N ETiµ ) k δkµ wik , falls Neuron i Hiddenneuron
• µ = (i, t) ∈ L aktuelles Muster • δi Fehler von Neuron ni • ti Sollausgabe des Ausgabeneurons ni • oi Ausgabe des Ausgabeneurons ni • i Index des aktuellen Neurons • k Index für Kantenverbindung vom aktuellen Neuron ni zu Neuron nk
• γi Aktivierungsfunktion, γi Ableitung der Aktivierungsfunktion von Neuron ni
(6.21)
6.1. THEORETISCHE GRUNDLAGEN
203
True Error und Index Error Der Gesamtfehler E, der die Summe der quadierten Abweichungen zwischen Soll- und Ist-Wert bildet, wird im allgemeinen als True Error bezeichnet. Desweiteren wird oft eine weitere Definition eines Fehlers in der Literatur und bei Programmen verwendet – der Index Error. Definition 6.1.6 Der Index Error eines neuronalen Netzes wird wie folgt berechnet: Sei Etrue der True Error, N rT E die Anzahl der Trainingsbeispiele und StdDev die Standartabweichung der Trainingsbeispiele. Sei µk = (i, t) das k-te Beispiel aus der Trainingsmenge L, N rOut die Anzahl der rT E N rT E 2 Ausgabeneuronen. Dann ist sum = N k=1 tk , sumSq = k=1 tk und N rT pts = N rT E ∗ N rOut. Dann wird die Standartabweichung nach
StdDev =
N rT pts ∗ sumSq − sum2 N rT pts ∗ (N rT pts − 1)
(6.22)
berechnet und der Index Error Eindex ergibt sich nach
Eindex =
Etrue N rT E
StdDev
.
(6.23)
Mittels des Error Index werden die unterschiedlichen Abbruchkriteria während des Trainings getestet. Ausgehend von der Möglichkeit Netzfehler berechnen zu können, befasst sich der folgende Abschnitt mit den verschiedenen Lernheuristiken zur Berechnung der Gewichtsupdatewerte und daraus resultierenden Fehlerminimierung des Netzes.
6.1.4 Lernheuristiken Mit der Delta-Regel für Neuronen ist es nun möglich, eine Gewichtsdifferenz ∆w für jede Kante zu berechnen und eine Gewichtsänderungen durchzuführen, um die Energiefunktion zu minimieren. Ausgehend von Gradient Descent und einem damit verbundenen Gewichtsupdate von µ = ηδjµ oµi , ∆wij
(6.24)
wurden im Laufe der Zeit einige Techniken entwickelt, die das sehr langsame Training mit dieser ersten Variante beschleunigen. Denn selbst auf einfachen Benchmark Problemen macht Gradient Descent nur kleine Schritte beim Lernen, was dazu führt, daß oft tausende von Epochen nötig sind, bis die Topologie die gewünschte Funktion approximieren kann. Dies ist das sogenannte Step-Size Problem von Backpropagation. Alle Verfahren basieren dabei auf der allgemeinen Delta-Regel und berechnen die neuen Gewichte nach neu alt = wij + ∆wij wij
(6.25)
jeweils mit einem speziell berechneten ∆wij . In Abbildung 6.7 sieht man, daß Gradient Descent mit kleinem η sehr langsam konvergiert und in einem lokalen Minimum stecken bleiben kann (Abbildung 6.8(a)), und stark osziliert, wenn η zu groß (Abbildung 6.8(b)) gewählt wird. Dieses Problem resultiert aus dem Verlauf der Energiefunktion, deren Struktur vergleichbar mit einem Gebirge ist. Dieses ist durchzogen von Tälern und umgeben von steilen Wänden. Jede
KAPITEL 6. NEURONALE NETZE
204
Abbildung 6.7: Gradient Descent beim Lernen einer einfachen quadratischen Funktion. Vier Trainingsläufe mit jeweils 20 Schritten und einem anderen Wert für η: 0.02, 0.0476, 0.049, 0.0505 – von links nach rechts. Das + repräsentiert das Minimum des Netzfehlers, während die Elipse eine konstante Fehlerlinie darstellt. Talsohle entspricht dabei einem lokalem Minimum, einer möglichen Lösung unserer Topologie. Es gibt einige Möglichkeiten, starken Oszillationen entgegen zu wirken, welche sich in den verschiedenen Heuristiken wiederspiegeln.
(a) η zu klein – BP bleibt in einem lokalen Minimum stecken
(b) η zu groß – starkes oszillieren ist die Folge
Abbildung 6.8: Backpropagation Lernprobleme Das die Einstellung der Lernparameter entscheidend für den Erfolg des Trainings ist, macht Abbildung 6.9 deutlich. Größere Werte ermöglichen zwar schnelleres Lernen, doch sind die Parameter zu groß gewählt, ist eine Minimierung des Gesamtfehlers eines neuronalen Netzes oft nicht mehr möglich. Momentum Eine einfache, wirksame und oft benutzte Lösung für schnelleres Lernen, ist die Addition eines MomentTerms. Der Moment-Term bewirkt, daß die Richtungsänderung zu einer “durchschnittlichen Talfahrt” tendiert, anstatt wild zu oszillieren. Erreicht wird dies, indem bei jedem Gewichtsupdate im aktuellen Schritt t ein Anteil des vorherigen Updates addiert wird:
6.1. THEORETISCHE GRUNDLAGEN
205
"monks.dat"
"p2_lp.dat"
ErrorIndex
ErrorIndex
1 0.75 0.5 0.25 0
1 0.75 0.5 0.25 0
10 9 8 7 6 5 4 3 nue 2 1
1
2
3
4
5
6
7
8
9
10 10 9 8 7 6 5 4 3 nue 2 1
eta
(a) M onks3 Problem mit einem 17-4-1 Netz
1
2
3
4
5
6
7
8
9
10
eta
(b) XOR Problem mit einem 2-2-1 Netz
Abbildung 6.9: Darstellung des Lösungsraumes in Abhängigkeit der beiden Lernparameter η (eta) und ν (nue) von der Lernheuristik Quickprop. Unterschiedliche Probleme benötigen oft verschiedene Lernparameter um beim Training erfolgreich zu sein.
t = −η ∆wij
∂E t−1 t + α∆wij ∂wij
(6.26)
α ist das Moment (α ∈ [0, 1]) für den vorherigen Fehler. Ein oft gewählter Wert für α ist 0.9. ∂E in jedem Schritt gleich und GleiErreichen wir eine Ebene, ein Plateau in der Energiefunktion, so ist ∂w ij chung (6.26) konvergiert gegen
∆wij = −
η ∂E 1 − α ∂wij
(6.27)
η . Betrachtet man den Fall der Oszilation, so wird ein Richtungswechmit einer effektiven Lernrate von 1−α sel zuerst gebremst, bei gleichbleibender Richtung hingegen das Verfahren beschleunigt. Abbildung 6.10 zeigt ein einfaches Beispiel.
Abbildung 6.10: Gradient Descent beim Lernen einer einfachen quadratischen Funktion; links ohne und rechts mit Momentum – 12 Schritte mit η = 0.0479 und α = 0.5 .
KAPITEL 6. NEURONALE NETZE
206 Delta-bar-Delta – Adaptive
Wie in den Abbildungen 6.7 - 6.10 zu erkennen ist, hängt der Lernerfolg von der Wahl der Parameter ab. Gute Startparameter können sich während des Trainings jedoch als schlecht erweisen. Aus diesem Grund wurden Techniken entwickelt, die die Lernparameter während des Trainings anpassen. Die Delta-bar-Delta, oder auch Adaptive Updateregel genannt, verändert beim Training die Lernrate η in Abhängigkeit von der letzten und aktuellen Richtungsänderung. Bei gleicher Richtung wird η additiv vergrößert, ansonsten multiplikativ verkleinert. Die Funktion f mit ft+1 = Θft + (1 − Θ)δt , Θ ∈]0, 1[
(6.28)
(Vergangenheitsgewichtung) im aktuellen Schritt t, wird zur Richtungsbewertung benutzt. Mit dieser Funktion wird der Parameter η, der bei Momentum und Gradient Descent konstant war, in jedem Gewichtsupdate angepaßt :
ηt =
ηt−1 + a , wenn δt ft > 0 , wenn δt ft ≤ 0 ηt−1 b
(6.29)
In der Praxis haben sich die Werte Θ = 0.7, a = 0.05 und b = 0.25 bewährt. ∆wij berechnet sich wie bei Gradient Descent nach Gleichung (6.24). Dabei kann das Adaptive Schema auf zwei Arten angewendet werden: Ein η für jedes Neuron, oder für jede Kante im Netz. Aber auch wenn die Adaptive-Variante nicht angewendet wird, ist es sinnvoll, jedem Neuron einen eigenen Lernfaktor η zu geben, um besser auf die Architektur der Topologie während des Trainings eingehen zu können. Dabei sollte der Wert von ηi ≈ f an−in 1N euron i entsprechen – fan-in ist die Anzahl der Inputkanten eines Neurons. Hybrid – Momentum & Adaptive Die Hybrid-Methode ist eine Kombination von Momentum und Delta-bar-Delta: t = −ηt ∆wij
∂E t−1 t + α∆wij ∂wij
(6.30)
η wird nach dem Delta-bar-Delta Verfahren berechnet und zusätzlich der Moment-Term addiert. Quickprop Fahlman [Fah 88][FaLe 91] entwickelte dieses Verfahren, welches auf der Newton Methode basiert und mit zwei Devarianten (Steigungen) arbeitet. Er stellt zwei Annahmen auf: 1. Der Verlauf der Energiefunktion für eine Kante wird dabei von einer nach oben geöffneten Parabel approximiert und 2. das Gewichtsupdate einer Kante ist unabhängig von dem der anderen Kanten zur selben Zeit. Für jedes Gewicht wird die aktuelle Devariante, die letzte Devariante und das letzte Gewichtsupdate benötigt, um mit einem Schritt vom aktuellen Punkt direkt zum Minimum der Parabel zu springen.
6.1. THEORETISCHE GRUNDLAGEN
207
letzte Steigung = 4
letzte
Fehler
Änderung -0.2
aktuelle Steigung = 3
nächste Änderung -0.6 Fehlerkurve
minimaler Fehler = 0
Gewichtsvektor nächster Vektor
aktueller Vektor
letzter Vektor
Abbildung 6.11: Arbeitsweise von Quickprop. Die Berechnung dieses Sprungs ist sehr einfach: ∆wt =
S(t) ∆wt−1 S(t − 1) − S(t)
(6.31)
(S(t) aktuelle Devariante ∂E/∂w ). Abbildung 6.11 veranschaulicht diese Methode. Die simple Darstellung der Berechnung von ∆w im Schritt t ist: ∆wt =
ηS(t)
S(t) t−1 S(t−1)−S(t) ∆w t−1 µ∆w
wenn ∆wt−1 = 0 wenn ∆wt−1 = 0 und sonst
S(t) S(t−1)−S(t)
<µ
(6.32)
µ kontrolliert die maximale Schrittgröße verglichen mit dem vorherigen Schritt (µ = 2.0). In den Benchmarks hat sich Quickprop als sehr schnelle und gute Heuristik herausgestellt um das Step-Size (Kapitel 6.1.4) Problem zu lösen. Vergleich der Lernheuristiken Um eine bessere Vorstellung von den Unterschieden in der Lerngeschwindigkeit zu bekommen, betrachten wir eine graphische Darstellung des Fehlerverlaufs des 16-4-16 encoder Benchmark (Aufgabenbeschreibung siehe Abschnitt 6.3.3). Trainiert wurde das neuronale Netz mit Backpropagation und den Defaultwerten (Abbildung 6.12). Deutlich zu erkennen ist der Unterschied beim Lernerfolg zwischen Momentum und den anderen Verfahren; Nach 100 Epochen hat sich der Fehler bei Momentum etwas verringert, wohingegen die drei anderen
KAPITEL 6. NEURONALE NETZE
208
Abbildung 6.12: Graphische Ausgabe des IndexError bei vier verschiedenen Lernheuristiken: Quickprop (grün), Hybrid (blau), Adaptive (schwarz), Momentum (rot) auf einem 16-4-16 Encoder Netz. Verfahren das Lernen erfolgreich beendet haben. Zwischen Hybrid (Adaptive & Momentum) und Adaptive sind kaum Unterschiede zu erkennen, wohingegen Quickprop beim Lernen am schnellsten Erfolg hat. Die Unterschiede in Bezug auf Lerngeschwindigkeit sind auf den anderen Benchmarks ähnlich.
6.1.5 Gewichtsupdate: Singlestep oder Batchmode Theoretisch arbeitet Backpropagation im Batchmode, wo zuerst die Werte für alle Trainingsmuster ermittelt werden und damit das Fehlersignal δi für alle ni ∈ Nk , mit 0 < k ≤ n, nach δi =
µ
δi ,
(6.33)
µ∈L
berechnet wird. Das nach der entsprechenden Updateheuristik resultierende ∆wij ∀wij ∈ W wird nun zum Gewichtsupdate herangezogen. Bei der Delta-Regel wird in Gleichung (6.14) und dem Algorithmus im Abschnitt 6.1.6 nur ein Beispiel pro Update betrachtet. Praktische Erfahrungen haben jedoch gezeigt, daß ein Gewichtsupdate mit allen, einer Teilmenge der Mustermenge, oder sogar nur einem einzigen Beispiel, für gewisse Problemdarstellungen schneller konvergieren kann. Wird ein Gewichtsupdate nicht mit allen Beispielen durchgeführt, ist bei der Auswahl der einzelnen Beispiele Vorsicht geboten: wird oft auf der selben Sequenz ein Gewichtsupdate durchgeführt, werden gewisse Beispiele bevorzugt und die Topologie richtet sich danach aus. Bei zufälliger Auswahl der Beispiele in jedem Update erhält man eine gleichmäßige Wahrscheinlichkeitsverteilung über alle Beispiele und eine bevorzugte Ausrichtung des Gewichtsvektors W findet nicht statt.
6.1. THEORETISCHE GRUNDLAGEN
209
6.1.6 Lernverfahren Backpropagation benutzt den Gradientenabstieg und die allgemeine Delta-Regel zur Minimierung des Gesamtfehlers. Das Verfahren arbeitet auf einer konstanten Architektur, d.h. die Zahl der Kanten, Schichten und Neuronen ändert sich nicht. Backpropagation Ausgehend von den mathematischen Grundlagen im Abschnitt 6.1.3 ist eine einfache Beschreibung des Backpropagationalgorithmus möglich: Ausgangspunkt ist ein neuronales Netz mit n + 1 Schichten Ni , i ∈ {0, 1, 2, ..., n} und einer Lernaufgabe L mit Beispielpaaren µ = (i, t) ∈ L. oj sei die Ausgabe des Neurons nj ∈ Ni . Backpropagation arbeitet im Singlestep nun folgendermaßen [HeKrPa 94]: 1. Initialisiere die Kantengewichte wij der Konnektionsmatrix W mit kleinen Zufallwerten im Bereich [−1, +1] (der Wertebereich für die Gewichtsinitialisierung ist variabel). 2. Wähle ein Beispiel µ = (i, t) = (i0 , ..., i|N0 |−1 , t0 , ..., t|Nn |−1 ) ∈ L und setze die Aktivität oj der Neuronen nj ∈ N0 der Eingabeschicht: oj = ij
für j = 0, ..., |N0 | − 1
(6.34)
3. Berechne schichtweise mit i = 1, ..., n die Aktivitäten oj aller Neuronen nj ∈ Ni , d.h. propagiere das Eingangssignal durch das Netz:
oj = γj (N ETj ) = γj (
wkj ok + wj ) für j = 0, ..., |Ni | − 1
(6.35)
k
wobei wkj eine Kante zwischen nk ∈ Nh und nj ∈ Ni repräsentiert, mit h < i. 4. Berechne die Fehlersignale δj für die Ausgabeneuronen nj ∈ Nn :
δj = γj (N ETj )[tj − oj ] für j = 0, ..., |Nn | − 1
(6.36)
Dabei wird die Aktivität der Ausgabeneuronen oj mit der gewünschten Ausgabe tj für Beispiel µ verglichen. 5. Propagiere das Fehlersignal der Ausgabeneuronen rückwärts durch das Netz, d.h berechene δj des Neurons nj ∈ Ni für Schicht i = n − 1, ..., 1 nach:
δj = γj (N ETj )
wjk δk für j = 0, ..., |Ni | − 1
(6.37)
j
wobei wjk eine Kante zwischen nj ∈ Ni und nk ∈ Nh repräsentiert, mit i < h und δk Fehlersignal von nk ist 6. Berechne ∀wij ∈ W die Gewichtsänderung ∆wij mit einer ausgewählten Lernheuristik und führe neu = walt + ∆w durch. einen Gewichtsupdate mit wij ij ij 7. Gehe nach (2) und wiederhole die Schritte für das nächste Beispiel. Je nachdem, ob ein Gewichtsupdate mit allen, oder nur einer Teilmenge der Beispiele vorgenommen wird, müssen die Schritte 5 bis 7 entsprechend Gleichung (6.33) angepaßt werden.
210
KAPITEL 6. NEURONALE NETZE
6.2 Topologien Die Netzwerkarchitektur ist sehr wichtig, da jedes Problem seine eigene Topologie hat. Um eine gute Approximation zu erreichen, ist es notwendig, so viel Information wie möglich von der Problemdarstellung in die Netzstruktur zu integrieren. Dabei sollte die Anzahl der Neuronen, Netzschichten und Kanten im Netzwerk so klein wie möglich gehalten werden. Dadurch ist die Größe des Lösungsraums kleiner und die Trainingszeit kürzer.
6.2.1 Performanz von Multilayer Feedforward Netzen Was können neuronale Netzwerke? Diese Frage und andere theoretische Aspekte, wie die Größe der Topologie, die Anzahl der Hiddenlayer und Units, in welchem Zusammenhang die Netzwerke und die Parameter der Updateheuristiken stehen, werden ständig von diversen Studien untersucht. Nur ein paar Fragen und Probleme kann man mit Theoremen genau beantworten. Ausgehend von den Trainingsdaten, die ein Regelsystem bilden, versucht ein Netzwerk diese Regeln zu lernen. Um dieses Ziel zu erreichen, gibt es zwei grobe Ansätze: 1. Trainiere viele verschiedene Topologien mit unterschiedlicher Anzahl Hiddenlayern und Units. Beginne mit kleinen Netzwerken und trainiere größere, falls sich kein Erfolg einstellt. Wähle das Netz mit dem kleinsten Fehler und der besten Generalisierung (Fehler auf unbekannten Eingaben bewerten). 2. Benutze ein großes Netzwerk und arbeite mit Weight Decay [FAQ 96] und/oder vorzeitigen Abbruchbedingungen (Validation, Abschnitt 6.2.3). Abgesehen vom Overfitting, d.h. das Netz wird übertrainiert und lernt aufgrund zu vieler freier Parameter3 auswendig, gibt es keine Beschränkung für die maximale Anzahl von Hiddenunits und Hiddenlayern. Je mehr Neuronen in den Hiddenlayer, desto geringer ist die Gefahr von schlechten lokalen Minima im Netz. Wie es mit der Größe und Leistungsfähigkeit neuronaler Multilayer Perceptrons steht, wird im folgenden näher betrachtet. Notwendige Anzahl von Hiddenneuronen Verschiedene mathematische Betrachtungen haben gezeigt, daß zwei Hiddenlayer mit “genügend” Neuronen ausreichen, um jede Art von Funktionen darstellen zu können [HeKrPa 94]. Für kontinuierliche Funktionen ist es sogar bewiesen, daß nur eine Hiddenschicht notwendig ist, um diese zu approximieren. Jedoch Faustregeln aufzustellen für die Anzahl der Units in den Hiddenlayer wie z.B. “Anzahl Inputs plus Anzahl Outputs geteilt durch zwei”, haben sich in der Praxis als unbrauchbar erwiesen. Es gibt keine Möglichkeit, die Topologie, oder die Anzahl der notwendigen Neuronen nur aus den Input- und Outputunits, oder dem Trainingsset zu bestimmen. In vielen Beispielen, wie bei den allgemeinen bool’schen Funktionen, wächst die Anzahl der Hiddenunits exponentiell mit der Anzahl der Inputunits [HeKrPa 94]. Praxiserfahrungen haben jedoch gezeigt, daß es keinen Sinn macht, mehr Hiddenunits als Trainingsmuster zu benutzen [FAQ 96], da sonst die Anzahl der freien Parameter des neuronalen Netzes zu hoch ist, und dies zu einer schlechten Generalisierungsfähigkeit führt. Abbildung 6.13 verdeutlicht die Problemtik anhand der Lösungsräume verschiedener Parity Probleme in Abhängigkeit der Netzgröße. 3
d.h. die Anzahl der Gewichte und Neuronen im Netzwerk sind zu groß.
6.2. TOPOLOGIEN
211
"p2.dat"
"p3.dat"
ErrorIndex
ErrorIndex
0.75 0.5 0.25 0
0.75 0.5 0.25 0
0
1
3
2
3 4 Neuronen in H2
5
6
7
6
2
1
0
4 5 Neuronen in H1
0
3
1
2 3 4 Neuronen in H2
(a) Parity 2
5
6
7
6
ErrorIndex
0.75 0.5 0.25 0
0.75 0.5 0.25 0
3
2
3 4 Neuronen in H2
5
6
7
6
2
1
0
4 5 Neuronen in H1
4 5 Neuronen in H1
0
3
1
2 3 4 Neuronen in H2
(c) Parity 4
5
6
7
6
2
1
0
4 5 Neuronen in H1
(d) Parity 5
"p6.dat"
"p7.dat"
ErrorIndex
ErrorIndex
0.75 0.5 0.25 0 2
0
0
"p5.dat"
ErrorIndex
1
1
(b) Parity 3
"p4.dat"
0
2
1
2
3 4 Neuronen in H2
5
6
(e) Parity 6
7
1
0
3 4 5 Neuronen in H1 6
0.75 0.5 0.25 0 2
0
1
2
3 4 Neuronen in H2
5
6
7
1
0
3 4 5 Neuronen in H1 6
(f) Parity 7
Abbildung 6.13: Lösungsräume verschiedener Parity Probleme. Neuronale Netze mit maximal zwei Hiddenlayern und maximal 7 Neuronen/Hiddenlayer versuchen das N-Parity Probleme zu lösen. Jeder Gitterpunkt entspricht einer Netzstruktur, deren Netzfehler am Trainingsende in der z-Ebene aufgetragen ist.
KAPITEL 6. NEURONALE NETZE
212
U
U
R T
X
G1
G2
T
G3 (a) Ausgangspunkt der Regelgewinnung
(b) Unterschiedlich Generalisierungen sind möglich
Abbildung 6.14: Regelgewinnung Generalisierung Ausgehend von der richtigen Wahl und Vorverarbeitung der Trainingsmuster, erwarten wir von dem Netzwerk eine Generalisierung. Betrachtet man die unterschiedlichen Symmetrien in der Netzstruktur und dem Problem und manchmal auch die Wichtigkeit der geometrischen Information in den Mustern, so sollte man sich nicht wundern, wenn das neuronale Netz eine nicht menschliche Lösung findet; also nicht in der Art und Weise generalisiert, wie wir es erwarten. Abbildung 6.14(a) veranschaulicht das Problem: Ausgehend von der Menge U aller möglichen Ein-/ Ausgabepaare, enthält R die Elemente, die das Problem beschreiben und ein Regelsystem definieren. Aus der Menge R sollte eine repräsentative Teilmenge T zufällig gewählt werden, um das Netz damit zu trainieren. Um die Generalisierung zu testen, wird eine ebefalls repräsentative Teilmenge X aus R, die disjunkt zu T ist, genommen, und die Performanz berechnet (Abbildung 6.14(a)). Performanz von X entspricht der Generalisierungsfähigkeit, während Performanz von T nur den Grad des Auswendiglernens wiederspiegelt. Da das Netzwerk weder X noch R sondern nur T kennt, ist es zulässig, daß das Netz in jeglicher Art generalisiert, sofern T gelernt wird. Nach Abbildung 6.14(b) entsprechen auch G1, G2 und G3 zulässigen Lösungen. Betrachtet man ein einfaches Netz mit N Inputs und 1 Output, so erhält man für die 2N N möglichen Eingaben, 22 verschiedene Regeln. Wird ein Netz nun mit p Mustern trainiert, so ergibt das N 9 22 −p Regeln, die mit T übereinstimmen können. Für N = 30 und p = 1000 erhält man daraus 210 Generalisierungen. Ausgehend von diesen realistischen Werten, ist es erstaunlich, daß Netzwerke stets eine Generalisierung finden, die wir gebrauchen können. Die Antwort auf dieses Phänomen liegt in der speziellen Natur der Regeln die wir betrachten. Die Information die gebraucht wird, um eine Regel mit N Bits zu spezifizieren, beträgt genau 2N Bits; vernünftige Regeln jedoch werden nur von Nk Bits spezifiziert, wobei k klein ist. Folglich kann ein neuronales Netz nicht alle möglichen Regeln darstellen, auch wenn es eine exponentielle Anzahl von Neuronen und Gewichten hat. Weiterhin erhält man aus der Statistik und Funktionsapproximation wichtige Erkenntnisse über die Generalisierung. Wie in Abbildung 6.2.3 zu erkennen ist, kann ein neuronales Netz sehr schnell übertrainiert werden (Overfitting), wenn die Anzahl der freien Parameter zu groß ist – zu viele Kantengewichte in einem Netzwerk ergeben eine schlechte Generalisierung [HeKrPa 94]. Nach [HeKrPa 94] kann für allgemeine Multilayer Feedforward Netze eine untere Grenze für eine notwendige Anzahl von Beispielen angegeben werden, um ein Generalisierungsfehler unterhalb einer gewissen Schranke zu erhalten:
6.2. TOPOLOGIEN
213
Sei M die Anzahl der Neuronen und V die Anzahl der Kantengewichte. Ist der Fehler auf dem Trainingsset kleiner als /2, dann werden mindestens V log M Trainingsbeispiele benötigt, wenn der Generalisierungsfehler kleiner als sein soll. Für ein neuronales Netz mit nur einer Hiddenschicht in der H Neuronen liegen, wurde gezeigt, das V Trainingsbeispiele gebraucht werden, um einen Generalisierungsfehler kleiner als zu erhalten.
6.2.2 Lineare Separabilität Wir vereinfachen nun Definition 6.1.1, indem wir neben der Eingabeschicht nur eine Ausgabeschicht mit einem Neuron betrachten. Ein solches Feedforward Netz wird Perceptron genannt und ist folgendermaßen Definiert: Definition 6.2.1 Ein Perceptron ist ein neuronales Netz P = (N, B, W, A, N ET ) nach Definition 6.1.1, mit
• N = N0 ∪ N1 (Eingabe-/Ausgabeschicht) die Menge der Neuronen, mit |N1 | = 1 • Menge B mit dem Schwellwert (Bias) w ∈ B für das Ausgabeneuron • Netzwerkstruktur W : N0 × N1 −→ IR • Menge A von Aktivierungsfunktionen, die jedem Neuron ni ∈ N eine Funktion γi : IR −→ [0, 1] für alle Neuronen ni ∈ N0 mit γi = N ETi zuweist, und für Ausgabeneuron no ∈ N1 eine lineare Schwellwertfunktion
γo =
0 1
falls N ETo ≤ wo falls N ETo > wo
verwendet wird • Menge N ET von einer Netzeingabefunktion mit: N ETo =
ni ∈N0
wio oi
Ein solches Perceptron berechnet eine Boolsche Funktion ψ(µ) : [0, 1]|N0 | −→ {0, 1}. Betrachtet man die möglichen Eingaben des Netzes, so liegen diese in einem (|N0 |-mehrdimensionalen) Hyperwürfel der Kantenlänge 1, während die binären Eingaben den Ecken des Würfels entsprechen. Um zu untersuchen, auf welche Art und Weise die Prädikate der Eingabe entschieden werden, betrachten wir eine geometrische Interpretation der Berechnungen in einem Perceptron mit zwei Eingabeneuronen. Beispiel: Gegeben sei ein Perceptron P mit zwei rellen Eingabeneuronen I1 , I2 , dem Ausgabeneuron O mit Schwellwert wo . Die Netzwerkstruktur W enthält die Kantengewichte w1o = α und w2o = β. Nach Definition 6.2.1 ist die Aktivierung oo gegeben durch: oo = [αI1 + βI2 > wo ]
(6.38)
Wird das “Größer-Zeichen” durch ein Gleichheitszeichen ersetzt, so erhalten wir eine Gerade in der reellen Ebene: β wo (6.39) I1 = − I2 + α α
KAPITEL 6. NEURONALE NETZE
214
(a) Eine Gerade löst das AND Problem
(b) Für XOR werden zwei Geraden benötigt
Abbildung 6.15: Lösungen der AND und XOR Funktionen Die Ebene wird also in zwei Bereiche aufgeteilt – ein Bereich enthält die Punkte, die das Prädikat erfüllen, der andere enthält die Punkte, die es nicht erfüllen. Abbildung 6.15(a) verdeutlicht die Aufteilung an dem 2 Beispiel des Prädikats AND(I1 , I2 ), das linear separabel ist. Das Beispiel 6.2.2 zeigt, wie durch die Netzwerkstruktur W und dem Schwellwert wo eine Gerade den zweidimensionalen reellen Eingaberaum des Perceptrons aufteilt. Wird die Gerade in Hessesche Normalform gebracht, so ergibt das Einsetzen eines Punktes den Abstand zur Geraden. Dieser kann positiv, negativ oder Null sein. Damit das Perceptron seine Aufgabe erfüllt, muß eine Gerade gefunden werden, von der alle Punkte einen positiven oder negativen Abstand entsprechend ihres Prädikates haben. Betrachtet man hingegen das XOR Problem (Abbildung 6.15(b)), so ist leicht erkennbar, warum das Perceptron diese Aufgabe nicht lösen kann: Um die Punkte entsprechend ihres Prädikates trennen zu können, werden mindestens zwei Geraden benötigt. Da ein Perceptron nur eine Gerade in der rellen Eingabe legen kann, würde man zwei Perceptrons benötigen, deren Ausgaben von einem weiteren Neuron zum endgültigen Ergebnis kombiniert werden müßten (Abbildung 6.16). Auf diese Weise erhält man ein Perceptron mit einer inneren Schicht, ein Multilayer Perceptron, oder auch Multilayer Feedforward Netz genannt. Wird die zweidimensionale Betrachtungsweise auf den allgemeinen Fall eines Perceptrons mit n Eingabeneuronen erweitert, so entspricht ein Eingabemuster einem Punkt im n-dimensionalen Einheitshyperwürfel [0, 1]n . Dabei legt das Perceptron zur Aufteilung eine Hyperebene durch diesen Raum: Definition 6.2.2 Gegeben sei ein Perceptron P mit der Menge N = N0 ∪ N1 von Neuronen, mit N0 = {I1 , I2 , ..., In } den Eingabeneuronen, N1 = {O} dem Ausgabeneuronen mit Schwellwert wo ∈ B und der Netzwerkstruktur W . P definiert die Hyperebene H = {h ∈ [0, 1]n | 0 =
wio oi − wo }
(6.40)
Ii ∈N0
im Eingaberaum [0, 1]n , mit h = (hI1 , ..., hIn ). P löst eine Klassifikationsaufgabe L ⊆ [0, 1]n genau dann,
6.2. TOPOLOGIEN
215 XOR( I1 , I2 ) XOR( I1 , I2 ) 0 -1
1
1.5 1
0.5 1
1
I1 I1
I2
I1
1
I2
I2
Abbildung 6.16: Ein Perceptron mit einer inneren Schicht löst das XOR Problem. wenn es eine Netzstruktur W gibt, so daß für alle Muster µ ∈ L mit µ = (µI1 , ..., µIn )
H(µ) =
wio oi − wo > 0
(6.41)
Ii ∈N0
und H(µ) ≤ 0 für alle µ ∈ L gilt. Nicht linear separierbare Probleme XOR ist ein Beispiel für ein nicht linear separierbares Problem. Doch es gibt zwei unterschiedliche Arten, die auftreten können, die in Abbildung 6.17 dargestellt sind. Abbildung 6.17(a) zeigt, daß es keine Ebene (Gerade) gibt, die beim XOR Problem eine Teilung in zwei Mengen ermöglicht. Das gleiche gilt auch für das Beispiel in Abbildung 6.17(b); jedoch nur, weil die drei Punkte genau auf einer Geraden liegen. Sobald ein Punkt nicht mehr auf der Geraden liegen würde, gäbe es eine Lösung. I
I
2
I (a) XOR Problem
2
I
1
1
(b) Punkte in nicht Allgemeiner Form
Abbildung 6.17: Nicht lineare Separabilität Wie in [HeKrPa 94] gezeigt wird, kommt der erste Fall nicht linearer Separabilität (z.B. XOR) nur vor, wenn die Anzahl der Trainingsmuster größer als die Anzahl der Eingabeneuronen ist. Der zwei-
KAPITEL 6. NEURONALE NETZE
216
te Fall hingegen kann bei jeglicher Kombination von Anzahl Muster und Anzahl Eingabeneuronen auftreten. Das Problem der nicht linearen Separabilität ist jedoch lösbar. Nach [HeKrPa 94] und [NaKlKr 94] kann durch hinzufügen von Neuronen in der Eingabeschicht, oder von Hiddenlayerneuronen oder Hiddenlayern der kritische Punkt aufgelöst werden. Graphische Betrachtung des Bias An der Hyperebenengleichung 6.39 (Gerade) ist leicht zu erkennen, daß der Bias mit verantwortlich ist für die Position der Hyperebene. Ohne Bias wäre die Hyperebene gezwungen, durch den Nullpunkt zu verlaufen. Dies würde beträchliche Auswirkungen auf die Lösungsmöglichkeiten neuronaler Netze haben, wenn sie ohne Bias realisiert werden müßten. Abbildung 6.18 zeigt am Beispiel der AND Funktion die graphische Darstellung im zweidimensionalen Raum. In diesem Fall ist der Bias als Schwellwertfunktion realisiert.
O
I2
w = 1.5 o (0,1)
(1,1) W
(0,0)
(1,0)
(a) Lineare Separabilität der AND Funktion
w =1 1
I1
I1
w =1 2
I2
(b) Perzeptron löst das AND Problem
Abbildung 6.18: Die AND Funktion Wie in Kapitel 6.1.1 anhand Abbildung 6.2 dargestellt wurde, läßt sich der Schwellwert auch in Form eines zusätzlichen Biasneurons realisieren. Dabei wird ein neues Neuron ins Netz eingebaut, das eine konstante Aktivität von −1 hat und zu jedem Neuron ni ∈ Nk mit 0 < k ≤ n eine Kante besitzt. Die Gewichte dieser Kanten stellen den Bias dar und werden bei der Fehlerberechnung und beim Gewichtsupdate genauso behandelt, wie die anderen Netzkanten. Durch diese Anordnung fällt der Schwellwert als solches weg, und die Hyperebene wäre gezwungen, durch den Nullpunkt zu verlaufen. Betrachtet man aber die Netzstruktur, so kann dieses neue Schwellwertneuron zur Eingabeschicht zugeordnet werden, was dazu führt, daß sich die Dimension des Eingabevektors um eins erhöht. Anhand der AND-Funktion zeigt Abbildung 6.19 was die Dimensionserhöhung bewirkt. Die neue Dimension (I0 ) mit konstanter Aktivität von −1 bewirkt eine künstliche Verschiebung des normalen Eingabevektors, also der zu trennenden Punkte. Beide Realisierungen des Bias bewirken im Endeffekt das gleiche, und zwar ermöglichen sie eine Verschiebung der Hyperebene aus dem Koordinatenursprung. Zum Trainieren eines Multilayer Perceptrons kann der einfache Perceptronlernalgorithmus (weitere Information hierzu siehe [NaKlKr 94] und [HeKrPa 94]) nicht angewendet werden. Hierfür wird die Delta-Regel
6.2. TOPOLOGIEN
217 I
0 I1
0
I2 W
Abbildung 6.19: Die AND Funktion aus Abbildung 6.18(b) mit Bias wo in einer zusätzlichen Dimension durch ein Biasneuron realisiert. Die aufteilende Hyperebene liegt im rechten Winkel zum Gewichtsvektor W = (1.5, 1, 1). und der BP Algorithmus benötigt. Aus diesem Grund haben neuronale Netze in den 70-er Jahren an Bedeutung verloren, da es zu damaliger Zeit keinen Lernalgorithmus für mehrschichtige Netze gab und somit Probleme, die nicht linear separierbar waren, sich nicht lösen ließen.
6.2.3 Overfitting und Validation Wird beim Training versucht, den Fehler bzgl. der Trainingsmuster so klein wie möglich zu machen, so ist die Approximation auf den Trainingsmustern zwar sehr gut, jedoch bzgl. Testmustern meistens sehr schlecht – das Netz wurde übertrainiert (Overfitting). Beim Overfitting werden die Trainingsdaten nur auswendig gelernt, und die “Regeln” in den Trainingsdaten gehen verloren. Die Qualität der Architektur auf Testdaten wird sehr schlecht – die Generalisierung ist nicht mehr vorhanden (siehe Abbildung 6.20(b)). Der Effekt des Auswendiglernens wird zudem noch begünstigt, wenn die Topologie wesentlich größer als notwendig gewählt wird, d.h. die Anzahl der Hiddenneuronen und Hiddenlayer ist zu groß. Das Netz ist “überqualifiziert” und es kann ebenfalls beim Training sehr schnell zum Overfitting kommen. Um dieses zu verhindern, gibt es verschiedene Methoden. Zwei werden von MPO unterstüzt: Validation und Weight Decay [FAQ 96]. Beim Validationverfahren wird nach jedem Update des Gewichtsvektors der Fehler eines Validationdatensets, dies ist ein möglichst kleiner repräsentativer Querschnitt von Testdaten, berechnet. Verschlechtert sich der Fehler auf diesem Datensatz, so steigt die Gefahr des Overfitting und nach bestimmten Kriterien sollte das Training dann vorzeitig abgebrochen werden (Abbildung 6.21).
Weight Decay ist eine weitere Methode zur Regulierung des Overfittings und wird in [FAQ 96] näher betrachtet. Die Topologien können während und nach dem Training durch verschiedene Verfahren optimiert werden.
KAPITEL 6. NEURONALE NETZE
218
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
(a) Gute Approximation auch auf Testdaten (Kreis)
(b) Overfitting auf dem gleichen Datenset: Approximation perfekt, auf Testdaten jedoch schlecht
Abbildung 6.20: Approximationen auf Daten
6.3 Beispiele 6.3.1 XOR Eine Topologie versucht die exclusive OR Funktion mit zwei Variablen zu lernen. Dies ist die einfachste Lernaufgabe, welche nicht linear trennbar ist. Somit ist das Problem nicht mit einem einschichtigen Perceptronnetz zu lösen. XOR ist ein Spezialfall des Parity Problems. IN1 0 0 1 1
IN2 0 1 0 1
OU T 0 1 1 0
Tabelle 6.2: Die XOR Funktion
6.3.2 Parity Aufgabe ist, ein Netzwerk zu trainieren, um die Funktion N
xi mod 2
i=1
mit N Binäreingaben zu lernen. XOR ist das Parity Problem mit N = 2.
(6.42)
6.3. BEISPIELE
219
Error Approximierter Fehler des Netzes bei vorzeitigem Trainingsabbruch
und bei nicht vorzeitigem Trainingsabbruch (Overfitting)
E validationset
E
Trainingsabbruch
trainset
Epochen
Abbildung 6.21: Vergleich Trainingsset vs. Validationset.
6.3.3 Encoder Das allgemeine Verschlüsselungsproblem befaßt sich mit der Aufgabe, eine Menge von Hiddenunits zu finden, um eine große Menge von Input/Output Pattern zu verschlüsseln. Um eine effiziente Codierung zu bekommen, ist es notwendig, die Zahl der Hiddenneuronen so klein wie möglich zu halten [HeKrPa 94]. Das spezielle Encoder Problem besteht aus einem drei Layer Network N -M -N ( 2k -k-2k ), mit N Inputund Outputunits und M Hiddenunits ( M < N ) (siehe Abbildung 6.22). Das Trainigsset besteht aus N Beispielen – Nach [HeKrPa 94] benötigt man M ≥ log2 N Hiddenunits; der Backpropagation Lernalgorithmus findet aber auch Netze mit M < log2 N . Vorteile des Encoders sind die unbegrenzte Skalierung der Netze bezüglich Größe und dem Schwierigkeitsgrad.
N2 N1 N0 Abbildung 6.22: Ein 23 -3-23 Encodernetz.
KAPITEL 6. NEURONALE NETZE
220
6.3.4 Monks Das Mönchsproblem [MONKS 91] ist eine binäre Klassifizierungsaufgabe und liegt einer Beschreibung von Robotern zugrunde. Dabei werden diese durch sechs verschiedene Attribute eingeteilt: x1 : x2 : x3 : x4 : x5 : x6 :
Kopfform Köperform Lächelt Gegenstand Jacketfarbe Schlips
∈ ∈ ∈ ∈ ∈ ∈
{Rund, Viereck, Achteck} {Rund, Viereck, Achteck} {Ja, Nein} {Schwert, Ballon, Fahne} {Rot, Gelb, Grün, Blau} {Ja, Nein}
Durch die Attribute und deren Mengengröße erhält man die Anzahl der Elemente, die im aufgespannten Lösungsraum liegen: 432 ( ≡ Anzahl möglicher Roboter/Mönche ). Insgesamt werden drei verschiedene Aufgabenstellungen unterschieden: • M onks1 : (Kopfform = Körperform) oder (Jacketfarbe = Rot) Aus den 432 Beispielen werden 124 Muster (30%) zufällig für das Trainingsset ausgewählt (keine Fehlklassifizierungen). Da die Aufgabenstellung in disjunkter Normalform (DNF) vorliegt, ist sie entsprechend leicht zu lernen. • M onks2 : (genau zwei von sechs Attributen entsprechen dem ersten Wert aus der jeweiligen Menge) Aus der Gesamtmenge aller Muster werden 169 (40%) zufällig für das Trainingsset ausgewählt (kein Rauschen (Fehlklassifizierungen)). Nach Aufgabenstellung werden zwei unterschiedliche Attribute miteinander verknüpft und erschweren somit eine Beschreibung in DNF oder CNF – diese Problem ist somit vergleichbar mit dem Parity Benchmark und entsprechend schwer zu lernen. • M onks3 : ((Jacketfarbe = Grün) und (Gegenstand = Schwert)) oder ((Jacketfarbe = Grün) und (Körperform = Achteck)) Aus der Gesamtmustermenge werden zufällig 122 (30%) Trainingsmuster ausgewählt (5% Rauschen). Vom Schwierigkeitsgrad ist M onks3 schwerer als M onks2 , da das Lernen zusätzlich mit Verrauschten Msutern erschwert wird. Zu den drei Problemen gibt es jeweils ein BP Referenznetz der folgenden Größe: M onks1 : 17ID − 3SG − 1SG , M onks2 : 17ID − 2SG − 1SG und M onks3 : 17ID − 4SG − 1SG .
6.3.5 Two Spirals Die Aufgabe ist, zwischen zwei Mengen von Trainingspunkten zu unterscheiden, die auf disjunkten Spiralen in der x-y Ebene liegen (Abbildung 6.23). Die Spiralen haben drei ineinanderliegende Windungen, was sehr schwer zu lernen ist. Das Netz hat zwei kontinuierliche Inputneuronen und ein einzelnes Outputneuron zur Klassifizierung. Standardmäßig besitzt die Trainingsaufgabe 194 Punkte; diese kann aber auch erhöht werden, indem die Auflösung und der Radius der Spiralen variiert wird. Dabei wird auch der Schwierigkeitsgrad des Problems verändert. Die Erstellung der Beispiele erfolgt mittels eines C-Programms.
6.3. BEISPIELE
221
y
x
Abbildung 6.23: Vereinfachte graphische Darstellung eines two-spirals Problem.
222
KAPITEL 6. NEURONALE NETZE
Kapitel 7
Unsicherheit und Vagheit In vielen Situationen fehlen die Informationen, die nötig wären, um eine sichere Aussage über einem bestimmten Sachverhalt zu treffen, d. h., man verfügt nicht über Wissen über die gesamte Problemstellung oder Domäne. Es ist daher wichtig, daß man dieses unscharfe Wissen auf geeignete Art und Weise interpretiert, um auf eine zuverlässige Schlußfolgerung kommen zu können. Zunächst müssen wir verschiedene Arten von unscharfem Wissen unterscheiden: • Objektive Unschärfe: Vagheit Diese Art der Unschärfe entspricht der mangelnden Exaktheit in Werten von Attributen. Mögliche Ursachen hierfür sind: – Meßfehler – Sinnestäuschungen – Statistische Aussagen • Subjektive Unschärfe: Unsicherheit Diese Art der Unschärfe stammt von der subjektiven Bewertung von Daten. Mögliche Ursachen hierfür sind: – Begriffliche Unsicherheit – Individuelle Reaktion auf Reize Beispiel: Voraussage über Ergebnis eines Münzwurfes – Keine Vagheit, da die mögliche Ausgänge bekannt sind (Kopf oder Zahl) – Unsicherheit über tatsächliches Ergebnis Das Problem der Schlußfolgerung auf Basis unscharfen Wissens soll durch das folgende Beispiel verdeutlicht werden: Beispiel: Die Aufgabe besteht daraus, Aussagen über die Wirksamkeit von zwei Medikamenten A und B zu treffen. Dazu verwenden wir folgende Prädikate: • Besser(X, Y ) bedeutet, daß Medikament A besser ist als Medikament B. • Besser_f u ¨r_F rauen(X, Y ) bedeutet, daß bei Frauen Medikament A besser ist als Medikament B. 223
KAPITEL 7. UNSICHERHEIT UND VAGHEIT
224
• Besser_f u ¨r_M a ¨nner(X, Y ) bedeutet, daß bei Männer Medikament A besser ist als Medikament B. Folgende Regel könnte man verwenden, um von der Wirksamkeit eines Medikamentes bei Frauen und Männer auf die Wirksamkeit im allgemeinen zu schließen: Besser_f u ¨r_F rauen(X, Y ) ∧ Besser_f u ¨r_M a ¨nner(X, Y ) → Besser(X, Y ) Das ist zwar plausibel, aber nicht mit der Statistik vereinbar, denn:
Männer + − ⇒ Besser_f u ¨r_M a ¨nner(A, B) A 20 180 10% B 4 96 4%
Frauen + − A 20 20 50% ⇒ Besser_f u ¨r_F rauen(A, B) B 37 63 37%
Gesamt + − ⇒ Besser(B, A) A 40 200 16.6% B 41 159 20.5%
2 Im folgenden werden wir verschiedene Ansätze zur Behandlung von Unsicherheit und Vagheit kennenlernen.
7.1 Grobe Mengen Eine Möglichkeit, Unsicherheit und Vagheit zu behandeln, basiert auf eine mengenorientierte Modellwelt. Unsicherheit bzw. Vagheit heißt hier, daß man Mengen mit „verschwommenen“ Grenzen betrachtet. Folgendes ist nötig, um ein Problem zu formalisieren: • Universum U : Gesamtheit aller „Individuen“ • Ununterscheidbarkeitsrelation „≈“: Reflexive und symmetrische Relation, die der Definition der „verschwommenen“ Grenzen dient • Prädikat P über U : Prädikat zur Beschreibung einer Eigenschaft Mit diesen Definitionen kann man folgende Prädikate definieren: PU : Untere Approximation von P – das sind gerade die Elemente, die ganz sicher zu P gehören. PU := {x ∈ U | ∀y ∈ U : (x ≈ y → y ∈ P )} PO : Obere Approximation von P – das sind gerade die Element, die zu P und der unmittelbaren Umgebung gehören. PO := {x ∈ U | ∃y ∈ P : x ≈ y}
7.1. GROBE MENGEN
225 U PO PU
P
Abbildung 7.1: Universum U mit dem Prädikat P und seine Approximationen
Anhand der Abbildung 7.1 kann man leicht erkennen, daß die Elemente von PU die Eigenschaft P ganz sicher besitzen, wobei die Elemente von U \PO die Eigenschaft P ganz sicher nicht besitzen. Den unsicheren Bereich ∆P := PO \PU nennt man Rand oder Unsicherheit von P . Nun ist man mit diesem Formalismus in der Lage, mit komplexeren, unsicheren Beziehungen umzugehen. Es ergeben sich folgende Rechengesetze zur Propagierung der Approximation auf komplexe Formeln: 1. ( P )U = (PO ), ( P )O = (PU ) 2. (P ∧ Q)U = PU ∧ QU 3. (P ∨ Q)O = PO ∨ QO 4. (P ∧ Q)O ⊆ PO ∧ QO 5. PU ∨ QU ⊆ (P ∨ Q)U 6. (PO ) → (QU ) ⊆ (P → Q)U ⊆ (P → Q)O = (PU ) → (QO ) Bemerkungen: a) Ist ≈ transitiv, so wird U in disjunkte Blöcke zerlegt, da ≈ dann eine Äquivalenzrelation ist. b) Transitivität für ≈ liegt meist nicht vor. c) Symmetrie ist meistens eine vernünftige Annahme, wird aber nicht unbedingt in beiden Richtungen angewandt. Beispiel: DM 49,80 ≈ DM 50,00, aber DM 50,00 ≈ DM 49,80. Beispiel: Folgende Tabelle von Personen und deren Eigenschaften sei gegeben:
KAPITEL 7. UNSICHERHEIT UND VAGHEIT
226 Person Max Ernst Karl Fritz Heinz Emil Ludwig Kurt
E1 : Haarfarbe blond blond braun blond braun blond braun braun
E2 : Blutgruppe A AB B A O A B O
P1 ≈ P2 , falls die bekannten Eigenschaften übereinstimmen. Folgende Blöcke (Mengen von Individuen mit denselben Eigenschaften) sind aus obiger Tabelle ableitbar: {Max, Fritz, Emil}, {Ernst}, {Karl, Ludwig}, {Heinz, Kurt}. Sei P = {Max, Karl, Ludwig}. Dann ergibt sich: PU PO ∆P
: {Karl, Ludwig} : {Karl, Ludwig, Max, Fritz, Emil} : {Max, Fritz, Emil} = PU \PO 2
7.2 Statistische Methoden Wie auch in anderen Gebieten, gibt es hier einige Möglichkeiten, Unsicherheit und Vagheit zu behandeln: • „Reine“ Statistik – Satz von Bayes • Dempster-Shafer-Theorie • Fuzzy-Logik (bei entsprechender Interpretation) Diese Ansätze haben alle folgende Gemeinsamkeiten: • Sie benötigen eine große, repräsentative Sammlung von erfolgreich gelösten Fällen. • Sie verfolgen dieselbe Basisidee: Mit Hilfe von statistischen Methoden wird eine Relation zwischen Beobachtungen und Lösungen hergestellt.
7.2.1 Satz von Bayes Ein typischer Einsatzgebiet für eine statistische Methode ist die Diagnose aufgrund von Symptomangaben auf Basis einer (umfangreichen) Datensammlung. Begriffe der Wahrscheinlichkeitstheorie: • Bedingte Wahrscheinlichkeit: P (A|B) = P P(A∩B) (B)
7.2. STATISTISCHE METHODEN
227
• Hypothesen H1 , . . . , Hn : Mögliche Ereignisse • E: Beobachtung (z. B. eines Symptoms) • P (Hi ): A-priori-Wahrscheinlichkeit von Hi . • P (Hi |E): A-posteriori-Wahrscheinlichkeit von Hi nach Eintreten von E. • Datensammlung – meistens in Tabellenform angegeben: ··· ··· ··· ··· .. .
Symptom 1 ja ja ja .. .
Symptom n nein ja nein .. .
Diagnose H1 H2 H2 .. .
Der Zusammenhang zwischen a-priori- und a-posteriori-Wahrscheinlichkaiten wird durch folgenden Satz verdeutlicht: Satz 7.2.1 Satz von Bayes: H1 , . . . , Hn sei Partition des Ereignisraumes; sei P (Hi ) > 0 ∀i ∈ {1, . . . , n}; E sei Ereignis mit P (E) > 0. Dann gilt: P (Hi ) · P (E|Hi ) P (Hi |E) = n j=1 P (Hj ) · P (E|Hj ) Begründung: P (Hi |E) =
1≤i≤n
P (Hi ∩ E) P (E ∩ Hi ) , P (E|Hi ) = P (E) P (Hi ) P (Hi ) · P (E|Hi ) P (E)
⇒ P (Hi |E) =
P (E) = P (
n
(E ∩ Hj ))
j=1
= =
n
j=1 n
P (E ∩ Hj ) P (Hj ) · P (E|Hj )
j=1
⇒ Behauptung. Vorgehen: 1. Bestimmung von P (Hi ) und P (E|Hi ) (1 ≤ i ≤ n) anhand de Datensammlung 2. Bestimmung von P (Hi |E) (1 ≤ i ≤ n) 3. Auswahl der Hypothese mit der größten Wahrscheinlichkeit (Maximum–Likelihood–Prinzip)
KAPITEL 7. UNSICHERHEIT UND VAGHEIT
228 Beispiel:
P (Bronchitis) = 0.05 P (Erkältung) = 0.2 P (Erkältung|Bronchitis) = 0.8 ⇒ P (Bronchitis|Erkältung) =
P (Bronchitis) · P (Erkältung|Bronchitis) = 0.2 P (Erkältung) 2
Beispiel: Wir warten auf dem Bahnsteig auf einen Zug. Folgendes ist für uns von Interesse: H1 : Der Zug kommt zu spät. H2 : Der Zug kommt pünktlich. Dabei ist P (H1 ) = p und P (H2 ) = 1 − p mit p ∈ (0; 1). Sei die Zugansage Z ∈ { zuverlässig , nachlässig } mit P (Z = zuverlässig) = 0.9 und P (Z =
nachlässig) = 0.1.
!
!
d. h. korrekt d. h. korrekt oder falsch möglich
Sie P (Nachricht = korrekt|Z = nachlässig) = q und das Ereignis E : Zugansage: „Der Zug hat Verspätung“. Folgende Frage stellt sich dann: P (H1 |E) =?
P (E|H1 ) = P (Z = zuverlässig) + P (Z = nachlässig) · q = 0.9 + 0.1 · q P (E|H2 ) = P (Z = nachlässig) · (1 − q) = 0.1 · (1 − q) p · (0.9 + 0.1 · q) P (H1 |E) = 0.9 · p + 0.1 · p · q + 0.1 · (1 − p)(1 − q) 2 Beispiel: 20% der Bevölkerung sind an der Krankheit K erkrankt. Ein Bluttest liefert in 70% der Fälle ein positives Ergebnis, falls die krankheit vorliegt. Liegt die Krankheit nicht vor, liefert der Test in 10% aller Fälle positiv. Frage: Wie groß ist die Wahrscheinlichkeit, daß ein Patient an K erkrankt, wenn der Bluttest positiv ist? Modellierung: P (K = +) = 0.2 P (K = −) = 0.8 P (B = +|K = +) = 0.7 P (B = +|K = −) = 0.1 Lösung: P (K = +|B = +) =
P (K = +) · P (B = +|K = +) P (K = +) · P (B = +|K = +) + P (K = −) · P (B = +|K = −)
7.2. STATISTISCHE METHODEN
229
0.2 · 0.7 0.2 · 0.7 + 0.8 · 0.1 = 0.6364 =
2 Notwendige Voraussetzungen: • {H1 , . . . , Hn } muß eine vollständige Partition sein. • Die Diagnosen müssen sich gegenseitig ausschließen (Partition) ⇒ Single fault. • Die statistischen Daten müssen über einen längeren Zeitraum konstant bleiben. • Die Symptome müssen voneinander unabhängig sein (⇒ P (S1 ∧ S2 |Hi ) = P (S1 |Hi ) · P (S2 |Hi )). Problem: Wahrscheinlichkeit vs. relative Häufigkeit Beispiel: Würfelwurf, P (Würfel zeigt 6 Augen) = 16 Für endlich viele Versuche muß dies nicht stimmen!
7.2.2 Dempster-Shafer Theorie In der reinen Wahrscheinlichkeitsrechnung gilt die problematische Beziehung P (A) = p ⇒ P (¬A) = 1 − p. In vielen Situationen benötigt man eine andere Interpretation, d. h. wenn Fakten nur teilweise für eine Hypothese sprechen, dann sollten sie auch nicht gegen die Hypothese verwendet werden; man betrachtet i.A.
die Wahrscheinlichkeit für die Komplementhypothese als Unsicherheit. Es folgt: P (A) = p ⇒ P (¬A) = 1 − p. Folgerungen aus der obigen Überlegung: • Man hat nun Klassen bzw. Mengen von Diagnosen. • Die Wahrscheinlichkeit gegen eine Diagnose wird repräsentiert als die Wahrscheinlichkeit für das Komplement der Diagnose, d. h. die Menge aller anderen Diagnosen. • Beträgt die Evidenz (Wahrscheinlichkeit) für das Vorliegen der Diagnose D X% , so wird die Restwahrscheinlichkeit 100 − X% nicht als Evidenz für die Abwesenheit der Diagnose D, sondern als Unsicherheitsintervall interpretiert. Die Evidenz für das Vorliegen der Diagnose D liegt also zwischen X% und 100%. Definition (Basismaß) Sei Z = {A1 , . . . , An } die Menge der Alternativen (alle möglichen Diagnosen), und die Ai ’s schließen sich gegenseitig aus. Sei P(Z) die Potenzmenge von Z. Dann ist ein Basismaß (entspricht der Evidenz) durch folgende Abbildung definiert:
m : P(Z) −→ [0; 1] mit m(∅) = 0 und
m(X) = 1
X⊆Z
Definition (Believe-Funktion) Die Believe-Funktion ist ein „Maß für die richtige Lösung in X“ und wird definiert durch folgende Abbildung: Bm : P(X) −→ [0; 1] mit Bm (X) =
Y ⊆X
m(Y )
KAPITEL 7. UNSICHERHEIT UND VAGHEIT
230
Definition (Doubt-Funktion) Die Doubt-Funktion wird durch folgende Abbildung definiert: Dm (X) = Bm (Z\X) Definition (Obere Wahrscheinlichkeit) Die obere Wahrscheinlichkeit gibt die maximal mögliche Wahrscheinlichkeit für die Diagnose X an, und ist wie folgt definiert: ∗ (X) = 1 − Dm (X) = 1 − Bm (Z\X) Bm
Definition (Unwissenheit) Die Unwissenheit wird wie folgt definiert: ∗ (X) − Bm (X) Um (X) = Bm
Definition (Unsicherheitsintervall) Das Unsicherheitsintervall wird wie folgt definiert: ∗ (X)] Im (X) = [Bm (X); Bm
Beispiel: Sei Z = {A1 , A2 , A3 }, m({A1 }) = 0.3, m({A2 }) = 0.1, m(Z) = 0.6 und für alle anderen Eingaben habe m den Wert 0. Damit ist m ein Basismaß. Sei X = {A2 , A3 }. Dann erhalten wir:
Bm (X) =
m(Y ) = m({A2 }) = 0.1
Y ⊆{A2 ,A3 }
Dm (X) = Bm (Z\{A2 , A3 }) = Bm ({A1 }) = m({A1 }) = 0.3 ∗ (X) = 1 − Dm (X) = 0.7 Bm
∗ (X) − Bm (X) = 0.6 Um (X) = Bm
∗ (X)] = [0.1; 0.7] Im (X) = [Bm (X); Bm
Bm
Dm Um
0.1
0.3 2
Voraussetzungen: • Alle Diagnosen müssen bekannt sein. • Es darf nur das Vorliegen einer Diagnose vorausgesetzt werden. • Die Anzahl der Diagnosen sollte nicht zu groß sein, da sonst Komplexitätsprobleme (Laufzeit) auftreten. Beispiel: Gegeben: • Diagnosen Z = {A, B, C, D}
7.2. STATISTISCHE METHODEN
231
• Symptom E1 spricht mit einer Evidenz von 30% gegen A ⇒ Basismaß e1 ({B, C, D}) = 0.3 ⇒ e1 ({Z}) = 0.7. • Symptom E2 spricht mit einer Evidenz von 60% für A oder B ⇒ Basismaß e2 ({A, B}) = 0.6 ⇒ e2 (Z) = 0.4. • Bilde aus e1 und e2 ein neues Basismaß e3 . Wie? 2 Akkumulation von Evidenzen Seien m1 und m2 Evidenzen von Z. Dann wird die akkumulierte Evidenz m3 durch folgende Vorschrift definiert: 0, falls X = ∅ m3 (X) = (m1 ⊕m2 )(X) , für X = ∅ 1−k Dabei ist
(m1 ⊕ m2 )(X) =
m1 (A) · m2 (B)
X=A∩B
k =
m1 (A) · m2 (B) < 1
A∩B=∅
Der korrekturterm k ist deswegen nötig, damit die Bedingung X⊆Z m3 (X) = 1 erfüllt ist, falls m1 (A), m2 (B) > 0, aber A ∩ B = ∅. Der Wert k = 1 ist nicht erlaubt. Beispiel: Fortsetzung des letzten Beispiels: k =
e1 (X) · e2 (Y ) = 0
X∩Y =∅
e3 ({A, B}) =
e1 (X) · e2 (Y ) = 0.7 · 0.6 = 0.42
X∩Y ={A,B}
Es ergibt sich folgende Tabelle für das Basismaß e3 : e2 (Z) = 0.4 e3 e2 ({A, B}) = 0.6 e1 ({B, C, D}) = 0.3 {B}|0.18 {B, C, D}|0.12 {A, B}|0.42 Z|0.28 e1 (Z) = 0.7 Das Unsicherheitsintervall ist I3 ({A}) = [Be3 ({A}); Be∗3 ({A})] = [0; 0.7]. Sei eine weitere Evidenz gegeben: e4 ({D}) = 0.5, e4 (Z) = 0.5. Es ergibt sich schließlich e5 ({B}) = 0.09 0.7 = 0.13 e5 ({D}) = 0.285 e5 ({B, C, D}) = 0.085 e5 ({A, B}) = 0.3 e5 (Z) = 0.2 2 Probleme des Dempster-Shafer-Ansatzes:
232
KAPITEL 7. UNSICHERHEIT UND VAGHEIT
• Kein effektiver Mechanismus für die Berücksichtigung von Symptomabhängigkeiten und mehrfache Diagnosen • Große Rechenzeit (es existieren 2n Teilmengen von {X1 , . . . , Xn }) Aber in den meisten Fällen ist die Dempster-Shafer-Theorie besser als der „Satz von Bayes“.
Literaturverzeichnis [AsPlTa 79]
B. Aspvall, M. F. Plass, R. E. Tarjan: A Linear-Time Algorithm for Testing the Truth of Certain Quantified Boolean Formulas, Information Processing Letters 8 (1979), pp. 121–123
[Asp 80]
B. Aspvall: Recognizing Disguised NR(1) Instances of the Satisfiability Problem, Journal of Algorithms 1 (1980), pp. 97–103
[BBFMP 73] M. Bauer, D. Brand, M. Fischer, A. Meyer, M. Paterson: A Note on Disjunctive Form Tautologies, SIGACT News 5 (1973), pp. 17–20 [Bez 87]
M. Bezem: Consistency of Rule–Based Expert Systems, Centrum voor Wiskunde en Informatica, Report CS–R8736, Amsterdam (1987)
[Böhme 93]
G. Böhme: Fuzzy–Logik, Springer Verlag, 1993
[Bothe 93]
H.-H. Bothe: Fuzzy Logic, Springer Verlag, 1993
[BdT 90]
T. Boy de la Tour: Minimizing the Number of Clauses by Renaming, Proc. CADE–10 (1990), pp. 558–572
[Bro 85]
L. Brownston, R. Farrell, E. Kant, N. Martin: Programming Expert Systems in OPS5, Addison Wesley, 1985
[BuKB 93]
M. Buro, H. Kleine Büning: Report on a SAT Competition, Bulletin of the EATCS 49 (1993), pp. 143–151
[ChHo 92]
V. Chandru, J. Hooker: Detecting Embedded Horn Structure in Propositional Logic, Information Processing Letters 42 (1992), pp. 109–111
[Cha 70]
C. L. Chang: The Unit Proof and the Input Proof in Theorem Proving, JACM 17 (1970), pp. 698–707
[Chv 73]
V. Chvátal: Edmonds Polytopes and a Hierarchy of Combinatorial Problems, Discrete Mathematics 4 (1973), pp. 305–337
[Cla 78]
K. L. Clark: Negation as Failure, in: H. Gallaire, J. Minker (eds.): Logic and Data Bases, Plenum Press, New York (1978)
[ClMe 84]
W. F. Clocksin, C. S. Mellish: Programming in Logic, Springer, Berlin (1984)
[Coo 71]
S. A. Cook: The Complexity of Theorem–Proving Procedures, Proc. 3rd Ann. Symp. on Theory of Computing (1971), pp. 151–158
[CCT 87]
W. Cook, C. R. Coullard, Gy. Turán: On the Complexity of Cutting–Plane Proofs, Dicrete Applied Mathematics 18 (1987), pp. 25–38 233
234
LITERATURVERZEICHNIS
[DaPu 60]
M. Davis, H. Putnam: A Computing Procedure for Quantification Theory, JACM 7 (1960), pp. 201–215
[DoGa 84]
W. F. Dowling, J. H. Gallier: Linear–Time Algorithms for Testing the Satisfiability of Propositional Horn Formulae, J. Logic Programming 1 (1984), pp. 267–284
[Eder 85]
E. Eder: An Implementation of a Theorem Prover Based on the Connection Method, in: W. Bibel, B. Petkoff (eds.): Artificial Intelligence, Methodology, Systems, Applications (AIMSA 1984), North–Holland, Amsterdam (1985), pp. 121–128
[Fre 79]
G. Frege: Begriffsschrift, eine der arithmetischen nachgebildete Formelsprache des reinen Denkens, Louis Nebert, Halle (1879)
[GaJo 79]
M. R. Garey, D. S. Johnson: Computers and Intractability, Freeman and Company, New York (1979)
[vGe 88]
A. van Gelder: A Satisfiability Tester for Non-clausal Propositional Calculus, Information and Computation 79 (1988), pp. 1–21
[Gu 92]
J. Gu: Efficient Local Search for Very Large–Scale Satisfiability Problems, SIGART Bulletin 3 (1992), pp. 8-12
[HayRo 83]
F. Hayes-Roth, D. A. Waterman und D. B. Lenat: Building Expert Systems, Addison–Wesley, 1983
[HiBe34/39] D. Hilbert, P. Bernays: Grundlagen der Mathematik I, II, Springer, Berlin–Heidelberg (1934/1939) [Hoo 91]
J. Hooker: Logical Inference and Polyhedral Projection, Proc. CSL’91, Springer LNCS 626 (1992) pp. 184–200
[Ju 90]
D. Jungnickel: Graphen, Netzwerke und Algorithmen, 2. Aufl., BI Wissenschaftsverlag (1990)
[KBLe 94]
H. Kleine Büning, Th. Lettmann: Aussagenlogik: Deduktion und Algorithmen, Teubner Verlag (1994)
[KBLö 89]
H. Kleine Büning, U. Löwen: Optimizing Propositional Calculus Formulas with Regard to Questions of Deducibility, Information and Computation 80 (1989), pp. 18–43
[KoPa 92]
E. Koutsoupias, C. H. Papadimitriou: On the Greedy Algorithm for Satisfiability, Information Processing Letters 43 (1992), pp. 53–55
[Lev 73]
L. Levin: Universal Sequential Search Problems, Problems of Information Transmissions 9 (1973), pp. 265–266
[Le 78]
H. R. Lewis: Renaming a Set of Clauses as a Horn Set, JACM 25 (1978), pp. 134–135
[Llo 87]
J. W. Lloyd: Foundations of Logic Programming, Springer, Heidelberg, 2nd Edition, (1987)
[MeBoGe 90] P. Mertens, V. Borkovski und W. Geiss: Betriebliche Expertensystemanwendungen, Springer Verlag, 1990 [Min 88]
M. Minoux: LTUR: A Simplified Linear-Time Unit Resolution Algorithm for Horn Formulae and Computer Implementation, Information Processing Letters 29 (1988), pp. 1–12
LITERATURVERZEICHNIS
235
[Nil 82]
N. J. Nilsson: Principles of Artificial Intelligence, Springer Verlag, 1982
[PaYa 84]
C. H. Papadimitriou, M. Yannakakis: The Complexity of Facets (and Some Facets of Complexity), Journal of Computer and System Sciences 28 (1984), pp. 244–259
[Pa 91]
C. H. Papadimitriou: On Selecting a Satisfying Truth Assignment, Proc. 32th FOCS (1991), pp. 163–169
[PlGr 86]
D. A. Plaisted, S. Greenbaum: A Structure-preserving Clause Form Translation, J. Symbolic Computation 2 (1986), pp. 293–304
[Pu 88]
F. Puppe: Einführung in Expertensysteme, Springer Verlag, 1988.
[Rob 65]
J. A. Robinson: A Machine Oriented Logic Based on the Resolution Principle, JACM 12 (1965), pp. 23–41
[SeLeMi 92] B. Selman, H. Levesque, D. Mitchell: A New Method for Solving Hard Satisfiability Problems, Proc. 10th AAAI, San Jose (1992), pp. 440–446 [Tar 72]
R. E. Tarjan: Depth–First Search and Linear Graph Algorithms, SIAM J. Comput. , 1 (1972), pp. 146–160
[TrGe 87]
R. Treitel, M. R. Genesereth: Choosing Directions for Rules, J. Automated Reasoning 3 (1987), pp. 395–431
[Tse 70]
G. S. Tseitin: On the Complexity of Derivation in Propositional Calculus, in A. O. Silenko (Ed.): Studies in Constructive Mathematics and Mathematical Logic, Part II (1970), pp. 115– 125
[WoCaRo 64] L. Wos, D. Carson, G. A. Robinson: The Unit Preference Strategy in Theorem Proving, AFIPS Conf. Proc. 26 (1964), pp. 615–621; in Siekmann, Wrightson (Eds.): Automation of Reasoning 1, Springer, Berlin (1983), pp. 387–393 [Zah 65]
L. A. Zadeh: Fuzzy Sets, Information and Control, 8 (1965), pp. 338–353
[BeKo 94]
K. Berns, T. Kolb, Neuronale Netze für technische Anwendungen, Springer Verlag 1994
[Sch 93]
E. Schöneburg, Industrielle Anwendung Neuronaler Netze, Addison–Wesley 1993
[HeKrPa 94] J. Hertz, A. Krogh, R. G. Palmer, Introduction to the Theory of Neural Computation, Addison-Wesly 1994 [Par 94]
I. Parberry, Circut Complexity and Neural Networks, MIT 1994
[Nie 91]
R. Hecht-Nielsen, Neurocomputing, Addision–Wesley 1991
[SNNS 93]
Universität Stuttgart - Fakultät Informatik, SNNS, User Manual, Version 3.0, Report No. 3/93
[Fah 88]
S. E. Fahlman, An Empirical Study of Learning Speed in Backpropagation Networks, 1988, CMU-CS-88-162
[FaLe 91]
S. E. Fahlman, C. Lebiere, The Cascade-Correlation Architecture, 1991, CMU-CS-90-100
[HoFa 91]
M. Hoehfeld, S. E. Fahlman, Learning with Limited Numerical Precision Using the CascadeCorrelation Algorithm, 1991, CMU-CS-91-130
236
LITERATURVERZEICHNIS
[CT 96]
H. G. Frey, J. Schach, Modern geknotet - Neuro-Netze: Strukturen, Typen, Anwendungen, CT Februar 1996, Seite 256
[KrSm 93]
B. J. A. Kröse, P. P. van der Smagt, An introduction to Neural Networks, Fifth edition, Jan. 1993
[FAQ 96]
Warren Sarle, Frequently asked Questions, answers, Newsgroup comp.ai.neural-nets, 27.01.96
[MONKS 91] S.B: Thurn, J.Bala, u.w., The Monks Problem. A Performance Comparion of Different Learning Algorithms, Carnegie Mellon University CMU-CS-91-197, December 1991 [NaKlKr 94] D. Nauck, F. Klawonn, R. Kruse, Neuronale Netze und Fuzzy-Systeme, Vieweg 1994 [Sa 96]
Warren S. Sarle, The TNN Macros for Feedforward Neural Networks, 20 Februar, 1996
[BrSe 87]
Bronstein, Semendjajew, Taschenbuch der Mathematik, Verlag Harri Deutsch, 1987