Wahrscheinlichkeitstheoretische Planung Vorlesung Handlungsplanung Stefan Edelkamp 1 Überblick - Makrov’sche Entscheidungsprozessprobleme - Zustandswertfunktion und Aktionswertfunktion - Monte-Carlo Simulation und Optimierung von Wertfunktionen - Politikiteration - Wertfunktionsiteration - ADDs für Wertfunktionsiteration Überblick 1 2 MDPs Ein Makrov’sches Entscheidungsprozessproblem, kurz MDP, wird durch Zustandsund Aktionsmengen in einer Umgebung beschrieben. Ist ein Zustand S und ein Operator O gegegen, dann ist die Wahrscheinlichkeit für jeden möglichen Nachfolgezustand S 0 von S beschrieben durch O = P r[S 0 | S = S, O = O] PSS = S 0 t t t+1 Die erwartete Belohnung ist O = E[r 0 RSS 0 t+1 | St = S, Ot = O, St+1 = S ] MDPs 2 Beispiel Roboter, der leere Limonadebüchsen aufsammeln muss. Er hat - hat Sensoren, um die Limonadebehälter zu finden, - einen Greifarm, um die Büchsen einzusammeln und - eine aufladbare Batterie. Zustandsvariablen für die Batterie: sind {high, low} Mögliche Aktionen: {search, wait, recharge}, wobei reacharge in high nicht anwendbar ist. → 10 Kombination von S, S 0 und O (vier für search, vier für wait und zwei für recharge). MDPs 3 Wahrscheinlichkeitstabelle O und Für die Tripel (S,S 0,O) legen wir folgende Wahrscheinlichkeiten PSS 0 O erwarteten Belohnungen RSS 0 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 Übergangsgraph Übersicht über die stochastischen Transitionen zwischen den Zuständen, die sich wiederum aus den Kombinationen der Zustandsvariablen ergeben. Beispiel: zwei Knoten für low und high, 5 möglichen Aktionen zu 7 nicht trivialen Kanten führen. Aktionsknoten: Zur besseren Übersicht ausgehende Aktionskanten bündeln Wie beim nichtdeterministischen Planen sind Lösungen von MDPs keine Sequenzen von Aktionen. Pläne: sogenannte Politiken π, die für jedes Zustandsaktionspaar (S, O) eine Wahrscheinlichkeit festlegen, mit der O in S ausgewählt werden soll. MDPs 5 Zustandswertfunktion V π (S) gibt den erwarteten Gewinn bei Ausführung 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ür V π und Qπ werden verschiedene der Politik π folgende Beispielläufe generiert und ausgewertet. Optimale Politik: mit Hilfe der dynamischen Programierung Approximierte Bellman’sche Optimalitätsgleichung: V π (S) = X O∈O π(S, O) X S 0 ∈S O [R π (S 0 )]. PSS + δ · V 0 0 SS 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ür alle S ∈ S gilt: V ∗(S) = max V π (S) π Analog Optimale Aktionswertfuntkion i Q∗(S, O) = maxπ Qπ (S, O). Wir haben für V ∗ die folgende Rekursionsbedingung: X ∗ O [R ∗ 0 V (S) = max PSS 0 SS 0 + δ · V (S )]. O∈O 0 S ∈S 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 0 π 0 0 π Ist Politik π durch V zu π verbessert, → verbessere π durch V zu π 00 → Serie von sich stetig verbessernden Politiken und Wertfunktionen. - π 0 ensteht aus V π durch Politikverbesserung - V π entstehe aus π durch Politikauswertung. Speichereffizienztrick (Auswertung): Beschränkung 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} π(i) v ← Ri for k ∈ {0, . . . , |S| − 1} π(i) v ← v + δ · Pi,k V (t&1, i) ← v Politikiteration · V ((t − 1)&1, k) 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} j v ← Ri for k ∈ {0, . . . , |S| − 1} j v ← v + δ · Pi,k · 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ür alle S ∈ S die Auswertung durch V (S) = X S 0 ∈S π(S) π(s) PS,S 0 [RSS 0 + δV (S 0)] gegeben und π(S) = arg max O∈O X S 0 ∈S O [RO + δV (S 0 )] PS,S 0 SS 0 ein Verbesserungsschritt. Politikiteration 12 4 Wertiteration Nachteil Politikiteration: jede Iteration erfordert vollständige Bewertung erfordert. → Auswertung der Politik nach genau einem Backup-Schritt gestoppt wird, kurz V (S) = max O∈O X S 0 ∈S O [RO + δV (S 0 )] PS,S 0 SS 0 Ausgabe: Entsprechende Politik π(S) = arg max O∈O Wertiteration X S 0 ∈S O [RO + δV (S 0 )] PS,S 0 SS 0 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} j v ← Ri for k ∈ {0, . . . , |S| − 1} j v ← v + δ · Pi,k · 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} j v ← Ri for k ∈ {0, . . . , |S| − 1} j v ← v + δ · Pi,k · 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äufig 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ür 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ät an. ADDs 18 Beispiel Maximierung ist die Funktion f (x, z) mit Wert 5 für x ∨ z und 0.5 für ¬x ∧ ¬z. → ADD zur Ordnung (z, y) hat 2 innere Knoten und 2 Blätter. Sei desweiteren g(y, z) mit Wert 7 für z, 5.0 für ¬z ∧ y und 0.0 für ¬z ∧ ¬y. → ADD zur Ordnung (z, y) hat 2 innere Knoten und 3 Blätter. → 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ättern ADDs 19 Wertiteration mit ADDs (SPUDD) Codierung: Boole’schen Variablensätze x = (x1, . . . , xn) x0 = (x01, . . . , x0n) Dynamisches Bayes’sches Netz (DBN): Azyklischer Graph mit Knoten für die Variablen und Kanten, um die Abhängigkeit einer Variablen in von einer anderen zu beschreiben. SPUDD-Eingabe: DBN für jede Aktion O ∈ O genutzt. Bedingte Wahrscheinlichkeitstabelle (CPT): Für jedes x0i die bedingte Wahrscheinlichkeit PxO0 (x1, . . . , xn) für x0i. i Funktionswerte hängen nur von den xj ab, die direkte Vorgänger von x0i sind. ADDs 20 Aktionsdiagramme Die CPTs, auch Aktionsdiagramme genannt, werden durch ADDs repräsentiert, d.h. ür jede Aktion O und jede Variable x0i wird ein ADD PxO0 (x1, . . . , xn) generiert. i Auch die Belohnungsfunktion wird als BDD dargestellt, Beispiel Sei R(c, p) = c · p · 10.0 + c · ¬p · 5.0 mit Variablen c für “verbunden” und p für ”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 0,x ,...,x ) V 0 ← R; i ← 0; ∀O ∈ O, xj ∈ X 0: create QO (x n 0 j 1 x j while ||V i+1 − V i|| > (1 − δ)/2δ V 0i ← V [x ↔ x0] ∀O ∈ O v ← V 0i ∀x0j ∈ V 0i P v ← a0 v · QO x0 j j VOi+1 ← R + δ · v V i+1 ← maxO∈O VOi+1 i←i+1 extract ADD π and return (V i+1, π) ADDs 22 Erläuterungen Jede Wertfunktion wird als ADD V i(x1, . . . , xn) dargestellt. Da V 0 = R hat V 0 eine klare ADD Repräsentation. Der Algorithmus beruht auf der Einsicht, dass die ADD Repräsentation direkt genutzt werden kann, um die Erwartungswerte und Maximierungen durchzuführen. Eine Iterationsschritt in Prozedur BDD Value-Iteration berechnet V i+1 bei gegebenen V i. Demanch müssen zunächst alle Variablen in V von x nach x0 getauscht werden. Dabei wird V i+1 für jedes O ∈ O getrennt berechnet. ADDs 23 Duale Aktionsdiagramme Die ADDs QO werden duale Aktionsdiagramme genannt und ergeben sich aus x0 j PxO0 (x1, . . . , xn) und ¬PxO0 (x1, . . . , xn) = 1 − PxO0 (x1, . . . , xn) wie folgt j j j 0 , x , . . . , x ) = x · P O (x , . . . , x ) + (1 − x ) · ¬P O (x , . . . , x ) QO (x 0 n n n 1 1 i j j 1 x x0 x0 j j j 0 , a , . . . , a ) bedingte Wahrscheinlichkeit Mit anderen Worten: QO (a n 0 j 1 a j P r(x0j = a0j |x1 = a1, . . . , xn = an) für Aktion O. U ADDs 24 Berechnung von VOi+1 Um VOi+1 für jedes O ∈ O zu bestimmen, muss für alle Zustände S und S 0 die Wahrscheinlichkeit berechnet werden, um von S nach S 0 zu gelangen. Dieses wird durch die Multiplikation des dualen Aktionsdiagramms für x0j mit V 0i und anschließender Summation über die Werte im resultierenden ADD erreicht. 0 i entsteht eine Funktion f mit Genauer: Durch die Multiplikation von QO mit V 0 x j f (a01, . . . , a0n, a1, . . . , an) = V 0i(a01, . . . , a0n)P r(a0j |a1, . . . , an). Anschließend wird durch Aufaddierern über die beiden Werte aj ∈ {0, 1} für xj der Erwartungswert g(x01, . . . , x0j−i, x0j+1 . . . x0n, x1, . . . , xn) = ADDs X i V 0 (x01, . . . , a0j , . . . , x0n)P r(a0i|x1, . . . , xn) a0j 25 . berechnet. Iteration Dieser Prozess wird für jede Variable x0j wiederholt. Damit erhalten wir zum Ende hin eine Funktion h(x1, . . . , xn) = X i V 0 (a01, . . . , a0n)P r(a01|x1, . . . , xn)·. . .·P r(a0n|x1, . . . , xn). a01 ,...,a0n Addiert man nun den Wert R, dann erhält man das ADD für VOi+1. Letztendlich werden die ADDs für alle O ∈ O maximiert. ADDs 26