Metrische Planung
Vorlesung Handlungsplanung
Stefan Edelkamp
1 Uberblick ¨
- Erweitertes Zustandsraumproblem, Operatorsyntax und -semantik - Ganzzahlige Programmierung
- Nummerisch-relaxierte Planungsheuristik
Uberblick¨ 1
2 Metrisches Planen
Metrisches Planen eine Erweiterung des propositionalen Planens mit reel-wertigen Pr ¨adikaten und allgemeinen Zielfunktionen.
Zu den Propositionen, wie z.B. (at plane city-b) gesellen sich nun Variablen, wie (fuel plane), (distance city-a city-b), . . .
F ¨ur die Adressierung der dadurch entstehende Menge von Zustandsvariablen V nutze Index
φ : V → {1, . . . ,|V|}
Metrisches Planen 2
Definition
Im metrischen Planen – PDDL 2.1 . Level 2 – ergibt sich der Zustandsraum S aus
S ⊆ 2F × IR|V|,
wobei 2F die Potenzmenge von F ist.
Ein Zustand S ∈ S ist ein Paar (Sp, Sn) mit:
• einem propositionalen Teil Sp ∈ 2F und
• einem nummerischen Teil Sn ∈ IR|V|.
Metrisches Planen 3
Operatorsyntax
Ein Operator o ∈ O in Normalform o = (α, β, γ, δ) hat
• propositionale Vorbedingungen α ⊆ F,
• propositionale Effekte β = (βa, βd) ⊆ F2,
• nummerische Vorbedingungen γ und
• nummerische Effekte δ.
Metrisches Planen 4
Vorbedingungen
Eine nummerische Vorbedingung c ∈ γ ist ein Tripel c = (hc,⊗, tc) mit
• hc ∈ V,
• ⊗ ∈ {≤, <, =, >,≥} und
• tc ∈ T, wobei T Menge arithmetischer B ¨aume ca. gleichm ¨achtig: c = (tc,⊗, t0c)
Metrisches Planen 5
Effekte
Ein nummerischer Effekt m ∈ δ ist ein Tripel m = (hm,⊕, tm), wobei
• hm ∈ V, ⊕ ∈ {←,↑,↓,%,&} und
• tm ∈ T.
Kopf des nummerischen Effekts: hm Wertzuweisung: ←
Wertauf- bzw. abschl ¨age: ↑ bzw. ↓, sowie % bzw. &.
Metrisches Planen 6
Planziel
Das Planziel G ist ¨ublicherweise als
G = (Gp,Gn)
gegeben mit
• Gp ⊂ F und
• Gn als eine Menge von nummerischen Bedingungen c = (hc,⊗, tc). Komplexe Ziele lassen sich durch die Einf ¨uhrung von Extra-Operatoren beschreiben.
Metrisches Planen 7
Operatorsemantik
Ein Vektor Sn = (S1, . . . , S|V|) nummerischer Variablen erf ¨ullt eine nummerische Bedingung
c = (hc,⊗, tc) ∈ γ, wenn
Sφ(h
c) ⊗ Eval(Sn, tc) gilt.
Eval(Sn, tc) ∈ IR ergibt sich dadurch, dass alle v ∈ V in tc durch Sφ(h
c) ersetzt werden . . .
. . . gefolgt von einer Vereinfachung von tc.
Metrisches Planen 8
Operatorsemantik
Ein Vektor Sn = (S1, . . . , S|V|) wir zu dem Vektor Sn0 = (S10 , . . . , S|V|0 ) durch die Ver ¨anderung
m = (hm,⊕, tm) ∈ δ aktualisiert, wenn
• S0
φ(hm) = Eval(Sn, tm) f ¨ur ⊕ = ←,
• S0
φ(hm) = Sφ(h
m) + Eval(Sn, tm) f ¨ur ⊕ = ↑,
• S0
φ(hm) = Sφ(h
m) − Eval(Sn, tm) f ¨ur ⊕ = ↓,
• S0
φ(hm) = Sφ(h
m) ∗ Eval(Sn, tm) f ¨ur ⊕ = % und
• S0
φ(hm) = Sφ(h
m)/Eval(Sn, tm) f ¨ur ⊕ = &.
Metrisches Planen 9
Operatorsemantik
Ein Operator o = (α, β, γ, δ) ∈ O, der in Zustand S = (Sp, Sn) mit Sp ∈ 2F und Sn ∈ IR|V|
angewendet wird, erzeugt wie folgt einen Nachfolger
S0 = (Sp0 , Sn0 ) ∈ 2F × IR|V| :
Wenn α ⊆ Sp und Sn alle c ∈ γ erf ¨ullt dann ist
Sp0 = (Sp \ βd) ∪ βa und der Vektor Sn wird f ¨ur alle m ∈ δ aktualisiert.
• Aktualisierungsschritt Sp0 = (Sd \ βd) ∪ βa entspricht STRIPS-Semantik.
• u.U. Reihenfolge der Aktualisierung wichtig.
Metrisches Planen 10
3 Ganzzahlige Programmierung
Idee: Jedes Erf ¨ullbarkeitsproblem auch als ganzahliges Programm ¨uber den Variablenwerten 0 und 1, kurz als 0/1 ILP, formuliert werden kann:
• Wert 0 entspricht dem logischen Wert falsch und
• Wert 1 entspricht dem logischen Wert wahr.
So wird Formel (p ∧ q) zu p + (1 − q) ≥ 1, mit p, q ∈ {0,1}.
ILP in Operations Research Standartwerkzeug zur L ¨osung von Optimierungsproblemen
Ganzzahlige Programmierung 11
Beispiel
F ¨ur die Spezifikation der Aktion refuel und fly in Zeno mit den Variablen fuel und amount ergeben sich f ¨ur alle i die Gleichungen:
• refueli ⇒ fueli+1 ≥ C,
• ¬refueli ⇒ amounti = 0,
• fueli+1 = fueli + amounti − Pa,b,a6=b flyi(a, b) · dist(a, b) · rate, und
• fueli + Pa,b,a6=b flyi(a, b) ≤ 1.
Gemischt logisch/numerischen Gleichungen lassen sich leicht in lineare Ungleichungen transformieren.
Eine Optimierungsfunktion ist: minfuel1 − fuelL + Pi amounti
Ganzzahlige Programmierung 12
L ¨ osungen von ILPs
Missionar - und Kannibale: Gut beschrieben als
X
m
ati(m, s) ≥ X
c
ati(c, s) f ¨ur alle Schritte i und Ufer s Problem: Im Gegensatz zu LPs, ILPs im Allgemeinen NP hart.
⇒ Randomisiertes Runden: LP-Relaxation der ganzzahligen Variablen aus {0,1}
durch die reelwertige Variablen aus [0,1]
Die reelwertigen L ¨osungen werden als Wahrscheinlichkeiten interpretiert, die zum Ausw ¨urfeln der Wahrheitswerte dienen.
Eine gen ¨ugend große Anzahl von Auswahlen stellt sicher, dass die L ¨osung mit einer hohen Erwartung generiert wird.
Ganzzahlige Programmierung 13
4 Nummerisch-relaxierte Planungsheuristik
. . . generiert und analysiert erweiterten geschichteten Plangraphen
. . . mit aktuell g ¨ultigen propositionalen Fakten und nummerischen Bedingungen . . . wendet Operatoren an, bis letztendlich das Ziel erreicht wird
. . . gierige Auswahl Proposition oder Bedingung
. . . propositionalen und nummerischen Vorbedingungen noch zu erledigen . . . in die kleinste Schicht, in der sie g ¨ultig sind
. . . erf ¨ullte Bedingung wird gel ¨oscht und Verfahren iteriert . . . mehrfache Anwendung eines Operators m ¨oglich
Nummerisch-relaxierte Planungsheuristik 14
Beispiel
Problem Metrik-FF : Jede Bedingung die Form a0v0 + . . . + akvk mit Variable vi und Koeffizienten ai hat.
(:action mul
:parameters (?x ?y ?z - number)
:precondition (and (active ?x) (active ?y) (non-active ?z))
:effect
(and (not (active ?x))
(not (active ?y)) (active ?z) (assign (value ?z)
(* (value ?x) (value ?y))))
Nummerisch-relaxierte Planungsheuristik 15
Generalisierung
Plangraph sird entsprechend der Teilroutinen Test und Update konstruiert und analysiert.
Beide Funktionen nutzen die approximative Evaluation Eval+[−](exp),
um rekursiv den maximalen und minimalen Wert eines Ausdrucks exp mit Variablen vi ∈ [mini,maxi] zu berechnen.
Nummerisch-relaxierte Planungsheuristik 16
Erf ¨ ullbarkeit einer Bedingung
Der Test einer Bedingung exp innerhalb des Vektors von Variablenschranken schw ¨acht die Anforderung nach einer genauen Zuweisungsinformation ab.
Wenn es irgendeine Zuweisung zu einer Variablen innerhalb der gegebenen Grenzen gibt, so liefert die Prozedur wahr.
Fallunterscheidung entsprechend dem Vergleichsoperator in der Wurzel des Ausdrucks exp: beide Teilb ¨aume werden nach maximalen und minimalen Auswertungen durchsucht.
Nummerisch-relaxierte Planungsheuristik 17
Pseudo-Code
Procedure Test(exp,min,max) if (op(exp) = ≥ [>])
return
Eval+(left(exp,min,max)) ≥ [>]
Eval−(right(exp,min,max)) if (op(exp) = ≤ [<])
return
Eval−(left(exp),min,max) ≤ [<]
Eval+(right(exp),min,max) [...]
Nummerisch-relaxierte Planungsheuristik 18
Korrektheit Prozedur Test
Satz Wenn Eval+[−](exp) den maximalen [minimalen] Wert berechnet, den ein Ausdruck exp mit den Variablen vi ∈ [mini,maxi] besitzt, dann scheitert Test, falls es keine Zuweisung a ∈ [min,max] f ¨ur v gibt, die exp erf ¨ullt.
Die Beobachtung ist in allen F ¨allen f ¨ur Test offensichtlich wahr.
Es wurde jeweils die schw ¨achste Kombination in der Bedingung gew ¨ahlt.
Zum Beispiel wird f ¨ur ≥ der maximale Wert einer Zuweisung auf der linken Seite mit dem minimalen Wert einer Zuweisung auf der rechten Seite verglichen.
Nummerisch-relaxierte Planungsheuristik 19
Update
Aktualisierung bzgl. eines gegebenen Ausdrucks exp
Update transformiert [min0,max0] in [min,max] unter der Annahme, dass [min,max] mit [min0,max0] initialisiert wurde
Minimale und maximale Evaluation vmin und vmax werden mit alten Schranken berechnet
Schranken aktualisiert, falls die Evaluation die bestehenden Grenzen ¨uberschreitet Aktualisierungsschritte dieser Schranken jeweils konservativ
Ist z.B. der Anstieg in Variable vi mindestens vmin < 0 und h ¨ochstens vmax > 0, dann sichert [mini+vmin,maxi +vmax], dass die Variablenzuweisung zu vi einen Wert ergibt, der in I liegt
Nummerisch-relaxierte Planungsheuristik 20
Pseudo-Code
Procedure Update(exp,min0, max0,min,max) vmin ← Eval−(min0,max0)
vmax ← Eval+(min0,max0) if (op(exp) = ↑)
if (vmin < 0) minhead(exp) ↑ vmin if (vmax > 0) maxhead(exp) ↑ vmax if (op(exp) = ↓)
if (vmin > 0) minhead(exp) ↓ vmin if (vmax < 0) maxhead(exp) ↓ vmax if (op(exp) = ←)
if (vmin < minhead(exp)) minhead(exp) ← vmin if (vmax > maxhead(exp)) maxhead(exp) ← vmax
Nummerisch-relaxierte Planungsheuristik 21
Korrektheit Update
Satz Wenn Eval+[−](exp) den maximalen [minimalen] Wert berechnet, den ein Ausdruck exp mit den Variablen vi ∈ [mini,maxi] besitzt,
dann aktualisiert Update die Schranken, so dass jede Wertzuweisung einer Variablen mit Werten aus [min0,max0] in [min,max] enthalten ist.
Nummerisch-relaxierte Planungsheuristik 22
Relaxierte Planerzeugung
F ¨ur jede Schicht t im Plangraphen wird eine Menge von Propositionen und ein Vektor von Schranken f ¨ur die nummerischen Variablen bestimmt.
Um die Menge der anwendbaren Aktionen At zu bestimmen, wird Prozedur Test auf die Vektoren mint bzw. maxt und die jeweiligen Vorbedingungen angewandt.
Nomenklatur:
• C der aktuelle Zustand,
• G das Planziel,
• p(·) beschreibt die Menge der wahren Propositionen und
• v(·) die Variablenzuweisungen in einem gegebenen Zustand.
Nummerisch-relaxierte Planungsheuristik 23
Pseudo-Code
Procedure Relax(C,G)
P0 ← p(C); ∀i : mini0 ← maxi0 ← vi(C) t ← 0
while (p(G) 6⊆ Pt or
∃exp ∈ v(G) : Test(exp,mint,maxt)) At = {a ∈ A | p ∈ pre(a) ⊆ Pt,
∀exp ∈ v(pre(a)) : Test(exp,mint,maxt))}
Pt+1 ← Pt ∪ Spre(a)⊆Pt add(a) [mint+1,maxt+1] ← [mint,maxt] for a ∈ At,exp ∈ v(eff(a))
Update(exp,mint,maxt,mint+1,maxt+1) if (relaxed problem unsolvable) return ∞
t ← t + 1
Nummerisch-relaxierte Planungsheuristik 24
Vollst ¨andigkeit
Satz Wenn Relax mit ∞ terminiert, dann ex. keine L ¨osung im originalen Problem.
Die zwei Aspekte, die zum Beweis der Aussage ben ¨otigt werden, sind:
1. Jeder Plan f ¨ur das originale Problem l ¨ost auch das relaxierte und
2. Falls Pt = Pt+1 und [mint+1,maxt+1] 6⊆ [min-need,max-need] einmal nicht gilt, so auch nicht in allen folgenden Iterationen.
zu 1. die Erf ¨ullung der nummerischen Bedingungen und Propositionen durch den Relaxierungsprozess erhalten bleiben. Falls Bedingung exp oder Proposition p im originalen Problem erreichbar sind, so auch im relaxierten.
zu 2. In allen Schichten des Plangraphen gilt Pt ⊆ Pt+1 und [mint,maxt] ⊆ [mint+1,maxt+1].
Nummerisch-relaxierte Planungsheuristik 25
Komplexit ¨at
Algorithmus proportional zur Gr ¨oße des Plangraphen multipliziert mit der
maximalen L ¨ange der Bedingungs- und Effekt-Listen und der maximalen Gr ¨oße der arithmetischen Ausdr ¨ucke.
Da Operatoren mehrfach angewendet werden k ¨onnen, muss die Tiefenschranke nicht unbedingt polynomiell in Bin ¨arkodierungsl ¨ange der Eingabe liegen.
Diese Exponentialit ¨at kann allerdings durch spezielle Regeln vermieden werden, so dass die Entscheidungszeit f ¨ur das propositionale relaxierte
Planerf ¨ullbarkeitsproblem tats ¨achlich polynomial ist.
Nummerisch-relaxierte Planungsheuristik 26
Relaxierte Planextraktion
F ¨ur den Extraktionsprozess m ¨ussen wir zuerst die minimalen Schichten der Zielpropositionen bestimmen und die ebenfalls den Schichten zugeordneten Warteschlangen von Zielanforderungen initialisieren.
Procedure Extract(G) A ← ∅
for i ∈ {1, . . . , t}
p(Gi) ← {g ∈ p(G) | level(g) = i}
for exp ∈ v(G)
if Test(exp,mini maxi)
v(Gi) ← v(Gi) ∪ {exp}; v(G) ← v(G) \ {exp}
Nummerisch-relaxierte Planungsheuristik 27
Extraktion (cont.)
Nun muss der konstruierte Graph Schicht f ¨ur Schicht r ¨uckw ¨arts traversiert werden.
Um die Menge der aktivierten Operatoren zu finden, wird in jeder Schicht die Menge Ai aus der Vorw ¨artsphase betrachtet und die Vektoren mini+1 bzw.
maxi+1 erneut berechnet.
Entweder trifft eine der Add-Effekte der Operatoren aus Ai ein Atom in der
propositionalen Warteschlange der Schicht i, oder die nummerischen Bedingungen treffen in der nummerischen Warteschlange der Schicht i zu.
In beiden F ¨allen propagieren wir die nummerischen oder propositionalen
Vorbedingungen zu der Schicht, in der sie in der Vorw ¨artsiteration zum erstenmal g ¨ultig waren.
Nummerisch-relaxierte Planungsheuristik 28
Pseudo Code: Propositionaler Effekt
for i ∈ {t, . . . , 1}
[mini+1,maxi+1] ← [mini,maxi] for a ∈ Ai
for exp ∈ v(eff(a))
Update (exp,mini, maxi,mini+1,maxi+1) for e ∈ add(a)
if e ∈ p(Gi)
A ← A ∪ {a}; p(Gi) = p(Gi) \ add(a) for p ∈ p(pre(a)):
p(Glevel(p)) ← p(Glevel(p)) ∪ {p}
for exp ∈ v(pre(a))
v(Glevel(exp)) ← v(Glevel(exp)) ∪ {exp}
Nummerisch-relaxierte Planungsheuristik 29
Pseudocode: Nummerischer Effekt
for i ∈ {t, . . . , 1} for a ∈ Ai
[...]
for exp ∈ v(Gi)
if Test(exp,mini+1,maxi+1)
A ← A ∪ {a}; v(Gi) = v(Gi) \ {exp}
p(Gi) = p(Gi) \ add(a) for p ∈ p(pre(a))
p(Glevel(p)) ← p(Glevel(p)) ∪ {p}
for exp ∈ v(pre(a))
v(Glevel(exp)) ← p(Glevel(exp)) ∪ {exp}
Nummerisch-relaxierte Planungsheuristik 30
Extraktion (cont.)
Der verbleibende Quelltextabschnitt, betrachtet, wie die ausgew ¨ahlten nummerische Bedinungen selbst propagiert werden k ¨onnen.
Hierbei beschr ¨anken wir uns der Einfachheit halber auf die einfache Wertzuweisung.
Nachdem die nummerische Zuweisung ausgew ¨ahlt wurde, ben ¨otigen wir eine M ¨oglichkeit, die schw ¨achste Vorbedingung zu finden.
Diese wird dann in der Warteschlange in der kleinst-m ¨oglichen Schicht eingef ¨ugt und muss f ¨ur den relaxierten Plan noch erf ¨ullt werden.
Diese Schicht f ¨ur die neue Zielbedingung wird durch Anwenden der Test-Prozedur f ¨ur die j ∈ {1, . . . , i} berechnet.
Nummerisch-relaxierte Planungsheuristik 31
Pseudo Code (cont.)
for i ∈ {t, . . . , 1}
for a ∈ Ai
for exp ∈ v(Gi)
if Test(exp,mini+1,maxi+1) [...]
for exp0 ∈ v(eff(a)) h ← head(exp0) exp ← exp[h \ exp0] for j ∈ {1, . . . , i}
if (Test(exp,minj,maxj)) l ← j v(Gl) ← v(Gl) ∪ {exp}
return |A|
Nummerisch-relaxierte Planungsheuristik 32
Schw ¨achste Vorbedingung
Als Konsequenz ben ¨otigen wir eine Option, um die schw ¨achste Vorbedingung eines gegebenen nummerischen Ausdrucks im Verh ¨altnis zu einem Zuweisungsoperator zu bestimmen.
Um dieses Problem zu l ¨osen, nutzen den Hoare-Kalk ¨ul.
Wir sind nur an der Zuweisungsregel interessiert, die die schw ¨achste Vorbedingung einer Zuweisung findet.
Nach dem Kalk ¨ul von Hoare ist diese durch {p[x \ t]} x ← t; {p} gegeben, wobei x die Variable, p die Nachbedingung und [x \ t] die Substitution von t in x ist.
Nummerisch-relaxierte Planungsheuristik 33
Beispiel
Programm, das nur aus der Zuweisung u ← 3x + 17 besteht Nachbedingung p: Ungleichung u < 5x
Um die schw ¨achste Vorbedingung zu finden, setzen wir t = 3x + 17, so dass sich p[u \ t] als 3x + 17 < 5x bzw. x > 8.5 ergibt.
Die Anwendung im Planungskontext ist dadurch gegeben, dass wir eine Zuweisung der Form h ← exp und eine Nachbedingung exp0 haben.
Beide Ausdr ¨ucke exp und exp0 sind arithmetische Ausdr ¨ucke.
Die schw ¨achste Vorbedingung kann nun durch die Substitution jeden Vorkommens von h in exp0 durch exp bestimmt werden.
Nummerisch-relaxierte Planungsheuristik 34