Skip to content

Commit

Permalink
Added IPC 2006 storage domains.
Browse files Browse the repository at this point in the history
  • Loading branch information
pluehne committed Jul 26, 2017
1 parent 454b176 commit 37b2877
Show file tree
Hide file tree
Showing 185 changed files with 692,126 additions and 0 deletions.
7 changes: 7 additions & 0 deletions ipc-2006/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,13 @@
| [rovers](domains/rovers-metric-time) | metric, time | PDDL |
| [rovers](domains/rovers-metric-preferences-simple) | metric, preferences (simple) | PDDL |
| [rovers](domains/rovers-preferences-qualitative) | preferences (qualitative) | PDDL |
| [storage](domains/storage-propositional) | propositional | PDDL |
| [storage](domains/storage-time) | time | PDDL |
| [storage](domains/storage-time-constraints) | time, constraints | PDDL |
| [storage](domains/storage-preferences-simple) | preferences (simple) | PDDL |
| [storage](domains/storage-preferences-simple-grounded-preferences) | preferences (simple) | PDDL (grounded preferences) |
| [storage](domains/storage-preferences-qualitative) | preferences (qualitative) | PDDL |
| [storage](domains/storage-preferences-complex) | preferences (complex) | PDDL |

## Sources

Expand Down
40 changes: 40 additions & 0 deletions ipc-2006/domains/storage-preferences-complex/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Storage (Preferences (Complex))

## Domain Description

*Storage* is a planning domain involving spatial reasoning.
Basically, the domain is about moving a certain number of crates from some containers to some depots by hoists.
Inside a depot, each hoist can move according to a specified spatial map connecting different areas of the depot.
The test problems for this domain involve different numbers of depots, hoists, crates, containers, and depot areas.
At the beginning of each problem file, we give the spatial map of the depot areas.
While in this domain, it is important to generate plans of good quality, for many test problems, even finding any solution can be quite hard for domain-independent planners.

## Authors

Alfonso Gerevini and Alessandro Saetti

## Original File Names

| file | original name |
|------------------|---------------|
| domain.pddl | domain.pddl |
| instance-1.pddl | p01.pddl |
| instance-2.pddl | p02.pddl |
| instance-3.pddl | p03.pddl |
| instance-4.pddl | p04.pddl |
| instance-5.pddl | p05.pddl |
| instance-6.pddl | p06.pddl |
| instance-7.pddl | p07.pddl |
| instance-8.pddl | p08.pddl |
| instance-9.pddl | p09.pddl |
| instance-10.pddl | p10.pddl |
| instance-11.pddl | p11.pddl |
| instance-12.pddl | p12.pddl |
| instance-13.pddl | p13.pddl |
| instance-14.pddl | p14.pddl |
| instance-15.pddl | p15.pddl |
| instance-16.pddl | p16.pddl |
| instance-17.pddl | p17.pddl |
| instance-18.pddl | p18.pddl |
| instance-19.pddl | p19.pddl |
| instance-20.pddl | p20.pddl |
64 changes: 64 additions & 0 deletions ipc-2006/domains/storage-preferences-complex/domain.pddl
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
; IPC5 Domain: Storage ComplexPreferences
; Authors: Alfonso Gerevini and Alessandro Saetti

(define (domain Storage-TimePreferences)
(:requirements :typing :adl :durative-actions :preferences :constraints)
(:types hoist surface place area - object
container depot - place
storearea transitarea - area
area crate - surface)

(:predicates (clear ?s - storearea)
(in ?x - (either storearea crate) ?p - place)
(available ?h - hoist)
(lifting ?h - hoist ?c - crate)
(at ?h - hoist ?a - area)
(on ?c - crate ?s - storearea)
(connected ?a1 ?a2 - area)
(compatible ?c1 ?c2 - crate))

(:durative-action lift
:parameters (?h - hoist ?c - crate ?a1 - storearea ?a2 - area ?p - place)
:duration (= ?duration 2)
:condition (and (at start (available ?h)) (at start (on ?c ?a1))
(over all (connected ?a1 ?a2)) (over all (at ?h ?a2))
(over all (in ?a1 ?p)))
:effect (and (at start (not (in ?c ?p))) (at start (not (available ?h)))
(at start (lifting ?h ?c)) (at start (not (on ?c ?a1)))
(at end (clear ?a1))))

(:durative-action drop
:parameters (?h - hoist ?c - crate ?a1 - storearea ?a2 - area ?p - place)
:duration (= ?duration 2)
:condition (and (at start (clear ?a1)) (over all (lifting ?h ?c))
(over all (connected ?a1 ?a2)) (over all (at ?h ?a2))
(over all (in ?a1 ?p)))
:effect (and (at start (not (clear ?a1))) (at end (not (lifting ?h ?c)))
(at end (available ?h)) (at end (on ?c ?a1))
(at end (in ?c ?p))))

(:durative-action move
:parameters (?h - hoist ?from ?to - storearea)
:duration (= ?duration 1)
:condition (and (at start (at ?h ?from)) (at start (clear ?to))
(over all (connected ?from ?to)))
:effect (and (at start (not (at ?h ?from))) (at start (not (clear ?to)))
(at start (clear ?from)) (at end (at ?h ?to))))

(:durative-action go-out
:parameters (?h - hoist ?from - storearea ?to - transitarea)
:duration (= ?duration 1)
:condition (and (at start (at ?h ?from)) (over all (connected ?from ?to)))
:effect (and (at start (not (at ?h ?from))) (at start (clear ?from))
(at end (at ?h ?to))))

(:durative-action go-in
:parameters (?h - hoist ?from - transitarea ?to - storearea)
:duration (= ?duration 1)
:condition (and (at start (at ?h ?from)) (at start (clear ?to))
(over all (connected ?from ?to)))
:effect (and (at start (not (at ?h ?from))) (at start (not (clear ?to)))
(at end (at ?h ?to))))
)


Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
; Map of the Depots:
; *0=1*1
;-------
; 0: depot0 area
; 1: depot1 area
; *: Depot access point
; =: Transit area

(define (problem storage-1)
(:domain Storage-TimePreferences)
(:objects
depot0-1-1 depot0-1-2 depot1-1-1 depot1-1-2 depot1-1-3 container-0-0 - storearea
hoist0 - hoist
crate0 - crate
container0 - container
depot0 depot1 - depot
loadarea transit0 - transitarea)

(:init
(connected depot0-1-1 depot0-1-2)
(connected depot0-1-2 depot0-1-1)
(connected depot1-1-1 depot1-1-2)
(connected depot1-1-2 depot1-1-3)
(connected depot1-1-2 depot1-1-1)
(connected depot1-1-3 depot1-1-2)
(connected transit0 depot0-1-2)
(connected transit0 depot1-1-1)
(in depot0-1-1 depot0)
(in depot0-1-2 depot0)
(in depot1-1-1 depot1)
(in depot1-1-2 depot1)
(in depot1-1-3 depot1)
(on crate0 container-0-0)
(in crate0 container0)
(in container-0-0 container0)
(connected loadarea container-0-0)
(connected container-0-0 loadarea)
(connected depot0-1-1 loadarea)
(connected loadarea depot0-1-1)
(connected depot1-1-2 loadarea)
(connected loadarea depot1-1-2)
(clear depot0-1-1)
(clear depot0-1-2)
(clear depot1-1-1)
(clear depot1-1-3)
(at hoist0 depot1-1-2)
(available hoist0))

(:goal (and
(preference p2A (clear depot0-1-1))
(preference p2B (clear depot1-1-2))

(forall (?c - crate)
(preference p6A (exists (?d - depot) (and (in ?c ?d) (not (= ?d depot1))))))))

(:constraints (and

(forall (?c - crate)
(preference p3A (at-most-once (exists (?h - hoist) (lifting ?h ?c)))))

(forall (?h - hoist)
(preference p4A (sometime (exists (?c - crate) (lifting ?h ?c)))))

(forall (?c - crate)
(preference p4B (within 30 (exists (?d - depot) (in ?c ?d)))))

(forall (?h - hoist)
(preference p3B (always-within 3.5 (at ?h loadarea)
(exists (?a - storearea ?d - depot) (and (at ?h ?a) (in ?a ?d))))))))

(:metric minimize (+ (* 2 (is-violated p2A))
(* 2 (is-violated p2B))
(* 3 (is-violated p3A))
(* 3 (is-violated p3B))
(* 4 (is-violated p4A))
(* 4 (is-violated p4B))
(* 6 (is-violated p6A))))
)
Loading

0 comments on commit 37b2877

Please sign in to comment.