600 likes | 702 Views
Spezialvorlesung Suchalgorithmen. Thema: Moderne Handlungsplanung Stefan Edelkamp. Struktur des Buchs. Überblick. Einleitung Handlungsplanung STRIPS, Heuristiken und Planer PDDL-Hierarchie PDDL 2.1 Metrisches & temporales Planen PDDL 2.2 Zeitliche Literale & abgeleitete Prädikate
E N D
SpezialvorlesungSuchalgorithmen Thema: Moderne Handlungsplanung Stefan Edelkamp
Überblick • Einleitung Handlungsplanung • STRIPS, Heuristiken und Planer • PDDL-Hierarchie • PDDL 2.1 Metrisches & temporales Planen • PDDL 2.2 Zeitliche Literale & abgeleitete Prädikate • PDDL 3.0 Pfad- und Softconstraints • Ausblick
Einleitung Handlungsplanung kann man in 3 Punkten zusammenfassen: • Problem, das den Ausgangszustand und die Zielbedingung beschreibt, • Aktionen, die die zur Verfügung stehenden Handlungsmöglichkeiten darstellen • Planungssystem, das man einsetzt, um das Problem anhand der Aktionen zu lösen
STRIPS Meisten Planungssprachen sind Logik-basiert Grundlegenden Formalismen: STRIPS/ADL, Teilmengen der Prädikatenlogik erster Stufe Aktionen: teilen sich in • Vorbedingung (die notwendigerweise zur Anwendung einer Aktion gelten müssen) • Nachbedingungen (die den Effekt durch die Ausführung einer Aktion beschreiben).
Überblick • Einleitung Handlungsplanung • STRIPS, Heuristiken und Planer • PDDL-Hierarchie • PDDL 2.1 Metrisches & temporales Planen • PDDL 2.2 Zeitliche Literale & abgeleitete Prädikate • PDDL 3.0 Pfad- und Softconstraints • Ausblick
Domänenbeschreibung (define (domain logistics-strips) (:requirements :strips) (:predicates (at ?obj ?loc) (in ?obj1 ?obj2) (in-city ?obj ?city)) (:action LOAD-TRUCK :parameters (?obj ?truck ?loc) :precondition (and (at ?truck ?loc) (at ?obj ?loc)) :effect (and (not (at ?obj ?loc)) (in ?obj ?truck))) …
Probleminstanz (define (problem strips-log-x-1) (:domain logistics-strips) (:objectsp6 p5 p4 p3 p2 p1 c6 c5 c4 c3 c2 c1 t6 t5 t4 t3 t2 t1 plane2 plane1 c6-1 c5-1 c4-1 c3-1 c2-1 c1-1 c6-2 c5-2 c4-2 c3-2 c2-2 c1-2) (:init (in-city c6-2 c6) (in-city c6-1 c6) (in-city c5-2 c5) (in-city c5-1 c5) (in-city c4-2 c4) (in-city c4-1 c4) (in-city c3-2 c3) (in-city c3-1 c3) (in-city c2-2 c2) (in-city c2-1 c2) (in-city c1-2 c1) (in-city c1-1 c1) (at plane2 c4-2) (at plane1 c4-2) (at t6 c6-1) (at t5 c5-1) (at t4 c4-1) (at t3 c3-1) (at t2 c2-1) (at t1 c1-1) (at p6 c3-1) (at p5 c4-2) (at p4 c1-1) (at p3 c1-1) (at p2 c1-2) (at p1 c2-1)) (:goal (and (at p6 c1-2) (at p5 c6-2) (at p4 c3-2) (at p3 c6-1) (at p2 c6-2) (at p1 c2-1))))
Planungsansätze • SATPLAN (Kautz & Selman): Planen durch Transformation in ein Erfüllbarkeitsproblem • GRAPHPLAN (Blum & Furst): Planen durch Aufbau eines geschichteten Planungsgraphen • IPPLAN (Kautz & Walser): Planen durch Transformation in Problem der ganzzahligen Programmierung • CSPPLAN (Rintanen, Khampampati):Planen durch (Dynamisches) Constraint Satisfaction Hier: HSP (Geffner & Bonet): Planen durch heuristische Suche
Heuristiken • Musterdatenbanken durch Abstraktion der Operatoren • Dynamische Programmierung: g(u,p)=0 für p u, unendlich sonst • „Relaxierte“ Pläne durch Ignorieren der Delete-Liste • „Causal Graph“ Analyse
Internationaler Planungswettbewerb (IPC) Plan: zeitliche Anordnung von Aktionen. Wettstreit verschiedener Systeme
Internationaler Knowledge Engineering Wettbewerb • Automatisches Lernen von Domänen • Erstellen von Domänen in Entwicklungsumgebungen • Interaktion mit Simulatoren
Simulatoren IKECP-2 • Cyber-security (Buddy), • Manufacturing (Ruml), • Shuttle Launch Scheduling (Rabelo), • Telescope Scheduling (Hawkings), • Firefighting (Castillo), • PSR (Thiebaux), • Petri Nets (Oliver) • Graph Transition Networks (Rensink).
Überblick • Einleitung Handlungsplanung • STRIPS, Heuristiken und Planer • PDDL-Hierarchie • PDDL 2.1 Metrisches & temporales Planen • PDDL 2.2 Zeitliche Literale & abgeleitete Prädikate • PDDL 3.0 Pfad- und Softconstraints • Ausblick
PDDL (Planning Domain Description Language) Standart zur Kodierung von Planungsproblemen: Domäne und Probleminstanz werden in LISP-ähnlicher Notation formuliert Hierarchische Gliederung von Elementen:
PDDL2.1 (define (domain zeno-travel) (:requirements :durative-actions :typing :fluents) (:types plane person city) (:predicates (at ?a - plane ?c - city) (in ?p - person ?a - plane)) (:functions (fuel ?a - plane) (capacity ?a - plane) (refuel-rate ?a - plane) ...) ... (:durative-action refuel :parameters (?a - plane ?c - city) :duration (= ?duration (/ (- (capacity ?a) (fuel ?a)) (refuel-rate ?a))) :condition (and (at start (< (fuel ?a) (capacity ?a))) (over all (at ?a ?c)) :effect (at end (assign (fuel ?a) (capacity ?a)))))
Metrisches Planen Zustand: Elementin 2^AP x IR^k Komplexität: Unentscheidbar (im Gegensatz zu PSPACE-vollständig für STRIPS) Beweis (Idee): Reduktion auf ganzzahliges Nullstellenproblem von Polynomen (Hilbert‘sches Problem) oder auf das Halteproblem einer Registermaschine Praktisch:Erweiterung der „relaxierten Planungsheuristik“ mit Schichten 2^AP x IR^k (Intervallvektor [min1,max1],…,[mink,maxk]) Optimierung: Bestensuche oder Branch-and-Bound
Überblick • Einleitung Handlungsplanung • STRIPS, Heuristiken und Planer • PDDL-Hierarchie • PDDL 2.1Metrisches & temporalesPlanen • PDDL 2.2 Zeitliche Literale & abgeleitete Prädikate • PDDL 3.0 Pfad- und Softconstraints • Ausblick
Temporale Planung Kompilierung: Teile einen Level-3 Operator in 3 Level-2 Operator Nachbearbeitung: Finde parallele Anordnung des sequentiell erzeugten Plans
PERT • Gegeben: Aktionen o1,…,ok, Dauer d(o1),…,d(ok), temporale Abhängigkeiten zwischen ihnen in Form einer partiellen Ordnung topologischen Sortierung • Gesucht: Optimale Anordnung mit geringstem Makespan maxe(o), mit • s(o): erstmöglichste Anfangszeit für o • e(o): erstmöglichste Endzeitzeit für o
Implementierung Laufzeit:O(k + |Abhängigkeitsrelation|)
PDDL2.2 Abgeleitete Prädikate: (:derived (above ?x ?y) (or (on ?x ?y) (exists (?z) (and (on ?x ?z) (above ?z ?y))))) Zeitliche Literale: (:init (at 9 (shop-open)) (at 20 (not (shop-open))))
Überblick • Einleitung Handlungsplanung • STRIPS, Heuristiken und Planer • PDDL-Hierarchie • PDDL 2.1 Metrisches & temporales Planen • PDDL 2.2 Zeitliche Literale & abgeleitete Prädikate • PDDL 3.0 Pfad- und Softconstraints • Ausblick
Fixpunktbestimmung: Abgeleitete Prädikate Implementierung:
Behandlung zeitlicher Literale Voraussetzung: Zeitliche Literale nur in Vorbedingungen Zeitliche Literale führen zu Zeitfenstern für Aktionen • Keine Disjunktion: Einbettung in den PERT-Algorithmus • Disjunktion: Auflösung durch Aufzählung
Überblick • Einleitung Handlungsplanung • STRIPS, Heuristiken und Planer • PDDL-Hierarchie • PDDL 2.1 Metrisches & temporales Planen • PDDL 2.2 Zeitliche Literale & abgeleitete Prädikate • PDDL 3.0 Pfad- und Softconstraints • Ausblick
Syntax Planconstraints <GD> ::= (at end <GD>) | (always <GD>) | (sometime <GD>) | (within <num> <GD>) | (at-most-once <GD>) | (sometime-after <GD> <GD>) | (sometime-before <GD> <GD>) | (always-within <num> <GD> <GD>) | (hold-during <num> <num> <GD>) | (hold-after <num> <GD>) | ...
Beispiele (always (forall (?b - block) (impies (fragile ?b) (clear ?b)))) (sometime (forall (?b - block) (ontable ?b))) (and (forall (?t - truck ?c - city) (at-most-once (at ?t ?c))) (forall (?t - truck ?c - city) (sometime (at ?t ?c))))
Präferenzen (Softconstraints) Einfache Zielconstraints: (:constraint (and (at end (at package1 london)) (at end (preference (clean truck1))))) Temporale Zielconstraints: (:constraints (and (preferencep1 (always (clean truck1))) (preferencep2 (and (at end (at package2 paris)) (sometime (clean track1))))) (:metric minimize (+ (* 10 (is-violatedp1)) (* 5 (is-violatedp2))))
Constrainthierarchie Plan Constraints Weiche Constraints Harte Constraints Normal Zeitlich Normal Zeitlich within at end within at end
LTL Für unendliche Zustandspfade definiert f: Boolesche Formel, komponiert aus atomischen Präpositionen LTL-Formeln beginnen mitAf : Always f wobei f • Gf : Globally f • Xf: Next-Time f • Ff: Eventually f • fUg: f until g Nützlich zur Beschreibung von • Kontrollregeln, • erweiterten Ziele
Beispiele A(Gp) A(Fp) A(FGp)
Bezug Planconstraint LTL (always (forall (?b - block) (impies (fragile ?b) (clear ?b)))) G ((fragilea => cleara) (fragileb => clearb)) (sometime (forall (?b - block) (ontable ?b))): F (ontablea ontableb)
Planen via Model Checking • Modell M L(M)L(S) • Spezifikation S L(M)L(S) = {} L(M)@L(S) = {}
Bespiele für LTL-Automaten F ontablea F ontableb F (ontablea ontableb)
Kompilierungsansatz PDDL3 domain.pddl problem.pddl Planconstraints preprocess grounded-domain.pddl grounded-problem 1.pddl LTL1 Instantiiertes PDDL 2 merge 2.pddl LTL2 3.pddl LTL3 domain.pddl problem.pddl n.pddl LTLn Instantiiertes PDDL 2
Kompilierung: Harte Constraints (sometime (at person4 city3)) F (at person4 city3) (:predicates (accepting-a) (sync-automaton-a) (at-a-init) (at-a-accept)) (:init (at-a-init)) (:goal (accepting-a)) true (at person4 city3) true
Kompilierung Harte Constraint Automat (:action sync-trans-a-init-a-accept :precondition (and (at-a-init) (sync-automaton-a) (at person4 city3)) :effect (and (accepting-a) (not (at-a-init)) (at-a-accept (not (sync-automaton-a)) (sync-next))) true (at person4 city3) true
Kompilierung in (Büchi) Automat (preference z (sometime (at person4 city3))) F (at person4 city3) (:predicates (alive-p-z) (sync-automaton-p-z) (at-p-z-init) (at-p-z-accept)) (:init (alive-p-z) (at-p-z-init) (= (IS_VIOLATED p-z) 1)) true (at person4 city3) true
Kompilierung: Weiches Constraint Automat (:action sync-trans-p-z-init-p-z-accept :precondition (and (alive-p-z) (at-p-z-init) (sync-automaton-p-z) (at person4 city3)) :effect (and (assign (IS_VIOLATED p-z) 0) (not (at-p-z-init)) (at-p-z-accept) (not (sync-automaton-p-z)) (sync-next))) true (at person4 city3) true
Kompilierung von „hold“ alshartes Constraint • (hold-during t1 t2 P) Timed Initial Literal (at t1 dummy) (at t2 (not (dummy)) • (hold-after t) (at t dummy) (durative-action supplement :duration (= ?duration 0) :condition (and (over all (P)) (over all (dummy))) :effect (and (over all (done-dummy))))