• Keine Ergebnisse gefunden

Metrische Planung

N/A
N/A
Protected

Academic year: 2021

Aktie "Metrische Planung"

Copied!
35
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Metrische Planung

Vorlesung Handlungsplanung

Stefan Edelkamp

(2)

1 Uberblick ¨

- Erweitertes Zustandsraumproblem, Operatorsyntax und -semantik - Ganzzahlige Programmierung

- Nummerisch-relaxierte Planungsheuristik

Uberblick¨ 1

(3)

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

(4)

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

(5)

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

(6)

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

(7)

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

(8)

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

(9)

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

(10)

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

(11)

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

(12)

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

(13)

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:

refuelifueli+1 ≥ C,

• ¬refueliamounti = 0,

fueli+1 = fueli + amountiPa,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: minfuel1fuelL + Pi amounti

Ganzzahlige Programmierung 12

(14)

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

(15)

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

(16)

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

(17)

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

(18)

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

(19)

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

(20)

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

(21)

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

(22)

Pseudo-Code

Procedure Update(exp,min0, max0,min,max) vminEval(min0,max0)

vmaxEval+(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

(23)

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

(24)

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

(25)

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 ← PtSpre(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

(26)

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

(27)

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

(28)

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

(29)

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

(30)

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

(31)

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

(32)

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

(33)

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) expexp[h \ exp0] for j ∈ {1, . . . , i}

if (Test(exp,minj,maxj)) l ← j v(Gl) ← v(Gl) ∪ {exp}

return |A|

Nummerisch-relaxierte Planungsheuristik 32

(34)

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

(35)

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

Referenzen

ÄHNLICHE DOKUMENTE

Am Samstag, 06.November 2021, fi ndet in Nidau wieder der alljährliche „Zibelemärit“ statt. Mit seinem farbenfrohen Erschei- nungsbild begeistert dieser die Besucher seit

Die Ausleerungen waren in den ersten Tagen regelmässig mehr oder weniger getrübt, auch dann, wenn der Urin in den Gummiblasen aufgefangen wurde, welche sonst auf ihren Inhalt

Multicast in 802.11 WLAN Netzwerken.. Carsten Schulz

Abbildung 12 zeigt den modellhaften Übergang von einer eingeschlossenen Pore in einem elastischen Körper (a), die von außen angelegte Spannung, die zu einer Verformung der Pore

Es ist ein sehr komfortables Dilemma, in dem sich der moderne Mensch wiederfindet: nicht zu wissen, welchen Weg man einschlagen soll, weil einem alle offenstehen. Es ist aber auch

Wenn du alle „P“ rot malst, erkennst du Gegenstände, die wir im Alltag oft nutzen. BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB BBBBPBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBPBBBB

[r]

[r]