Aufgabe 2 (20 Punkte) - Goethe

Werbung
Dr. David Sabel
Institut für Informatik
Fachbereich Informatik und Mathematik
Goethe-Universität Frankfurt am Main
Einführung in die Methoden der Künstlichen Intelligenz
Wintersemester 2012/13
Aufgabenblatt Nr. 6
Abgabe: Montag, 21. Januar 2013 vor der Vorlesung
Aufgabe 1 (15 Punkte)
In der folgenden Tabelle finden sich Staaten, deren Hauptstädte sowie der Kontinent, auf welchem sich der Staat befindet.
Staat
Australien
Bolivien
Deutschland
Frankreich
Italien
Japan
Mauretanien
Mexiko
Hauptstadt
Canberra
Sucre
Berlin
Paris
Rom
Tokio
Nouakchott
Mexiko-City
Kontinent
Australien
Südamerika
Europa
Europa
Europa
Asien
Afrika
Nordamerika
Staat
Mongolei
Nepal
PapuaNeuguinea
Somalia
Suriname
Swasiland
USA
Hauptstadt
Ulaanbaatar
Kathmandu
Port Moresby
Kontinent
Asien
Asien
Australien
Mogadischu
Paramaribo
Mbabane
Washington D. C.
Afrika
Südamerika
Afrika
Nordamerika
Auf der Webseite zur Veranstaltung finden Sie ein Prolog-Programm mit den Prädikaten
istHauptstadtVon/2 und liegtImKontinent/2, die obige Tabelle implementieren.
a) Definieren Sie ein binäres Prädikat stadtLiegtInKontinent/2 unter Benutzung der beiden
bereits definierten Relationen. Das Prädikat ist erfüllt, wenn eine Stadt im entsprechenden
Kontinent liegt.
(5 Punkte)
b) Definieren Sie ein Prädikat stadtLiegtInEurasien/1 unter Benutzung des Prädikates aus
Aufgabenteil a).
(5 Punkte)
c) Führen Sie eine erfolgreiche SLD-Ableitung für das Ziel stadtLiegtInEuroasien(S) per
Hand durch.
(5 Punkte)
Aufgabe 2 (20 Punkte)
Implementieren Sie die folgenden Prädikate auf Listen in Prolog:
(je 5 Punkte)
a) filterGEQ/3, wobei filterGEQ(Zahl,Liste1,Liste2) genau dann wahr ist, wenn
Liste2 die Liste ist, die aus Liste1 entsteht, indem nur jene Zahlen aus Liste1 in
Liste2 übernommen werden, die größer oder gleich Zahl sind. Z.B. sollte die Anfrage
filterGEQ(3,[5,4,3,2,1,2,3,4,5],Y) als einzige Lösung Y = [5, 4, 3, 3, 4, 5] ergeben.
1
b) zweite/2, wobei zweite(Liste1,Liste2) genau dann wahr ist, wenn Liste2 genau alle zweiten Elemente der Liste Liste1 enthält (in gleicher Sortierung wie sie in Liste1
auftreten). Die Beispiele zweite([1,2,3,4],[2,4]) und zweite([1,2,3],[2]) sind alle
wahr, wohingegen zweite([1,2,3],[2,3]) falsch ist.
c) vonBis/3, wobei vonBis(Zahl1,Zahl2,Liste) genau dann wahr ist, wenn Liste, die Zahlen von Zahl1 bis Zahl2 in sortierter Reihenfolge enthält. Z.B. ist vonBis(2,5,[2,3,4,5])
wahr.
d) sumList/2, wobei sumList(Liste,Zahl) genau dann wahr ist, wenn Zahl die Summe der in Liste enthaltenen Zahlen ist. Z.B. ist sumList([1,2,3],6) wahr, aber
sumList([1,3],5) falsch.
Aufgabe 3 (15 Punkte)
Die folgenden Abbildung zeigt die Flugpläne der Fluggesellschaften Schneller Storch und Flinker Falke, wobei eine Kante stets bedeutet, dass die entsprechende Fluggesellschaft in beiden
Richtungen eine Flugmöglichkeit anbietet. Die Kantenbeschriftung entspricht der Entfernung
der Ziele in Kilometer.
16041
1182
6405
Canberra
Sucre
Berlin
Paris
Rom
5630
9201
Tokio
Nouakchott
Mexiko-City
Ulaanbaatar
2916
Kathmandu
14884
10262
Port Moresby
11343
6910
13782
15459
Mogadischu
8317
11146
Paramaribo
Mbabane
12394
Washington D. C.
Verbindungen Flinker Falke“
”
Verbindungen Schneller Storch“
”
Auf der Webseite zur Veranstaltung finden Sie die Implementierung der beiden
Flugpläne mithilfe zweier dreistelliger Prädikate mitSchnellerStorchVonNach/3 und
mitFlinkerFalkeVonNach/3, die jeweils genau dann wahr sind, wenn es eine direkte Flugverbindung zwischen zwei Städten mit der entsprechenden Entfernung und Fluggesellschaft gibt.
a) Implementieren Sie ein Prädikat erreichbar/2, wobei erreichbar(S1,S2) genau dann
wahr ist, wenn S2 von S1 aus (mit Umsteigen/Zwischenstops) erreichbar ist. Die Auswertung des Prädikats sollte möglichst oft terminieren.
(7 Punkte)
b) Implementieren Sie ein Prädikat erreichbarIKM/3, wobei erreichbarIKM(S1,S2,I,Z)
genau dann wahr ist, wenn S2 von S1 aus mit I-maligem Umsteigen/Zwischenstops in
insgesamt Z Kilometern erreichbar ist.
(8 Punkte)
2
Herunterladen