• Keine Ergebnisse gefunden

Planen mit manuellen Hilfestellungen

N/A
N/A
Protected

Academic year: 2021

Aktie "Planen mit manuellen Hilfestellungen"

Copied!
23
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Planen mit manuellen Hilfestellungen

Vorlesung Handlungsplanung

Stefan Edelkamp

(2)

1 Uberblick ¨

- Planen durch Dekomposition: Hierarchische Planung

- Planen mit nebenl ¨aufigem Pruning: Lineare Temporale Logik

(3)

2 Planen durch Dekomposition

HTN - hierarchical task network - deterministisches und gleichzeitig hierarchisches Planen

Sowohl f ¨ur propositionale als auch f ¨ur metrische und temporale Problemstellungen geeignet.

Wir beschr ¨anken uns im Wesentlichen auf propositionale Fragestellungen und gehen davon aus, das ein Plan eine Folge von Operatoren ist.

Die Planbeschreibung beinhaltet neben Aktionen jedoch nun auch Methoden zur Dekomposition von Aktionen in Teilaufgaben.

(4)

Beispielmethode

task: (transport ?p) preconditions:

(at ?p ?x)

(destination ?p ?y) (available-truck ?t) subtasks: (dispatch ?t ?x)

(load ?t ?p)

(move ?t ?x ?y) (return ?t ?x)

Hierbei sind load und move primitive Aufgaben (die Aktionen im Plan), und dispatch bzw. return weitere Methoden.

(5)

Rekursive Zerlegung

Planungsbaum: F ¨ur nicht-primitive Aufgaben w ¨ahlt das Planungsverfahren jeweils eine anwendbare Methode

Ist der entstehende Plan nicht durchf ¨uhrbar ⇒ Backtrack-Schritt.

Obwohl der Planungsprozess eigentlich Dom ¨anenunabh ¨angig ist, werden HTN Planer den dom ¨anenabh ¨angigen Planungsverfahren zugerechnet, da die HTN Methoden im Allgemeinen dom ¨anenspezifisch sind.

⇒ Problemwissen in Form von Dekompositionsregeln, die die Performanz der Planenfindung drastisch verbessern.

Eine HTN Dom ¨anenbeschreibung ist an PDDL angelehnt und besteht aus Methoden, Operatoren und Axiomen.

(6)

Operatoren

Jeder Operator zeigt auf, wie eine primitive Aufgabe ausgef ¨uhrt werden kann.

Der Kopf head(O) eine Operators O ∈ O sei der Name zusammen mit der ( ¨ublicherweise instantiierten) Parameterliste.

Operatoren k ¨onnen propositionale Vorbedingungs-, Add- und Delete-Listen, aber auch numerische Bedingungen einfordern und Ver ¨anderungen bewirken.

ADL-Konstrukte, wie Quantifikationen sind bei HTN-Planern ¨ublicherweise erlaubt (hier jedoch STRIPS)

Jeder Operator hat desweiteren Anwendungskosten, die, soweit nicht anders festgelegt, bei 1 liegen.

(7)

Methoden

Jede Methode zeigt auf, wie eine primitive Aufgabe zerlegt werden kann.

Kopf head(M) einer Mehtode M ∈ M: Name zusammen mit der ( ¨ublicherweise nicht instantiierten) Parameterliste.

Syntax: (:method head(M) p1t1p2t2 . . .) wobei jedes pi (mitunter komplexe) Vorbedingung und jedes ti eine (partiell geordnete) Menge von Teilaufgaben

Bedingungen werden ¨ublicherweise als if-then-else Regeln verstanden.

Hier: Vorbedingung pre(M) und Menge von Teilaufgaben sub(M)

(8)

Axiome

Axiome (: head tail) sind generalisierte Horn-Regeln, die sagen, dass der Kopf head immer dann wahr ist, wenn tail gilt.

. . . k ¨onnen benutzt werden, um zu ¨uberpr ¨ufen, ob ein Teilziel erreicht werden kann, z.B.

(:-

; head

(enough-fuel ?plane ?current-position ?destination ?speed)

; tail

(and (distance ?current-position ?destination ?dist) (fuel ?plane ?fuel-level)

(fuel-burn ?speed ?rate)

(eval (>= ?fuel-level (* ?rate ?dist)))))

(9)

Optimierungen

Externen Funktionen: z.B. Graphsuchalgorithmen aus einer Bibliothek.

Sortierung von Variablenbindungen: Ist z.B. die Vorbedingung (and (at ?here) (distance ?here ?there ?d)) gegeben dann gibt es m ¨oglicherweise viele Kombinationen von ?here, ?there und ?d, die die Bedingung erf ¨ullen.

Variablenbelegung in absteigender Reihenfolge der Werte in ?d durch:

(:sort-by ?d #> (and (at ?here) (distance ?here ?there ?d)))

Branch ’n Bound: Any-time durch Zeitlimit f ¨ur die Suche angeben, bei der der beste derzeit verf ¨ugbare Plan zur ¨uckgegeben wird.

(10)

Planungsalgorithmus

Eingabe: aktueller Zustand S, Aufgabenmenge T (inkl. Vorg ¨angerrelation ≺p), Aktionsmenge O und Methodenmenge M.

- Menge T wird mit dem Planziel G initialisiert.

- Verfahren w ¨ahlt nichtdeterministisch eine Aufgabe ohne Vorg ¨anger aus.

1. Aufgabe einfach und kann mit nur einer Aktion erreicht werden.

⇒ suche passenden Operator, der die Vorbedingung im aktuellen Zustand S erf ¨ullt.

2. Aufgabe t ein Verbund

⇒ w ¨ahle nichtdeterministisch eine Aufteilung in Teilaufgaben.

(11)

Pseudo-Code HTN (SHOP)

Procedure HTN (S, T,O,M)

π ← ∅; T0 ← {t T | ∀t0 T : t0 6≺p t}

loop

if (T = ∅) return π select t T0

if (t is primitive)

A ← {(O, θ) | O ∈ O, θ unifies {head(O), t}, pre(O) S}

if (A = ∅) return failure select (O, θ) A

S (S \ del(O)) add(O)); π (π, O); T T \ t, apply θ T0 ← {t T | ∀t0 T : t0 6≺p t}

else

A ← {(M, θ) | M ∈ M, θ m.g.u. {head(M), t}, pre(M) S}

if (A = ∅) return failure select (M, θ) A

T (T \ t) ∪sub(M), ∀t0 sub(M), t00 T, t00 d t : t0 d t00, apply θ if (sub(M) 6= ∅)

T ← {t sub(M) | ∀t0 T : t0 6≺ t}

(12)

3 Planen mit temporallogischen Kontrollregeln

Temporallogische Kontrollregeln sind sehr kompakte Beschreibungen zum Beschneiden des Suchraumes.

Auch wenn sie genauso effektiv f ¨ur PDDL2.1 Konstrukte angewendet werden k ¨onnen, gehen wir hier von einer pr ¨apositionaler Logik L erster Stufe aus:

- Konstanten wahr (>), falsch (⊥), - Operatoren oder (∨), und (∧), und

- Quantoren (∀, ∃) ¨uber einer Menge von Pr ¨adikaten und Funktionen.

(13)

LTL

Lineare temporale Logik (LTL) f ¨ugt zu L die temporalen Modalit ¨aten until (S), always (), eventually () und next (◦) hinzu.

LTL-Formeln beziehen sich auf Zustandsfolgen.

Dabei meint ◦f, dass Formel f in dem n ¨achsten Zustand gilt, f1 Sf2, dass f2 entweder jetzt oder sp ¨ater gilt, davor gilt f1, ♦f, dass f jetzt oder in Zukunft gilt;

und f, dass f jetzt und in Zukunft gilt.

Abh ¨angig von der Struktur einer LTL-Formel f propagiert die Prozedur Progress die G ¨ultigkeit von f auf den Nachfolgezustand.

(14)

Pseudo-Code: Propagieren von LTL-Formeln

Procedure Progress(f, S) case of

f = φ ∈ L: f0 ← (S |= f)

f = f1 ∧ f2: f0Progress(f1, S) ∧ Progress(f2, S) f = f1 ∨ f2: f0Progress(f1, S) ∨ Progress(f2, S) f = ¬f1: f0 ← ¬Progress(f1, S)

f = ◦f1: f0 ← f1

f = f1 Sf2: f0Progress(f2, S) ∨ (Progress(f1, w) ∧ f) f = ♦f1: f0Progress(f1, S) ∨ f

f = f1: f0 ← P rogress(f1, S) ∧ f

f = ∀[x : ψ(x)]f1: f0Vc:S|=ψ(x/c) Progress(f1(x/c), S) f = ∃[x : ψ(x)]f1: f0Wc:S|=ψ(x/c) Progress(f1(x/c), S)

(15)

Beispiel

Nehmen wir an wir wollen (on a b) in Blocks World in einem Zustand propagieren, in dem (on a b) gilt.

So erhalten wir eine Formel > ∧ (on a b), die sich zu wieder zu (on a b) vereinfacht.

Wenn in dem urspr ¨unglichen Zustand (on a b) nicht gilt, so erhalten wir

⊥ ∧ (on a b), also ⊥.

Ein weiteres Beispiel ist die Anwendung der Formel

((on a b) ⇒ ◦(clear a)) in einem Zustand, in dem (on a b) gilt

Im Nachfolgerzustand haben wir ((on a b) ⇒ ◦(clear a)) (clear a).

(16)

Planungsverfahren

Eignung: sehr gut f ¨ur einen vorw ¨artssuchenden Planer

Beschreibung des Verfahrens basiert auf nichtdeterministischer Auswahl von Aktionen – Suche ergibt sich aus der systematischen Betrachtung dieser

M ¨oglichkeiten.

Suche (DFS) inkrementell, indem bestehende L ¨osungspfade verl ¨angert werden.

Korrektheit: Beendet der Algorithmus die Suche auf Pfad mit einem Endzustand, dessen Formel falsch ist ⇒ kein Nachfolgerzustand erf ¨ullt die Formel.

Vollst ¨andigkeit: Ist das der Dom ¨anenbeschreibung hinzugef ¨ugte Kontrollwissen korrekt, bleibt durch die Beschneidung die L ¨osbarkeit erhalten.

(17)

Pseudo-Code: Planen mit LTL Kontrollregeln

Procedure LTL-Plan(S, f,G,O, π) if S ⊆ G return π

f0Progress(f, S) if f0 = ⊥ return failure

A ← {O ∈ O : pre(O) ⊆ S} if (A = ∅) return failure

select O ∈ A

S0 ← (S0 \ del(O)) ∪ add(O)

return LTL-Plan(S0, f0,G,O,(π, O))

(18)

Auswertung

Vollst ¨andigkeit des Planungsverfahrens z.Z. Auswertung S |= φ f ¨ur ein atemporales φ im Algorithmus Progress auch durchzuf ¨uhren

. . . wichtig, da die Formeln f ¨uber Pr ¨adikate und Funktionen definiert sind, die parametrisiert sind.

Atomische Formeln P(t1 . . . tn) werden dadurch ausgewertet, dass erst die Terme t1 . . . tn ausgewertet werden und dann die entstehende atomische Proposition.

⇒ nehme Menge V von Variablenbindungen an und definiere einen Algorithmus Eval, der testet, ob (S, V ) |= φ gilt.

(19)

Auswerten von Formeln

Procedure Eval(f, S, V ) case of

f = P(t1 . . . tn):

return EvalAtomic(P(EvalTerm(t1, S, V ), . . . ,EvalTerm(tn, S, V ))) f = f1 ∧ f2: return Eval(f1, S, V ) ∧ Eval(f2, V, S)

f = f1 ∨ f2: return Eval(f1, S, V ) ∨ Eval(f2, V, S) f = ¬f1: return ¬Eval(f1, S, V )

(20)

Quantoren

Am schwierigsten gestaltet sich die Behandlung von Quantoren f = ∀[x : ψ(x)]f1 und f = ∃[x : ψ(x)]f1.

Hierbei muss:

- die Menge der Variablenbindung successiv f ¨ur jede m ¨ogliche Belegung c der Variablen x erweitert werden (V ∪ {x = c}) und

- die Konjunktion bzw. Disjunktion der Ausdr ¨ucke ausgewertet werden.

(21)

Beispiel

Einige typische Kontrollregeln in der Briefcase-Dom ¨ane sind:

• Bewege die Brieftasche nicht vom derzeitigen Ort, wenn es Objekte gibt, die hinein- oder hinausbef ¨ordert m ¨ussen.

• Bewege kein Objekt aus der Brieftasche, wenn es nicht am Zielort ist.

• F ¨uge kein Objekt der Brieftasche hinzu, dass nicht in die Brieftasche bef ¨ordert werden muss.

(22)

PDDL-verwandter Notation

(always

(forall (?l) (at briefcase ?l) (forall (?x) (at ?x ?l)

(implies (not (= ?x briefcase)) (and

(implies (goal (at ?x ?l)) ;; 1a

(until (at briefcase ?l) (not (in-briefcase ?x)))) (implies (not (goal (at ?x ?l))) ;; 1b

(until (at briefcase ?l) (in-briefcase ?x)))

(implies (and (in-briefcase ?x) (not (goal (at ?x ?l)))) (next (in-briefcase ?x)))

(implies (and (goal (at ?x ?l)) (not (in-briefcase ?x))) (next (not (in-briefcase ?x)))))))))

(23)

Bemerkungen

Der wohl bekanntest HTN-Planer ist das SHOP-System von Nau et al., der auf den internationalen Planungswettbewerben 2000 und 2002 bei den “Hand-Coded”

Planern erfolgreich war.

Temporallogisches Planen wurde von Kabanza und Bacchus eingef ¨uhrt.

In den internationalen Planungs-Wettbewerben 2000 und 2002 wurden die Planer TL-plan (Bacchus et al.) und TAL-Plan (Doherty et al.) beste “Hand-Coded Planer”

ausgezeichnet.

Ublicherweise waren die Kontrollregeln so stark, dass im Planungsprozess keine¨ oder kaum Backtracking-Schritte notwendig waren.

Referenzen

ÄHNLICHE DOKUMENTE

Die unerläßliche Angabe von Maximaltoleranzen sowohl für die Selbstkontrolle als auch für den offiziellen Nachweis der Messungsqualität ist, wie hier gezeigt, für schematische

Die Teilbeträge sind hierbei ohne den konstanten Anteil ( = 6 cm) zu bilden. Anzahl aller Polygonpunkte, einschließlich der Zugsendpunkte z. Anzahl der Polygonpunkte

Bestimmen Sie f¨ ur die folgenden Funktionen an der Stelle P die Richtung des steilsten Abstiegs sowie den Wert der Richtungsableitung entlang des Vektors −

Fachbereich C – Mathematik und Naturwissenschaften, Arbeitsgruppe Optimierung & Approximation Prof.

Aus Menge von Regeln werden Invarianzen f ¨ur die Planungsdom ¨ane abgeleitet Beispiel Invarianz: Ein Objekt nur entweder an einem speziellen Ort oder in einem speziellen Objekt

Diese leitlinie für eine validierte manuelle Reinigung und manuelle chemische Des- infektion (im Folgenden «manuelle Reini- gung und Desinfektion») von Medizinpro- dukten, die

delten Problems der strengen Ausgleichung nicht so arg und umfangreich ist, als sie vielleicht dem ersten Blicke erscheint, daß sie vielmehr durch Anwendung der Tabelle

Noch dazu sind viele ak- zeptierende Geschäfte — und hier in letzter Zeit besonders die Tankstellen — nicht begei- stert, wenn sie statt barer Münze oder eines Euroche- que