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