A.I. PLANNING
Planning Application: The Scanalyzer Domain
Copyright By PowCoder代写 加微信 powcoder
Example: The Scanalyzer Domain
“The Scanalyzer Domain: Greenhouse Logistics as a Planning Problem”, Helmert and Lasinger, ICAPS 2010
Imaging area
Conveyor Belt Segments
Batches of Plants
Scanalyzer Types, Predicates
Type of the conveyor belts: segments
Type of the plants themselves: batches
Operational constraint – plants are moved one batch at a time, not individually.
Predicates:
A batch of plants is on a given segment
A batch of plants has been analyzed
Segments are linked together in cycles
Scanalyzer: Initial State
(:init (= (total-cost) 0)
(CYCLE-2 A D) (CYCLE-2 A E) (CYCLE-2 A F)
(CYCLE-2 B D) (CYCLE-2 B E) (CYCLE-2 B F)
(CYCLE-2 C D) (CYCLE-2 C E) (CYCLE-2 C F)
(CYCLE-2-WITH-ANALYSIS A F)
(on b1 A) (on b2 B) (on b3 C)
(on b4 D) (on b5 E) (on b6 F)
Static Facts
Scanalyzer Actions in PDDL (i)
(:action rotate-2
:parameters (?s1 ?s2 – segment
?b1 ?b2 – batch)
:precondition (and (CYCLE-2 ?s1 ?s2)
(on ?b1 ?s1) (on ?b2 ?s2))
:effect (and
(not (on ?b1 ?s1)) (on ?b1 ?s2)
(not (on ?b2 ?s2)) (on ?b2 ?s1)
(increase (total-cost) 1)))
Swap two batches
Restricts pairs of segments that can be swapped
Action has cost 1
Typed Parameters
Scanalyzer Actions in PDDL (ii)
(:action rotate-and-analyze-2
:parameters (?s1 ?s2 – segment
?b1 ?b2 – batch)
:precondition (and
(CYCLE-2-WITH-ANALYSIS ?s1 ?s2)
(on ?b1 ?s1) (on ?b2 ?s2))
:effect (and (not (on ?b1 ?s1)) (on ?b1 ?s2)
(not (on ?b2 ?s2)) (on ?b2 ?s1)
(analyzed ?b1)
(increase (total-cost) 3))))
In example: only the A—F conveyor goes through the imaging area
Mark batch as being analyzed
Scanalyzer: The Goal
(:goal (and
(analyzed b1) (analyzed b2) (analyzed b3)
(analyzed b4) (analyzed b5) (analyzed b6)
(on b1 A) (on b2 B) (on b3 C)
(on b4 D) (on b5 E) (on b6 F)
(:metric minimize (total-cost))
Initial Positions
Prefer plans with lower costs: rotate-2 costs 1, rotate-and-analyze costs 3.
Scanalyzer: Demo
0.000: (analyze-2 seg-in-1 seg-out-1 car-in-1 car-out-1) [0.001]
0.001: (analyze-2 seg-in-1 seg-out-1 car-out-1 car-in-1) [0.001]
0.002: (analyze-2 seg-in-3 seg-out-1 car-in-3 car-out-1) [0.001]
0.002: (rotate-2 seg-in-1 seg-out-2 car-in-1 car-out-2) [0.001]
0.003: (rotate-2 seg-in-3 seg-out-1 car-out-1 car-in-3) [0.001]
0.004: (analyze-2 seg-in-2 seg-out-1 car-in-2 car-out-1) [0.001]
0.005: (rotate-2 seg-in-2 seg-out-1 car-out-1 car-in-2) [0.001]
0.006: (analyze-2 seg-in-1 seg-out-1 car-out-2 car-out-1) [0.001]
0.007: (rotate-2 seg-in-1 seg-out-1 car-out-1 car-out-2) [0.001]
0.008: (rotate-2 seg-in-1 seg-out-2 car-out-2 car-in-1) [0.001]
0.009: (rotate-2 seg-in-1 seg-out-3 car-in-1 car-out-3) [0.001]
0.010: (analyze-2 seg-in-1 seg-out-1 car-out-3 car-out-1) [0.001]
0.011: (rotate-2 seg-in-1 seg-out-1 car-out-1 car-out-3) [0.001]
0.012: (rotate-2 seg-in-1 seg-out-3 car-out-3 car-in-1) [0.001]
Scanalyzer: Planner Performance
DSS: A* search + heuristic just for Scanalyzer
IPC: domain independent planning competition planners
Solution cost: * means optimal
程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com