Übungsblatt Nr. 2 - Institut für Informatik - Humboldt

Werbung
HUMBOLDT-UNIVERSITÄT ZU BERLIN
INSTITUT FÜR INFORMATIK
Sommersemester 2007
Praktische Informatik II
27. April 2007
Lehrstuhl für Künstliche Intelligenz
Prof. Dr. Hans-Dieter Burkhard
Übungsblatt Nr. 2
Abgabe in den Übungen vom 07.05. bis 11.05.2007
In jedem Übungsblatt sind 20 Punkte erreichbar. Zur Prüfung wird zugelassen, wer insgesamt
mindestens 60% und in jedem Übungsblatt mindestens 20% der erreichbaren Punkte erzielt.
Die Aufgaben sollen in Zweiergruppen gelöst und zusammen auf Papier abgegeben werden.
Auf jedem Lösungsblatt sind Name und Matrikelnummer beider Gruppenmitglieder
anzugeben.
Zum Testen der Anfragen kann das in den SUN-Pools des Instituts unter /usr/local/
praktikum/SWIprolog/bin/pl installierte SWI-Prolog verwendet werden. Die passende
Dokumentation findet sich unter http://www.swi-prolog.org/.
Aufgabe 1 (10 Punkte)
Gegeben sei folgende Datenbasis in Prolog:
stern(sonne).
planet(jupiter).
planet(uranus).
planet(erde).
planet(mars).
umkreist(jupiter,sonne).
umkreist(uranus,sonne).
umkreist(erde,sonne).
umkreist(mars,sonne).
umkreist(erdmond,erde).
umkreist(europa,jupiter).
umkreist(kallisto,jupiter).
umkreist(miranda,uranus).
Formulieren Sie die folgenden Prolog-Regeln (Relationen):
a) ist_mond/1
b) ist_himmelskoerper/1
Dabei ist ein Mond ein Objekt, das einen Planeten umkreist. Himmelskörper sind Sterne,
Planeten und Monde.
Formulieren Sie folgende Anfragen:
c) Gibt es in unserem Sonnensystem Monde? (Als Antwort soll nur Ja oder Nein geliefert
werden!)
d) Welche Himmelskörper in unserem Sonnensystem werden umkreist?
e) Welche Objekte kreisen um etwas, das die Sonne umkreist?
Geben Sie jeweils Frage und Antwort an!
[Hinweis: Für die Antworten soll nur der in der Faktenbasis enthaltenen Ausschnitt der
Angaben zu unserem Sonnensystem berücksichtigt werden.]
1/2
HUMBOLDT-UNIVERSITÄT ZU BERLIN
INSTITUT FÜR INFORMATIK
Sommersemester 2007
Praktische Informatik II
27. April 2007
Lehrstuhl für Künstliche Intelligenz
Prof. Dr. Hans-Dieter Burkhard
Aufgabe 2 (6 Punkte)
In einer Prolog-Datenbasis seien folgende Relationen definiert: wohnt_in(Person,Ort) und
hat_nummer_von(Person1,Person2). Beachten Sie, dass die Relation hat_nummer_von/2
nicht symmetrisch ist, d.h. Person1 kann die Telefonnummer von Person2 haben, ohne dass
auch die Umkehrung gilt.
a) Definieren Sie eine symmetrische Relation erreichbar/2, so dass folgendes gilt: Zwei
Personen können sich telefonisch erreichen, wenn die eine Person die Telefonnummer
der anderen Person hat, wenn die eine Person die Telefonnummer von jemandem hat,
der die Telefonnummer der anderen Person hat, oder wenn sie im selben Ort wohnen.
b) Formulieren Sie eine Anfrage in Worten und in Prolog an eine hier mögliche
Datenbasis.
[Hinweis: Die Relation soll nicht (!) transitiv sein – erreichbar/2 arbeitet über maximal eine
zwischengeschaltete Person.]
Aufgabe 3 (4 Punkte)
In einer Prolog-Datenbasis seien k unterschiedliche Fakten für die Relationen p/1 und m
unterschiedliche Fakten für die Relation q/1 enthalten. Beantworten Sie folgende Fragen:
a) Wie viele positive Antworten erhält man maximal auf die Anfrage:
b) Wie viele positive Antworten erhält man minimal auf die Anfrage:
c) Wie viele positive Antworten erhält man maximal auf die Anfrage:
d) Wie viele positive Antworten erhält man maximal auf die Anfrage:
?- p(X), q(Y).
?- p(X), q(X).
?- p(Y), q(Y).
?- p( _ ), q(Y).
Gib zu jeder Antwort eine kurze Begründung an! Antworten ohne Begründung werden nicht
gewertet!
2/2
Herunterladen