(Logik und) Logikprogrammierung

Ähnliche Dokumente
Künstliche Intelligenz

apl. Prof. Dr.-Ing. habil. Rainer Knauf 1 Einführung 2 Mathematisch logische Grundlagen 3 Einführung in die Logische Programmierung mit PROLOG 4

Logische Programmierung & Deduktive Datenbanken Klausur

2 Logikprogrammierung am Beispiel Prolog

Syntax der Prädikatenlogik: Komplexe Formeln

Logik-Grundlagen. Syntax der Prädikatenlogik

Übersicht. Prädikatenlogik höherer Stufe. Syntax der Prädikatenlogik 1. Stufe (mit Gleichheit)

WS 2013/14. Diskrete Strukturen

Programmiersprache Prolog

Diskrete Strukturen. Sebastian Thomas RWTH Aachen Mathematische Logik

Logikprogrammierung. Berechnung durch Resolution Die Programmiersprache Prolog

Normalformen der Prädikatenlogik

SLD-Ableitungsbäume. G = B 1... B m. G die Menge aller SLD-Resolventen von G und definiten. G einen Nachfolger, der mit G markiert ist.

Logik für Informatiker

Künstliche Intelligenz Hornklauseln & Prolog

Grundlagen der Theoretischen Informatik

Logische und funktionale Programmierung

Formale Systeme, WS 2014/2015 Übungsblatt 5

Das Programm ist deterministisch: es gibt für jedes Ziel höchstens eine Klausel, die zur erfolgreichen Ableitung des Zieles

Terme. Dann ist auch f(t 1. Terme. Dann ist P (t 1

Logische und funktionale Programmierung

Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume)

Klausur zur Vorlesung Logik für Informatiker Sommersemester 2017

4.0 VU Theoretische Informatik und Logik Teil 2 zum SS

Informatik A. Prof. Dr. Norbert Fuhr auf Basis des Skripts von Prof. Dr. Wolfram Luther und der Folien von Peter Fankhauser

Kapitel 6: Logik. Teil 2. (Dieser Foliensatz basiert auf Material von Mirjam Minor, Humboldt- Universität Berlin, WS 2000/01)

1 logische Programmierung Beilage 4 FFHS/Zn. Das folgende Diagramm gibt einen Überblick über die Teile eines Autos: Auto

Rekursion. rekursive Prädikate. deklarative vs. prozedurale Bedeutung von Prädikaten. Programmierkurs Prolog p.1

Musterlösung der Klausur zur Vorlesung Logik für Informatiker

Logik für Informatiker

Kapitel 3: Boolsche Algebra

Neuronalen Netzen. Jens Lehmann. 1. März Institut für Künstliche Intelligenz Fakultät Informatik Technische Universität Dresden

Diskrete Strukturen und Logik WiSe 2007/08 in Trier. Henning Fernau Universität Trier

Modellierungsmethoden der Informatik Kapitel 2: Logikkalküle

Deklarative Semantik

Technische Universität Berlin Fakultät IV - Elektrotechnik und Informatik. Schriftlicher Test - Teilklausur

Terme und Gleichungen

Cut und Negation. Heute: if-then-else. Negation. Programmierkurs Prolog p.1

HA-Lösung TA-Lösung Diskrete Strukturen Tutoraufgabenblatt 10. Besprechung in KW02/2019

Modellierungsmethoden der Informatik Kapitel 2: Logikkalküle

Brückenkurs Mathematik 2018

Überblick. 3. Mathematische Grundlagen 3.1 Mengen und Abbildungen 3.2 Induktion und Rekursion 3.3 Boolsche Algebra

Logische und funktionale Programmierung

Aussagenlogik. Formale Methoden der Informatik WiSe 2012/2013 teil 6, folie 1

ABITURPRÜFUNG 2010 LEISTUNGSFACH INFORMATIK

Prolog basiert auf Prädikatenlogik

17 Grundbegriffe der Logik der Sprache PL

Klausur zur Vorlesung Logik für Informatiker Sommersemester 2015

Fakten, Regeln und Anfragen

Grundlagen der Programmierung (Vorlesung 7)

f(x) = x f 1 (x) = x. Aufgabe 2. Welche der folgenden Funktionen sind injektiv, surjektiv, bijektiv?

Technische Universität Berlin Fakultät IV - Elektrotechnik und Informatik. Schriftlicher Test - Teilklausur 1

Universität Koblenz-Landau Fachbereich Informatik Klausur KI-Programmierung WS 2007/2008. Jun.-Prof. Dr. B. Beckert. 21.

Übungsblatt zu Teil 2 (Einführung und Grundkonzepte)

Sammlung möglicher Klausuraufgaben

Formale Methoden 1. Gerhard Jäger 7. November Uni Bielefeld, WS 2007/2008 1/18

Programmierung 1 (Wintersemester 2012/13) Lösungsblatt 10 (Kapitel 11)

Beispiel. Bsp.: Betrachte Schlussweise in: (3) folgt aus (1) und (2), siehe z.b. Resolutionsregel. was ist mit folgender Schlußweise:

n 1. Grundkonzepte der logischen Programmierung n 2. Syntax von Prolog n 3. Rechnen in Prolog IV.1 Grundkonzepte der logischen Programmierung - 1 -

Seminar: Formale Begriffsanalyse Verbände, Begriffsordnung und Begriffsverbände

Prolog 3. Kapitel: Rekursion

Was ist Logische Programmierung?

Mathematische Grundlagen der Computerlinguistik I

Wiederholung. Bäume sind zyklenfrei. Rekursive Definition: Baum = Wurzelknoten + disjunkte Menge von Kindbäumen.

Prolog 3. Kapitel: Rekursion

De Morgan sche Regeln

Logik für Informatiker

Diskrete Strukturen Kapitel 2: Grundlagen (Beweise)

Klausur zur Vorlesung und Übung Deduktive Datenbanken (SS 2008)

Gruppe A. kommtvor := proc(x::anything, l::list) local y; for y in l do if x=y then return true end if end do; return false end proc

Brückenkurs Mathematik 2015

Prolog Tutorial Norbert E. Fuchs Institut für Informatik Universität Zürich

Binäre Bäume Darstellung und Traversierung

Wozu formale Logik? Programmiersprachen Logik im Fingerhut. Formeln. Logik im Fingerhut (24. Januar 2005) Belegung und Interpretation

Klausur Algorithmen und Datenstrukturen SS August Arbeitszeit 90 min

Alphabet der Prädikatenlogik

Terme. Heute: Terme vergleichen. Struktur von Termen. Operatoren. Logik in der Praxis Logikprogrammierung (Prolog) p.1

Binärbäume: Beispiel

Technische Universität München. Vorlesungsgrobstruktur: wo stehen wir, wie geht s weiter

Deduktion in der Aussagenlogik

Injektiv, Surjektiv, Bijektiv

Vorkurs: Mathematik für Informatiker

Reihenfolge von Klauseln

GDI Medieninformatik. 13. VL: Einführung in die mathematische Logik Prädikatenlogik (II)

ÜBUNG ZUM GRUNDKURS LOGIK WS 2015/16 GÜNTHER EDER

Prolog 2. Kapitel: Matching und Beweisführung

Grundlagen der Künstlichen Intelligenz

Logik für Informatiker

Wiederholung. Datenstrukturen und. Bäume. Wiederholung. Suchen in linearen Feldern VO

(a, b)-bäume / 1. Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss.

Datenstrukturen und Algorithmen (SS 2013) Prof. Dr. Leif Kobbelt Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer

4.1 Motivation. Theorie der Informatik. Theorie der Informatik. 4.1 Motivation. 4.2 Syntax der Prädikatenlogik. 4.3 Semantik der Prädikatenlogik

SWP Logische Programme Teil 2

Ordnungsrelationen auf Mengen. Beispiel einer Ordnungsrelation. Spezielle Elemente von Ordnungen. Spezielle Elemente von Ordnungen

Ordnungsrelationen auf Mengen

Logik (Prof. Dr. Wagner FB AI)

Grundbegriffe für dreiwertige Logik

Musterlösung Grundbegriffe der Mathematik Frühlingssemester 2016, Aufgabenblatt 4

Natürliche Bäume. (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun. Letzte Änderung: :16. Natürliche Bäume 1/16

Transkript:

Übungsaufgaben zur Lehrveranstaltung (Logik und) Logikprogrammierung im Studiengang Informatik Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Fachgebiet Künstliche Intelligenz apl. Prof. Dr.-Ing. habil. Rainer Knauf 1. Für folgende syntaktische Gebilde entscheide man, ob es sich um (für Wissensbasen in der logischen Programmierung verwendbare) Horn-Klauseln handelt: (a) X(gleich(X, X) true) (b) X Y (liiert(x, Y ) Z(vater(X, Z) mutter(y, Z))) (c) X Y Z(liiert(X, Y ) vater(x, Z) mutter(y, Z)) (d) X Y Z(grossvater(X, Z) (vater(x, Y ) vater(y, Z)) (vater(x, Y ) mutter(y, Z))) Sind die Aussagen 1b und 1c äquivalent? 2. Man wandle in Klauselform um: (a) Xp(X) Xp(X) (b) X p(x) ( Xp(X) X(p(X) q(x))) Xp(X) Sind die entstehenden Klauseln HORN Klauseln? 3. Für einen Individuenbereich I = {0,1} formuliere man HORN-Klauseln, die die Funktion folgender digitaler Schaltungen beschreiben: a) b) c) d) 1 e) X 1 X 2 1 X 3 X 4 Y X 5

2 4. Man entscheide, ob folgende Termpaare s und t miteinander unifizierbar sind und bestimme im Erfolgsfall den allgemeinsten Unifikator m.g.u.(s, t). (a) s = f(x, Y ) t = f(g(a, Y ), Z) (b) s = f(x, Y ) t = f(g(a, Y ), Y ) (c) s = f(x, Y ) t = f(g(a, Y ), X) (d) s = f(x, Y ) t = f(g(a, Y ), f(x)) (e) s = f(x, Y, h(x, Y, g(x, Y ))) t = f(g(a, Y ), b, Z) 5. Man zeige durch wiederholte Anwendung der Resolutionsmethode nach Robinson, dass aus den HORN-Klauseln K1: befreundet(frank,steffen) K2: befreundet(steffen,uwe) K3: bekannt(x,y) befreundet(x,z) befreundet(z,y) und der Hypothese H: bekannt(frank,wer) die leere Klausel abgeleitet werden kann. 6. Über einem Individuenbereich I = {otto,emma,... } seien folgende Prädikate definiert: Prädikat maennlich(x) weiblich(x) vater von(x,y) mutter von(x,y) verheiratet(x,y) Bedeutung bildet [X] auf wahr ab, gdw. X eine männliche Person ist bildet [Y] auf wahr ab, gdw. Y eine weibliche Person ist bildet [X,Y] auf wahr ab, gdw. X der Vater von Y ist bildet [X,Y] auf wahr ab, gdw. X die Mutter von Y ist bildet [X,Y] auf wahr ab, gdw. X und Y miteinander verheiratet sind Unter Zuhilfenahme dieser Prädikate formuliere man HORN-Klauseln, die Beziehungen zwischen den Elementen des Individuenbereiches beschreiben, indem sie die nachfolgenden Prädikate definieren: Prädikat Bedeutung geschwister(x,y) cousin von(x,y) cousine von(x,y) schwager von(x,y) schwaegerin von(x,y) nichte von(x,y) neffe von(x,y) bildet [X,Y] auf wahr ab, gdw. X und Y den gleichen Vater und die gleiche Mutter haben bildet [X,Y] auf wahr ab, gdw. X Sohn eines Geschwisters eines Elternteils von Y ist bildet [X,Y] auf wahr ab, gdw. X Tochter eines Geschwisters eines Elternteils von Y ist bildet [X,Y] auf wahr ab, gdw. X der Mann einer Schwester von Y oder Bruder des Ehepartners von Y ist bildet [X,Y] auf wahr ab, gdw. X Frau eines Bruders von Y oder Schwester des Ehepartners von Y ist bildet [X,Y] auf wahr ab, gdw. X Tochter eines Schwagers oder einer Schwägerin oder eines Geschwisters von Y ist bildet [X,Y] auf wahr ab, gdw. X Sohn eines Schwagers oder einer Schwägerin oder eines Geschwisters von Y ist 7. Man notiere die HORN-Klauseln aus Aufgabe 3 als Wissensbasis eines PROLOG- Programms.

3 8. Gegeben sei folgende Wissensbasis: (1) mutter von(hilde,elsa). (2) vater von(egon,elsa). (3) vater von(paul,otto). (4) mutter von(erna,otto). (5) mutter von(elsa,gaby). (6) mutter von(elsa,dieter). (7) vater von(otto,gaby). (8) vater von(otto,dieter). (9) grossvater von(grossvater,enkel) :- vater von(grossvater,vater), vater von(vater,enkel). (10) grossvater von(grossvater,enkel) :- vater von(grossvater,mutter), mutter von(mutter,enkel). (a) Man veranschauliche die Abarbeitung folgender Fragen anhand von Suchbäumen: i.?-vater von(paul,dieter). ii.?-mutter von(x,gaby). iii.?-grossvater von(egon,wer). iv.?-grossvater von(wer,dieter). (b) Man erweitere die Wissensbasis um folgende Prädikate: Prädikat geschwister(x,y) geboren(x,y) zwillinge(x,y) Bedeutung bildet (X,Y) auf wahr ab, gdw. X und Y gleichen Vater und gleiche Mutter haben und voneinander verschieden 1 sind. bildet (X,Y) auf wahr ab, gdw. Y das Geburtsdatum der Person X ist. Man überlege sich eine geeignete Termstruktur für Y. bildet (X,Y) auf wahr ab, gdw. X und Y am gleichen Tag geboren sind und die gleiche Mutter haben. (c) Mit Hilfe dieser Prädikate formuliere man folgende Fragen und veranschauliche deren Bearbeitung durch ein PROLOG-System: i. Wer wurde am 1. April geboren? ii. Wer wurde im Jahre 1960 geboren? iii. Wann hat Egon Geburtstag? iv. Gibt es ein Zwillingspaar in der Familie? v. Welche Geschwisterpaare gibt es? 9. Es seien Daten über Lieferbeziehungen in einer PROLOG Faktenbasis mit Hilfe folgender Prädikate repräsentiert: lieferant(lieferantennr,name,ort) teile(teilenr,name,farbe,gewicht in Gramm) lieferung(lieferantennr,teilenr,menge) 1 Ein Prädikat ungleich(x,y) kann als eingebaut vorausgesetzt werden.

4 LieferantenNr und TeileNr seien (eineindeutig zugeordnete) Schlüssel für Lieferanten und Teile. Man formuliere folgende Anfragen in PROLOG, wobei das (infix zu notierende) Prädikat X < Y (X ist kleiner als Y ) als gegeben vorausgesetzt werden kann: (a) Welches ist die Lieferanten Nummer der Anbieter von Muttern? (b) Wie heißen die Lieferanten von Schrauben? (c) In welchem Ort befinden sich Lieferanten von Muttern und Schrauben? (d) Welchen Namen haben die Teile, die vom Lieferanten Richter geliefert werden? (e) Wie heißen die Saarbrücker Lieferanten, die Muttern liefern, die schwerer als 200 g sind? (f) Wie heißen die Lieferanten, die sowohl Muttern als auch Schrauben liefern? (g) Wie heißen die Lieferanten, die Muttern oder Schrauben liefern? 10. Gegeben sei folgende Wissensbasis: (1) teil von(anker,anlasser). (2) teil von(zugmagnet,anlasser). (3) teil von(anlasser,elektrik). (4) teil von(elektrik,auto). teil von(x,y ) soll [X,Y] auf wahr abbilden, gdw. X ein Bestandteil von Y ist. Man erweitere diese Wissensbasis um ein Prädikat teiles teil(x,y ), welches [X,Y] auf wahr abbildet, gdw. X ein direkter oder indirekter Bestandteil von Y ist. Man veranschauliche die Abarbeitung von Fragen der Art?-teiles teil(x,y ) mit Hilfe von Suchbäumen. 11. Gegeben sei folgende Wissensbasis: (1) elter(otto,paul). (2) elter(otto,egon). (3) geschwister(x,y) :- elter(e,x), elter(e,y), ungleich(x,y). (4) ungleich(x,x) :-!, fail. (5) ungleich(, ). Man veranschauliche die Abarbeitung folgender Fragen mit Hilfe von Suchbäumen: (a)?-geschwister(egon,wer). (b)?-geschwister(egon,egon). (c)?-geschwister(wer,wer). (d)?-geschwister(k1,k2). 12. Gegeben sei eine Wissensbasis, in der die hierarchische Struktur eines Geräts dargestellt ist: (1) teil von(rechner,laufwerk). (2) teil von(laufwerk,antrieb). (3) teil von(antrieb,motor). Man erweitere diese Wissensbasis um ein Prädikat

5 elementarteil(x ), welches [X] auf wahr abbildet, gdw. X keine weiteren Bestandteile besitzt. (a) Es kann vorausgesetzt werden, dass X beim Aufruf des keine Variable ist. (b) O.g. Prädikat soll für eine Variable beim Aufruf eine konstruktive Lösung liefern. 13. Man definiere folgende Listenoperationen rekursiv und überprüfe deren Richtigkeit bei Vorgabe geeigneter Ziele anhand von Suchbäumen: (a) Zugriff auf das letzte Element einer Liste: schlusslicht(letzteselement,liste) (b) Anhängen eines neuen Elements an eine Liste: anh(liste,element,neueliste) (c) Umwandeln einer Liste in eine Menge, d.h. Entfernen aller wiederholt vorkommenden Elemente: menge(liste,menge) 14. Gegeben ist folgende, auf PROLOG angepasste Definition für geordnete binäre Bäume: 1. nil ist der leere Baum. 2. baum(inhalt,ub1,ub2) ist ein geordneter binärer Baum, wenn Ub1 und Ub2 geordnete binäre Bäume sind. Demnach ist z.b. baum(1,baum(2,blatt(3),baum(3,blatt(4),blatt(5))),blatt(6)) ein geordneter binärer Baum. (a) Man schreibe ein PROLOG-Programm, dass einen so definierten Baum in die Liste seiner Blätter (Rand) umwandelt: blaetter(baum,blattliste) (b) Man schreibe ein PROLOG-Programm, welches einen geordneten binären Baum in einen Baum umwandelt der aus B entsteht, indem an jeder Astgabel die Unterbäume vertauscht werden: swap(baum,vertauschter Baum) (c) Man schreibe ein PROLOG-Programm, welches die Hierarchieebene eines Elements ermittelt: ebene(element,ebene) 15. Man formuliere eine Prozedur am kleinsten(<liste>,<element>), die [<Liste>,<Element>] auf wahr abbildet, gdw. <Element> das kleinste Element der Zahlenliste <Liste> ist

6 (a) linksrekursiv ( top down ). (b) rechtsrekursiv ( bottom up ). Man vergleiche beide Lösungen bezüglich ihrer Zeitomplexität. 16. Man schreibe einen Interpreter für Dualzahlen Eine Dualzahl möge in Form einer Liste von Dualziffern repräsentiert werden. Die Interpretation einer Dualzahl sei ihr Dezimalwert. Der Interpreter ist das Prädikat interpret(liste,wert) Beispiele:?- interpret([1,0,1],x). X = 5?- interpret([1,0,2],x). nein