felix mühlbauer, 4.7.2001 wegeplanung mit domainunabhängigen planern realisieren projektseminar...
Post on 05-Apr-2015
109 Views
Preview:
TRANSCRIPT
Felix Mühlbauer, 4.7.2001
Wegeplanung mitDomainunabhängigen
Planern realisieren
Projektseminar 2001: ChuChu
„Sprachgesteuerte Geräte (Modelleisenbahn)“
Felix Mühlbauer
Felix Mühlbauer, 4.7.2001
Projektseminar: ChuChu „Sprachgesteuerte Geräte (Modelleisenbahn)“ 2
Übersicht
• Domainunabhängige Planer
• PDDL (Planning Domain Definition Language)
• traindomain.pddl (unsere Eisenbahndomain)
• Implementierung
Felix Mühlbauer, 4.7.2001
Projektseminar: ChuChu „Sprachgesteuerte Geräte (Modelleisenbahn)“ 3
Domainunabhängige Planer
• domainunabhängige Planung ist sehr jung
• planning competition AIPS-98(Artificial Intelligence Planning Systems) http://www.cs.cmu.edu/~aips98
• AIPS Komitee definiert PDDL Standard
• Bsp: IPP, FF, talplaner, …
Felix Mühlbauer, 4.7.2001
Projektseminar: ChuChu „Sprachgesteuerte Geräte (Modelleisenbahn)“ 4
PDDL
PDDL Vorfahren:• Pednault‘s ADL (Aussagen)
• UMCP (Aktionen)
• UCPOP
• SIPE-2
• Prodigy-4.0
• Unpop
Felix Mühlbauer, 4.7.2001
Projektseminar: ChuChu „Sprachgesteuerte Geräte (Modelleisenbahn)“ 5
PDDL domains
domain Beispiel:
(define (domain ChuChu)
(:requirements :strips :typing :conditional-effects
:existential-preconditions)
(:types track engine)
(:predicates (at ?eng - engine ?t - track)
(connects ?t1 - track ?t2 - track)
...
<actions>
...
)
Felix Mühlbauer, 4.7.2001
Projektseminar: ChuChu „Sprachgesteuerte Geräte (Modelleisenbahn)“ 6
PDDL domains
domain Beispiel:
(define (domain ChuChu)
(:requirements :strips :typing :conditional-effects
:existential-preconditions))
(:types track engine)
(:predicates (at ?eng - engine ?t - track)
(connects ?t1 - track ?t2 - track)
...
<actions>
...
)
Felix Mühlbauer, 4.7.2001
Projektseminar: ChuChu „Sprachgesteuerte Geräte (Modelleisenbahn)“ 7
PDDL domains
domain Beispiel:
(define (domain ChuChu)
(:requirements :strips :typing :conditional-effects
:existential-preconditions)
(:types track engine)
(:predicates (at ?eng - engine ?t - track)
(connects ?t1 - track ?t2 - track)
...
<actions>
...
)
Felix Mühlbauer, 4.7.2001
Projektseminar: ChuChu „Sprachgesteuerte Geräte (Modelleisenbahn)“ 8
PDDL domains
domain Beispiel:
(define (domain ChuChu)
(:requirements :strips :typing :conditional-effects
:existential-preconditions)
(:types track engine)
(:predicates (at ?eng - engine ?t - track)
(connects ?t1 - track ?t2 - track))
...
<actions>
...
)
Felix Mühlbauer, 4.7.2001
Projektseminar: ChuChu „Sprachgesteuerte Geräte (Modelleisenbahn)“ 9
PDDL domains
domain Beispiel:
(:action move
:parameters (?eng - engine ?from - track ?to - track)
:precondition
(and (at ?eng ?from)
(not (= ?from ?to))
(or (connects ?from ?to)
(connects ?to ?from))
:effect
(and (at ?eng ?to)
(not (at ?eng ?from))
)
Felix Mühlbauer, 4.7.2001
Projektseminar: ChuChu „Sprachgesteuerte Geräte (Modelleisenbahn)“ 10
PDDL domains
domain Beispiel:
(:action move
:parameters (?eng - engine ?from - track ?to - track)
:precondition
(and (at ?eng ?from)
(not (= ?from ?to))
(or (connects ?from ?to)
(connects ?to ?from))
:effect
(and (at ?eng ?to)
(not (at ?eng ?from))
)
Felix Mühlbauer, 4.7.2001
Projektseminar: ChuChu „Sprachgesteuerte Geräte (Modelleisenbahn)“ 11
PDDL domains
domain Beispiel:
(:action move
:parameters (?eng - engine ?from - track ?to - track)
:precondition
(and (at ?eng ?from)
(not (= ?from ?to))
(or (connects ?from ?to)
(connects ?to ?from))
:effect
(and (at ?eng ?to)
(not (at ?eng ?from))
)
Felix Mühlbauer, 4.7.2001
Projektseminar: ChuChu „Sprachgesteuerte Geräte (Modelleisenbahn)“ 12
PDDL domains
domain Beispiel:
(:action move
:parameters (?eng - engine ?from - track ?to - track)
:precondition
(and (at ?eng ?from)
(not (= ?from ?to))
(or (connects ?from ?to)
(connects ?to ?from))
:effect
(and (at ?eng ?to)
(not (at ?eng ?from))
)
Felix Mühlbauer, 4.7.2001
Projektseminar: ChuChu „Sprachgesteuerte Geräte (Modelleisenbahn)“ 13
PDDL facts
facts Beispiel:
(define (problem fact1)
(:domain chuchu)
(:objects t1 t2 t3 t4 - track
eng1 - engine))
(:init
(connects t1 t2)
(connects t2 t3)
(connects t3 t4)
(connects t4 t1)
(at eng1 t1))
(:goal
(at eng1 t3))
)
Felix Mühlbauer, 4.7.2001
Projektseminar: ChuChu „Sprachgesteuerte Geräte (Modelleisenbahn)“ 14
PDDL facts
facts Beispiel:
(define (problem fact1)
(:domain chuchu)
(:objects t1 t2 t3 t4 - track
eng1 - engine))
(:init
(connects t1 t2)
(connects t2 t3)
(connects t3 t4)
(connects t4 t1)
(at eng1 t1))
(:goal
(at eng1 t3))
)
Felix Mühlbauer, 4.7.2001
Projektseminar: ChuChu „Sprachgesteuerte Geräte (Modelleisenbahn)“ 15
PDDL facts
facts Beispiel:
(define (problem fact1)
(:domain chuchu)
(:objects t1 t2 t3 t4 - track
eng1 - engine))
(:init
(connects t1 t2)
(connects t2 t3)
(connects t3 t4)
(connects t4 t1)
(at eng1 t1))
(:goal
(at eng1 t3))
)
Felix Mühlbauer, 4.7.2001
Projektseminar: ChuChu „Sprachgesteuerte Geräte (Modelleisenbahn)“ 16
PDDL facts
facts Beispiel:
(define (problem fact1)
(:domain chuchu)
(:objects t1 t2 t3 t4 - track
eng1 - engine))
(:init
(connects t1 t2)
(connects t2 t3)
(connects t3 t4)
(connects t4 t1)
(at eng1 t1))
(:goal
(at eng1 t3))
)
Felix Mühlbauer, 4.7.2001
Projektseminar: ChuChu „Sprachgesteuerte Geräte (Modelleisenbahn)“ 17
FF Ausgabe
FF (Fast-Forward von Jörg Hoffmann) Bildschirmausgabe:
ff: parsing domain file
domain 'CHUCHU' defined ... done.
ff: parsing problem file
problem 'FACT1' defined ... done.
ff: found legal plan as follows
step
0: MOVE ENG1 T1 T2
1: MOVE ENG1 T2 T3
time spent:
0.06 seconds instantiating 0 easy, 840 hard action templates
0.00 seconds reachability analysis, yielding 84 facts and 36 actions
0.00 seconds creating final representation with 32 relevant facts
0.00 seconds building connectivity graph
0.00 seconds searching, evaluating 3 states, to a max depth of 1
0.06 second s total time
Felix Mühlbauer, 4.7.2001
Projektseminar: ChuChu „Sprachgesteuerte Geräte (Modelleisenbahn)“ 18
traindomain.pddl
Aufgabenstellung:
Wegeplanung mit domainunabhängigen Planern realisieren
Felix Mühlbauer, 4.7.2001
Projektseminar: ChuChu „Sprachgesteuerte Geräte (Modelleisenbahn)“ 19
traindomain.pddl
ein Gleisplanbeispiel
Felix Mühlbauer, 4.7.2001
Projektseminar: ChuChu „Sprachgesteuerte Geräte (Modelleisenbahn)“ 20
traindomain.pddl
Problem:
In welche Richtung fährt die Lok ?
(:action move
:parameters (?eng - engine ?from - track ?to - track)
:precondition
(and (at ?eng ?from)
(not (= ?from ?to))
(or (connects ?from ?to)
(connects ?to ?from))
:effect
(and (at ?eng ?to)
(not (at ?eng ?from))
)
Felix Mühlbauer, 4.7.2001
Projektseminar: ChuChu „Sprachgesteuerte Geräte (Modelleisenbahn)“ 21
traindomain.pddl
domain Erweiterung:
(:predicates
(at ?eng - engine ?t - track)
(connects ?t1 - track ?t2 - track)
(connects-rev ?t1 - track ?t2 - track)
(switch ?from - track ?to1 - track ?to2 - track)
(switch-rev ?from - track ?to1 - track ?to2 - track)
(moves-rev ?eng - engine)
(can-turn ?eng - engine)
(is-turner ?t1 - track ?t2 - track)
(noturn ?t – track)
(turnok ?eng – engine)
)
Felix Mühlbauer, 4.7.2001
Projektseminar: ChuChu „Sprachgesteuerte Geräte (Modelleisenbahn)“ 22
traindomain.pddl
(:action move
:parameters (?eng - engine ?from - track ?to - track)
:precondition
(and (at ?eng ?from)
(not (= ?from ?to))
(not (exists (?e - engine)
(and (not (= ?e ?eng))
(at ?e ?to))))
(or (and (can-turn ?eng)
(or (connects ?from ?to)
(connects-rev ?from ?to)))
(and (not (can-turn ?eng))
(or (and (moves-rev ?eng)
(connects-rev ?from ?to))
(and (not (moves-rev ?eng))
(connects ?from ?to))))))
Felix Mühlbauer, 4.7.2001
Projektseminar: ChuChu „Sprachgesteuerte Geräte (Modelleisenbahn)“ 23
traindomain.pddl
(:action move
:parameters (?eng - engine ?from - track ?to - track)
:precondition
(and (at ?eng ?from)
(not (= ?from ?to))
(not (exists (?e - engine)
(and (not (= ?e ?eng))
(at ?e ?to))))
(or (and (can-turn ?eng)
(or (connects ?from ?to)
(connects-rev ?from ?to)))
(and (not (can-turn ?eng))
(or (and (moves-rev ?eng)
(connects-rev ?from ?to))
(and (not (moves-rev ?eng))
(connects ?from ?to))))))
Felix Mühlbauer, 4.7.2001
Projektseminar: ChuChu „Sprachgesteuerte Geräte (Modelleisenbahn)“ 24
traindomain.pddl
(:action move
:parameters (?eng - engine ?from - track ?to - track)
:precondition
(and (at ?eng ?from)
(not (= ?from ?to))
(not (exists (?e - engine)
(and (not (= ?e ?eng))
(at ?e ?to))))
(or (and (can-turn ?eng)
(or (connects ?from ?to)
(connects-rev ?from ?to)))
(and (not (can-turn ?eng))
(or (and (moves-rev ?eng)
(connects-rev ?from ?to))
(and (not (moves-rev ?eng))
(connects ?from ?to))))))
Felix Mühlbauer, 4.7.2001
Projektseminar: ChuChu „Sprachgesteuerte Geräte (Modelleisenbahn)“ 25
traindomain.pddl
(:action move
:parameters (?eng - engine ?from - track ?to - track)
:precondition
(and (at ?eng ?from)
(not (= ?from ?to))
(not (exists (?e - engine)
(and (not (= ?e ?eng))
(at ?e ?to))))
(or (and (can-turn ?eng)
(or (connects ?from ?to)
(connects-rev ?from ?to)))
(and (not (can-turn ?eng))
(or (and (moves-rev ?eng)
(connects-rev ?from ?to))
(and (not (moves-rev ?eng))
(connects ?from ?to))))))
Felix Mühlbauer, 4.7.2001
Projektseminar: ChuChu „Sprachgesteuerte Geräte (Modelleisenbahn)“ 26
traindomain.pddl
(:action move
...
:effect
(and (at ?eng ?to)
(not (at ?eng ?from))
(when (and (or (is-turner ?from ?to)
(is-turner ?to ?from))
(moves-rev ?eng))
(not (moves-rev ?eng)))
(when (and (or (is-turner ?from ?to)
(is-turner ?to ?from))
(not (moves-rev ?eng)))
(moves-rev ?eng)))
)
Felix Mühlbauer, 4.7.2001
Projektseminar: ChuChu „Sprachgesteuerte Geräte (Modelleisenbahn)“ 27
traindomain.pddl
(:action move
...
:effect
(and (at ?eng ?to)
(not (at ?eng ?from))
(when (and (or (is-turner ?from ?to)
(is-turner ?to ?from))
(moves-rev ?eng))
(not (moves-rev ?eng)))
(when (and (or (is-turner ?from ?to)
(is-turner ?to ?from))
(not (moves-rev ?eng)))
(moves-rev ?eng)))
)
Felix Mühlbauer, 4.7.2001
Projektseminar: ChuChu „Sprachgesteuerte Geräte (Modelleisenbahn)“ 28
traindomain.pddl
(:action move
...
:effect
(and (at ?eng ?to)
(not (at ?eng ?from))
(when (and (or (is-turner ?from ?to)
(is-turner ?to ?from))
(moves-rev ?eng))
(not (moves-rev ?eng)))
(when (and (or (is-turner ?from ?to)
(is-turner ?to ?from))
(not (moves-rev ?eng)))
(moves-rev ?eng)))
)
Felix Mühlbauer, 4.7.2001
Projektseminar: ChuChu „Sprachgesteuerte Geräte (Modelleisenbahn)“ 29
traindomain.pddl
(:action toggle-switch :parameters (?from - track ?to1 - track ?to2 - track) :precondition (or (switch ?from ?to1 ?to2) (switch ?from ?to2 ?to1) (switch-rev ?from ?to1 ?to2) (switch-rev ?from ?to2 ?to1)) :effect (and (when (or (switch ?from ?to1 ?to2) (switch ?from ?to2 ?to1)) (and (connects ?from ?to1) (connects-rev ?to1 ?from) (not (connects ?from ?to2)) (not (connects-rev ?to2 ?from)))) (when (or (switch-rev ?from ?to1 ?to2) (switch-rev ?from ?to2 ?to1)) (and (connects-rev ?from ?to1) (connects ?to1 ?from) (not (connects-rev ?from ?to2)) (not (connects ?to2 ?from)))))))
Felix Mühlbauer, 4.7.2001
Projektseminar: ChuChu „Sprachgesteuerte Geräte (Modelleisenbahn)“ 30
traindomain.pddl
(:action toggle-switch :parameters (?from - track ?to1 - track ?to2 - track) :precondition (or (switch ?from ?to1 ?to2) (switch ?from ?to2 ?to1) (switch-rev ?from ?to1 ?to2) (switch-rev ?from ?to2 ?to1)) :effect (and (when (or (switch ?from ?to1 ?to2) (switch ?from ?to2 ?to1)) (and (connects ?from ?to1) (connects-rev ?to1 ?from) (not (connects ?from ?to2)) (not (connects-rev ?to2 ?from)))) (when (or (switch-rev ?from ?to1 ?to2) (switch-rev ?from ?to2 ?to1)) (and (connects-rev ?from ?to1) (connects ?to1 ?from) (not (connects-rev ?from ?to2)) (not (connects ?to2 ?from)))))))
Felix Mühlbauer, 4.7.2001
Projektseminar: ChuChu „Sprachgesteuerte Geräte (Modelleisenbahn)“ 31
traindomain.pddl
(:action toggle-switch :parameters (?from - track ?to1 - track ?to2 - track) :precondition (or (switch ?from ?to1 ?to2) (switch ?from ?to2 ?to1) (switch-rev ?from ?to1 ?to2) (switch-rev ?from ?to2 ?to1)) :effect (and (when (or (switch ?from ?to1 ?to2) (switch ?from ?to2 ?to1)) (and (connects ?from ?to1) (connects-rev ?to1 ?from) (not (connects ?from ?to2)) (not (connects-rev ?to2 ?from)))) (when (or (switch-rev ?from ?to1 ?to2) (switch-rev ?from ?to2 ?to1)) (and (connects-rev ?from ?to1) (connects ?to1 ?from) (not (connects-rev ?from ?to2)) (not (connects ?to2 ?from)))))))
Felix Mühlbauer, 4.7.2001
Projektseminar: ChuChu „Sprachgesteuerte Geräte (Modelleisenbahn)“ 32
traindomain.pddl
(:action toggle-switch :parameters (?from - track ?to1 - track ?to2 - track) :precondition (or (switch ?from ?to1 ?to2) (switch ?from ?to2 ?to1) (switch-rev ?from ?to1 ?to2) (switch-rev ?from ?to2 ?to1)) :effect (and (when (or (switch ?from ?to1 ?to2) (switch ?from ?to2 ?to1)) (and (connects ?from ?to1) (connects-rev ?to1 ?from) (not (connects ?from ?to2)) (not (connects-rev ?to2 ?from)))) (when (or (switch-rev ?from ?to1 ?to2) (switch-rev ?from ?to2 ?to1)) (and (connects-rev ?from ?to1) (connects ?to1 ?from) (not (connects-rev ?from ?to2)) (not (connects ?to2 ?from)))))))
Felix Mühlbauer, 4.7.2001
Projektseminar: ChuChu „Sprachgesteuerte Geräte (Modelleisenbahn)“ 33
traindomain.pddl
(:action toggle-switch :parameters (?from - track ?to1 - track ?to2 - track) :precondition (or (switch ?from ?to1 ?to2) (switch ?from ?to2 ?to1) (switch-rev ?from ?to1 ?to2) (switch-rev ?from ?to2 ?to1)) :effect (and (when (or (switch ?from ?to1 ?to2) (switch ?from ?to2 ?to1)) (and (connects ?from ?to1) (connects-rev ?to1 ?from) (not (connects ?from ?to2)) (not (connects-rev ?to2 ?from)))) (when (or (switch-rev ?from ?to1 ?to2) (switch-rev ?from ?to2 ?to1)) (and (connects-rev ?from ?to1) (connects ?to1 ?from) (not (connects-rev ?from ?to2)) (not (connects ?to2 ?from)))))))
Felix Mühlbauer, 4.7.2001
Projektseminar: ChuChu „Sprachgesteuerte Geräte (Modelleisenbahn)“ 34
traindomain.pddl
(:action toggle-switch :parameters (?from - track ?to1 - track ?to2 - track) :precondition (or (switch ?from ?to1 ?to2) (switch ?from ?to2 ?to1) (switch-rev ?from ?to1 ?to2) (switch-rev ?from ?to2 ?to1)) :effect (and (when (or (switch ?from ?to1 ?to2) (switch ?from ?to2 ?to1)) (and (connects ?from ?to1) (connects-rev ?to1 ?from) (not (connects ?from ?to2)) (not (connects-rev ?to2 ?from)))) (when (or (switch-rev ?from ?to1 ?to2) (switch-rev ?from ?to2 ?to1)) (and (connects-rev ?from ?to1) (connects ?to1 ?from) (not (connects-rev ?from ?to2)) (not (connects ?to2 ?from)))))))
Felix Mühlbauer, 4.7.2001
Projektseminar: ChuChu „Sprachgesteuerte Geräte (Modelleisenbahn)“ 35
traindomain.pddl
Problem beim vorhandenem Wegplaner:
Im Rangiermodus darf die Weiche nicht schalten, wenn sich noch Wagons darauf befinden.
Die Lok muss nach der Weiche noch weiterfahren bevor sie wieder über die Weiche zurückfährt.
Felix Mühlbauer, 4.7.2001
Projektseminar: ChuChu „Sprachgesteuerte Geräte (Modelleisenbahn)“ 36
traindomain.pddl
(:action move :parameters (?eng - engine ?from - track ?to - track) :precondition (and (at ?eng ?from) (not (= ?from ?to)) (not (exists (?e - engine) (and (not (= ?e ?eng)) (at ?e ?to)))) (or (and (can-turn ?eng) (or (not (noturn ?from)) (and (noturn ?from) (turnok ?eng))) (or (connects ?from ?to) (connects-rev ?from ?to))) (and (not (can-turn ?eng)) (or (and (moves-rev ?eng) (connects-rev ?from ?to)) (and (not (moves-rev ?eng)) (connects ?from ?to))))))
Felix Mühlbauer, 4.7.2001
Projektseminar: ChuChu „Sprachgesteuerte Geräte (Modelleisenbahn)“ 37
traindomain.pddl
(:action move :parameters (?eng - engine ?from - track ?to - track) :precondition (and (at ?eng ?from) (not (= ?from ?to)) (not (exists (?e - engine) (and (not (= ?e ?eng)) (at ?e ?to)))) (or (and (can-turn ?eng) (or (not (noturn ?from)) (and (noturn ?from) (turnok ?eng))) (or (connects ?from ?to) (connects-rev ?from ?to))) (and (not (can-turn ?eng)) (or (and (moves-rev ?eng) (connects-rev ?from ?to)) (and (not (moves-rev ?eng)) (connects ?from ?to))))))
Felix Mühlbauer, 4.7.2001
Projektseminar: ChuChu „Sprachgesteuerte Geräte (Modelleisenbahn)“ 38
traindomain.pddl
(:action move :parameters (?eng - engine ?from - track ?to - track) :precondition (and (at ?eng ?from) (not (= ?from ?to)) (not (exists (?e - engine) (and (not (= ?e ?eng)) (at ?e ?to)))) (or (and (can-turn ?eng) (or (not (noturn ?from)) (and (noturn ?from) (turnok ?eng))) (or (connects ?from ?to) (connects-rev ?from ?to))) (and (not (can-turn ?eng)) (or (and (moves-rev ?eng) (connects-rev ?from ?to)) (and (not (moves-rev ?eng)) (connects ?from ?to))))))
Felix Mühlbauer, 4.7.2001
Projektseminar: ChuChu „Sprachgesteuerte Geräte (Modelleisenbahn)“ 39
traindomain.pddl
(:action move ... :effect (and (at ?eng ?to) (not (at ?eng ?from)) (when (and (or (is-turner ?from ?to) (is-turner ?to ?from)) (moves-rev ?eng)) (not (moves-rev ?eng))) (when (and (or (is-turner ?from ?to) (is-turner ?to ?from)) (not (moves-rev ?eng))) (moves-rev ?eng)) (when (noturn ?from) (turnok ?eng)) (when (not (noturn ?from)) (not (turnok ?eng))))) ))
Felix Mühlbauer, 4.7.2001
Projektseminar: ChuChu „Sprachgesteuerte Geräte (Modelleisenbahn)“ 40
traindomain.pddl
(:action move ... :effect (and (at ?eng ?to) (not (at ?eng ?from)) (when (and (or (is-turner ?from ?to) (is-turner ?to ?from)) (moves-rev ?eng)) (not (moves-rev ?eng))) (when (and (or (is-turner ?from ?to) (is-turner ?to ?from)) (not (moves-rev ?eng))) (moves-rev ?eng)) (when (noturn ?from) (turnok ?eng)) (when (not (noturn ?from)) (not (turnok ?eng))))) ))
Felix Mühlbauer, 4.7.2001
Projektseminar: ChuChu „Sprachgesteuerte Geräte (Modelleisenbahn)“ 41
traindomain.pddl
(define (problem fact2) (:domain chuchu) (:objects t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 - track tu1 tu2 tu3 tu4 - track e1 e2 - engine) (:init;;tracks n switches (connects t2 t3) (connects-rev t3 t2) (switch t10 t1 t11) (noturn t10) (switch-rev t2 t1 t11) (noturn t2) (switch t3 t4 tu1) (noturn t3) (switch t4 t5 tu2) (noturn t4) (connects t5 t6) (connects-rev t6 t5) (connects t6 t7) (connects-rev t7 t6) (switch-rev t8 t7 tu3) (noturn t8) (switch-rev t9 t8 tu4) (noturn t9) (connects t9 t10) (connects-rev t10 t9);; turners (connects tu1 tu2) (connects tu2 tu1) (is-turner tu1 tu2) (connects-rev tu3 tu4) (connects-rev tu4 tu3) (is-turner tu3 tu4);; engines (at e1 t1) ) (:goal (at e1 t11)))
Felix Mühlbauer, 4.7.2001
Projektseminar: ChuChu „Sprachgesteuerte Geräte (Modelleisenbahn)“ 42
traindomain.pddl
Ausgabe von FF:
step 0: TOGGLE-SWITCH T3 TU1 T4
1: TOGGLE-SWITCH T2 T1 T11
2: MOVE E1 T1 T2
3: TOGGLE-SWITCH T2 T11 T1
4: MOVE E1 T2 T3
5: MOVE E1 T3 TU1
6: MOVE E1 TU1 TU2
7: TOGGLE-SWITCH T4 TU2 T5
8: TOGGLE-SWITCH T3 T4 TU1
9: MOVE E1 TU2 T4
10: MOVE E1 T4 T3
11: MOVE E1 T3 T2
12: MOVE E1 T2 T11
Felix Mühlbauer, 4.7.2001
Projektseminar: ChuChu „Sprachgesteuerte Geräte (Modelleisenbahn)“ 43
traindomain.pddl
Zusammenfassung traindomain.pddl:
• Aktionen für Lok bewegen und Weiche schalten
• Kollisionsvermeidung
• Rangiermodus
• Lok wendet nicht auf oder direkt nach einer Weiche
Felix Mühlbauer, 4.7.2001
Projektseminar: ChuChu „Sprachgesteuerte Geräte (Modelleisenbahn)“ 44
Implementierung
• der Gleisplan liegt als Graph von class gleisBauteil Objekten vor.
• ein PDDL facts file wird generiert und FF aufgerufen.
• die Ausgabe wird geparst (nur MOVE actions) und ein Vektor von class gleisBauteil erzeugt.
• Im Vektor sind nun die von der Lok abzufahrenden Gleisbauteile gespeichert.
• die übergeordnete Schicht übernimmt die Steuerung der Lok (auch Weichen schalten).
Felix Mühlbauer, 4.7.2001
Projektseminar: ChuChu „Sprachgesteuerte Geräte (Modelleisenbahn)“ 45
• Domainunabhängige Planer
• PDDL (Planning Domain Definition Language) Syntax anhand von Beispielen
• traindomain.pddl – unsere Eisenbahndomain; mit funktionalen Erweiterungen im Vergleich zum bestehenden Algorithmus
• Implementierung
• mit Planern könnten sämtliche Aktionen (nicht nur Wegplanung) gesteuert werden.
Zusammenfassung
Felix Mühlbauer, 4.7.2001
Projektseminar: ChuChu „Sprachgesteuerte Geräte (Modelleisenbahn)“ 46
ChuChu
Vielen Dank
für Ihre Aufmerksamkeit
Ende
top related