Professur für Angewandte Informatik / Kognitive Systeme Prof. Dr. Ute Schmid Klausur Kognitive Systeme I: Intelligente Agenten 17.2.05 Erlaubte Hilfsmittel: Alles (Bücher, Skripten, Ordner, Wörterbuch) Bearbeitungszeit: 90 Minuten Die Klausur besteht aus sieben Aufgaben, von denen sechs bearbeitet werden müssen. Mit jeder Aufgabe können 15 Punkte, insgesamt können 90 Punkte erreicht werden. Falls alle sieben Aufgaben bearbeitet wurden, werden die ersten sechs bearbeiteten Aufgaben bewertet. Soll von sieben bearbeiteten Aufgaben eine der ersten sechs bearbeiteten Aufgaben nicht, dafür aber die letzte Aufgabe bewertet werden, so ist die Bearbeitung der nicht zu bewertenden Aufgabe durchzustreichen. 1 Suche 1. (2 Punkte) Ist Breitensuche vollständig? Begründen Sie Ihre Antwort kurz. 2. (2 Punkte) Welche Suchstrategie erhält man, wenn man A* mit der trivialen Heuristik, die die Restkosten für jeden Zustand mit 0 schätzt, anwendet? Begründen Sie Ihre Antwort kurz. 3. (2 Punkte) Welche Suchstrategie erhält man, wenn man A* mit der trivialen Heuristik, die die Restkosten für jeden Zustand mit 0 schätzt, auf ein Problem anwendet, in dem die Kosten zum Erreichen eines Nachfolgezustands immer gleich 1 sind? Begründen Sie ihre Antwort kurz. 4. (4 Punkte) Angenommen, A* wird neben der Queue um eine zusätzliche Datenstruktur, die sogenannte Closed List, erweitert, die zu Beginn lediglich den Startzustand enthält. Der Zirkeltest und der Test auf gleiche Endknoten werden gestrichen. Stattdessen werden, wenn ein Pfad expandiert wurde, die neuen Endknoten mit den Einträgen in der Closed List verglichen. Alle neuen Pfade, deren Endknoten bereits in der Closed List vorkommen, werden gelöscht. Alle anderen Pfade werden in die Queue übernommen und deren Endknoten werden zusätzlich in die Closed List kopiert. Warum ist A* dann nicht mehr optimal? 5. Letzte Teilaufgabe auf der nächsten Seite. 1 5. (5 Punkte) Gegeben seien folgender Zustandsraum 11 12 s1 s3 10 s2 s4 20 18 s5 mit Zielknoten s5 und folgende Restkostenschätzungen: h∗ (s1) = h∗ (s2) = h∗ (s3) = 17 h∗ (s4) = 15 h∗ (s5) = 0 Wenden Sie den A*-Algorithmus (wie in der Vorlesung definiert) auf den gegebenen Zustandsraum mit Startzustand s1 und der gegebenen Restkostenschätzung an. Notieren Sie für jeden Suchschritt die Queue. Unterstreichen Sie jeweils den zu expandierenden Pfad. Notieren Sie zu allen Endknoten die Pfadkosten und die Restkostenschätzung. 2 Planen: STRIPS Ein Puzzle bestehe aus vier Plättchen, zwei weißen und zwei schwarzen, und fünf nebeneinanderliegenden Zellen Z1 bis Z5, die jeweils ein Plättchen aufnehmen können. Ein möglicher Zustand wäre der folgende, wobei w ein weißes und s ein schwarzes Plättchen und f die freie Zelle bezeichnen. Z1 Z2 Z3 Z4 Z5 s f w w s In einem Spielzug Move darf ein Plättchen in die freie Zelle verschoben werden, falls es in der linken benachbarten oder in der übernächsten rechten Zelle liegt. (In der Grafik sind die beiden aktuell möglichen Züge durch Pfeile markiert.) 1. (2 Punkte) Modellieren Sie durch eine geeignete Anzahl von Instanzen eines (statischen) Prädikats legal(?x, ?y), zwischen welchen Zellen grundsätzlich ein Wechsel stattfinden darf. (Eine solche Instanz ist z.B. legal(Z3,Z4).) 2 2. (10 Punkte) Formulieren Sie den Operator Move in STRIPS. Machen Sie dabei von dem Prädikat legal(?x, ?y) Gebrauch. Hinweis: Im Prinzip ist es möglich, Move durch ein einziges Schema zu definieren, Sie können es jedoch auch durch zwei Schemata definieren, falls Ihnen das leichter fällt. 3. (3 Punkte) Formulieren Sie den in der Grafik gezeigten Zustand sowie das Ziel, in dem sich die beiden weißen Plättchen in den Zellen Z1 und Z2 und die beiden schwarzen Plättchen in den Zellen Z3 und Z4 befinden, im STRIPS-Stil. Hinweis: Sie können in der Zustandsbeschreibung die statischen legal-Prädikate weglassen. 3 Planen allgemein 1. (8 Punkte) Graphplan-Simulation: Folgender Operator aus der Blocksworld sei gegeben: Put(?x,?y) PRE { on(?x,?z), clear(?x), clear(?y) } ADD { on(?x,?y), clear(?z) } DEL { on(?x,?z), clear(?y) } Übertragen Sie den folgenden Startzustand als Level S0 eines Planning Graphen auf Ihr Lösungsblatt: { on(A, B), on(B, C), ontable(C), ontable(D), clear(A), clear(D) } Zeichnen Sie nun den Aktionslevel A0 und den darauffolgenden Zustandslevel S1 , jeweils inklusive Mutex-Links, ein. Hinweis: PRE- und ADD-Kanten müssen Sie, DEL-Kanten können Sie (gestrichelt oder sonstwie von den ADD-Kanten unterscheidbar) einzeichnen. 2. (3 Punkte) Graphplan allgemein: Begründen Sie, weshalb sich ab einem bestimmten Level im Planning Graphen die Menge der Prädikate nicht mehr ändert. 3. (3 Punkte) Warum führt das Weglassen der DEL-Listen in einer Domain zu einem relaxierten Problem? 4. (1 Punkt) Welche wichtige Eigenschaft fehlt linearen Planern? 3 4 Logik allgemein Folgende Formel sei gegeben (Meier und Karstadt seien Konstante): A = ∀k∀l [kunde(k, l) → ∃w gekauft(k, w)] ∧ ∀k∀w [gekauft(k, w) → eigentum(k, w)] ∧ kunde(Meier, Karstadt) Diese Formel ist wohlgeformt hinsichtlich der Signatur Σ = (S, OP, R) mit S = {kunden, waren, läden}, OP = {Meier :→ kunden, Karstadt :→ läden} und R = {kunde : (kunden, läden), gekauft : (kunden, waren), eigentum : (kunden, waren)}. 1. (5 Punkte) Formulieren Sie ein Modell passend zu Σ für die Formel A. 2. (5 Punkte) Formulieren Sie eine Struktur passend zu Σ, die kein Modell für die Formel A ist. 3. (5 Punkte) Betrachten Sie die drei folgenden Termpaare (x, y seien Variable, B, C Konstante): a) { f(x, g(h(y), C)), f(B, g(y, C)) } b) { f(x, g(h(B), y)), f(h(y), g(h(y)), y) } c) { f(B, g(x)), f(C, y) } Entscheiden Sie jeweils, ob die beiden Terme unifizierbar sind oder nicht und geben Sie jeweils entweder einen Unifikator oder eine kurze Begründung an. 5 Logik: Resolution 1. (12 Punkte) Folgende Klauselmenge sei gegeben (k1 , l1 , w1 , k2 , w2 seien Variable, Meier, Karstadt, B, C seien Konstante): { ¬kunde(k1 , Karstadt) ∨ gemietet(k1 , B) ¬kunde(k2 , Karstadt) ∨ gekauft(k2 , C) ¬gekauft(k3 , w1 ) ∨ eigentum(k3 , w1 ), kunde(Meier, Karstadt) } Beweisen Sie daraus die folgende Formel durch Resolution: ∃k∃w∃w 0 [eigentum(k, w) ∧ gemietet(k, w 0 )] Negieren Sie dazu die Formel und wandeln Sie sie anschließend in Klauselform um. Zeichnen Sie den Refutationsbaum auf. 4 2. (3 Punkte) Führen Sie für die folgende Formel die ersten drei Schritte (1. Implikationen entfernen, 2. Negationen nach innen ziehen, 3. Skolemisierung) zur Umformung in Klauselform durch und notieren Sie das Ergebnis aus jedem Schritt: ¬∀x [prim(x) → greater(x, 10)] 6 Lernen Folgende Trainingsmenge sei gegeben: Beispiel x1 x2 x3 e1 −1 −1 1 e2 1 −1 1 e3 1 1 −1 e4 1 1 1 e5 −1 1 −1 Klasse −1 −1 1 −1 1 1. (6 Punkte) Wenden Sie den Algorithmus ID3 auf diese Trainingsmenge an. Berechnen Sie keinen Information-Gain, sondern fügen Sie die Merkmale in der Reihenfolge x1 , x2 , x3 ein. Notieren Sie für jede Rekursionstiefe den bis dahin aufgebauten Baum. Solange ein Blatt noch nicht eindeutig einer Klasse zugeordnet ist, markieren Sie es mit den Namen der Beispiele, die dem Blatt zugeordnet sind. 2. (3 Punkte) Gegeben seien fünf Beispiele b1 , . . . , b5 . b2 habe Klassenzugehörigkeit 1, alle anderen Klassenzugehörigkeit −1. Schätzen Sie, welche Entropie höher ist: Die von e1 , . . . , e5 oder die von b1 , . . . , b5 ? Begründen Sie Ihre Antwort kurz. 3. (2 Punkte) Betrachten Sie nochmals die Beispiele e1 , . . . , e5 . Schätzen Sie, welcher Information-Gain höher ist: Der von x1 oder der von x3 . Begründen Sie ihre Antwort kurz. 4. (4 Punkte) Definieren Sie in Form eines erweiterten Gewichtsvektors (w 0 , w1 , w2 ) ein Perzeptron, welches das Beispiel e1 korrekt klassifiziert. (Wie es die anderen Beispiele klassifiziert, soll egal sein.) Geben Sie anschließend die Linearkombination und ihr Ergebnis für dieses Perzeptron angewandt auf e1 an. 5 7 Prolog (15 Punkte) Eine einfache Grammatik sei durch folgende Regeln definiert: s ⇒ np vp np ⇒ art nom vp ⇒ verb | verb np Dabei steht s für Satz, np für Nominalphrase, vp für Verbphrase, art für Artikel, nom für Nomen und verb für Verb. Ein ⇒ bedeutet, dass das was links steht sich zusammensetzt aus dem was rechts steht. Die erste Regel besagt also, dass ein Satz aus einer Nominalphrase gefolgt von einer Verbphrase steht. Das | steht für oder. Die letzte Regel besagt also, dass eine Verbphrase aus einem Verb oder einem Verb gefolgt von einer Nominalphrase besteht. Sätze seien in Prolog repräsentiert als Listen, z.B. [the, dog, eats, the, cat]. art, nom und verb seien durch Prolog-Fakten definiert, z.B. durch folgende: art([the]). nom([dog]). nom([cat]). verb([eats]). Definieren Sie Prolog-Regeln für s/1, np/1 und vp/1, so dass Prolog auf eine Anfrage s(Satz) genau dann yes. antwortet, wenn Satz eine Liste ist, die einen Satz gemäß der oben gegebenen Grammatik und den Fakten für art, nom und verb repräsentiert. (Z.B. müsste s([the, dog, eats, the, cat]) wahr sein, da sich dieser Satz mittels der Grammatik und der Fakten aus s ableiten lässt.) 6