Download - Seminar Cognitive Systeme WS 2004/05 Functional Strips Julia Trommer, Christian Fleischmann
Seminar Cognitive Systeme WS 2004/05
Functional Strips
Julia Trommer, Christian Fleischmann
Julia Trommer, Christian Fleischmann Seite 2
Functional Strips
1. Die Türme von Hanoi1.1. Hanoi in Strips
1.2 Hanoi in Functional Strips
2. Functional Strips2.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 3
Functional Strips
• 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 )
1.1 Das Hanoi Problem mit drei Türmen in Strips
Julia Trommer, Christian Fleischmann Seite 4
Functional Strips
1. Die Türme von Hanoi1.1. Hanoi in Strips
1.2 Hanoi in Functional Strips
2. Functional Strips2.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 5
Functional Strips
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 ScheibenDisk*: Disk, d0; die Scheiben und eine unterste Dummy Scheibe 0
• Fluents: top: Peg → Disk*; liefert die oberste Scheibe eines Stapelsloc: Disk → Disk*; beschreibt die Scheibe unter der gegebenen
Scheibesize: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 6
Functional Strips
1. Die Türme von Hanoi1.1. Hanoi in Strips
1.2 Hanoi in Functional Strips
2. Functional Strips2.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 7
Functional Strips
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 8
Functional Strips
1. Die Türme von Hanoi1.1. Hanoi in Strips
1.2 Hanoi in Functional Strips
2. Functional Strips2.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 9
Functional Strips
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 10
Functional Strips
1. Die Türme von Hanoi1.1. Hanoi in Strips
1.2 Hanoi in Functional Strips
2. Functional Strips2.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 11
Functional Strips
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) = ws erfü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 12
Functional Strips
1. Die Türme von Hanoi1.1. Hanoi in Strips
1.2 Hanoi in Functional Strips
2. Functional Strips2.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 13
Functional Strips
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 14
Functional Strips
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) = d2
top(p1) = d3; top(p2) = d0; top(p3) = d0
size(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 15
Functional Strips
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 16
Functional Strips
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:
anderevf
tvundaPostinwtfwennwvf
s
ss
sa )(
)(:)(][
Julia Trommer, Christian Fleischmann Seite 17
Functional Strips
1. Die Türme von Hanoi1.1. Hanoi in Strips
1.2 Hanoi in Functional Strips
2. Functional Strips2.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 18
Functional Strips
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 19
Functional Strips
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 20
Functional Strips
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 21
Functional Strips
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:
anderevf
tvundaPostinwtfwennwvf
s
ss
sa )(
)(:)(][
Julia Trommer, Christian Fleischmann Seite 22
Functional Strips
1. Die Türme von Hanoi1.1. Hanoi in Strips
1.2 Hanoi in Functional Strips
2. Functional Strips2.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 23
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
4. Reifenbeispiel in Functional Strips