1 / 60

Spezialvorlesung Suchalgorithmen

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

maeve
Download Presentation

Spezialvorlesung Suchalgorithmen

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SpezialvorlesungSuchalgorithmen Thema: Moderne Handlungsplanung Stefan Edelkamp

  2. Struktur des Buchs

  3. Ü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

  4. 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

  5. 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).

  6. Ü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

  7. Blocksworld & Logistics

  8. 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))) …

  9. 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))))

  10. 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

  11. 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

  12. Implementierung

  13. Beispiel: Musterdatenbanken in Blocksworld

  14. Relaxierte Pläne:Ignorieren der Delete-Liste

  15. Implementierung: Relaxierte Plankonstruktion

  16. Internationaler Planungswettbewerb (IPC) Plan: zeitliche Anordnung von Aktionen.  Wettstreit verschiedener Systeme

  17. Internationaler Knowledge Engineering Wettbewerb • Automatisches Lernen von Domänen • Erstellen von Domänen in Entwicklungsumgebungen • Interaktion mit Simulatoren

  18. 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).

  19. Ü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

  20. PDDL (Planning Domain Description Language) Standart zur Kodierung von Planungsproblemen: Domäne und Probleminstanz werden in LISP-ähnlicher Notation formuliert Hierarchische Gliederung von Elementen:

  21. 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)))))

  22. 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

  23. Ü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

  24. Relaxierte metrische Pläne:Vorwärtsphase

  25. Temporale Planung Kompilierung: Teile einen Level-3 Operator in 3 Level-2 Operator Nachbearbeitung: Finde parallele Anordnung des sequentiell erzeugten Plans

  26. 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

  27. Implementierung Laufzeit:O(k + |Abhängigkeitsrelation|)

  28. 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))))

  29. Ü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

  30. Fixpunktbestimmung: Abgeleitete Prädikate Implementierung:

  31. 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

  32. Ü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

  33. 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>) | ...

  34. Semantik Planconstraints

  35. 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))))

  36. 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))))

  37. Constrainthierarchie Plan Constraints Weiche Constraints Harte Constraints Normal Zeitlich Normal Zeitlich within at end within at end

  38. 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

  39. Beispiele A(Gp) A(Fp) A(FGp)

  40. 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)

  41. Formelprogression

  42. LTL-Planer

  43. Planen via Model Checking • Modell M L(M)L(S) • Spezifikation S L(M)L(S) = {} L(M)@L(S) = {}

  44. Bespiele für LTL-Automaten F ontablea  F ontableb F (ontablea  ontableb)

  45. 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

  46. 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

  47. 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

  48. 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

  49. 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

  50. 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))))

More Related