Wahrscheinlichkeitstheoretische Planung
Vorlesung Handlungsplanung
Stefan Edelkamp
1 Uberblick ¨
- Makrov’sche Entscheidungsprozessprobleme - Zustandswertfunktion und Aktionswertfunktion
- Monte-Carlo Simulation und Optimierung von Wertfunktionen - Politikiteration
- Wertfunktionsiteration
- ADDs f ¨ur Wertfunktionsiteration
Uberblick¨ 1
2 MDPs
Ein Makrov’sches Entscheidungsprozessproblem, kurz MDP, wird durch Zustands- und Aktionsmengen in einer Umgebung beschrieben.
Ist ein Zustand S und ein Operator O gegegen, dann ist die Wahrscheinlichkeit f ¨ur jeden m ¨oglichen Nachfolgezustand S0 von S beschrieben durch
PSSO 0 = P r[St+1 = S0 | St = S, Ot = O]
Die erwartete Belohnung ist
ROSS0 = E[rt+1 | St = S, Ot = O, St+1 = S0]
MDPs 2
Beispiel
Roboter, der leere Limonadeb ¨uchsen aufsammeln muss. Er hat - hat Sensoren, um die Limonadebeh ¨alter zu finden,
- einen Greifarm, um die B ¨uchsen einzusammeln und - eine aufladbare Batterie.
Zustandsvariablen f ¨ur die Batterie: sind {high,low}
M ¨ogliche Aktionen: {search,wait,recharge}, wobei reacharge in high nicht anwendbar ist.
→ 10 Kombination von S, S0 und O (vier f ¨ur search, vier f ¨ur wait und zwei f ¨ur recharge).
MDPs 3
Wahrscheinlichkeitstabelle
F ¨ur die Tripel (S,S0,O) legen wir folgende Wahrscheinlichkeiten PO
SS0 und erwarteten Belohnungen RO
SS0 fest:
(high,high,search): (p1, r1) (high,low,search): (1 − p1, r1) (low,high,search): (1 − p2,−3) (low,low,search): (p2, r1)
(high,high,wait): (1, r2) (high,low,wait): (0, r2) (low,high,wait): (0, r2) (low,low,wait): (1, r2)
(high,low,recharge): (1, 0) (high,low,recharge): (0, 0)
MDPs 4
Ubergangsgraph ¨
Ubersicht ¨uber die stochastischen Transitionen zwischen den Zust ¨anden, die sich¨ wiederum aus den Kombinationen der Zustandsvariablen ergeben.
Beispiel: zwei Knoten f ¨ur low und high, 5 m ¨oglichen Aktionen zu 7 nicht trivialen Kanten f ¨uhren.
Aktionsknoten: Zur besseren ¨Ubersicht ausgehende Aktionskanten b ¨undeln Wie beim nichtdeterministischen Planen sind L ¨osungen von MDPs keine Sequenzen von Aktionen.
Pl ¨ane: sogenannte Politiken π, die f ¨ur jedes Zustandsaktionspaar (S, O) eine Wahrscheinlichkeit festlegen, mit der O in S ausgew ¨ahlt werden soll.
MDPs 5
Zustandswertfunktion
V π(S) gibt den erwarteten Gewinn bei Ausf ¨uhrung von π in S an, d.h.
V π(S) = Eπ{Rt | St = S}
Analog: Aktionswertfunktion
Qπ(S, O) = Eπ{Rt | St = S, Ot = O}
MDPs 6
Monte-Carlo Simulation
F ¨ur V π und Qπ werden verschiedene der Politik π folgende Beispiell ¨aufe generiert und ausgewertet.
Optimale Politik: mit Hilfe der dynamischen Programierung
Approximierte Bellman’sche Optimalit ¨atsgleichung:
V π(S) = X
O∈O
π(S, O) X
S0∈S
PSSO 0[RSS0 + δ · V π(S0)].
Der Wert δ ∈ (0,1) ist der sogenannte Discount, der vorher festgelegt wird und der garantiert, dass die Erwartungswerte konvergieren.
MDPs 7
Optimale Zustandswertfuntkion
Definition: F ¨ur alle S ∈ S gilt:
V ∗(S) = max
π V π(S)
Analog Optimale Aktionswertfuntkion i Q∗(S, O) = maxπ Qπ(S, O). Wir haben f ¨ur V ∗ die folgende Rekursionsbedingung:
V ∗(S) = max
O∈O
X
S0∈S
PSSO 0[RSS0 + δ · V ∗(S0)].
Im Beispiel: V ∗(high) Maximum aus den zwei verschiedenen Werten r1 + δ[p1V ∗(high) + (1 − p1)V ∗(low)] und r2 + δ · V ∗(high).
MDPs 8
3 Politikiteration
Ist Politik π durch V π zu π0 verbessert, → verbessere π0 durch V π0 zu π00
→ Serie von sich stetig verbessernden Politiken und Wertfunktionen.
- π0 ensteht aus V π durch Politikverbesserung - V π entstehe aus π durch Politikauswertung.
Speichereffizienztrick (Auswertung): Beschr ¨ankung auf gerade und ungerade Vektoren in V
Politikiteration 9
Auswerten einer Politik
Procedure Evaluate
for i ∈ {0, . . . ,|S| − 1}
V (0, i) ← 0 for t ∈ {0, . . . , T − 1}
for i ∈ {0, . . . ,|S| − 1} v ← Rπ(i)i
for k ∈ {0, . . . , |S| − 1}
v ← v + δ · Pi,kπ(i) · V ((t − 1)&1, k) V (t&1, i) ← v
Politikiteration 10
Politik-Iteration
Procedure Policy-Iteration
for i ∈ {0, . . . ,|O|}: π(i) ← 1 do Evaluate()
c ← 0
for i ∈ {0, . . . , |S − 1|}
b ← −∞; o ← −1
for j ∈ {0, . . . , |O| − 1} v ← Rji
for k ∈ {0, . . . , |S| − 1}
v ← v + δ · Pi,kj · V (0, k) if (v > b): b ← v; o ← j
if (π(i) 6= o) c ← 1: π(i) ← o while (c)
Politikiteration 11
Kurz und Knapp
Formal gesprochen ist f ¨ur alle S ∈ S die Auswertung durch V (S) = X
S0∈S
Pπ(S)
S,S0 [Rπ(s)
SS0 + δV (S0)]
gegeben und
π(S) = argmax
O∈O
X
S0∈S
PS,SO 0[ROSS0 + δV (S0)]
ein Verbesserungsschritt.
Politikiteration 12
4 Wertiteration
Nachteil Politikiteration: jede Iteration erfordert vollst ¨andige Bewertung erfordert.
→ Auswertung der Politik nach genau einem Backup-Schritt gestoppt wird, kurz
V (S) = max
O∈O
X
S0∈S
PS,SO 0[ROSS0 + δV (S0)]
Ausgabe: Entsprechende Politik
π(S) = argmax
O∈O
X
S0∈S
PS,SO 0[ROSS0 + δV (S0)]
Wertiteration 13
5 Implementierung Wertiteration
Procedure Value-Iteration for i ∈ {0, . . . ,|S| − 1}
V (0, i) ← 0 for t ∈ {1, . . . , T}
for i ∈ {0, . . . , |S| − 1}
m ← 0
for j ∈ {0, . . . , |O| − 1} v ← Rji
for k ∈ {0, . . . , |S| − 1}
v ← v + δ · Pi,kj · V (t − 1, k) if (v > m) A ← j; M ← v
V (t, i) = m Choice
Implementierung Wertiteration 14
6 Aktionsauswahl in Wertiteration
Procedure Choice
for i ∈ {0, . . . ,|S| − 1}
b ← −∞; o ← −1
for j ∈ {0, . . . ,|O| − 1} v ← Rji
for k ∈ {0, . . . ,|S| − 1}
v ← v + δ · Pi,kj · V (T, k) if (|v − V (T, i)| < |b − V (T, i)|)
b ← v; o ← j
Aktionsauswahl in Wertiteration 15
Terminierung
Bisher sind wir davon ausgegangen, dass der Benutzer die Anzahl der Iterationen vorgibt. Dise ist aber nicht unbedingt erstrebenswert.
Eine h ¨aufig genutzte Terminierungsbedingung ist ||V n+1 − V n|| < (1 − δ)/2δ, wobei ||X|| = max{|x| : x ∈ X} die Supremumsnorm bezeichnet.
→ Wertfunktion V n+1 weicht nicht weiter als /2 von der optimalen Wertfunktion V ∗ ab.
Die resultierende Politik ist -optimal.
Aktionsauswahl in Wertiteration 16
7 ADDs
Algebraische Entscheidungsdiagramme, kurz ADDs: generalisieren BDDs auf reelwertige Funktionen {0,1}n → IR.
→ mitunter mehrere Terminalknoten.
Rekursive Definition:
1. Die Funktion f, die von einem mit c ∈ IR beschriebenen Blattknoten dargestellt wird, ist die konstante Funktion f ≡ c
2. Die Funktion f eines nicht-terminalen Knoten, der mit der Boole’schen Variable x beschriftet ist, ergibt sich wie folgt aus den Nachfolgerfunktionsdarstellungen
f(x1, . . . , xn) = x1 · f|x1=1(x2, . . . , xn) + ¬x1 · f|x1=0(x2, . . . , xn).
wobei die Boole’schen Werte f ¨ur xi als 0 und 1 interpretiert werden.
ADDs 17
Eindeutigkeit
Wie BDDs sind Darstellung von Funktionen mit ADDs bei fester Variablenbelegung eindeutig.
Effizient: Multiplikation, Addition und Maximierung zweier ADDs
Geteilte Darstellung: Teilgraphen von Funktionen werden gemeinsam genutzt.
Bibliotheken Z.B. bietet CUDD ADD Funktionalit ¨at an.
ADDs 18
Beispiel
Maximierung ist die Funktion f(x, z) mit Wert 5 f ¨ur x ∨ z und 0.5 f ¨ur ¬x ∧ ¬z.
→ ADD zur Ordnung (z, y) hat 2 innere Knoten und 2 Bl ¨atter.
Sei desweiteren g(y, z) mit Wert 7 f ¨ur z, 5.0 f ¨ur ¬z ∧ y und 0.0 f ¨ur ¬z ∧ ¬y.
→ ADD zur Ordnung (z, y) hat 2 innere Knoten und 3 Bl ¨atter.
→ h(x, y, z) = max(f(x, z), g(z, y)) ein ADD zur Ornung (z, x, y) mit drei inneren Knoten und drei Bl ¨attern
ADDs 19
Wertiteration mit ADDs (SPUDD)
Codierung: Boole’schen Variablens ¨atze x = (x1, . . . , xn) x0 = (x01, . . . , x0n)
Dynamisches Bayes’sches Netz (DBN): Azyklischer Graph mit Knoten f ¨ur die
Variablen und Kanten, um die Abh ¨angigkeit einer Variablen in von einer anderen zu beschreiben.
SPUDD-Eingabe: DBN f ¨ur jede Aktion O ∈ O genutzt.
Bedingte Wahrscheinlichkeitstabelle (CPT): F ¨ur jedes x0i die bedingte Wahrscheinlichkeit PO
x0i(x1, . . . , xn) f ¨ur x0i.
Funktionswerte h ¨angen nur von den xj ab, die direkte Vorg ¨anger von x0i sind.
ADDs 20
Aktionsdiagramme
Die CPTs, auch Aktionsdiagramme genannt, werden durch ADDs repr ¨asentiert, d.h. ¨ur jede Aktion O und jede Variable x0i wird ein ADD PO
x0i(x1, . . . , xn) generiert.
Auch die Belohnungsfunktion wird als BDD dargestellt,
Beispiel Sei R(c, p) = c · p · 10.0 + c · ¬p · 5.0 mit Variablen c f ¨ur “verbunden” und p f ¨ur ”angestrichen”,
⇒ Ein Gewinn von 10 Einheiten, wenn
- die zwei Objekte verbunden und angestrichen sind und
- einen Gewinn von immerhin 5 Einheiten, wenn die zwei Objekte verbunden aber nicht angestrichen sind.
ADDs 21
Wertiteration mit BDDs
Procedure BDD Value-Iteration
V 0 ← R; i ← 0; ∀O ∈ O, xj ∈ X0: create QO
x0j(x0j, x1, . . . , xn) while ||V i+1 − V i|| > (1 − δ)/2δ
V 0i ← V [x ↔ x0]
∀O ∈ O
v ← V 0i
∀x0j ∈ V 0i
v ← Pa0
j v · QO
x0j
VOi+1 ← R + δ · v V i+1 ← maxO∈O VOi+1 i ← i + 1
extract ADD π and return (V i+1, π)
ADDs 22
Erl ¨auterungen
Jede Wertfunktion wird als ADD V i(x1, . . . , xn) dargestellt. Da V 0 = R hat V 0 eine klare ADD Repr ¨asentation.
Der Algorithmus beruht auf der Einsicht, dass die ADD Repr ¨asentation direkt
genutzt werden kann, um die Erwartungswerte und Maximierungen durchzuf ¨uhren.
Eine Iterationsschritt in Prozedur BDD Value-Iteration berechnet V i+1 bei gegebenen V i.
Demanch m ¨ussen zun ¨achst alle Variablen in V von x nach x0 getauscht werden.
Dabei wird V i+1 f ¨ur jedes O ∈ O getrennt berechnet.
ADDs 23
Duale Aktionsdiagramme
Die ADDs QO
x0j werden duale Aktionsdiagramme genannt und ergeben sich aus PO
x0j(x1, . . . , xn) und ¬PO
x0j(x1, . . . , xn) = 1 − PO
x0j(x1, . . . , xn) wie folgt QOx0
j
(x0j, x1, . . . , xn) = xi · PxO0 j
(x1, . . . , xn) + (1 − xj) · ¬PxO0 j
(x1, . . . , xn)
Mit anderen Worten: QO
a0j(a0j, a1, . . . , an) bedingte Wahrscheinlichkeit P r(x0j = a0j|x1 = a1, . . . , xn = an) f ¨ur Aktion O. U
ADDs 24
Berechnung von V
Oi+1Um VOi+1 f ¨ur jedes O ∈ O zu bestimmen, muss f ¨ur alle Zust ¨ande S und S0 die Wahrscheinlichkeit berechnet werden, um von S nach S0 zu gelangen.
Dieses wird durch die Multiplikation des dualen Aktionsdiagramms f ¨ur x0j mit V 0i und anschließender Summation ¨uber die Werte im resultierenden ADD erreicht.
Genauer: Durch die Multiplikation von QO
x0j mit V 0i entsteht eine Funktion f mit f(a01, . . . , a0n, a1, . . . , an) = V 0i(a01, . . . , a0n)P r(a0j|a1, . . . , an).
Anschließend wird durch Aufaddierern ¨uber die beiden Werte aj ∈ {0,1} f ¨ur xj der Erwartungswert
g(x01, . . . , x0j−i, x0j+1. . . x0n, x1, . . . , xn) = X
a0j
V 0i(x01, . . . , a0j, . . . , x0n)P r(a0i|x1, . . . , xn)
ADDs 25
.
berechnet.
Iteration
Dieser Prozess wird f ¨ur jede Variable x0j wiederholt.
Damit erhalten wir zum Ende hin eine Funktion h(x1, . . . , xn) = X
a01,...,a0n
V 0i(a01, . . . , a0n)P r(a01|x1, . . . , xn)·. . .·P r(a0n|x1, . . . , xn).
Addiert man nun den Wert R, dann erh ¨alt man das ADD f ¨ur VOi+1. Letztendlich werden die ADDs f ¨ur alle O ∈ O maximiert.
ADDs 26