Logische Programmierung Einführende Beispiele
|
|
- Roland Schmidt
- vor 7 Jahren
- Abrufe
Transkript
1 Logische Programmierung Einführende Beispiele Verwandschaftsbeziehungen in Prolog vater(peter,maria). mutter(susanne,maria). vater(peter,monika). mutter(susanne,monika). vater(karl, peter). mutter(elisabeth, peter). vater(karl, pia). mutter(elisabeth, pia). vater(karl, paul). mutter(elisabeth, paul). KI, SS 07, F ol7, Seite 1, 26. Juni2007
2 frau(maria). frau(elisabeth). frau(susanne). frau(monika). frau(pia). mann(peter). mann(karl). mann(paul). Logische Programmierung Einführende Beispiele KI, SS 07, F ol7, Seite 2, 26. Juni2007
3 Prolog: einführendes Beispiel eltern(x,y) :- eltern(x,y) :- vater(x,y). mutter(x,y). %%%%% einfach aber nicht terminierend vorfahrtrans(x,y) :- eltern(x,y). vorfahrtrans(x,z) :- vorfahrtrans(x,y),vorfahrtrans(y,z). %%%%% einfach und terminierend vorfahr(x,y) :- eltern(x,y). vorfahr(x,z) :- eltern(x,y),vorfahr(y,z). bruder(x,y) :- mann(x),vater(z,x),vater(z,y), not(x == Y), mutter(m,x),mutter(m,y). schwester(x,y) :- frau(x),vater(z,x),vater(z,y), not(x == Y),mutter(M,X),mutter(M,Y). geschwister(x,y) :- vater(z,x),vater(z,y), not(x == Y),mutter(M,X),mutter(M,Y). KI, SS 07, F ol7, Seite 3, 26. Juni2007
4 Prolog: Graph-Beispiel ungerichteter Graph. a b e f c d g kante(a,b). kante(a,c). kante(c,d). kante(d,b). kante(b,e). kante(f,g). KI, SS 07, F ol7, Seite 4, 26. Juni2007
5 Prolog: Graph-Beispiel verbunden(x,y) :- kante(x,y). verbunden(x,y) :- kante(y,x). verbunden(x,z) :- kante(x,y),verbunden(y,z). verbunden(x,z) :- kante(y,x),verbunden(y,z). %%% verbunden2 terminiert verbunden2(x,y) :- verb(x,y,[]). ungkante(x,y) :- kante(x,y). ungkante(x,y) :- kante(y,x). verb(x,y,_) :- ungkante(x,y). verb(x,z,l) :- ungkante(x,y), not(member(y,l)), verb(y,z,[y L]). member(x,[x _]). member(x,[_ L]) :- member(x,l). KI, SS 07, F ol7, Seite 5, 26. Juni2007
6 Prolog: Listen und Mengen member(x,[x _]). member(x,[_ Y]) :- member(x,y). append([],x,x). append([x R],Y,[X Z]) :- append(r,y,z). listtoset([],[]). listtoset([x R],[X S]) :- remove(x,r,s1),listtoset(s1,s). remove(e,[],[]). remove(e,[e R],S):- remove(e,r,s). remove(e,[x R],[X S]):- not(e == X), remove(e,r,s). KI, SS 07, F ol7, Seite 6, 26. Juni2007
7 Prolog: Listen und Mengen union(x,y,z) :- append(x,y,xy), listtoset(xy,z). intersect([],x,[]). intersect([x R],S,[X T]) :- member(x,s),intersect(r,s,t1), listtoset(t1,t). intersect([x R],S,T) :- not(member(x,s)),intersect(r,s,t1), listtoset(t1,t). reverse([],[]). reverse([x R],Y) :- reverse(r,rr), append(rr,[x],y). reversea(x,y) :- reverseah(x,[],y). reverseah([x Xs],Acc,Y):- reverseah(xs,[x Acc],Y). reverseah([],y,y). KI, SS 07, F ol7, Seite 7, 26. Juni2007
8 Grundlagen der logischen Programmierung: deklarative Programmierung Theoretische Basis von Prolog: Prädikatenlogik erster Stufe Ausführung der Programme: Spezialisierung der Resolution. logischen Programme sind spezielle Klauseln: Horn-Klauseln KI, SS 07, F ol7, Seite 8, 26. Juni2007
9 Grundlagen der logischen Programmierung Eine Hornklausel ist eine Klausel mit maximal einem positiven Literal Eine definite Klausel ist eine Klausel mit genau einem positiven Literal. D.h. A B 1... B m oder in Notation der logischen Programmierung: A B 1,..., B m bzw. A :- B 1,..., B m Man nennt A den Kopf, {B 1,..., B m } den Rumpf der Klausel. KI, SS 07, F ol7, Seite 9, 26. Juni2007
10 Grundlagen der logischen Programmierung Eine Klausel ohne positive Literale nennt man definites Ziel (Anfrage,Query,goal). Notation: B 1,..., B n Die B i werden Unterziele (Subgoals) genannt. Eine Unit-Klausel (oder Fakt) ist eine definite Klausel mit leerem Rumpf. Notation: A. KI, SS 07, F ol7, Seite 10, 26. Juni2007
11 Grundlagen der logischen Programmierung Ein definites Programm ist eine Menge von definiten Klauseln. Die Menge aller Klauseln, deren Kopfliteral das Prädikat Q hat, nennen wir Definition von Q. KI, SS 07, F ol7, Seite 11, 26. Juni2007
12 Beispiele und Negationen Folgende Literale der Beispiele passen nicht zur Definition eines definiten Programms: not(x == Y) not(member(y,l)) not(e == X) not(member(x,s)) (wird noch besprochen) KI, SS 07, F ol7, Seite 12, 26. Juni2007
13 Modell-Eigenschaft der Definiten Programme Es gilt: Zu jedem definiten Programm P gibt es ein eindeutiges kleinstes Modell M P. M P besteht aus allen mit Resolution und Instanziierung herleitbaren Grund-Fakten. M P entspricht allen Atomen, die das Programm mit JA beantwortet. KI, SS 07, F ol7, Seite 13, 26. Juni2007
14 Anfragen an Prolog-Programme Das definite Ziel x 1,..., x n : B 1... B n ist äquivalent zu: x 1,..., x n : B 1... B n Die Anfrage ist: x 1,..., x n : B 1... B n KI, SS 07, F ol7, Seite 14, 26. Juni2007
15 Anfragen an Prolog-Programme Es gilt: für die Resolution auf Hornklausel-Mengen: im Falle der Herleitung der leeren Klausel werden die existierenden Objekte ausgerechnet D.h. Resolution berechnet Substitutionen, die Antworten auf die Anfrage sind. KI, SS 07, F ol7, Seite 15, 26. Juni2007
16 Anfragen an Prolog-Programme: Beispiel Für nicht-hornklauselmengen berechnet Resolution nicht immer eine (eindeutige) Antwort: Formel: Q(a) Q(b). Anfrage: x.q(x). Die Klauselmenge dazu ist : {{Q(a) Q(b)}, { Q(x)}} Resolution ergibt die leere Klausel. {x a}, {x b} werden beide verwendet! Q(a) Q(b) hat kein eindeutiges kleinstes Modell! KI, SS 07, F ol7, Seite 16, 26. Juni2007
17 SLD-Resolution SLD-Resolution ist eine spezielle Resolutionsstrategie ist die (operationale) prozedurale Semantik von definiten Programmen. definiert die Ausführung von logischen Programmen: S: Selektions-Funktion L: Lineare Resolution D: Definite Klauseln KI, SS 07, F ol7, Seite 17, 26. Juni2007
18 SLD-Resolution Definition G = A 1,..., A m,..., A k sei definites Ziel C = A B 1,..., B q eine definite Klausel. Resolutions-Herleitung eines neuen definiten Ziels G : A m ist das selektierte Atom des definiten Ziels G. θ ist ein allgemeinster Unifikator von A m und A, dem Kopf von C. G ist das neue Ziel: θ(a 1,..., A m 1, B 1,..., B q, A m+1,..., A k ). G ist eine Resolvente von G und C. Ableitungsrelation G P,C,m G KI, SS 07, F ol7, Seite 18, 26. Juni2007
19 Beispiel Definites Ziel: eltern(x, Y ). Klausel dazu: eltern(x, Y ) Programmklausel eltern(x, Y ) : mutter(x, Y ) Klauselschreibweise eltern(x 1, Y 1 ) mutter(x 1, Y 1 ) allg., Unifikator: X = X 1, Y = Y 1 Resolvente (neues Ziel) mutter(x, Y ) KI, SS 07, F ol7, Seite 19, 26. Juni2007
20 SLD-Resolution und SLD-Ableitung Definition Sei P ein definites Programm und G ein definites Ziel. Eine SLD-Ableitung von P {G} ist eine Folge G C1,m 1 G 1 C2,m 2 G 2... von SLD-Schritten wobei C i jeweils eine umbenannte Klausel aus P ist Die SLD-Ableitung ist eine SLD-Widerlegung, wenn sie mit einer leeren Klausel endet. C i nennt man auch die Eingabe-Klauseln. KI, SS 07, F ol7, Seite 20, 26. Juni2007
21 SLD-Resolution und SLD-Ableitung erfolgreiche SLD-Ableitung: Wenn es eine SLD-Widerlegung ist. fehlgeschlagene SLD-Ableitung: Wenn diese nicht fortsetzbar ist. unendliche SLD-Ableitung KI, SS 07, F ol7, Seite 21, 26. Juni2007
22 SLD-Ableitung Sei P ein definites Programm und G ein definites Ziel. Eine korrekte Antwort ist eine Substitution θ, so dass P = θ( G) gilt. Eine berechnete Antwort θ für P {G} ist eine Substitution: Einschränkung von θ n... θ 1 auf die Variablen von G, wobei θ 1... θ n die allgemeinsten Unifikatoren (in dieser Reihenfolge) zu einer SLD-Widerlegung von G sind. KI, SS 07, F ol7, Seite 22, 26. Juni2007
23 Beispiel Definites Ziel: eltern(x, Y ). Klausel dazu: eltern(x, Y ) Programmklausel eltern(x, Y ) : mutter(x, Y ) Klauselschreibweise eltern(x 1, Y 1 ) mutter(x 1, Y 1 ) allg., Unifikator θ 1 X = X 1, Y = Y 1 Resolvente (neues Ziel) mutter(x 1, Y 1 ) Programmklausel mutter(susanne, maria). allg., Unifikator θ 2 X 1 = susanne, Y 1 = maria Antwort: θ 2 θ 1 : X = susanne, Y = maria KI, SS 07, F ol7, Seite 23, 26. Juni2007
24 SLD-Ableitung: Korrektheit Es gilt: Korrektheit (Soundness) der SLD-Resolution Sei P ein definites Programm und G ein definites Ziel. Dann ist jede berechnete Antwort θ auch korrekt. D.h. P = θ( G) KI, SS 07, F ol7, Seite 24, 26. Juni2007
25 Vollständigkeit der SLD-Resolution Wir betrachten verschiedene Vollständigkeitsaussagen für die SLD- Resolution. Satz (Widerlegungsvollständigkeit) Sei P ein definites Programm und G ein definites Ziel. Wenn P {G} unerfüllbar ist, dann gibt es eine SLD-Widerlegung von P {G}. KI, SS 07, F ol7, Seite 25, 26. Juni2007
26 Vollständigkeit der SLD-Resolution Es gilt ein stärkerer Satz über die Vollständigkeit der berechneten Antworten: zu jeder Antwortsubstitution gibt es eine allgemeinere berechnete Antwort Satz (Vollständigkeit der SLD-Resolution) Sei P ein definites Programm und G ein definites Ziel. Zu jeder korrekten Antwort θ gibt es eine berechnete Antwort σ für P {G} und eine Substitution γ so dass x F V (G): γσ(x) = θ(x). KI, SS 07, F ol7, Seite 26, 26. Juni2007
27 Strategien zur Berechnung der Antworten Breitensuche: 1. Gegeben Programm P und ein Ziel A 1,..., A n : (a) Probiere alle Möglichkeiten aus, ein Unterziel A aus A 1,..., A n auszuwählen (b) Probiere alle Möglichkeiten aus, eine Resolution von A mit einem Kopf einer Programmklausel durchzuführen. 2. Erzeuge neues Ziel B: Löschen von A, Instanziieren des restlichen Ziels, Hinzufügen des Rumpfs der Klausel. 3. Wenn B =, dann gebe die Antwort aus. Sonst: mache weiter mit 1. mit dem Ziel B. KI, SS 07, F ol7, Seite 27, 26. Juni2007
28 Strategien zur Berechnung der Antworten Breitensuche hat zwei Verzweigungspunkte pro Resolutionsschritt: Die Auswahl eines Atoms aus der Anfrage Die Auswahl einer Klausel zum Resolvieren Es gilt: die Auswahl des Atoms ist don t care Die Suche bleibt vollständig, wenn man die Alternativen weglässt. Z.B. leicht zu lösende Atome kann man zuerst auswählen Umstellung kann aber unendlich tiefe Suchpfade einführen KI, SS 07, F ol7, Seite 28, 26. Juni2007
29 Strategien Eine vollständige Suchstrategie: Breitensuche über die Resolutionsmöglichkeiten Anfrage als Stack von Atomen Reihenfolge der Atome wie in definiten Klauseln KI, SS 07, F ol7, Seite 29, 26. Juni2007
30 Strategien in Prolog-Implementierung Tiefensuche, d.h. noch deterministischer: Anfrage als Stack Die Programmklauseln werden in der Reihenfolge abgesucht, in der sie im Programm stehen. Prolog benutzt die Tiefensuche Rechts-Links-Ordnung ist definiert durch die Reihenfolge der Klauseln im Programm und die Reihenfolge der Literale in den Rümpfen KI, SS 07, F ol7, Seite 30, 26. Juni2007
31 Prolog-Implementierung Weitere Veränderungen gegenüber der theoretischen Fundierung sind: Der occurs-check wird i.a. nicht durchgeführt. CUT- Operatoren zum Beeinflussen des Backtracking zb nur erste Sub-Antwort statt aller Lösungen Assert/Retract: Damit können Programmklauseln zum Programm hinzugefügt bzw. gelöscht werden. I.a, betrifft dies nur Fakten. Negation: Negation wird definiert als Fehlschlagen der Suche. Typinformation zu Programmen hinzugefügt. moded Argumente von Prädikaten haben Markierung I bzw. O : Input, Output Prädikat als Funktionen, wenn deterministisch. KI, SS 07, F ol7, Seite 31, 26. Juni2007
32 Prolog-Implementierung Vergleich der theoretischen Eigenschaften mit der Implementierung. Pures Prolog nichtpures Prolog nichtpur, Definite Programme Cut, Negation, ohne occurs-check Klauselreihenfolge fest SLD: korrekt SLD: korrekt SLD: i.a. nicht korrekt vollständig unvollständig unvollständig KI, SS 07, F ol7, Seite 32, 26. Juni2007
33 Implementierung: Beispiele für Unvollständigkeit bei festgelegten Reihenfolge der Klauseln: P(a,b). P(c,b). P(X,Y) :- P(Y,X). P(X,Z) :- P(X,Y), P(Y,Z). Die symmetrisch-transitive Hülle kann nicht berechnet werden, da das Programm in eine Schleifen gerät. Aber eine SLD-Widerlegung existiert, da diese nicht-deterministisch vorgehen darf, und insbesondere sich eine Programmklausel aussuchen darf. KI, SS 07, F ol7, Seite 33, 26. Juni2007
34 Beispielprogramme und Prolog-Ausführung likes (maria, essen). likes(maria,wein). likes(peter, maria). likes(peter,wein). Einfache Anfragen: >?- likes(peter,maria) yes Konjunktive Anfragen (mit logischem und verknüpfte) >?- likes(peter,maria), likes(maria,peter) no KI, SS 07, F ol7, Seite 34, 26. Juni2007
35 Zuerst wird das erste Unterziel bearbeitet: Antwort:. ja, Dann zweite: nein. Konjunktive Anfragen mit Instanziierung. >?- likes(peter, X), likes(maria,x) Abarbeitung: 1. X = maria, likes(maria,maria): no 2. X = wein: likes(maria,wein). yes X = wein Backtracking ist notwendig (Zurücksetzen) zum Finden weiterer Lösungen.
36 Beispielprogramm und Prolog-Ausführung vater(peter,maria). mutter(susanne,maria). vater(karl, peter). mutter(elisabeth, peter).... vorfahr(x,y) :- vater(x,y). vorfahr(x,y) :- mutter(x,y). vorfahr(x,z) :- vorfahr(x,y),vorfahr(y,z). KI, SS 07, F ol7, Seite 36, 26. Juni2007
37 Prolog-Abarbeitung: Anfragen:?- vorfahr(elisabeth,maria) Abarbeitung : 1. vorfahr(elisabeth,maria) 1.1 vater(elisabeth,maria). nein 1.2 mutter(elisabeth,maria): nein 1.3 vorfahr(elisabeth, X0), vorfahr(x0,maria) vater(elisabeth, X0), vorfahr(x0,maria): nein mutter(elisabeth, X0), vorfahr(x0,maria): X0 = peter vorfahr(peter,maria): vater(peter,maria): ja usw. KI, SS 07, F ol7, Seite 37, 26. Juni2007
38 Syntaxkonventionen von Prolog Namen Aus Großbuchstaben, Kleinbuchstaben, Ziffern und (Unterstrich) oder nur aus Sonderzeichen Konstanten: Variablen: erstes Zeichen ist Kleinbuchstabe erstes Zeichen ist Großbuchstabe oder oder nur: (wildcard, joker, Leerstelle) Terme Funktor(component 1,...,component n ) Stelligkeit von Prädikaten/ Funktionen ist nicht variabel. gleicher Funktorname mit verschiedener Stelligkeit ergibt anderen Funktor z.b. Schreibweise: vater/2 KI, SS 07, F ol7, Seite 38, 26. Juni2007
39 arithmetische Ausdrücke: Die Operatoren +,,, / und die Vergleichsoperatoren <=,... sind erlaubt. Infix usw. ist teilweise möglich: z.b. a b + c steht für den Term +( (a, b), c). Zahlen sind abhängig von der Implementierung. KI, SS 07, F ol7, Seite 39, 26. Juni2007
40 Gleichheit Spezialprädikat = (Gleichheit) kann definiert werden durch X = X. Z.B.?- besitzt(peter, X) = besitzt(peter,buch(lloyd,prolog)) yes; X = buch(lloyd,prolog) Gleichheitsabarbeitung benutzt Unifikation KI, SS 07, F ol7, Seite 40, 26. Juni2007
41 Arithmetische Vergleiche erlaubte Operatoren: =, \=, <, >, =<, >=, =\=, =:= Beachte: die Operanden müssen als Zahl ausgewertet sein vor Auswertung des Ausdrucks = 7 ergibt: no =:= 7 ergibt yes D.h., es gibt einen Unterschied zwischen Term und Wert. KI, SS 07, F ol7, Seite 41, 26. Juni2007
42 Zuweisung und Auswertung Zuweisung mit gleichzeitiger Auswertung kann man mit is durchführen: X is danach: X 8 X = danach X KI, SS 07, F ol7, Seite 42, 26. Juni2007
43 Datenstrukturen und Unifikation in Prolog Term-Gleichungen werden durch Instanziierung der Variablen gelöst: d.h. durch Unifikation k(x, a) = k(b, Y ) ergibt X = b, Y = a Auch Unterstrukturen können Wert von Variablen sein: k(x, h(a, Z)) = k(b, Y ) ergibt X = b, Y = h(a, Z) KI, SS 07, F ol7, Seite 43, 26. Juni2007
44 Datenstrukturen und Unifikation in Prolog: Beispiel k(x, h(a, Z), X) = k(h(y, b), U, U) ergibt zunächst: X = h(y, b), U = h(a, Z), X = U Endergebnis: X = h(a, b), U = h(a, b), Y = a, Z = b KI, SS 07, F ol7, Seite 44, 26. Juni2007
45 Beispiel Unifikation Dieses Ergebnis kann man z.b. im Prolog Interpreter direkt verifizieren. k(x,h(a,z),x) = k(h(y,b),u,u). X = h(a,b) Z = b Y = a U = h(a,b) yes KI, SS 07, F ol7, Seite 45, 26. Juni2007
46 Behandlung des occurs-check k(x, X) = k(y, h(y )) erfordert Unifikation von X = h(x). Es gibt eine Lösung in unendlichen Bäume: X = h(h(h(...))). h Prolog-Implementierungen vermeiden den occurs-check. Oft abgeschaltet: ist nicht korrekt bzgl. P L 1 -Semantik Teilweise Elimination durch statische Analyse eliminiert. KI, SS 07, F ol7, Seite 46, 26. Juni2007
47 Listen in Prolog Prolog benutzt eine abkürzende Syntax: [1, 2, 3] entspricht cons(1,cons(2,cons(3,nil))) [] entspricht nil KI, SS 07, F ol7, Seite 47, 26. Juni2007
48 Listen in Prolog: member Element-Test mittels member member(x,[x _]). member(x,[_ Y]) :- member(x,y). Terminiert member in allen möglichen Situationen? member(s,t): wenn t keine Variablen enthält. dann wird t nächsten mal kleiner. beim KI, SS 07, F ol7, Seite 48, 26. Juni2007
49 member. Terminierung? member(y,y): Die erste Klausel unifiziert nicht (aber unifiziert, wenn occurs-check aus ist: Antwort: ja) Die zweite Klausel ergibt: member(x_1,[_ Y_1]) :- X_1 = Y = [_ Y_1] member(x_1,y_1). Die neue Anfrage ist: member([_ Y_1],Y_1) Nächste Unifikation ebenfalls mit zweiter Klausel member(x_2,[_ Y_2]) :- member(x_2,y_2) X_2 = [_ Y_1], Y_1 = [_ Y_2] usw. Man sieht: das terminiert nicht. KI, SS 07, F ol7, Seite 49, 26. Juni2007
50 Listen in Prolog: islist islist([_ X]) :- islist(x). islist([]). Diese Funktion terminiert ebenfalls für Listen ohne Variablen aber nicht für islist(x). Eine Umstellung der Klauseln ergibt: islist([]). islist([_ X]) :- islist(x). Dieses Programm terminiert für die Anfrage islist(x). Antwort: X = [], falls die Eingabe eine Liste ist. Antwort ist dann ja. KI, SS 07, F ol7, Seite 50, 26. Juni2007
51 Listen in Prolog: length laenge([],0). laenge([_ X],N) :- laenge(x,n_1), N is N_ Damit kann man folgende Beispiele rechnen:?- laenge([1,2,3], N). N = 3.?- laenge(x,2). Antwort X = [ 1, 2]. Aber: terminiert in manchen Implementierungen nicht KI, SS 07, F ol7, Seite 51, 26. Juni2007
52 Sortiere Listen von Zahlen: sortiert([]). sortiert([x]). sortiert([x [Y Z]]) :- X <= Y, sortiert([y Z]). sortiert_einfuegen(x,[],[x]). sortiert_einfuegen(x,[y Z], [X [Y Z]]) :- X =< Y. sortiert_einfuegen (X,[Y Z], [Y U]) :- Y < X, sortiert_einfuegen(x,z,u). ins_sortiere(x,x) :- sortiert(x). ins_sortiere([x Y], Z) :- ins_sortiere(y,u), sortiert_einfuegen(x,u,z). KI, SS 07, F ol7, Seite 52, 26. Juni2007
53 Programmierung von append: in Prolog: append([],x,x). append([x Y],U,[X Z]) :- append(y,u,z). KI, SS 07, F ol7, Seite 53, 26. Juni2007
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
MehrEiniges zu Resolutionen anhand der Aufgaben 6 und 7
Einiges zu Resolutionen anhand der Aufgaben 6 und 7 Es gibt eine Fülle von verschiedenen Resolutionen. Die bis jetzt behandelten möchte ich hier noch ein Mal kurz erläutern. Ferner möchte ich noch auf
MehrAussagenlogik 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
MehrNormalformen 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) Ÿ ÿ
MehrÜ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
MehrLogische Programmierung
Logische Programmierung B-82 Deklaratives Programmieren in Prädikatenlogik: Problem beschreiben statt Algorithmus implementieren (idealisiert). Grundlagen: Relationen bzw. Prädikate (statt Funktionen);
MehrBeispiel. 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
MehrWissensreprä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)
MehrUnifikation (1) Allgemeines: Mechanismus zur Parameter-Übergabe. Zuweisung an Variablen (einmalig, symmetrisch). Pattern-Matching (Muster-Vergleich).
4. Prolog Ausführung 4-1 Unifikation (1) Allgemeines: Mechanismus zur Parameter-Übergabe. Zuweisung an Variablen (einmalig, symmetrisch). Pattern-Matching (Muster-Vergleich). Substitution: Abbildung von
MehrFragen 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
MehrEinfü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
MehrProlog 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:
MehrLogik für Informatiker
Logik für Informatiker 2. Aussagenlogik Teil 6 14.05.2012 Viorica Sofronie-Stokkermans Universität Koblenz-Landau e-mail: sofronie@uni-koblenz.de 1 Bis jetzt Syntax der Aussagenlogik: Definition der Menge
MehrGrundlagen 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.
MehrGliederung. 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
Mehr5 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
MehrWissensbasierte 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
MehrLISTEN. Programmierkurs Prolog p.1
LISTEN Programmierkurs Prolog p.1 Liste Listen sind rekursive Datenstrukturen, die dazu dienen geordnete Mengen von Elementen zu beschreiben. Man kann sich Listen in Prolog als Behälter vorstellen, die
MehrZusammenfassung des Stoffes zur Vorlesung Formale Systeme
Zusammenfassung des Stoffes zur Vorlesung Formale Systeme Max Kramer 13. Februar 2009 Diese Zusammenfassung entstand als persönliche Vorbereitung auf die Klausur zur Vorlesung Formale Systeme von Prof.
MehrProf. Dr. sc. Hans-Dieter Burkhard Vorlesung Winter-Semester 2003/04. Wissensrepräsentation: Resolution (im PK1)
Einführung in die KI Prof. Dr. sc. Hans-Dieter Burkhard Vorlesung Wissensrepräsentation: Resolution (im PK1) 2. Resolution Vorbild für Formalismus : exakt, präzise, (theoretisch) beherrscht Aufbau: Zeichen
MehrGrundlagen 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
MehrEinfü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,
MehrHaskell, Typen, und Typberechnung. Grundlagen der Programmierung 3 A. Einige andere Programmiersprachen. Typisierung in Haskell
Haskell, Typen, und Typberechnung Grundlagen der Programmierung 3 A Typen, Typberechnung und Typcheck Prof. Dr. Manfred Schmidt-Schauß Ziele: Haskells Typisierung Typisierungs-Regeln Typ-Berechnung Milners
Mehr6.1 Syntax und Semantik von Constraint-Logikprogrammen
Kapitel 6 Logikprogrammierung mit Constraints Nachdem wir nun sowohl die reine Logikprogrammierung als auch ihre Implementierung in der Sprache Prolog betrachtet haben, wollen wir uns zum Schluss mit einer
MehrPROLOG. Tutorium zur Vorlesung Datenbanken und Wissensrepräsentation (Prof. Dr. G. Büchel)
PROLOG Tutorium zur Vorlesung Datenbanken und Wissensrepräsentation (Prof. Dr. G. Büchel) Stand: April 2010 Verfasser: Dipl.-Ing. (FH) Andreas W. Lockermann Vorwort Der Name PROLOG leitet sich aus den
MehrAussagenlogik 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
MehrBinä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.
MehrEntscheidungsverfahren 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
MehrProlog. Vertiefungsmodul Programmiersprachen. VM Programmiersprachen - Prolog. Florian Kleene
Prolog Vertiefungsmodul Programmiersprachen VM Programmiersprachen - Prolog Florian Kleene Entstehung und Geschichte Aufbau von Prolog Programmen Fakten Regeln Anfragen Funktionsweise des Interpreters
MehrErfüllbarkeit von Horn-Klauseln und Berechnung des kleinsten Herbrand-Modells
Erfüllbarkeit von Horn-Klauseln und Berechnung des kleinsten Herbrand-Modells Effiziente Entscheidung der Erfüllbarkeit von Horn-Klauseln Effiziente Berechnung des kleinsten Herbrand-Modells M P Naive
MehrLogikprogrammierung. gehalten von Prof Dr. Jürgen Giesl im Sommersemester 2006 an der RWTH Aachen
Logikprogrammierung gehalten von Prof Dr. Jürgen Giesl im Sommersemester 2006 an der RWTH Aachen eine studentische Mitschrift von Florian Heller florian@heller-web.net Diese Mitschrift erhebt keinen Anspruch
Mehr8. 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).
MehrMathematik für Informatiker I
Mathematik für Informatiker I Mitschrift zur Vorlesung vom 19.10.2004 In diesem Kurs geht es um Mathematik und um Informatik. Es gibt sehr verschiedene Definitionen, aber für mich ist Mathematik die Wissenschaft
MehrLogic 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
MehrKopf und Rest einer Liste (head and tail): Trennung durch. Listenkopf: kann mehrere Elemente umfassen
Prolog Syntax Liste, Variable [ Term Liste ] Listenelemente: Trennung durch Komma [1, pferd, klaus] Kopf und Rest einer Liste (head and tail): Trennung durch [K R] = [1, pferd, klaus] (K = 1, R = [pferd,
MehrAlgorithmen für OBDD s. 1. Reduziere 2. Boole sche Operationen
Algorithmen für OBDD s 1. Reduziere 2. Boole sche Operationen 1 1. Reduziere siehe auch M.Huth und M.Ryan: Logic in Computer Science - Modelling and Reasoning about Systems, Cambridge Univ.Press, 2000
MehrLogik-Programme. Eine Tatsachenklausel ist eine einelementige positive Klausel, d.h. sie hat
Logik-Programme Definition: Eine Tatsachenklausel ist eine einelementige positive Klausel, d.h. sie hat die Form {P }. Eine Prozedurklausel ist eine Klausel der Form {P, Q 1, Q 2,..., Q k } mit k 1. P
Mehr3. Logik-Programmierung
3. Logik-Programmierung 3.1. Vorbemerkungen Idee: Ausführen eines Logik-Programms entspricht Herleitung leerer Klausel. Zusätzliche Verwendung einer Antworterzeugungskomponente (liefert Rechenergebnis).
MehrPrüfungsprotokoll Kurs 1825 Logik für Informatiker. Studiengang: MSc. Informatik Prüfer: Prof. Dr. Heinemann Termin: Januar 2015
Prüfungsprotokoll Kurs 1825 Logik für Informatiker Studiengang: MSc. Informatik Prüfer: Prof. Dr. Heinemann Termin: Januar 2015 1. Aussagenlogik Alphabet und AS gegeben, wie sind die Aussagenlogischen
MehrFakten, Regeln und Anfragen
Fakten, Regeln und Anfragen Prolog Grundkurs WS 99/00 Christof Rumpf rumpf@uni-duesseldorf.de 18.10.99 GK Prolog - Fakten, Regeln und Anfragen 1 Programmieren = Problemlösen Prolog ist eine deklarative
MehrPrä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,
MehrEinführung in die Constraint-Programmierung
examen.press Einführung in die Constraint-Programmierung Grundlagen, Methoden, Sprachen, Anwendungen Bearbeitet von Petra Hofstedt, Armin Wolf 1. Auflage 2007. Taschenbuch. xii, 388 S. Paperback ISBN 978
MehrSS2010 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.................................
MehrTeil 8. Resolution und Prädikatenlogik erster Stufe
Teil 8 Resolution und Prädikatenlogik erster Stufe Widerlegungsbeweise Grundidee Widerlegungsbeweise: Wir wollen beweisen, dass aus einer gegebenen Formelmenge Φ eine Behauptung (Formel) φ semantisch folgt.
MehrProlog = Programmierung in Logik (Roussell, Colmerauer, 1973/74)
Logikprogrammierung Historie: Philosophie / Mathematik Künstliche Intelligenz Praktische Programmiersprache: Prolog = Programmierung in Logik (Roussell, Colmerauer, 1973/74) Grundidee: Ein Programm ist
MehrDatenstruktur 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.
Mehr1 Aussagenlogische Formeln
1 Aussagenlogische Formeln Aufgabe 1.1 Transformieren Sie die Formel in disjunktive Normalform (DNF). ((:A! :B) ^ D)! ((A _ C) $ (:B ^ D)) Lösung 1.1 Schrittweise Transformation: Schritt 1: ((:A! :B) ^
MehrDiskrete Strukturen Kapitel 2: Grundlagen (Beweise)
WS 2014/15 Diskrete Strukturen Kapitel 2: Grundlagen (Beweise) Hans-Joachim Bungartz Lehrstuhl für wissenschaftliches Rechnen Fakultät für Informatik Technische Universität München http://www5.in.tum.de/wiki/index.php/diskrete_strukturen_-_winter_14
MehrLogik Vorlesung 6: Resolution
Logik Vorlesung 6: Resolution Andreas Maletti 28. November 2014 Überblick Inhalt 1 Motivation und mathematische Grundlagen 2 Aussagenlogik Syntax und Semantik Äquivalenz und Normalformen Weitere Eigenschaften
MehrÜbung 4: Aussagenlogik II
Übung 4: Aussagenlogik II Diskrete Strukturen im Wintersemester 2013/2014 Markus Kaiser 8. Januar 2014 1/10 Äquivalenzregeln Identität F true F Dominanz F true true Idempotenz F F F Doppelte Negation F
MehrBachelor Grundlagen der Logik und Logikprogrammierung 12. Februar 2009 3
Bachelor Grundlagen der Logik und Logikprogrammierung 12. Februar 2009 3 Aufgabe 1 (20 Punkte) Dialogische Logik a) Was isteine formal wahrebehauptung? Welche Aussageschematasindallgemeingültig? b) Überprüfen
MehrProlog-Strukturen. bersicht. Woraus besteht ein Prolog-Programm? EinfŸhren wichtiger Begriffe Verschiedene Arten von Termen Unifikation
Prolog-Strukturen bersicht Woraus besteht ein Prolog-Programm? Fakten, Regeln und Anfragen Kommentare EinfŸhren wichtiger Begriffe Verschiedene Arten von Termen Unifikation Was ist Unifikation? Unifikation
MehrBaumsuche, Partielle Ordnungen und eine neue Familie uninformierter A
Baumsuche, Partielle Ordnungen und eine neue Familie uninformierter Algorithmen..9 Übersicht Einführung Übersicht - Verfahren - Eigenschaften Übersicht - Verfahren - Eigenschaften Übersicht - Verfahren
Mehr1 Prädikatenlogik: Korrektheit, Vollständigkeit, Entscheidbarkeit
1 Prädikatenlogik: Korrektheit, Vollständigkeit, Entscheidbarkeit 1.1 Korrektheit Mit dem Kalkül der Prädikatenlogik, z.b. dem Resolutionskalkül, können wir allgemeingültige Sätze beweisen. Diese Sätze
MehrDatenstrukturen DCG Grammatiken. Tutorial I Operationen auf Datenstrukturen II Bäume DCGs und Semantik II
Datenstrukturen DCG Grammatiken Tutorial I Operationen auf Datenstrukturen II Bäume DCGs und Semantik II Bäume Repräsentation von Mengen durch binäre Bäume: Eine häufige Anwendung von Listen ist es Mengen
MehrFormale Sprachen, reguläre und kontextfreie Grammatiken
Formale Sprachen, reguläre und kontextfreie Grammatiken Alphabet A: endliche Menge von Zeichen Wort über A: endliche Folge von Zeichen aus A A : volle Sprache über A: Menge der A-Worte formale Sprache
MehrEinführung in die Informatik I (autip)
Einführung in die Informatik I (autip) Dr. Stefan Lewandowski Fakultät 5: Informatik, Elektrotechnik und Informationstechnik Abteilung Formale Konzepte Universität Stuttgart 24. Oktober 2007 Was Sie bis
Mehr3. 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,
MehrTU5 Aussagenlogik II
TU5 Aussagenlogik II Daniela Andrade daniela.andrade@tum.de 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 ;)
MehrGrundlagen der Theoretischen Informatik
Grundlagen der Theoretischen Informatik Sommersemester 2015 22.04.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Bis jetzt 1. Terminologie 2. Endliche Automaten und reguläre Sprachen
MehrMusterlö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
MehrEine Einführung in Prolog
Eine Einführung in Prolog Emanuel Kitzelmann Professur für Angewandte Informatik / Kognitive Systems Fakultät für Wirtschaftsinformatik und Angewandte Informatik Otto-Friedrich-Universität Bamberg D-96045
Mehr-ein Mustervergleicher ist ein Programm, das überprüft, ob ein Datum zu einem gegebenen Muster passt.
Thema: Wie ein beispielhaftes Query-System funktioniert Vortragender: Petar Tonev 1. Vorworte - - Ziele und Aufgaben des Vortrags klären wie das für Beispiel verwendete Anfragesystem die Herleitung musterbasierter
MehrÜbersicht Listen werden geführt für Listen Die wichtigste nicht-nummerische Datenstruktur Beliebige Länge Strikte Reihenfolge Wunschliste für Listen
n Einkaufslisten und Wortlisten Übersicht n Die wichtigste nicht-nummerische Datenstruktur beliebige Länge und fixe Reihenfolge n vs. n-stellige Terme Spezialnotation Klammerschreibweise nrest-strich n-unifikation
MehrListen. bersicht. Zweck. Listen allgemein Listen in Prolog. Programmiertechniken mit Listen. Erstellen von Prolog-Programmen mit Listen
Listen bersicht Listen allgemein Listen in Prolog Schreibweise Listen als rekursive Datenstruktur Unifikation Programmiertechniken mit Listen Zweck rekursive Suche Abbilden Erstellen von Prolog-Programmen
MehrAlgorithmen & Programmierung. Ausdrücke & Operatoren (1)
Algorithmen & Programmierung Ausdrücke & Operatoren (1) Ausdrücke Was ist ein Ausdruck? Literal Variable Funktionsaufruf Ausdruck, der durch Anwendung eines einstelligen (unären) Operators auf einen Ausdruck
MehrPROLOG. Eine Einführung. Sven Naumann
PROLOG Eine Einführung Sven Naumann Sommersemester 2007 Inhaltsverzeichnis I Logikprogrammierung 7 1 Grundbegriffe 11 1.1 Prolog und Logikprogrammierung.................. 11 1.2 Terme.................................
MehrGrundlagen der Theoretischen Informatik
Grundlagen der Theoretischen Informatik Sommersemester 2016 20.04.2016 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Bis jetzt 1. Terminologie 2. Endliche Automaten und reguläre Sprachen
MehrFormale Systeme, WS 2012/2013 Lösungen zu Übungsblatt 4
Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Peter H. Schmitt David Farago, Christoph Scheben, Mattias Ulbrich Formale Systeme, WS 2012/2013 Lösungen zu Übungsblatt
MehrMafI 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
MehrResolution (1) Wir versuchen, durch eine Substitution die Variablen in geeigneter Weise durch Terme zu ersetzen, so dass beide Atome gleich werden.
Resolution (1) Voraussetzung: Klauselform Beispiel: { P(x, f (y))} {P(z, f (g(z)))} Aus dieser Klauselmenge können wir nur dann die leere Klausel ableiten, wenn es uns gelingt, die beiden Atome P(x, f
MehrTheoretische Grundlagen des Software Engineering
Theoretische Grundlagen des Software Engineering 9: Prädikatenlogik schulz@eprover.org Rückblick 2 Rückblick: Vor- und Nachteile von Aussagenlogik Aussagenlogik ist deklarativ: Syntaxelemente entsprechen
MehrLogik für Informatiker
Vorlesung Logik für Informatiker 7. Aussagenlogik Analytische Tableaus Bernhard Beckert Universität Koblenz-Landau Sommersemester 2006 Logik für Informatiker, SS 06 p.1 Der aussagenlogische Tableaukalkül
MehrVorlesung: Künstliche Intelligenz
Vorlesung Fachbereich Mathematik/Informatik AG Vorlesung: - Logisches Schließen - P LS ES Marco Block-Berlitz 1 Vorlesung Fachbereich Mathematik/Informatik AG Inhaltliche Planung für die Vorlesung 1) Definition
MehrGrundbegriffe. Grammatiken
Grammatiken Grammatiken in der Informatik sind ähnlich wie Grammatiken für natürliche Sprachen ein Mittel, um alle syntaktisch korrekten Sätze (hier: Wörter) einer Sprache zu erzeugen. Beispiel: Eine vereinfachte
MehrEinfü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
MehrMartin Kreuzer Stefan Kühling Logik für Informatiker
Martin Kreuzer Stefan Kühling Logik für Informatiker ein Imprint von Pearson Education München Boston San Francisco Harlow, England Don Mills, Ontario Sydney Mexico City Madrid Amsterdam Hornlogik 3.A
MehrPROLOG Einführung. 1. Grundlagen. 2. Syntax. 3. Matching (Unifikation) 4. Semantik. 5. Listen. 6. Erweiterungen (Builtins) 7. Metalogische Konstrukte
1. Grundlagen 2. Syntax 3. Matching (Unifikation) 4. Semantik 5. Listen 6. Erweiterungen (Builtins) 7. Metalogische Konstrukte PROLOG Einführung Repräsentation von Wissen Regeln Anfragen Drundlagen Repräsentation
MehrTiramisu 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
MehrUniversität des Saarlandes
Universität des Saarlandes FR 6.2 Informatik Prof. Dr. Kurt Mehlhorn WiSe 2015/2016 Übungen zu Ideen der Informatik http://www.mpi-inf.mpg.de/departments/algorithms-complexity/teaching/winter15/ideen/
MehrTheorem Proving. Software Engineering in der Praxis. Prädikatenlogik. Software Engineering in der Praxis Wintersemester 2006/2007
Seite 1 Theorem Proving Prädikatenlogik Seite 2 Gliederung Warum Theorembeweisen? Wie funktioniert Theorembeweisen? Wie kann mir das Werkzeug KIV dabei helfen? Seite 3 Warum Theorembeweisen? Wie kann man
MehrWas ist Logische Programmierung?
Was ist Logische Programmierung? Die Bedeutung eines Computer-Programms kann durch Logik erklärt werden. Die Idee der logischen Programmierung besteht darin, die Logik eines Programms selber als Programm
MehrProgrammierkurs Prolog, SS 1998
Programmierkurs Prolog SS 1998 Universität Dortmund LS VIII - Prof. K. Morik Inhalt Vergleiche von Termen Typtests auf Termen Zugriff auf den Termaufbau Zugriff auf Fakten und Regeln All-Solutions Prädikate
MehrWissensbasierte 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)
MehrLogische und funktionale Programmierung
Logische und funktionale Programmierung Vorlesung 2: Prädikatenkalkül erster Stufe Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca csacarea@cs.ubbcluj.ro 14. Oktober 2016 1/38 DIE INTERPRETATION
MehrÜbungen zu Kognitive Systeme I
Übungen zu Kognitive Systeme I Kognitive Systeme / WIAI / Uni Bamberg 26. Oktober 2005 Inhalt 1 2 3 Listen und Mengen Input & Output Sonstiges 4 5 Die werden als Bonuspunkte auf die Klausur angerechnet.
MehrEine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder
Programmieren in PASCAL Bäume 1 1. Baumstrukturen Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder 1. die leere Struktur oder 2. ein Knoten vom Typ Element
MehrHilbert-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
MehrFixpunktsemantik logischer Programme Pascal Hitzler Juli 1997 Kurzuberblick im Rahmen der Vorlesung Einfuhrung in Prolog von T. Cornell im Sommersemester 1997 an der Universitat Tubingen. Beweise sind
MehrFakultät für Informatik Universität Magdeburg Jürgen Dassow. Vorbemerkungen
Vorbemerkungen if (x > y) z = x; else z = y; Wenn es blaue Tiger regnet, dann fressen alle Kirschbäume schwarze Tomaten. q(1) = 1, q(i) = q(i 1) + 2i 1 für i 2 Welchen Wert hat q(6)? 24 ist durch 2 teilbar.
Mehr3.Inferenzsysteme 3.4 Logische Programme und Antwortmengensemantik
Darstellung, Verarbeitung und Erwerb von Wissen 3.Inferenzsysteme 3.4 Logische Programme und Antwortmengensemantik DVEW WS 2004/05 c Gabriele Kern-Isberner 1 Stratifizierte Programme (Whlg.) Sei P ein
Mehrkontextfreie Grammatiken Theoretische Informatik kontextfreie Grammatiken kontextfreie Grammatiken Rainer Schrader 14. Juli 2009 Gliederung
Theoretische Informatik Rainer Schrader Zentrum für Angewandte Informatik Köln 14. Juli 2009 1 / 40 2 / 40 Beispiele: Aus den bisher gemachten Überlegungen ergibt sich: aus der Chomsky-Hierarchie bleiben
MehrGrundthema: Operationalisierung logischer Sprachen, d.h. automatische Ermittlung von Wahrheitswerten bzw. Beweis logischer Formeln.
2. Logikkalküle Grundthema: Operationalisierung logischer Sprachen, d.h. automatische Ermittlung von Wahrheitswerten bzw. Beweis logischer Formeln. 2.1 Aussagenlogik (Grundbegriffe) Aussagenlogische Formeln
MehrJava Einführung Operatoren Kapitel 2 und 3
Java Einführung Operatoren Kapitel 2 und 3 Inhalt dieser Einheit Operatoren (unär, binär, ternär) Rangfolge der Operatoren Zuweisungsoperatoren Vergleichsoperatoren Logische Operatoren 2 Operatoren Abhängig
MehrEinführung in die Informatik Algorithms
Einführung in die Informatik Algorithms Vom Problem zum Algorithmus und zum Programm Wolfram Burgard Cyrill Stachniss 1.1 Motivation und Einleitung In der Informatik sucht man im Normalfall nach Verfahren
MehrRechnerstrukturen. Michael Engel und Peter Marwedel WS 2013/14. TU Dortmund, Fakultät für Informatik
Rechnerstrukturen Michael Engel und Peter Marwedel TU Dortmund, Fakultät für Informatik WS 2013/14 Folien a. d. Basis von Materialien von Gernot Fink und Thomas Jansen 21. Oktober 2013 1/33 1 Boolesche
MehrZahlen und elementares Rechnen
und elementares Rechnen Christian Serpé Universität Münster 7. September 2011 Christian Serpé (Universität Münster) und elementares Rechnen 7. September 2011 1 / 51 Gliederung 1 2 Elementares Rechnen 3
Mehr13. Funktionen in einer Variablen
13. Funktionen in einer Variablen Definition. Seien X, Y Mengen. Eine Funktion f : X Y ist eine Vorschrift, wo jedem Element der Menge X eindeutig ein Element von Y zugeordnet wird. Wir betrachten hier
MehrInformationsverarbeitung auf Bitebene
Informationsverarbeitung auf Bitebene Dr. Christian Herta 5. November 2005 Einführung in die Informatik - Informationsverarbeitung auf Bitebene Dr. Christian Herta Grundlagen der Informationverarbeitung
Mehr