Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning...

47
Einführung STN Planning Total-Order STN Planning Partial-Order STN Planning HTN Planning Hierarchical Task Network Planning Thomas Lehmann Philipp Möller Institut für Informatik Universität Leipzig Seminarmodul Intelligente Systeme: “Planen” WS 2009/10 Lehmann, Möller HTN Planning

Transcript of Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning...

Page 1: Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning Total-OrderSTNPlanning Partial-OrderSTNPlanning HTNPlanning Hierarchical Task Network Planning

EinführungSTN Planning

Total-Order STN PlanningPartial-Order STN Planning

HTN Planning

Hierarchical Task Network Planning

Thomas Lehmann Philipp Möller

Institut für InformatikUniversität Leipzig

Seminarmodul Intelligente Systeme: “Planen”WS 2009/10

Lehmann, Möller HTN Planning

Page 2: Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning Total-OrderSTNPlanning Partial-OrderSTNPlanning HTNPlanning Hierarchical Task Network Planning

EinführungSTN Planning

Total-Order STN PlanningPartial-Order STN Planning

HTN Planning

Gliederung

1 Einführung

2 STN PlanningAufgaben und MethodenProbleme und Lösungen

3 Total-Order STN Planning

4 Partial-Order STN Planning

5 HTN PlanningEinführungDefinitionenBeispielPlanenErweiterungen und Extended Goals

Lehmann, Möller HTN Planning

Page 3: Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning Total-OrderSTNPlanning Partial-OrderSTNPlanning HTNPlanning Hierarchical Task Network Planning

EinführungSTN Planning

Total-Order STN PlanningPartial-Order STN Planning

HTN Planning

Hierarchical Task Networks (HTN)

Ansatz:Aufgaben durchführen (anstatt “Ziele” zu erreichen)

HTN-Prinzip:rekursive Zerlegung komplexer Aufgaben in kleinere Unterauf-gaben - bis einfache Aufgaben erreicht werden, die dann direktausgeführt werden können

Lehmann, Möller HTN Planning

Page 4: Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning Total-OrderSTNPlanning Partial-OrderSTNPlanning HTNPlanning Hierarchical Task Network Planning

EinführungSTN Planning

Total-Order STN PlanningPartial-Order STN Planning

HTN Planning

Beispiel 1

Abbildung: DWR-Problem, in welchem mehrere Container-Stapel an ver-schiedene Plätze bewegt werden sollen.

Lehmann, Möller HTN Planning

Page 5: Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning Total-OrderSTNPlanning Partial-OrderSTNPlanning HTNPlanning Hierarchical Task Network Planning

EinführungSTN Planning

Total-Order STN PlanningPartial-Order STN Planning

HTN Planning

Beispiel 1 (Fortsetzung)

Aufgabe:Umstapeln der drei Stacks auf eine neue Position, wobei jedoch dieReihenfolge der Container beibehalten werden soll!

Lehmann, Möller HTN Planning

Page 6: Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning Total-OrderSTNPlanning Partial-OrderSTNPlanning HTNPlanning Hierarchical Task Network Planning

EinführungSTN Planning

Total-Order STN PlanningPartial-Order STN Planning

HTN Planning

Beispiel 1 (Fortsetzung)

Informelle Beschreibung einer Lösung des Problems:

Beförderung jedes Stapels zunächst auf die Zwischenposition(Umkehr der Reihenfolge) - danach Bewegung auf die Zielposi-tion (Herstellung der ursprünglichen Reihenfolge)

um Stapel von einer Position p zu einer Position q zu bewegen- mehrfaches Bewegen des jeweils obersten Containers von p zuq (solange bis Position p leer ist)

für Bewegung des obersten Containers Verwendung des take-bzw. put-Operators der DWR-Domain

Lehmann, Möller HTN Planning

Page 7: Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning Total-OrderSTNPlanning Partial-OrderSTNPlanning HTNPlanning Hierarchical Task Network Planning

EinführungSTN Planning

Total-Order STN PlanningPartial-Order STN Planning

HTN Planning

Beispiel 1 (Fortsetzung)

Informelle Beschreibung einer Lösung des Problems:

Beförderung jedes Stapels zunächst auf die Zwischenposition(Umkehr der Reihenfolge) - danach Bewegung auf die Zielposi-tion (Herstellung der ursprünglichen Reihenfolge)

um Stapel von einer Position p zu einer Position q zu bewegen- mehrfaches Bewegen des jeweils obersten Containers von p zuq (solange bis Position p leer ist)

für Bewegung des obersten Containers Verwendung des take-bzw. put-Operators der DWR-Domain

Lehmann, Möller HTN Planning

Page 8: Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning Total-OrderSTNPlanning Partial-OrderSTNPlanning HTNPlanning Hierarchical Task Network Planning

EinführungSTN Planning

Total-Order STN PlanningPartial-Order STN Planning

HTN Planning

Beispiel 1 (Fortsetzung)

Informelle Beschreibung einer Lösung des Problems:

Beförderung jedes Stapels zunächst auf die Zwischenposition(Umkehr der Reihenfolge) - danach Bewegung auf die Zielposi-tion (Herstellung der ursprünglichen Reihenfolge)

um Stapel von einer Position p zu einer Position q zu bewegen- mehrfaches Bewegen des jeweils obersten Containers von p zuq (solange bis Position p leer ist)

für Bewegung des obersten Containers Verwendung des take-bzw. put-Operators der DWR-Domain

Lehmann, Möller HTN Planning

Page 9: Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning Total-OrderSTNPlanning Partial-OrderSTNPlanning HTNPlanning Hierarchical Task Network Planning

EinführungSTN Planning

Total-Order STN PlanningPartial-Order STN Planning

HTN Planning

Aufgaben und MethodenProbleme und Lösungen

Simple Task Network (STN) Planning

Spezialfall des HTN Planning

dabei sind Zustände und Operatoren (states and operators)genauso wie beim “classical planning” definiert

zusätzlich gibt es noch tasks, methods und task networks

Lehmann, Möller HTN Planning

Page 10: Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning Total-OrderSTNPlanning Partial-OrderSTNPlanning HTNPlanning Hierarchical Task Network Planning

EinführungSTN Planning

Total-Order STN PlanningPartial-Order STN Planning

HTN Planning

Aufgaben und MethodenProbleme und Lösungen

Tasks (Aufgaben)

Definition (Task)

Ein Task ist ein Ausdruck der Form t(r1,...,rn) mit:t ist das task symbol,wobei man zwischen Operator-Symbolen (primitive) undMethoden-Symbolen (nonprimitive) unterscheidet,jedes ri bezeichnet einen Term.

Lehmann, Möller HTN Planning

Page 11: Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning Total-OrderSTNPlanning Partial-OrderSTNPlanning HTNPlanning Hierarchical Task Network Planning

EinführungSTN Planning

Total-Order STN PlanningPartial-Order STN Planning

HTN Planning

Aufgaben und MethodenProbleme und Lösungen

Tasks Networks

Definition (Simple Task Network)

Ein Simple Task Network ist ein azyklischer, gerichteter Graphw = (U,E) mit:

U ist die Menge der Knoten,wobei jeder Knoten einen Task tu enthält,E ist die Menge der Kanten,welche eine partielle Ordnung der Knoten festlegen.

Lehmann, Möller HTN Planning

Page 12: Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning Total-OrderSTNPlanning Partial-OrderSTNPlanning HTNPlanning Hierarchical Task Network Planning

EinführungSTN Planning

Total-Order STN PlanningPartial-Order STN Planning

HTN Planning

Aufgaben und MethodenProbleme und Lösungen

Beispiel (Simple Task Network)

In einer DWR-Domain gibt es drei Tasks:

t1 = take(cran2,loc1,c1,c2,p1) (primitive task),t2 = put(cran2,loc2,c3,c4,p2) (primitive task),t3 = move-stack(p1,q) (nonprimitive task),

und zwei Task Networks (∀ Knoten ui gilt tui = ti ):

w1 = ({u1, u2, u3}, {(u1, u2), (u2, u3)}),w2 = ({u1, u2}, {(u1, u2)}).

Da w2 total geordnet ist, schreibt man auch w2 = 〈t1, t2〉.Wenn w2 auch ground und primitive ist, entspricht dies dem Planπ = 〈take(cran2,loc1,c1,c2,p1),put(cran2,loc2,c3,c4,p2)〉.

Lehmann, Möller HTN Planning

Page 13: Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning Total-OrderSTNPlanning Partial-OrderSTNPlanning HTNPlanning Hierarchical Task Network Planning

EinführungSTN Planning

Total-Order STN PlanningPartial-Order STN Planning

HTN Planning

Aufgaben und MethodenProbleme und Lösungen

Methods (Methoden)

Definition (STN-Methode)

Eine STN-Methode ist ein 4-Tupel

m=(name(m),task(m),precond(m),network(m))

mit:

name(m): der Name der Methode, z.B. ein Ausdruck der Formn(x1,...,xn), wobei n ein eindeutiges Methoden-Symbol ist undx1,...,xn die Parameter von n sind,task(m): ein nonprimitive Task,precond(m): Vorbedingungen der Methode,network(m): Task-Network mit den Unteraufgaben von m.

Lehmann, Möller HTN Planning

Page 14: Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning Total-OrderSTNPlanning Partial-OrderSTNPlanning HTNPlanning Hierarchical Task Network Planning

EinführungSTN Planning

Total-Order STN PlanningPartial-Order STN Planning

HTN Planning

Aufgaben und MethodenProbleme und Lösungen

Methoden für Beispiel 1

Lehmann, Möller HTN Planning

Page 15: Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning Total-OrderSTNPlanning Partial-OrderSTNPlanning HTNPlanning Hierarchical Task Network Planning

EinführungSTN Planning

Total-Order STN PlanningPartial-Order STN Planning

HTN Planning

Aufgaben und MethodenProbleme und Lösungen

Methods (Fortsetzung)

Definition (Anwendbare Methode)

Eine Methode m ist anwendbar in einem Zustand s, wenn gilt:precond+(m) ⊆ s und precond−(m) ∩ s = Ø.

Definition (Passende Methode)

Sei t ein Task und m eine Methode. m ist dann passend für t, wenn eseine Substitution σ gibt, so dass gilt σ(t) = task(m). Die Ersetzungvon t durch m unter σ ist δ(t,m,σ) = network(m). Wenn m totalgeordnet ist, können wir auch schreiben δ(t,m,σ) = subtasks(m).

Lehmann, Möller HTN Planning

Page 16: Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning Total-OrderSTNPlanning Partial-OrderSTNPlanning HTNPlanning Hierarchical Task Network Planning

EinführungSTN Planning

Total-Order STN PlanningPartial-Order STN Planning

HTN Planning

Aufgaben und MethodenProbleme und Lösungen

Beispiel (Methodenanwendung)

Ausgangszustand s entspricht dem Beispiel 1, t ist der nonpri-mitive task move-stack(p1a,q) und m ist die Methode recursive-move(p1a,p1b,c11,c12)dann ist m anwendbar in s und passend für t (wenn q durch p1bersetzt wird)t wird in folgende subtasks zerlegt:

δ(t,m,σ) = 〈move-topmost-container(p1a,p1b),move stack(p1a,p1b)〉

Lehmann, Möller HTN Planning

Page 17: Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning Total-OrderSTNPlanning Partial-OrderSTNPlanning HTNPlanning Hierarchical Task Network Planning

EinführungSTN Planning

Total-Order STN PlanningPartial-Order STN Planning

HTN Planning

Aufgaben und MethodenProbleme und Lösungen

STN Planning Domain

Definition (STN Planning Domain)

Eine STN Planning Domain ist ein Paar

D = (O,M)

mit:

O ist eine Menge von Operatoren,M ist eine Menge von Methoden.

D ist eine Total-Order Planning Domain, wenn jedes m ∈ M totalgeordnet ist.

Lehmann, Möller HTN Planning

Page 18: Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning Total-OrderSTNPlanning Partial-OrderSTNPlanning HTNPlanning Hierarchical Task Network Planning

EinführungSTN Planning

Total-Order STN PlanningPartial-Order STN Planning

HTN Planning

Aufgaben und MethodenProbleme und Lösungen

STN Planning Problem

Definition (STN Planning Problem)

Ein STN Planning Problem ist ein 4-Tupel

P = (s0,w,O,M)

mit:

s0 ist der Ausgangszustand,w ist ein task network (initial task network),D = (O,M) ist eine STN Planning Domain.

P ist ein Total-order Planning Problem, wenn w und D total geordnetsind.

Lehmann, Möller HTN Planning

Page 19: Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning Total-OrderSTNPlanning Partial-OrderSTNPlanning HTNPlanning Hierarchical Task Network Planning

EinführungSTN Planning

Total-Order STN PlanningPartial-Order STN Planning

HTN Planning

Aufgaben und MethodenProbleme und Lösungen

Lösung eines Planungsproblems

Definition (Solution Plan)

Sei P = (s0,w,O,M) ein Planungsproblem. Dann gibt es 3 Fälle, in welchen einPlan π = 〈a1,...,an〉 eine Lösung für P ist:

Case 1: w ist leer. Dann ist π eine Lösung für P, wenn π leer ist,

Case 2: Es gibt einen primitive task node u ∈ w, der keinen Vorgänger inw besitzt. Dann ist π eine Lösung für P, wenn a1 anwendbar auf tu in s0ist und der Plan π = 〈a2, ..., an〉 eine Lösung für das Planungsproblem P’ist:

P ′ = (γ(S0, a1),w − {u},O,M),

Case 3: Es gibt einen nonprimitive task node u ∈ w, der keinen Vorgängerbesitzt in w, und es existiert eine Methode m, die passend für tu und in s0anwendbar ist. Dann ist π eine Lösung für P, wenn es ein Task Networkw’ ∈ δ(w,u,m,σ) gibt, so dass π eine Lösung für (s0,w’,O,M) ist.

Lehmann, Möller HTN Planning

Page 20: Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning Total-OrderSTNPlanning Partial-OrderSTNPlanning HTNPlanning Hierarchical Task Network Planning

EinführungSTN Planning

Total-Order STN PlanningPartial-Order STN Planning

HTN Planning

Aufgaben und MethodenProbleme und Lösungen

Beispiel (Solution Plan)

Sei P ein Planungsproblem mit dem Ausgangszustand s0, dem Taskw = 〈move-stack(p1a,p1b)〉, unter Verwendung der bekanntenDWR-Operatoren und der vorhin definierten Methoden. Dann gibtes nur einen möglichen Lösungsplan für P:

π = 〈take(crane1,l1a,c11,c12,p1a),put(crane1,l1b,c11,pallet,p1b),take(crane1,l1a,c12,pallet,p1a),put(crane1,l1b,c12,c11,p1b)〉

Lehmann, Möller HTN Planning

Page 21: Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning Total-OrderSTNPlanning Partial-OrderSTNPlanning HTNPlanning Hierarchical Task Network Planning

EinführungSTN Planning

Total-Order STN PlanningPartial-Order STN Planning

HTN Planning

Aufgaben und MethodenProbleme und Lösungen

Zerlegungs-Baum für Lösungsplan π

Lehmann, Möller HTN Planning

Page 22: Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning Total-OrderSTNPlanning Partial-OrderSTNPlanning HTNPlanning Hierarchical Task Network Planning

EinführungSTN Planning

Total-Order STN PlanningPartial-Order STN Planning

HTN Planning

TFD (Total-order Forward Decomposition)

Lehmann, Möller HTN Planning

Page 23: Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning Total-OrderSTNPlanning Partial-OrderSTNPlanning HTNPlanning Hierarchical Task Network Planning

EinführungSTN Planning

Total-Order STN PlanningPartial-Order STN Planning

HTN Planning

TFD Vergleiche

Wie Vorwärtsplaner beachtet TFD nur Aktionen, deren Vor-bedingungen im aktuellen Zustand erfüllt sind. Außerdem wer-den, wie bei Rückwärtsplanern, nur Aktionen berücksichtigt, dienützlich sind, um das Ziel zu erreichen. Diese Kombination führtzu einer enormen Leistungssteigerung der Suche.

Wie Vorwärtsplaner erzeugt TFD nur Aktionen in der Reihen-folge, wie sie ausgeführt werden, d.h. TFD weiß immer über denaktuellen Zustand Bescheid.

Lehmann, Möller HTN Planning

Page 24: Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning Total-OrderSTNPlanning Partial-OrderSTNPlanning HTNPlanning Hierarchical Task Network Planning

EinführungSTN Planning

Total-Order STN PlanningPartial-Order STN Planning

HTN Planning

Partial-Order STN Planning

Warum lohnt es sich Partial-Order Planning zu untersuchen?

» weil nicht alle Planungsprobleme so einfach in Total-Order Plan-ning umgeschrieben werden können!

aber ein erweiterter Algorithmus wird benötigt

der Plan legt die Reihenfolge, in welcher die tasks ausgeführtwerden müssen, nur teilweise fest

Lehmann, Möller HTN Planning

Page 25: Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning Total-OrderSTNPlanning Partial-OrderSTNPlanning HTNPlanning Hierarchical Task Network Planning

EinführungSTN Planning

Total-Order STN PlanningPartial-Order STN Planning

HTN Planning

Beispiel 2

Abbildung: Ausgangszustand für ein DWR-Problem, in welchem zwei Con-tainer an eine andere Position bewegt werden sollen.

Lehmann, Möller HTN Planning

Page 26: Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning Total-OrderSTNPlanning Partial-OrderSTNPlanning HTNPlanning Hierarchical Task Network Planning

EinführungSTN Planning

Total-Order STN PlanningPartial-Order STN Planning

HTN Planning

Methoden für Beispiel 2

Lehmann, Möller HTN Planning

Page 27: Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning Total-OrderSTNPlanning Partial-OrderSTNPlanning HTNPlanning Hierarchical Task Network Planning

EinführungSTN Planning

Total-Order STN PlanningPartial-Order STN Planning

HTN Planning

Methoden für Beispiel 2 (Fortsetzung)

Lehmann, Möller HTN Planning

Page 28: Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning Total-OrderSTNPlanning Partial-OrderSTNPlanning HTNPlanning Hierarchical Task Network Planning

EinführungSTN Planning

Total-Order STN PlanningPartial-Order STN Planning

HTN Planning

Überlappender Baum für Beispiel 2 (Fortsetzung)

Abbildung: Die subtasks der Wurzel sind ungeordnet und deren subtasksüberlappen sich. Solche Bäume können bei Total-Order Planning nichtauftreten.

Lehmann, Möller HTN Planning

Page 29: Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning Total-OrderSTNPlanning Partial-OrderSTNPlanning HTNPlanning Hierarchical Task Network Planning

EinführungSTN Planning

Total-Order STN PlanningPartial-Order STN Planning

HTN Planning

Nicht-Überlappender Baum für Beispiel 2 (Fortsetzung)

Abbildung: Um einen total geordneten Baum zu erhalten, ist es notwendigtotal geordnete Methoden zu entwerfen.

Lehmann, Möller HTN Planning

Page 30: Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning Total-OrderSTNPlanning Partial-OrderSTNPlanning HTNPlanning Hierarchical Task Network Planning

EinführungSTN Planning

Total-Order STN PlanningPartial-Order STN Planning

HTN Planning

PFD (Partial-order Forward Decomposition)

Lehmann, Möller HTN Planning

Page 31: Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning Total-OrderSTNPlanning Partial-OrderSTNPlanning HTNPlanning Hierarchical Task Network Planning

EinführungSTN Planning

Total-Order STN PlanningPartial-Order STN Planning

HTN Planning

EinführungDefinitionenBeispielPlanenErweiterungen und Extended Goals

STN:STN Constraints: Ordnung und Vorbedingungnur TFD oder PFD

HTN:HTN generalisiert STNunerfüllte Constraints explizit im Graphen ausgedrücktmehr als nur TFD oder PFD möglich

Lehmann, Möller HTN Planning

Page 32: Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning Total-OrderSTNPlanning Partial-OrderSTNPlanning HTNPlanning Hierarchical Task Network Planning

EinführungSTN Planning

Total-Order STN PlanningPartial-Order STN Planning

HTN Planning

EinführungDefinitionenBeispielPlanenErweiterungen und Extended Goals

Definition (Task Network)

Ein task network ist ein Tupel w = (U,C ), U ist eine Menge vontask nodes und C ist eine Menge von Constraints.

Mögliche Constraints:precedence: u ≺ vbefore: before(U ′, l), mit U ′ ⊆ U und l ist Literalafterbetween

Lehmann, Möller HTN Planning

Page 33: Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning Total-OrderSTNPlanning Partial-OrderSTNPlanning HTNPlanning Hierarchical Task Network Planning

EinführungSTN Planning

Total-Order STN PlanningPartial-Order STN Planning

HTN Planning

EinführungDefinitionenBeispielPlanenErweiterungen und Extended Goals

Definition (Task Network)

Ein task network ist ein Tupel w = (U,C ), U ist eine Menge vontask nodes und C ist eine Menge von Constraints.

Mögliche Constraints:precedence: u ≺ vbefore: before(U ′, l), mit U ′ ⊆ U und l ist Literalafterbetween

Lehmann, Möller HTN Planning

Page 34: Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning Total-OrderSTNPlanning Partial-OrderSTNPlanning HTNPlanning Hierarchical Task Network Planning

EinführungSTN Planning

Total-Order STN PlanningPartial-Order STN Planning

HTN Planning

EinführungDefinitionenBeispielPlanenErweiterungen und Extended Goals

Definition (HTN Methode)

Eine HTN Methode ist ein 4-Tupel

m = (name(m), task(m), subtasks(m), constr(m))

name(m) ist ein Ausdruck der Form: n(x1, ..., xk), wobei n eineinzigartiges Methodensymbol ist und x1, ...xk alle Variablen-symbole sind, die in m auftreten.task(m) ist ein nicht-primitive task.(subtasks(m), constr(m)) ist ein task network.

Lehmann, Möller HTN Planning

Page 35: Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning Total-OrderSTNPlanning Partial-OrderSTNPlanning HTNPlanning Hierarchical Task Network Planning

EinführungSTN Planning

Total-Order STN PlanningPartial-Order STN Planning

HTN Planning

EinführungDefinitionenBeispielPlanenErweiterungen und Extended Goals

Eine Instanz m zerlegt ein task network w = (U,C ) mit u ∈ U undden, zu u und m gehörigen, Task tu in subtasks(m′) und produziertdas task network:

δ(w , u,m) = ((U − {u}) ∪ subtasks(m′),C ′ ∪ const(m′))

wobei C ′ aus C erhalten wird durch:Für jedes precedence constraint, das u beinhaltet, ersetze esmit precedence contraints, welche die Knoten von subtasks(m′)enthalten.Bsp.: subtasks(m′) = {u1, u2}, ersetze u ≺ v mit u1 ≺ v undu2 ≺ vFür jedes before-, after, oder between constraint, in dem eineMenge von task nodes U ′, die u enthalten, vorkommt, ersetzeU ′ mit (U ′ − {u}) ∪ subtasks(m′).Bsp.: subtasks(m′) = {u1, u2}, ersetze before({u, v}, l) mitbefore({u1, u2, v}, l).

Lehmann, Möller HTN Planning

Page 36: Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning Total-OrderSTNPlanning Partial-OrderSTNPlanning HTNPlanning Hierarchical Task Network Planning

EinführungSTN Planning

Total-Order STN PlanningPartial-Order STN Planning

HTN Planning

EinführungDefinitionenBeispielPlanenErweiterungen und Extended Goals

transfer2

transfer2(c1, c2, l1, l2, r);; move C1 and C2 from p1 to p2task: transfer-two-containers(c1, c2, l1, l2, r)subtasks: u1 = transfer-one-container(c1, l1, l2, r),

u2 = transfer-one-container(c2, l1, l2, r)constr: u1 ≺ u2

transfer1

transfer1(c , l1, l2, r);; transfer ctask: transfer-one-container(c , l1, l2, r)subtasks: u1 = setup(c , r), u2 = move− robot(r , l1, l2),

u3 = finish(c , r)constr: u1 ≺ u2, u2 ≺ u3

Lehmann, Möller HTN Planning

Page 37: Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning Total-OrderSTNPlanning Partial-OrderSTNPlanning HTNPlanning Hierarchical Task Network Planning

EinführungSTN Planning

Total-Order STN PlanningPartial-Order STN Planning

HTN Planning

EinführungDefinitionenBeispielPlanenErweiterungen und Extended Goals

transfer2

transfer2(c1, c2, l1, l2, r);; move C1 and C2 from p1 to p2task: transfer-two-containers(c1, c2, l1, l2, r)subtasks: u1 = transfer-one-container(c1, l1, l2, r),

u2 = transfer-one-container(c2, l1, l2, r)constr: u1 ≺ u2

transfer1

transfer1(c , l1, l2, r);; transfer ctask: transfer-one-container(c , l1, l2, r)subtasks: u1 = setup(c , r), u2 = move− robot(r , l1, l2),

u3 = finish(c , r)constr: u1 ≺ u2, u2 ≺ u3

Lehmann, Möller HTN Planning

Page 38: Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning Total-OrderSTNPlanning Partial-OrderSTNPlanning HTNPlanning Hierarchical Task Network Planning

EinführungSTN Planning

Total-Order STN PlanningPartial-Order STN Planning

HTN Planning

EinführungDefinitionenBeispielPlanenErweiterungen und Extended Goals

Beispieldekomposition

task network w1 = ({u}, ∅),mit tu = transfer-two-containers(c1, c2, l1, l2, r1)anwenden von transfer2 auf u liefert w2 = ({u1, u2}, ∅),mit tu1 = transfer-one-container(c1, l1, l2, r1)und tu2 = transfer-one-container(c2).anwenden von transfer1 liefert w3 = ({u2, u3, u4, u5},C3),mit tu3 = setup(c1), tu4 = get-r1-to-p2(), tu5 = finish(c1)und C3 = {u3 ≺ u4, u4 ≺ u5}.

Lehmann, Möller HTN Planning

Page 39: Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning Total-OrderSTNPlanning Partial-OrderSTNPlanning HTNPlanning Hierarchical Task Network Planning

EinführungSTN Planning

Total-Order STN PlanningPartial-Order STN Planning

HTN Planning

EinführungDefinitionenBeispielPlanenErweiterungen und Extended Goals

Beispieldekomposition

task network w1 = ({u}, ∅),mit tu = transfer-two-containers(c1, c2, l1, l2, r1)anwenden von transfer2 auf u liefert w2 = ({u1, u2}, ∅),mit tu1 = transfer-one-container(c1, l1, l2, r1)und tu2 = transfer-one-container(c2).anwenden von transfer1 liefert w3 = ({u2, u3, u4, u5},C3),mit tu3 = setup(c1), tu4 = get-r1-to-p2(), tu5 = finish(c1)und C3 = {u3 ≺ u4, u4 ≺ u5}.

Lehmann, Möller HTN Planning

Page 40: Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning Total-OrderSTNPlanning Partial-OrderSTNPlanning HTNPlanning Hierarchical Task Network Planning

EinführungSTN Planning

Total-Order STN PlanningPartial-Order STN Planning

HTN Planning

EinführungDefinitionenBeispielPlanenErweiterungen und Extended Goals

Beispieldekomposition

task network w1 = ({u}, ∅),mit tu = transfer-two-containers(c1, c2, l1, l2, r1)anwenden von transfer2 auf u liefert w2 = ({u1, u2}, ∅),mit tu1 = transfer-one-container(c1, l1, l2, r1)und tu2 = transfer-one-container(c2).anwenden von transfer1 liefert w3 = ({u2, u3, u4, u5},C3),mit tu3 = setup(c1), tu4 = get-r1-to-p2(), tu5 = finish(c1)und C3 = {u3 ≺ u4, u4 ≺ u5}.

Lehmann, Möller HTN Planning

Page 41: Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning Total-OrderSTNPlanning Partial-OrderSTNPlanning HTNPlanning Hierarchical Task Network Planning

EinführungSTN Planning

Total-Order STN PlanningPartial-Order STN Planning

HTN Planning

EinführungDefinitionenBeispielPlanenErweiterungen und Extended Goals

Falls w = (U,C ) primitiv ist, ist ein Plan π eine Lösung, falls:es existiert eine "ground instance"(U ′,C ′) von (U,C )

es existiert eine totale Ordnung 〈u1, u2, ..., uk〉So dass:

Aktionen in π sind von den Knoten genanntπ ist ausführbar in s0precedence, before, after und between constraints werden vonder Ordnung erfüllt

Falls w = (U,C ) nicht primitiv ist, dann ist π eine Lösung, fallseine Sequenz von Dekompositionen existiert, so dass π eine Lösungfür das entstandene primitive task network ist.

Lehmann, Möller HTN Planning

Page 42: Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning Total-OrderSTNPlanning Partial-OrderSTNPlanning HTNPlanning Hierarchical Task Network Planning

EinführungSTN Planning

Total-Order STN PlanningPartial-Order STN Planning

HTN Planning

EinführungDefinitionenBeispielPlanenErweiterungen und Extended Goals

Falls w = (U,C ) primitiv ist, ist ein Plan π eine Lösung, falls:es existiert eine "ground instance"(U ′,C ′) von (U,C )

es existiert eine totale Ordnung 〈u1, u2, ..., uk〉So dass:

Aktionen in π sind von den Knoten genanntπ ist ausführbar in s0precedence, before, after und between constraints werden vonder Ordnung erfüllt

Falls w = (U,C ) nicht primitiv ist, dann ist π eine Lösung, fallseine Sequenz von Dekompositionen existiert, so dass π eine Lösungfür das entstandene primitive task network ist.

Lehmann, Möller HTN Planning

Page 43: Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning Total-OrderSTNPlanning Partial-OrderSTNPlanning HTNPlanning Hierarchical Task Network Planning

EinführungSTN Planning

Total-Order STN PlanningPartial-Order STN Planning

HTN Planning

EinführungDefinitionenBeispielPlanenErweiterungen und Extended Goals

Zwei Aufgaben:Instantiieren von OperatorenDekomposition von Aufgaben

Abs t rac t−HTN( s , U, C , O, M)i f (U,C ) can be shown to have no s o l u t i o n

then r e t u r n f a i l u r ee l s e i f U i s p r i m i t i v e then

i f (U, C) has a s o l u t i o n thenn o n d e t e r m i n i s t i c a l l y l e t π be any such s o l u t i o nr e t u r n π

e l s e r e t u r n f a i l u r ee l s e

choose a n o n p r im i t i v e t a s k node u ∈ Ua c t i v e ← { m ∈ M | t a s k (m) i s u n i f i a b l e w i th tu}i f a c t i v e 6= ∅ then

n o n d e t e r m i n i s t i c a l l y choose any m ∈ activeσ ← an mgu f o r m and tu t ha t renames a l l v a r i a b l e s o f m(U ′,C ′)← δ(σ(U,C ), σ(u), σ(m))(U ′,C ′)← app ly−c r i t i c (U’ C ’ )r e t u r n Abs t rac t−HTN( s , U’ , C ’ , O, M)

e l s e r e t u r n f a i l u r e

Lehmann, Möller HTN Planning

Page 44: Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning Total-OrderSTNPlanning Partial-OrderSTNPlanning HTNPlanning Hierarchical Task Network Planning

EinführungSTN Planning

Total-Order STN PlanningPartial-Order STN Planning

HTN Planning

EinführungDefinitionenBeispielPlanenErweiterungen und Extended Goals

Mögliche Erweiterungen für HTN Planer:FunktionssymboleAxiomeAttached Procedures

Mehr Erweiterungen:High-Level EffekteExternal PreconditionsZeitPlanning Graphs

Lehmann, Möller HTN Planning

Page 45: Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning Total-OrderSTNPlanning Partial-OrderSTNPlanning HTNPlanning Hierarchical Task Network Planning

EinführungSTN Planning

Total-Order STN PlanningPartial-Order STN Planning

HTN Planning

EinführungDefinitionenBeispielPlanenErweiterungen und Extended Goals

Mögliche Erweiterungen für HTN Planer:FunktionssymboleAxiomeAttached Procedures

Mehr Erweiterungen:High-Level EffekteExternal PreconditionsZeitPlanning Graphs

Lehmann, Möller HTN Planning

Page 46: Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning Total-OrderSTNPlanning Partial-OrderSTNPlanning HTNPlanning Hierarchical Task Network Planning

EinführungSTN Planning

Total-Order STN PlanningPartial-Order STN Planning

HTN Planning

EinführungDefinitionenBeispielPlanenErweiterungen und Extended Goals

Extended Goals:bad-loc in der DWR DomäneAnzahlbegrenzungen für OperatorenLängenbegrenzungen für Pläne

Lehmann, Möller HTN Planning

Page 47: Hierarchical Task Network Planningstinfmoeller/htn_folien.pdf · Einführung STNPlanning Total-OrderSTNPlanning Partial-OrderSTNPlanning HTNPlanning Hierarchical Task Network Planning

EinführungSTN Planning

Total-Order STN PlanningPartial-Order STN Planning

HTN Planning

EinführungDefinitionenBeispielPlanenErweiterungen und Extended Goals

Danke für Ihre Aufmerksamkeit!

Lehmann, Möller HTN Planning