8. Logische Programmierung
|
|
|
- Regina Albrecht
- vor 8 Jahren
- Abrufe
Transkript
1 8. Logische Programmierung GPS-8-1 Themen dieses Kapitels: Prolog-Notation und kleine Beispiele prädikatenlogische Grundlagen Interpretationsschema Anwendbarkeit von Klauseln, Unifikation kleine Anwendungen Übersicht zur logischen Programmierung GPS-8-2 Deklaratives Programmieren: Problem beschreiben statt Algorithmus implementieren (idealisiert). Das System findet die Lösung selbst, z. B. Sortieren einer Liste: sort(old, new) <= permute(old, new) sorted(new) sorted(list) <= j such that 1 <= j < n: list(j) <= list(j+1) Relationen bzw. Prädikate (statt Funktionen): (a, b) R (S x T) magessen(hans, salat) Programmkonstrukte entsprechen eingeschränkten prädikatenlogischen Formeln X,Y,Z: grossmuttervon(x, Z) <= muttervon(x, Y) elternteilvon(y, Z) Resolution implementiert durch Interpretierer: Programm ist Menge von PL-Formeln, Interpretierer sucht Antworten (erfüllende Variablenbelegungen) durch Backtracking?-sort([9,4,6,2], X). Antwort: X = [2,4,6,9] Datenmodell: strukturierte Terme mit Variablen (mathematisch, nicht imperativ); Bindung von Termen an Variable durch Unifikation
2 Prolog Übersicht GPS-8-3 Wichtigste logische Programmiersprache: Prolog (Colmerauer, Roussel, 1971) Typische Anwendungen: Sprachverarbeitung, Expertensysteme, Datenbank-Management Ein Programm ist eine Folge von Klauseln (Fakten, Regeln, eine Anfrage) formuliert über Terme. mother(mary, jake). mother(mary, shelley). father(bill, jake). parent(x, Y) :- mother(x, Y). parent(x, Y) :- father(x, Y). Fakten Regeln?- parent(x, jake) Anfrage Antworten: X = mary X = bill 2013 bei Prof. Dr. Uwe Kastens Ein Interpretierer prüft, ob Werte an die Variablen so gebunden werden können, dass die Anfrage mit den gegebenen Prädikaten und Regeln erfüllbar ist (Resolution). Es wird ein universelles Suchverfahren (Backtracking) angewendet (Folie GPS-8-7). Prolog Sprachkonstrukte: Fakten Fakten geben Elemente von n-stelligen Relationen bzw. Prädikaten an, z. B. stern(sonne). stern(sirius). bedeutet, sonne und sirius sind Konstante, sie erfüllen das Prädikat (die 1-stellige Relation) stern. Einige Fakten, die Elemente der 2-stelligen Relation umkreist angeben: umkreist(jupiter, sonne). umkreist(erde, sonne). umkreist(mars, sonne). umkreist(mond, erde). umkreist(phobos, mars). Fakten können auch mit Variablen formuliert werden: istgleich(x,x). GPS-8-4 bedeutet in PL: X: istgleich(x,x) Prolog hat keine Deklarationen. Namen für Prädikate, Konstante und Variablen werden durch ihre Benutzung eingeführt. Namen für Konstante beginnen mit kleinem, für Variable mit großem Buchstaben.
3 Prolog Sprachkonstrukte: Regeln Regeln definieren n-stellige Relationen bzw. Prädikate durch Implikationen (intensional), z. B. GPS-8-4a planet(b) :- umkreist(b, sonne). satellit(b) :- umkreist(b, P), planet(p). bedeutet in PL: B: planet(b)<= umkreist(b, sonne) B,P: satellit(b) <= umkreist(b, P) planet(p) In einer Klausel müssen an alle Vorkommen eines Variablennamen dieselben Werte gebunden sein, z. B. B/mond und P/erde Allgemein definiert man eine Relation durch mehrere Fakten und Regeln. sie gelten dann alternativ (oder-verknüpfung) sonnensystem(sonne). sonnensystem(b) :- planet(b). sonnensystem(b) :- satellit(b). Man kann Relationen auch rekursiv definieren: sonnensystem(sonne). sonnensystem(x) :- umkreist(x, Y), sonnensystem(y). Prolog Sprachkonstrukte: Anfragen Das Prolog-System überprüft, ob eine Anfrage mit den Fakten und Regeln des gegebenen Programms (durch prädikatenlogische Resolution) als wahr nachgewiesen werden kann. Beispiele zu den Fakten und Regeln der vorigen Folien:?- umkreist(erde, sonne). yes?- umkreist(mond, sonne). no Antwort: GPS-8-4b Eine Anfrage?- umkreist(mond, B). bedeutet in PL B: umkreist(mond, B) Wenn die Anfrage Variablen enthält, werden Belegungen gesucht, mit denen die Anfrage als wahr nachgewiesen werden kann: Antworten:?- umkreist(mond, B). B=erde?- umkreist(b, sonne). B=jupiter; B=erde; B=mars?- umkreist(b, jupiter). no (keine Belegung ableitbar)?- satellit(mond). yes?- satellit(s). S=mond; S=phobos
4 Notation von Prolog-Programmen GPS-8-4c Beliebige Folge von Klauseln: Fakten, Regeln und Anfragen (am Ende). Klauseln mit Prädikaten p(t 1,..., t n ), Terme t i Terme sind beliebig zusammengesetzt aus Literalen, Variablen, Listen, Strukturen. Literale für Zahlen, Zeichen(reihen) Symbole (erste Buchstabe klein) Variablen (erste Buchstabe groß) unbenannte Variable 127 "text" 'a' hans X Person _ Listen-Notation: [a, b, c] [] erstes Element H, Restliste T [H T] wie H::T in SML Strukturen: kante(a, b) a - b datum(t, M, J) Operatoren kante, - werden ohne Definition verwendet, nicht ausgerechnet Grundterm: Term ohne Variablen, z. B. datum(11, 7, 1995) Prolog ist nicht typisiert: An eine Variable können beliebige Terme gebunden werden, an Parameterpositionen von Prädikaten können beliebige Terme stehen. Prädikatenlogische Grundlagen Prädikatenlogische Formeln (siehe Modellierung, Abschn. 4.2): GPS-8-5 atomare Formeln p (t 1,..., t n ) bestehen aus einem Prädikat p und Termen t i mit Variablen, z. B. last([x], X) darauf werden logische Junktoren ( ) und Quantoren ( ) angewandt, z. B. X Y: sonnensystem(x) umkreist(x, Y) sonnensystem(y) äquivalent zu X Y: sonnensystem(x) <= umkreist(x, Y) sonnensystem(y) Allgemeine PL-Formeln werden auf die 3 Formen von Prolog-Klauseln (Horn-Klauseln) eingeschränkt, z. B. Prolog-Fakt: PL: last ([X], X). X: last ([X], X). Prolog-Regel: sonnensystem(x) :- umkreist(x,y), sonnensystem(y). PL: X Y: sonnensystem(x)<=umkreist(x,y) sonnensystem(y). Prolog-Anfrage:umkreist(X, erde), umkreist(x,jupiter). PL: X: umkreist(x, erde) umkreist(x,jupiter). äquivalent zu: X umkreist(x, erde) umkreist(x,jupiter).
5 Resolution GPS-8-6 Resolution führt einen Widerspruchsbeweis für eine Anfrage: Fakten Regeln Negierte + Anfrage = ==> Anfrage bewiesen Prolog-Anfrage: umkreist(x, erde), umkreist(x,jupiter). PL: X: umkreist(x, erde) umkreist(x,jupiter). äquivalent zu: X umkreist(x, erde) umkreist(x,jupiter). negiert: X umkreist(x, erde) umkreist(x,jupiter). Die Antwort ist gültig für alle zu einem Programm durch induktive Anwendung von Operatoren konstruierbaren Terme (Herbrand-Universum, Hypothese der abgeschlossenen Welt ). Antwort Ja: Antwort Nein: Aussage ist mit den vorhandenen Fakten und Regeln beweisbar. Aussage ist mit den gegebenen Fakten und Regeln nicht beweisbar. Das heißt nicht, dass sie falsch ist. Daher kann eine Negation, wie in Formel F gilt, wenn Formel H nicht gilt in Prolog-Systemen nicht ausgedrückt werden. Der vordefinierte Operator not ist nicht-logisch und mit Vorsicht zu verwenden. Interpretationsschema Backtracking GPS-8-7 Aus Programm mit Fakten, Regeln und Anfrage spannt der Interpretierer einen abstrakten Lösungsbaum auf (Beispiel auf nächster Folie): Wurzel: Anfrage Knoten: Folge noch zu verifizierender Teilziele Kanten: anwendbare Regeln oder Fakten des Programms Der Interpretierer iteriert folgende Schritte am aktuellen Knoten: Wähle ein noch zu verifizierendes Teilziel (Standard: von links nach rechts) Falls die Folge der Teilziele leer ist, wurde eine Lösung gefunden (success); ggf. wird nach weiteren gesucht: backtracking zum vorigen Knoten. Wähle eine auf das Teilziel anwendbare Klausel (Standard: Reihenfolge im Programm); bilde einen neuen Knoten, bei dem das Teilziel durch die rechte Seite der Regel bzw. bei einem Fakt durch nichts ersetzt wird; weiter mit diesem neuen Knoten. Ist keine Klausel anwendbar, gibt es in diesem Teilbaum keine Lösung: backtracking zum vorigen Knoten. Bei rekursiven Regeln, z.b: nachbar(a, B) :- nachbar(b, A) ist der Baum nicht endlich. Abhängig von der Suchstrategie terminiert die Suche dann eventuell nicht. Die Reihenfolge, in der die Wahl (s.o.) getroffen wird, ist entscheidend für die Terminierung der Suche und die Reihenfolge, in der Lösungen gefunden werden!
6 Lösungsbaum Beispiel Beispiel (a, b,... stehen für Prädikate; Parameterterme sind hier weggelassen): 1 a:- b, c, d. Anfrage:?- a, e 2 a:- e, f. 3 b:- f. 4 e. a e 5 f. 6 a:- f. b c d e e f e f e anwendbar GPS-8-8 nicht anwendbar f c d e f e e c d e fail (backtrack) e success success Anwendung von Klauseln GPS-8-12 In Klauseln werden Terme als Muster verwendet. Darin vorkommende Variablennamen müssen konsistent an Terme gebunden werden: last([x], X). [X] Muster für eine einelementige Liste heuer(t, M, datum(t, M, 2013)).Muster für ein datum mit bestimmten Teiltermen Eine Klausel (Fakt oder linke Seite einer Regel) ist auf ein Teilziel anwendbar, wenn es einen Unifikator gibt, der die Parameterterme der Klausel und des Teilziels paarweise gleich macht: Fakt: heuer(t, M, datum(t, M, 2013)). Anfrage:?-heuer(12, 7, Z). Unifikator: [T/12,M/7, Z/datum(12,7,2013)] Fakt: heuer(t, M, datum(t, M, 2013)). Anfrage:?-heuer(X, Y, datum(14, 7, 2013). Unifikator: [X/14,T/14,Y/7, M/7] Regel: last([_ T], Y):- last(t, Y). Teilziel: last([2,3], Z) Unifikator: [T/[3], Y/Z] 2013 bei Prof. Dr. Uwe Kastens Fakt: last([x], X). Teilziel: last([2,3], Z) nicht unifizierbar, also nicht anwendbar Wird die Klausel angewandt, werden die Variablen gemäß Unifikator gebunden.
7 Unifikation siehe Modellierung, Kap. 3.1 Term: Formel bestehend aus Literalen, Variablen, Operatoren, Funktoren; z. B. GPS-8-12a X + f(2*y) Substitution s = [X1/e 1,..., Xn/e n ] angewandt auf T, geschrieben T s bedeutet: alle Vorkommen der Variablen X i in T werden gleichzeitig durch den Term e i ersetzt. z. B. Y+Y [Y/3*Z] ergibt 3*Z+3*Z Unifikation: Allgemeines Prinzip: Terme durch Substitution gleich machen. gegeben: zwei Terme T 1, T 2 gesucht: eine Substitution U, sodass gilt T 1 U = T 2 U. Dann ist U ein Unifikator für T1 und T2. Beispiele: datum(t, M, 2011) datum (14, 7, 2011) U = [T/14, M/7] X+f(2*g(1)) 3+f(2*Y) U = [X/3, Y/g(1)] f(h(a, b), g(y), V) f(x, g(h(a,c)), Z) allgemeinste Unifikatoren: Ua = [X/h(a,b), Y/h(a,c), V/Z] Ua = [X/h(a,b), Y/h(a,c), Z/V] nicht-allgemeinster Unifikator, unnötige Bindungen an V und Z: U = [X/h(a,b), Y/h(a,c), V/a, Z/a] Rekursive Anwendung von Klauseln GPS-8-13 Variable sind lokal für jede Anwendung einer Klausel. Bei rekursiven Anwendungen entstehen neue lokale Variable. Mehrfache Auftreten einer Variable stehen für denselben Wert. Beispiel: mit folgenden Klauseln (1)last([X], X). (2)last([_ T], Y):- last(t, Y). wird die Anfrage berechnet: 2013 bei Prof. Dr. Uwe Kastens (2) (2) (1)?-last([1,2,3], Z). last([_ T 1 ], Y 1 ):- last([2,3], Z). last([_ T 2 ],Y 2 ):- T 1 = [2,3] Y 1 = Z T 2 = [3] Y 2 = Z last([3], Z). last([x], X). bindet Z=3 X = 3 X = 3 = Z
8 Beispiel: Wege im gerichteten Graph GPS-8-13a Das folgende kleine Prolog-Programm beschreibt die Berechnung von Wegen in einem gerichteten Graph. Die Menge der gerichteten Kanten wird durch eine Folge von Fakten definiert: kante(a,b). kante(a,c).... Die Knoten werden dabei implizit durch Namen von Symbolen eingeführt. Die Relation weg(x,y) gibt an, ob es einen Weg von X nach Y gibt: weg(x, X). Weg der Länge 0 weg(x, Y):-kante(X, Y). Weg der Länge 1 weg(x, Y):-kante(X, Z), weg(z, Y). weitere Weg e Anfragen:?-weg(a,c). prüft, ob es einen Weg von a nach c gibt.?-weg(a,x). sucht alle von a erreichbaren Knoten.?-weg(X,c). sucht alle Knoten, von denen c erreichbar ist. Beispiel: Symbolische Differentiation GPS-8-14 Das folgende Prolog-Programm beschreibt einige einfache Regeln zur Differentiation. Sie werden auf Terme angewandt, die Ausdrücke beschreiben, und liefern die Ableitung in Form eines solchen Terms, z. B.?-diff(2*x,x,D). liefert z. B. D = 2*1+x*0. Mit weiteren Regeln zur Umformung von Ausdrücken kann das Ergebnis noch vereinfacht werden. In Prolog werden Ausdrücke wie 2*x nicht ausgewertet (sofern nicht durch IS explizit gefordert), sondern als Struktur dargestellt, also etwa *(2, x). Prolog-Regeln zur Symbolischen Differentiation: diff(x, X, 1):-!. diff(t, X, 0):- atom(t). diff(t, X, 0):- number(t). diff(u+v, X, DU+DV):- diff(u, X, DU), diff(v, X, DV). diff(u-v, X, DU-DV):- diff(u, X, DU), diff(v, X, DV) bei Prof. Dr. Uwe Kastens diff(u*v, X, (U*DV)+(V*DU)):- diff(u, X, DU), diff(v, X, DV). diff(u/v, X, ((V*DU)-(U*DV))/V*V):- diff(u, X, DU), diff(v, X, DV). Falls die erste Regel anwendbar ist, bewirkt der Cut (!), dass bei beim Backtracking keine Alternative dazu versucht wird, obwohl die nächsten beiden Klauseln auch anwendbar wären.
9 Erläuterungen zur Symbolischen Differentiation GPS Hier werden Terme konstruiert, z. B. zu 2*x der Term 2*1+x*0 Ausrechnen formuliert man in Prolog durch spezielle IS-Klauseln: dupl(x,y):- Y IS X*2. X muss hier eine gebundene Variable sein. 2. Problemnahe Beschreibung der Differentiationsregeln, z. B. Produktregel: d(u*v) = d v u * + v * d u 3. diff ist definert als Relation über 3 Terme: diff (abzuleitende Funktion, Name der Veränderlichen, Ableitung) 4. Muster in Klauselkopf legen die Anwendbarkeit fest, z. B. Produktregel: diff(u*v, X, (U*DV)+(V*DU)): bei Prof. Dr. Uwe Kastens 5. Regeln 1-3 definieren: = 1!-Operator (Cut) vermeidet falsche Alternativen. d a = 0 6. diff ist eine Relation - nicht eine Funktion!!?-diff(a+a,a,D). liefert D = 1 + 1?-diff(F,a,1+1). liefert F = a + a d 1 = 0 Beispielrechnung zur Symbolischen Differentiation GPS-8-16?- diff(2*y, y, D) diff(u*v, X 1,(2*DV)+(y*DU)):- diff(2, y, DU), diff(y, y, DV) diff(t 1, X 2, 0) diff(x 3, X 3, 1) :-number(2) :-! success success liefert Bindungen DU=0 DV=1 D=(2*1)+(y*0) Das Programm kann systematisch erweitert werden, damit Terme nach algebraischen Rechenregeln vereinfacht werden, z. B. simp(x*1, X). simp(x*0, 0).... simp(x+0, X). simp(x-0, X). So einsetzen, dass es auf alle Teilterme angewandt wird bei Prof. Dr. Uwe Kastens
10 Zusammenfassung zum Kapitel 8 GPS-8-17 Mit den Vorlesungen und Übungen zu Kapitel 8 sollen Sie nun Folgendes können: Kleine typische Beispiele in Prolog-Notation lesen, verstehen und schreiben Interpretationsschema und prädikatenlogische Grundlagen verstehen Unifikation zum Anwenden von Klauseln einsetzen
8. Logische Programmierung. Prolog Sprachkonstrukte: Fakten. Prolog Übersicht
8. Logische Programmierung GPS-8-1 Übersicht zur logischen Programmierung GPS-8-2 Themen dieses Kapitels: Deklaratives Programmieren: Problem beschreiben statt Algorithmus implementieren (idealisiert).
Logische Programmierung
Logische Programmierung B-82 Deklaratives Programmieren in Prädikatenlogik: Problem beschreiben statt Algorithmus implementieren (idealisiert). Grundlagen: Relationen bzw. Prädikate (statt Funktionen);
3 Terme und Algebren 3.1 Terme
3 Terme und Algebren 3.1 Terme Mod - 3.1 In allen formalen Kalkülen benutzt man Formeln als Ausdrucksmittel. Hier betrachten wir nur ihre Struktur - nicht ihre Bedeutung. Wir nennen sie Terme. Terme bestehen
Logik-Grundlagen. Syntax der Prädikatenlogik
Logik-Grundlagen X 1 :...: X k : ( A 1 A 2... A m B 1 B 2... B n ) Logische und funktionale Programmierung - Universität Potsdam - M. Thomas - Prädikatenlogik III.1 Syntax der Prädikatenlogik Prädikat:
Binäre Suchbäume (binary search trees, kurz: bst)
Binäre Suchbäume (binary search trees, kurz: bst) Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer: Binärbaum T mit n := M Knoten Jeder Knoten v von T ist mit einer Zahl m v M markiert.
Grundlagen der Theoretischen Informatik
FH Wedel Prof. Dr. Sebastian Iwanowski GTI22 Folie 1 Grundlagen der Theoretischen Informatik Sebastian Iwanowski FH Wedel Kap. 2: Logik, Teil 2.2: Prädikatenlogik FH Wedel Prof. Dr. Sebastian Iwanowski
Normalformen der Prädikatenlogik
Normalformen der Prädikatenlogik prädikatenlogische Ausdrücke können in äquivalente Ausdrücke umgeformt werden Beispiel "X (mensch(x) Æ sterblich(x)) "X (ÿ mensch(x) sterblich(x)) "X (ÿ (mensch(x) Ÿ ÿ
Auswahl von Klauseln und Atomen in Prolog
5.6 Prolog... ist die bekannteste Implementierung einer LP-Sprache; wurde Anfang der 1970er von Alain Colmerauer (Marseille) und Robert Kowalski (Edinburgh) entwickelt. konkretisiert den vorgestellten
Wissensbasierte Systeme
WBS4 Slide 1 Wissensbasierte Systeme Vorlesung 4 vom 03.11.2004 Sebastian Iwanowski FH Wedel WBS4 Slide 2 Wissensbasierte Systeme 1. Motivation 2. Prinzipien und Anwendungen 3. Logische Grundlagen 4. Suchstrategien
Informatik A. Prof. Dr. Norbert Fuhr auf Basis des Skripts von Prof. Dr. Wolfram Luther und der Folien von Peter Fankhauser
Informatik A Prof. Dr. Norbert Fuhr [email protected] auf Basis des Skripts von Prof. Dr. Wolfram Luther und der Folien von Peter Fankhauser 1 Teil I Logik 2 Geschichte R. Descartes (17. Jhdt): klassische
Beispiel. Bsp.: Betrachte Schlussweise in: (3) folgt aus (1) und (2), siehe z.b. Resolutionsregel. was ist mit folgender Schlußweise:
Theoretische Informatik: Logik, M. Lange, FB16, Uni Kassel: 5.4 Prädikatenlogik mit Gleichheit Resolution 192 Beispiel Bsp.: Betrachte Schlussweise in: 1 Wenn es regnet, dann wird die Straße nass. R N
Klausur zur Vorlesung Mathematische Logik
Universität Heidelberg 13. Februar 2014 Institut für Informatik Prof. Dr. Klaus Ambos-Spies Dipl.-Math. Thorsten Kräling Klausur zur Vorlesung Mathematische Logik Musterlösung Aufgabe 1 (Aussagenlogik
Teil 4: Rekursion und Listen
Einführung in das Programmieren Prolog Sommersemester 2006 Teil 4: Rekursion und Listen Version 1.0 Gliederung der LV Teil 1: Ein motivierendes Beispiel Teil 2: Einführung und Grundkonzepte Syntax, Regeln,
Wissensrepräsentation und -verarbeitung in Logiken. bereinigt Pränex Skolem ( -Eliminierung) Klausel (Menge von Klauseln, Notation ohne Quantoren)
Was bisher geschah Wissensrepräsentation und -verarbeitung in Logiken klassische Aussagenlogik klassische Prädikatenlogik: Wiederholung Syntax, Semantik Normalformen: bereinigt Pränex Skolem ( -Eliminierung)
Aussagenlogik zu wenig ausdrucksstark für die meisten Anwendungen. notwendig: Existenz- und Allaussagen
Prädikatenlogik 1. Stufe (kurz: PL1) Aussagenlogik zu wenig ausdrucksstark für die meisten Anwendungen notwendig: Existenz- und Allaussagen Beispiel: 54 Syntax der Prädikatenlogik erster Stufe (in der
Prolog basiert auf Prädikatenlogik
Software-Technologie Software-Systeme sind sehr komplex. Im Idealfall erfolgt die Programmierung problemorientiert, während die notwendige Übertragung in ausführbare Programme automatisch erfolgt. Prolog-Philosophie:
Eigenschaften der Resolution für PL1 Formeln
Eigenschaften der Resolution für PL1 Formeln Widerlegungsvollständigkeit (ohne Beweis): Sofern man Resolution auf eine widersprüchliche Klauselmenge anwendet, so existiert eine endliche Folge von Resolutionsschritten,
Motivation. Formale Grundlagen der Informatik 1 Kapitel 17. Syntax & Semantik. Motivation - Beispiel. Motivation - Beispiel
Motivation Formale Grundlagen der Informatik 1 Kapitel 17 & Frank Heitmann [email protected] 6. & 7. Juni 2016 Frank Heitmann [email protected] 1/43 Die ist eine Erweiterung
Hilbert-Kalkül (Einführung)
Hilbert-Kalkül (Einführung) Es gibt viele verschiedene Kalküle, mit denen sich durch syntaktische Umformungen zeigen läßt, ob eine Formel gültig bzw. unerfüllbar ist. Zwei Gruppen von Kalkülen: Kalküle
Einführung in PROLOG. Christian Stocker
Einführung in PROLOG Christian Stocker Inhalt Was ist PROLOG? Der PROLOG- Interpreter Welcher Interpreter? SWI-Prolog Syntax Einführung Fakten, Regeln, Anfragen Operatoren Rekursion Listen Cut Funktionsweise
Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer:
Binäre Suchbäume (binary search trees, kurz: bst) Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer: Binärbaum T mit n := M Knoten Jeder Knoten v von T ist mit einer Zahl m v M markiert.
5 Logische Programmierung
5 Logische Programmierung Logik wird als Programmiersprache benutzt Der logische Ansatz zu Programmierung ist (sowie der funktionale) deklarativ; Programme können mit Hilfe zweier abstrakten, maschinen-unabhängigen
Rekursive Listenverarbeitung
Rekursive Listenverarbeitung Übersicht Rekursion ist die wichtigste Programmiertechnik in Prolog! Rekursive Datenstrukturen Einfache und rekursiv gebildete Strukturen Rekursive Datenstrukturen und rekursive
Fragen zum Nachdenken: Wie könnte man das Fehlen eines Attribut-Wertes interpretieren?
Attribut-Werte-Paare Eine Eigenschaft kann beschrieben werden durch ein Paar [a,w]. Dabei bezeichnet a das Attribut und w den konkreten Wert aus dem Wertebereich W a des Attributs. Die Eigenschaften eines
3. Exkurs in weitere Arten der Programmierung
3. Exkurs in weitere Arten der Programmierung Inhalt: Objektorientierte Programmierung in C++ Funktional-Logische Programmierung in Prolog Funktional-logische Programmierung in Prolog Prolog Programming
1 Aussagenlogischer Kalkül
1 Aussagenlogischer Kalkül Ein Kalkül in der Aussagenlogik soll die Wahrheit oder Algemeingültigkeit von Aussageformen allein auf syntaktischer Ebene zeigen. Die Wahrheit soll durch Umformung von Formeln
Beweisen mit Semantischen Tableaux
Beweisen mit Semantischen Tableaux Semantische Tableaux geben ein Beweisverfahren, mit dem ähnlich wie mit Resolution eine Formel dadurch bewiesen wird, dass ihre Negation als widersprüchlich abgeleitet
Grundlagen von Datenbanken
Grundlagen von Datenbanken SS 2010 5. Bereichskalkül (=Domänenkalkül) Agenda: Prof. Dr. Stefan Böttcher Universität Paderborn mit Material von Prof. Dr. Gregor Engels Grundlagen von Datenbanken - SS 2010
Kapitel 1. Aussagenlogik
Kapitel 1 Aussagenlogik Einführung Mathematische Logik (WS 2012/13) Kapitel 1: Aussagenlogik 1/17 Übersicht Teil I: Syntax und Semantik der Aussagenlogik (1.0) Junktoren und Wahrheitsfunktionen (1.1) Syntax
4.1 Motivation. Theorie der Informatik. Theorie der Informatik. 4.1 Motivation. 4.2 Syntax der Prädikatenlogik. 4.3 Semantik der Prädikatenlogik
Theorie der Informatik 3. März 2014 4. Prädikatenlogik I Theorie der Informatik 4. Prädikatenlogik I 4.1 Motivation Malte Helmert Gabriele Röger 4.2 Syntax der Prädikatenlogik Universität Basel 3. März
Logic in a Nutshell. Christian Liguda
Logic in a Nutshell Christian Liguda Quelle: Kastens, Uwe und Büning, Hans K., Modellierung: Grundlagen und formale Methoden, 2009, Carl Hanser Verlag Übersicht Logik - Allgemein Aussagenlogik Modellierung
Entscheidungsverfahren für Bernays/Schönfinkelbzw. Datenlogik-Formeln
Vorlesung Letz WS 2002/2003 TU München: Logikbasierte Entscheidungsverfahren Entscheidungsverfahren für Bernays/Schönfinkelbzw. Datenlogik-Formeln INHALTE Die Bernays-Schönfinkel-Klasse bzw. Datenlogik-Formeln
HM I Tutorium 1. Lucas Kunz. 27. Oktober 2016
HM I Tutorium 1 Lucas Kunz 27. Oktober 2016 Inhaltsverzeichnis 1 Theorie 2 1.1 Logische Verknüpfungen............................ 2 1.2 Quantoren.................................... 3 1.3 Mengen und ihre
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Große Übung #2 Phillip Keldenich, Arne Schmidt 10.11.2016 Organisatorisches Fragen? Checkliste: Anmeldung kleine Übungen Anmeldung Mailingliste Dies ersetzt nicht die Prüfungsanmeldung!
Substitution. Unifikation. Komposition der Substitution. Ausführung der Substitution
Substitution Unifikation Ziel eines Widerspruchsbeweis: Widerspruch ja/nein Variablenbindung im Falle eines Widerspruchs Eine Substitution θ ist eine endliche Menge der Form {v 1 /t 1 v n /t n }, wobei
Resolutionsalgorithmus
112 Resolutionskalkül Mit dem Begriff Kalkül bezeichnet man eine Menge von syntaktischen Umformungsregeln, mit denen man semantische Eigenschaften der Eingabeformel herleiten kann. Für den Resolutionskalkül:
3. Grundlegende Begriffe von Logiken - Aussagenlogik
3. Grundlegende Begriffe von Logiken - Aussagenlogik Wichtige Konzepte und Begriffe in Logiken: Syntax (Signatur, Term, Formel,... ): Festlegung, welche syntaktischen Gebilde als Formeln (Aussagen, Sätze,
Aussagenlogik Prädikatenlogik erster Stufe. Logik. Logik
Grundzeichen Aussagenlogik Aussagenvariablen P, Q, R,... Junktoren nicht und oder Runde Klammern (, ) Formeln Aussagenlogik Formeln sind spezielle Zeichenreihen aus Grundzeichen, und zwar 1 Jede Aussagenvariable
Ersetzbarkeitstheorem
Ersetzbarkeitstheorem Die Abgeschlossenheit läßt sich auch folgendermaßen formulieren: Ersetzbarkeitstheorem Seien F und G Formeln mit F G. SeienH und H Formeln, so daß H aus H hervorgeht, indem ein Vorkommen
SS2010 BAI2-LBP Gruppe 1 Team 07 Entwurf zu Aufgabe 4. R. C. Ladiges, D. Fast 10. Juni 2010
SS2010 BAI2-LBP Gruppe 1 Team 07 Entwurf zu Aufgabe 4 R. C. Ladiges, D. Fast 10. Juni 2010 Inhaltsverzeichnis 4 Aufgabe 4 3 4.1 Sich mit dem Programmpaket vertraut machen.................... 3 4.1.1 Aufgabenstellung.................................
Prädikatenlogik. Quantoren. Quantoren. Quantoren. Quantoren erlauben Aussagen über Mengen von Objekten des Diskursbereichs, für die ein Prädikat gilt
Prädikatenlogik Aussagen wie Die Sonne scheint. die in der Aussagenlogik atomar sind, werden in der Prädikatenlogik in Terme (sonne) und Prädikate (scheint) aufgelöst und dann dargestellt als z.b. scheint(sonne)
Abschnitt 3: Mathematische Grundlagen
Abschnitt 3: Mathematische Grundlagen 3. Mathematische Grundlagen 3.1 3.2 Induktion und Rekursion 3.3 Boolsche Algebra Peer Kröger (LMU München) Einführung in die Programmierung WS 14/15 48 / 155 Überblick
Normalformen boolescher Funktionen
Normalformen boolescher Funktionen Jeder boolesche Ausdruck kann durch (äquivalente) Umformungen in gewisse Normalformen gebracht werden! Disjunktive Normalform (DNF) und Vollkonjunktion: Eine Vollkonjunktion
Musterlösung der Klausur zur Vorlesung Logik für Informatiker
Musterlösung der Klausur zur Vorlesung Logik für Informatiker Bernhard Beckert Christoph Gladisch Claudia Obermaier Arbeitsgruppe Künstliche Intelligenz Fachbereich Informatik, Universität Koblenz-Landau
Grundlagen der Theoretischen Informatik
FH Wedel Pro. Dr. Sebastian Ianoski GTI21 Folie 1 Grundlagen der Theoretischen Inormatik Sebastian Ianoski FH Wedel Kap. 2: Logik, Teil 2.1: Aussagenlogik FH Wedel Pro. Dr. Sebastian Ianoski GTI21 Folie
Vorsemesterkurs Informatik
Vorsemesterkurs Informatik Vorsemesterkurs Informatik Mario Holldack WS2015/16 30. September 2015 Vorsemesterkurs Informatik 1 Einleitung 2 Aussagenlogik 3 Mengen Vorsemesterkurs Informatik > Einleitung
Einführung in Prolog. Literatur
Einführung in Prolog Literatur Clocksin/Mellish Programming in Prolog Skript aus dem Kurs Max Hadersbeck Skript aus dem Kurs Hans Leiss Bratko Prolog Programming for Artificial Intelligence Prolog Lexikon
Wissensbasierte Systeme 7. Prädikatenlogik
Wissensbasierte Systeme 7. Prädikatenlogik Syntax und Semantik, Normalformen, Herbrandexpansion Michael Beetz Plan-based Robot Control 1 Inhalt 7.1 Motivation 7.2 Syntax und Semantik 7.3 Normalformen 7.4
Boolesche Algebra. Hans Joachim Oberle. Vorlesung an der TUHH im Wintersemester 2006/07 Montags, 9:45-11:15 Uhr, 14täglich TUHH, DE 22, Audimax 2
Universität Hamburg Department Mathematik Boolesche Algebra Hans Joachim Oberle Vorlesung an der TUHH im Wintersemester 2006/07 Montags, 9:45-11:15 Uhr, 14täglich TUHH, DE 22, Audimax 2 http://www.math.uni-hamburg.de/home/oberle/vorlesungen.html
Einführung in das Programmieren Prolog Sommersemester 2006. Teil 2: Arithmetik. Version 1.0
Einführung in das Programmieren Prolog Sommersemester 2006 Teil 2: Arithmetik Version 1.0 Gliederung der LV Teil 1: Ein motivierendes Beispiel Teil 2: Einführung und Grundkonzepte Syntax, Regeln, Unifikation,
Grundlagen der Programmierung
GdP2 Slide 1 Grundlagen der Programmierung Vorlesung 2 Sebastian Ianoski FH Wedel GdP2 Slide 2 Beispiel ür eine Programmveriikation Gegeben sei olgender Algorithmus: i (x>0) ((y+x) 0) then z := x y else
Logik Vorlesung 3: Äquivalenz und Normalformen
Logik Vorlesung 3: Äquivalenz und Normalformen Andreas Maletti 7. November 2014 Überblick Inhalt 1 Motivation und mathematische Grundlagen 2 Aussagenlogik Syntax und Semantik Äquivalenz und Normalformen
Satz. Für jede Herbrand-Struktur A für F und alle t D(F ) gilt offensichtlich
Herbrand-Strukturen und Herbrand-Modelle Sei F eine Aussage in Skolemform. Dann heißt jede zu F passende Struktur A =(U A, I A )eineherbrand-struktur für F, falls folgendes gilt: 1 U A = D(F ), 2 für jedes
Gliederung. Programmierparadigmen. Einführung in Prolog: Einführung in Prolog: Programmieren in Prolog. Einführung Syntax Regeln Listen Relationen
Gliederung Programmierparadigmen Programmieren in Prolog D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg 1 Sommer 2011, 26. April
Syntax der Prädikatenlogik: Variablen, Terme. Formeln. Freie und gebundene Variablen, Aussagen. Aufgabe
Syntax der Prädikatenlogik: Variablen, Terme Formeln Eine Variable hat die Form x i mit i = 1, 2, 3.... Ein Prädikatensymbol hat die Form Pi k und ein Funktionssymbol hat die Form fi k mit i = 1, 2, 3...
Funktionale Programmierung ALP I. λ Kalkül WS 2012/2013. Prof. Dr. Margarita Esponda. Prof. Dr. Margarita Esponda
ALP I λ Kalkül WS 2012/2013 Berechenbarkeit - inspiriert durch Hilbert's Frage - im Jahr 1900, Paris - Internationaler Mathematikerkongress Gibt es ein System von Axiomen, aus denen alle Gesetze der Mathematik
Mai 2006. Hauptseminar: Nichtrelationale Datenbanken Historisch-Kulturwissenschaftliche Informationsverarbeitung Universität zu Köln
Hauptseminar: Nichtrelationale Historisch-Kulturwissenschaftliche Informationsverarbeitung Universität zu Köln Mai 2006 Was ist eine Datenbank? Erweiterung relationaler um eine Deduktionskomponente Diese
Kapitel 1.3. Normalformen aussagenlogischer Formeln und die Darstellbarkeit Boolescher Funktionen durch aussagenlogische Formeln
Kapitel 1.3 Normalformen aussagenlogischer Formeln und die Darstellbarkeit Boolescher Funktionen durch aussagenlogische Formeln Mathematische Logik (WS 2011/12) Kapitel 1.3: Normalformen 1/ 29 Übersicht
TU5 Aussagenlogik II
TU5 Aussagenlogik II Daniela Andrade [email protected] 21.11.2016 1 / 21 Kleine Anmerkung Meine Folien basieren auf den DS Trainer von Carlos Camino, den ihr auf www.carlos-camino.de/ds findet ;)
Was bisher geschah. Aufgaben: Diagnose, Entscheidungsunterstützung Aufbau Komponenten und Funktion
Was bisher geschah Daten, Information, Wissen explizites und implizites Wissen Wissensrepräsentation und -verarbeitung: Wissensbasis Kontextwissen Problemdarstellung fallspezifisches Wissen repräsentiert
Vor(schau)kurs für Studienanfänger Mathematik: Aussagen und Mengen
Vor(schau)kurs für Studienanfänger Mathematik: Aussagen und Mengen 09.10.2014 Herzlich Willkommen zum 2. Teil des Vorschaukurses für Mathematik! Organisatorisches Der Vorkurs besteht aus sechs Blöcken
Motivation. Formale Grundlagen der Informatik 1 Kapitel 19. Syntax & Semantik. Motivation - Beispiel. Motivation - Beispiel
Motivation Formale Grundlagen der Informatik 1 Kapitel 19 & Die ist eine Erweiterung der Aussagenlogik. Sie hat eine größere Ausdrucksstärke und erlaub eine feinere Differenzierung. Ferner sind Beziehungen/Relationen
Prolog 3. Kapitel: Rekursion
Prolog 3. Kapitel: Rekursion Dozentin: Wiebke Petersen Kursgrundlage: Learn Prolog Now (Blackburn, Bos, Striegnitz) Petersen Prolog: Kapitel 3 1 Zusammenfassung: Kapitel 2 Wir haben gelernt wie komplexe
Strukturelle Rekursion und Induktion
Kapitel 2 Strukturelle Rekursion und Induktion Rekursion ist eine konstruktive Technik für die Beschreibung unendlicher Mengen (und damit insbesondere für die Beschreibung unendliche Funktionen). Induktion
De Morgan sche Regeln
De Morgan sche Regeln Durch Auswerten der Wahrheitswertetabelle stellen wir fest, dass allgemeingültig ist; ebenso (p q) p q (p q) p q. Diese beiden Tautologien werden als die De Morgan schen Regeln bezeichnet,
Übungsblatt Nr. 5. Lösungsvorschlag
Institut für Kryptographie und Sicherheit Prof. Dr. Jörn Müller-Quade Dirk Achenbach Tobias Nilges Vorlesung Theoretische Grundlagen der Informatik Übungsblatt Nr. 5 Aufgabe 1: Eine schöne Bescherung (K)
Grundlagen der Künstlichen Intelligenz
Grundlagen der Künstlichen Intelligenz 27. Aussagenlogik: Logisches Schliessen und Resolution Malte Helmert Universität Basel 28. April 2014 Aussagenlogik: Überblick Kapitelüberblick Aussagenlogik: 26.
Logik für Informatiker
Logik für Informatiker 2. Aussagenlogik Teil 6 14.05.2012 Viorica Sofronie-Stokkermans Universität Koblenz-Landau e-mail: [email protected] 1 Bis jetzt Syntax der Aussagenlogik: Definition der Menge
Formale Methoden 2. Gaetano Geck Lehrstuhl I Logik in der Informatik WS 2014/2015
Formale Methoden 2 Gaetano Geck Lehrstuhl I Logik in der Informatik WS 2014/2015 Teil 3: Logik 1 Aussagenlogik Einleitung Eigenschaften Äquivalenz Folgerung Normalformen 2 Prädikatenlogik Wenn eine Karte
SS April Übungen zur Vorlesung Logik Blatt 1. Prof. Dr. Klaus Madlener Abgabe bis 27. April :00h
SS 2011 20. April 2011 Übungen zur Vorlesung Logik Blatt 1 Prof. Dr. Klaus Madlener Abgabe bis 27. April 2011 10:00h 1. Aufgabe: [strukturelle Induktion, Übung] Zeigen Sie mit struktureller Induktion über
7. Formale Sprachen und Grammatiken
7. Formale Sprachen und Grammatiken Computer verwenden zur Verarbeitung von Daten und Informationen künstliche, formale Sprachen (Maschinenspr., Assemblerspachen, Programmierspr., Datenbankspr., Wissensrepräsentationsspr.,...)
MafI I: Logik & Diskrete Mathematik (F. Hoffmann)
Lösungen zum 14. und letzten Aufgabenblatt zur Vorlesung MafI I: Logik & Diskrete Mathematik (F. Hoffmann) 1. Ungerichtete Graphen (a) Beschreiben Sie einen Algorithmus, der algorithmisch feststellt, ob
Tiramisu Deklarativ Aus Eigelb, Mascarpone und in Likör und Kaffee getränkten Biskuits hergestellte cremige Süßspeise
Kapitel 3 Logik-Programmierung 3.1 Einführung Was statt Wie am Beispiel von Tiramisu Folie 145 Tiramisu Deklarativ Aus Eigelb, Mascarpone und in Likör und Kaffee getränkten Biskuits hergestellte cremige
Prädikate sind Funktionen. Prädikatenlogik. Quantoren. n stellige Prädikate. n stellige Prädikate:
Aussagenlogik: Aussagen Ausssageformen Prädikatenlogik beschäftigt sich mit Aussagen sind Sätze die entweder wahr oder falsch sind sind Sätze mit Variablen, die beim Ersetzen dieser Variablen durch Elemente
Aussagenlogik. Formale Methoden der Informatik WiSe 2010/2011 teil 7, folie 1 (von 50)
Aussagenlogik Formale Methoden der Informatik WiSe 2/2 teil 7, folie (von 5) Teil VII: Aussagenlogik. Einführung 2. Boolesche Funktionen 3. Boolesche Schaltungen Franz-Josef Radermacher & Uwe Schöning,
Einführung in die Logik
Einführung in die Logik Klaus Madlener und Roland Meyer 24. April 2013 Inhaltsverzeichnis 1 Aussagenlogik 1 1.1 Syntax................................. 1 1.2 Semantik............................... 3 1.3
3 Prädikatenlogik der 1. Stufe (PL1) Teil I
3 Prädikatenlogik der 1. Stufe (PL1) Teil I 3.3 Quantoren [ Gamut 70-74 McCawley 23-44 Chierchia 113-117 ]? Sind folgende Sätze jeweils synonym? (1) (a) Hans ist verheiratet oder nicht verheiratet. (b)
Proseminar Logik für Informatiker Thema: Prädikatenlogik (1.Teil)
Proseminar Logik für Informatiker Thema: Prädikatenlogik (1.Teil) Inhaltsverzeichnis 1. Warum eine mächtigere Sprache? 1.1. Einleitung 1.2. Definitionen 2. Prädikatenlogik als formale Sprache 2.1. Terme
Was bisher geschah: klassische Aussagenlogik
Was bisher geschah: klassische Aussagenlogik Syntax Symbole und Struktur Junktoren: t, f (nullstellig), (einstellig),,,, (zweistellig) aussagenlogische Formeln AL(P) induktive Definition: IA atomare Formeln
Die Formelsprache der Nichtstandardanalysis (NSA) und das Axiom vom idealen Punkt. Antje Rogalla Freie Universität Berlin
Die Formelsprache der Nichtstandardanalysis (NSA) und das Axiom vom idealen Punkt Antje Rogalla Freie Universität Berlin 31.10.2012 1 Inhaltsverzeichnis 1 Einleitung 3 2 Die Formelsprache der NSA 4 3 Das
t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )
Definition B : Menge der binären Bäume, rekursiv definiert durch die Regeln: ist ein binärer Baum sind t l, t r binäre Bäume, so ist auch t =, t l, t r ein binärer Baum nur das, was durch die beiden vorigen
SWP Logische Programme
SWP Logische Programme Alexander Felfernig, Stephan Gspandl Institut für Softwaretechnologie {alexander.felfernig,sgspandl}@ist.tugraz.at Institute for Software Technology Inhalt Motivation Logische Programme
Klausur Formale Systeme Fakultät für Informatik WS 2009/2010
Klausur Formale Systeme Fakultät für Informatik WS 2009/2010 Prof. Dr. Bernhard Beckert 18. Februar 2010 Name: Mustermann Vorname: Peter Matrikel-Nr.: 0000000 Klausur-ID: 0000 A1 (15) A2 (10) A3 (10) A4
Aussagenlogische Kalküle
Aussagenlogische Kalküle Ziel: mit Hilfe von schematischen Regeln sollen alle aus einer Formel logisch folgerbaren Formeln durch (prinzipiell syntaktische) Umformungen abgeleitet werden können. Derartige
Klausur Formale Systeme Fakultät für Informatik WS 2009/2010. Prof. Dr. Bernhard Beckert. 18. Februar 2010
Klausur Formale Systeme Fakultät für Informatik Name: Mustermann Vorname: Peter Matrikel-Nr.: 0000000 Klausur-ID: 0000 WS 2009/2010 Prof. Dr. Bernhard Beckert 18. Februar 2010 A1 (15) A2 (10) A3 (10) A4
Theoretische Grundlagen 1
Theoretische Grundlagen 1 Prüfung im Wintersemester 2003/04 Name, Vorname:... Matrikelnummer:... Hochschule Reutlingen - Reutlingen University Fachbereich: Informatik Bachelor-Studiengang/Semester: Medien-
Geschichte der Logik ist eng verknüpft mit (Sprach-) Philosophie. Logik untersucht, wie aus wahren Aussagen andere wahre Aussagen folgen
Was ist Logik? Geschichte der Logik ist eng verknüpft mit (Sprach-) Philosophie Logik untersucht, wie aus wahren Aussagen andere wahre Aussagen folgen Beschränkung auf "Aussage A folgt nach einer gegebenen
Übersicht. 9. Schließen in der Prädikatenlogik 1. Stufe
Übersicht I Künstliche Intelligenz II Problemlösen III Wissen und Schlußfolgern 6. Logisch schließende Agenten 7. Prädikatenlogik 1. Stufe 8. Entwicklung einer Wissensbasis 9. Schließen in der Prädikatenlogik
Prädikate zum Testen und Manipulieren der Struktur der Terme; Mehr meta-logische Prädikate z.b. zum Testen des Zustands der Ableitung;
Mehr Prolog Prolog bietet mehr an, z.b.: Prädikate zum Testen und Manipulieren der Struktur der Terme; Mehr meta-logische Prädikate z.b. zum Testen des Zustands der Ableitung; Mehr extra-logische Prädikate,
Klausur Informatik-Propädeutikum (Niedermeier/Hartung/Nichterlein, Wintersemester 2012/13)
Berlin, 21. Februar 2013 Name:... Matr.-Nr.:... Klausur Informatik-Propädeutikum (Niedermeier/Hartung/Nichterlein, Wintersemester 2012/13) 1 2 3 4 5 6 7 8 9 Σ Bearbeitungszeit: 90 min. max. Punktezahl:
Fakten, Regeln und Anfragen
Fakten, Regeln und Anfragen Prolog Grundkurs WS 99/00 Christof Rumpf [email protected] 18.10.99 GK Prolog - Fakten, Regeln und Anfragen 1 Programmieren = Problemlösen Prolog ist eine deklarative
Wissensbasierte Systeme/ Expertensysteme. Teil 2
Wissensbasierte Systeme/ Expertensysteme Teil 2 BiTS, Sommersemester 2004 Dr. Stefan Kooths KOOTHS BiTS: Wissensbasierte Systeme/Expertensysteme Teil 2 1 Gliederung 1. Einführung und Einordnung 2. Entscheidungsunterstützung(ssysteme)
