230 likes | 349 Views
Seminar Cognitive Systeme WS 2004/05 Functional Strips Julia Trommer, Christian Fleischmann. 1. Die Türme von Hanoi 1.1. Hanoi in Strips 1.2 Hanoi in Functional Strips 2. Functional Strips 2.1 Motivation 2.2 Sprache 2.3 Operatoren 2.4 Zustandsmodell
E N D
Seminar Cognitive Systeme WS 2004/05Functional StripsJulia Trommer, Christian Fleischmann
1. Die Türme von Hanoi 1.1. Hanoi in Strips 1.2 Hanoi in Functional Strips 2. Functional Strips 2.1 Motivation 2.2 Sprache 2.3 Operatoren 2.4 Zustandsmodell 3. Vergleich Zustandsmodelle: Strips und Functional Strips 4. Reifenbeispiel in Functional Strips Julia Trommer, Christian Fleischmann Seite 2
1.1 Das Hanoi Problem mit drei Türmen inStrips • Prädikate P = { clear1, on2, smaller2 } • Objekte O = { a, b, c, d1, d2, d3 } • Operator: move ( x, y, z ) • Precondition: on( x, y ), clear( x ), clear( z ), smaller ( x, z ) • Add: clear( y ), on ( x, z ) • Delete: clear ( z ), on ( x, y ) • x = Scheibe, die bewegt wird • y = Scheibe, auf der x liegt • z = Scheibe, auf der x abgelegt wird • Startzust.: clear( d1 ), clear( b ), clear( c ), on( d1, d2 ), on( d2, d3 ), on( d3, a), smaller( d1, d2 ), smaller( d1, d3 ), smaller( d2, d3 ), smaller( d1, a ), smaller( d1, b ), smaller( d1, c ), smaller( d2, a ), smaller( d2, b ), smaller( d2, c ), smaller( d3, a ), smaller( d3, b ), smaller( d3, c ) • Zielzust.: clear( d1 ), clear( a ), clear( b ), on( d1, d2 ), on( d2, d3 ), on( d3, c ) Julia Trommer, Christian Fleischmann Seite 3
1. Die Türme von Hanoi 1.1. Hanoi in Strips 1.2 Hanoi in Functional Strips 2. Functional Strips 2.1 Motivation 2.2 Sprache 2.3 Operatoren 2.4 Zustandsmodell 3. Vergleich Zustandsmodelle: Strips und Functional Strips 4. Reifenbeispiel in Functional Strips Julia Trommer, Christian Fleischmann Seite 4
1.2 Das Hanoi Problem mit drei Türmen in Functional Strips • Domänen: Peg: p1, p2, p3; die Stapel Disk: d1, d2, d3; die Scheiben Disk*: Disk, d0; die Scheiben und eine unterste Dummy Scheibe 0 • Fluents: top: Peg → Disk*; liefert die oberste Scheibe eines Stapels loc: Disk → Disk*; beschreibt die Scheibe unter der gegebenen Scheibe size: Disk* → Integer; repräsentiert die Scheibengröße • Aktionen: move(pi, pj: Peg); bewegt zwischen Stapeln • Vorbed.: top(pi) ≠ d0 , size(top(pi)) < size(top(pj)) • Nachbed.: top(pi) := loc(top(pi)) , loc(top(pi)) := top(pj) , top(pj) := top(pi) • Startzust.: loc(d1) = d0 ; loc(d2) = d1 ; loc(d3) = d2 top(p1) = d3 ; top(p2) = d0 ; top(p3) = d0 size(d0) = 3 ; size(d1) = 2 ; size(d2) = 1 ; size(d3) = 0 • Zielzust.: loc(d1) = d0 ; loc(d2) = d1 ; loc(d3) = d2 ; top(p3) = d3 Julia Trommer, Christian Fleischmann Seite 5
1. Die Türme von Hanoi 1.1. Hanoi in Strips 1.2 Hanoi in Functional Strips 2. Functional Strips 2.1 Motivation 2.2 Sprache 2.3 Operatoren 2.4 Zustandsmodell 3. Vergleich Zustandsmodelle: Strips und Functional Strips 4. Reifenbeispiel in Functional Strips Julia Trommer, Christian Fleischmann Seite 6
2.1 Motivation • Hanoi in Strips: • Relationen: on(i,j), clear(i), smaller(i,j) • Aktionen: move(i,j,k) Anzahl der Basisaktionen N3 • Idee von FS: • Verwendung von functional fluents anstatt der relational fluents in Strips Funktionale Symbole als ‚first class citizens‘ • Hanoi in Functional Strips: • Term: top(pi) • Aktion: move(pi,pj) • Grösster Unterschied zu Strips: • Verwendung von Nachbedingungen Julia Trommer, Christian Fleischmann Seite 7
1. Die Türme von Hanoi 1.1. Hanoi in Strips 1.2 Hanoi in Functional Strips 2. Functional Strips 2.1 Motivation 2.2 Sprache 2.3 Operatoren 2.4 Zustandsmodell 3. Vergleich Zustandsmodelle: Strips und Functional Strips 4. Reifenbeispiel in Functional Strips Julia Trommer, Christian Fleischmann Seite 8
2.2 Sprache • FS ist eine first order language with no quantifications • Symbole: • function symbols • constant symbols • relational symbols • FS ist typbasiert (zum Beispiel Peg, Disk, Disk*): • Typen grenzen Bereiche von Aktionenschemas ab • Typen definieren Domänen, über die Fluents interpretiert sind(Bsp.: die Angabe „Disk: d1, d2, d3“) • Argumente von Fluents müssen sich über endliche Domänen erstrecken (Stapel = { p1, p2, p3}) Julia Trommer, Christian Fleischmann Seite 9
1. Die Türme von Hanoi 1.1. Hanoi in Strips 1.2 Hanoi in Functional Strips 2. Functional Strips 2.1 Motivation 2.2 Sprache 2.3 Operatoren 2.4 Zustandsmodell 3. Vergleich Zustandsmodelle: Strips und Functional Strips 4. Reifenbeispiel in Functional Strips Julia Trommer, Christian Fleischmann Seite 10
2.3 Operatoren beschrieben durch • die Typen ihrer Argumente • durch zwei Mengen • Liste der Vorbedingungen (Prec(op)) Menge von Formeln • Liste der Nachbedingungen (Post(op)) Menge von Updates der Form f(t) := w(t und w sind Terme des selben Typs, f ist fluent Symbol) • Erläuterung der Nachbedingung: Für den Nachfolgezustand sa=next(a,s) muss die Gleichung fsa(ts) = wserfüllt werden. Beispiel:Update wie loc(top(p1)) := top(p2) bedeutet, dass loc(d3) = d2 wahr werden muss in sa, wenn top(p1) = d3 und top(p2) = d2 wahr in s sind; Julia Trommer, Christian Fleischmann Seite 11
1. Die Türme von Hanoi 1.1. Hanoi in Strips 1.2 Hanoi in Functional Strips 2. Functional Strips 2.1 Motivation 2.2 Sprache 2.3 Operatoren 2.4 Zustandsmodell 3. Vergleich Zustandsmodelle: Strips und Functional Strips 4. Reifenbeispiel in Functional Strips Julia Trommer, Christian Fleischmann Seite 12
2.4 Zustandsmodell C1: Zustände • s S sind die logischen Interpretationen über der Sprache LF, und • werden repräsentiert durch Zuweisung eines Wertes fs[v] zu jeder Zustandsvariablen f[v] für jedes fluent f und jeden Wert v in Df Das Problem P(LF,OF,IF,GF) wird mit Hilfe des folgenden Zustandsmodells gelöst: Julia Trommer, Christian Fleischmann Seite 13
2.4 Zustandsmodell C2: der Anfangszustand s0 erfüllt die Gleichung f(t) = w in IF C3: die Zielzustände s SG sind die Interpretationen, die die Zielformel GF erfüllen Startzustand: loc(d1) = d0; loc(d2) = d1; loc(d3) = d2top(p1) = d3; top(p2) = d0; top(p3) = d0size(d0) = 3; size(d1) = 2; size(d2) = 1; size(d3) = 0 Zielzustand: loc(d1) = d0; loc(d2) = d1; loc(d3) = d2; top(p3) = d3 Julia Trommer, Christian Fleischmann Seite 14
2.4 Zustandsmodell C4: Aktionen a A(s) sind die Operatoren op OF, deren Vorbed. in s wahr sind Aktionen: move(pi, pj: Peg); bewegt zwischen Stapeln Vorbed.: top(pi) ≠ d0, size(top(pi)) < size(top(pj)) Nachbed.: top(pi) := loc(top(pi)), loc(top(pi)) := top(pj), top(pj) := top(pi) Julia Trommer, Christian Fleischmann Seite 15
2.4 Zustandsmodell C5: die Repräsentation des Folgezustands sa = next(a,s) für a A(s) bedeutet, dass für jedes fluent symbol f und v Df gilt: Julia Trommer, Christian Fleischmann Seite 16
1. Die Türme von Hanoi 1.1. Hanoi in Strips 1.2 Hanoi in Functional Strips 2. Functional Strips 2.1 Motivation 2.2 Sprache 2.3 Operatoren 2.4 Zustandsmodell 3. Vergleich Zustandsmodelle: Strips und Functional Strips 4. Reifenbeispiel in Functional Strips Julia Trommer, Christian Fleischmann Seite 17
3. Vergleich Zustandsmodelle: Strips(B) und FS(C) B1: - Zustände s S sind die logischen Interpretationen über der Sprache LS, und - werden repräsentiert durch die Menge [s] von Atomen, die sie bewahrheiten C1: - Zustände s S sind die logischen Interpretationen über der Sprache LF, und - werden repräsentiert durch Zuweisung eines Wertes fs[v] zu jeder Zustandsvariablen f[v] für jede fluent f und jeden Wert v in Df Julia Trommer, Christian Fleischmann Seite 18
3. Vergleich Zustandsmodelle: Strips(B) und FS(C) B2: der Anfangszustand s0 ist die Interpretation, die durch die Atome in Is erfüllt wird und durch allen anderen Atome nicht erfüllt wird C2: der Anfangszustand s0 erfüllt die Gleichung f(t) = w in IF B3: die Zielzustände s SG sind die Interpretationen, die durch die Atome in GS erfüllt werden C3: die Zielzustände s SG sind die Interpretationen, die die Zielformel GF erfüllen Julia Trommer, Christian Fleischmann Seite 19
3. Vergleich Zustandsmodelle: Strips(B) und FS(C) B4: Aktionen a A(s) sind die Operatoren op OS,deren Vorbedingungen in s wahr sind C4: Aktionen a A(s) sind die Operatoren op OF,deren Vorbedingungen in s wahr sind Julia Trommer, Christian Fleischmann Seite 20
3. Vergleich Zustandsmodelle: Strips(B) und FS(C) B5: die Übergangsfunktion next bildet Zustände s in Zustände s‘=next(a,s) für a A(s) so ab, dass die Repräsentation von s‘ [s‘]=[s]-Del(a)+Add(a) ist C5: die Repräsentation des Folgezustands sa = next(a,s) für a A(s) bedeutet, dass für jedes fluent symbol f und v Df gilt: Julia Trommer, Christian Fleischmann Seite 21
1. Die Türme von Hanoi 1.1. Hanoi in Strips 1.2 Hanoi in Functional Strips 2. Functional Strips 2.1 Motivation 2.2 Sprache 2.3 Operatoren 2.4 Zustandsmodell 3. Vergleich Zustandsmodelle: Strips und Functional Strips 4. Reifenbeispiel in Functional Strips Julia Trommer, Christian Fleischmann Seite 22
4. Reifenbeispiel in Functional Strips • Domänen: Reifen: rPlatt, rVoll Ort: oKofferraum, oAchse, oBoden • Fluents: loc: Reifen → Ort*; beschreibt den Reifen an seinem Ort • Aktion: remove(ri: Reifen, oj:Ort); entfernt Reifen von Achse/Kofferraum • Vorbed.: loc(ri)= oj • Nachbed.: loc(ri):= oBoden • Aktion: puton (ri:Reifen, oj:Ort); bewegt Reifen • Vorbed.: loc(ri)= oBoden;ri=rVoll; loc(rPlatt)= oBoden • Nachbed.: loc(ri):= oAchse • Startzust.: loc(rPlatt) = oAchse; loc(rVoll) = oKofferraum • Zielzust.: loc(rVoll) = oAchse Julia Trommer, Christian Fleischmann Seite 23