From 3ceeb3ae405c60661d2ad9e5ff82551b5988eb53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrick=20L=C3=BChne?= Date: Thu, 18 Aug 2016 15:29:27 +0200 Subject: [PATCH] Added IPC 2002 Driver Log example instances. --- .../ipc-2002-driver-log-strips/domain.pddl | 79 +++++++++++++++++++ .../problem-01.pddl | 48 +++++++++++ .../problem-03.pddl | 59 ++++++++++++++ .../ipc-2002-driver-log-strips/solutions | 4 + 4 files changed, 190 insertions(+) create mode 100644 instances/ipc-2002-driver-log-strips/domain.pddl create mode 100644 instances/ipc-2002-driver-log-strips/problem-01.pddl create mode 100644 instances/ipc-2002-driver-log-strips/problem-03.pddl create mode 100644 instances/ipc-2002-driver-log-strips/solutions diff --git a/instances/ipc-2002-driver-log-strips/domain.pddl b/instances/ipc-2002-driver-log-strips/domain.pddl new file mode 100644 index 0000000..e493815 --- /dev/null +++ b/instances/ipc-2002-driver-log-strips/domain.pddl @@ -0,0 +1,79 @@ +(define (domain driverlog) + (:requirements :typing) + (:types location locatable - object + driver truck obj - locatable + + ) + (:predicates + (at ?obj - locatable ?loc - location) + (in ?obj1 - obj ?obj - truck) + (driving ?d - driver ?v - truck) + (link ?x ?y - location) (path ?x ?y - location) + (empty ?v - truck) +) + + +(:action LOAD-TRUCK + :parameters + (?obj - obj + ?truck - truck + ?loc - location) + :precondition + (and (at ?truck ?loc) (at ?obj ?loc)) + :effect + (and (not (at ?obj ?loc)) (in ?obj ?truck))) + +(:action UNLOAD-TRUCK + :parameters + (?obj - obj + ?truck - truck + ?loc - location) + :precondition + (and (at ?truck ?loc) (in ?obj ?truck)) + :effect + (and (not (in ?obj ?truck)) (at ?obj ?loc))) + +(:action BOARD-TRUCK + :parameters + (?driver - driver + ?truck - truck + ?loc - location) + :precondition + (and (at ?truck ?loc) (at ?driver ?loc) (empty ?truck)) + :effect + (and (not (at ?driver ?loc)) (driving ?driver ?truck) (not (empty ?truck)))) + +(:action DISEMBARK-TRUCK + :parameters + (?driver - driver + ?truck - truck + ?loc - location) + :precondition + (and (at ?truck ?loc) (driving ?driver ?truck)) + :effect + (and (not (driving ?driver ?truck)) (at ?driver ?loc) (empty ?truck))) + +(:action DRIVE-TRUCK + :parameters + (?truck - truck + ?loc-from - location + ?loc-to - location + ?driver - driver) + :precondition + (and (at ?truck ?loc-from) + (driving ?driver ?truck) (link ?loc-from ?loc-to)) + :effect + (and (not (at ?truck ?loc-from)) (at ?truck ?loc-to))) + +(:action WALK + :parameters + (?driver - driver + ?loc-from - location + ?loc-to - location) + :precondition + (and (at ?driver ?loc-from) (path ?loc-from ?loc-to)) + :effect + (and (not (at ?driver ?loc-from)) (at ?driver ?loc-to))) + + +) diff --git a/instances/ipc-2002-driver-log-strips/problem-01.pddl b/instances/ipc-2002-driver-log-strips/problem-01.pddl new file mode 100644 index 0000000..d4de756 --- /dev/null +++ b/instances/ipc-2002-driver-log-strips/problem-01.pddl @@ -0,0 +1,48 @@ +(define (problem DLOG-2-2-2) + (:domain driverlog) + (:objects + driver1 - driver + driver2 - driver + truck1 - truck + truck2 - truck + package1 - obj + package2 - obj + s0 - location + s1 - location + s2 - location + p1-0 - location + p1-2 - location + ) + (:init + (at driver1 s2) + (at driver2 s2) + (at truck1 s0) + (empty truck1) + (at truck2 s0) + (empty truck2) + (at package1 s0) + (at package2 s0) + (path s1 p1-0) + (path p1-0 s1) + (path s0 p1-0) + (path p1-0 s0) + (path s1 p1-2) + (path p1-2 s1) + (path s2 p1-2) + (path p1-2 s2) + (link s0 s1) + (link s1 s0) + (link s0 s2) + (link s2 s0) + (link s2 s1) + (link s1 s2) +) + (:goal (and + (at driver1 s1) + (at truck1 s1) + (at package1 s0) + (at package2 s0) + )) + + +) diff --git a/instances/ipc-2002-driver-log-strips/problem-03.pddl b/instances/ipc-2002-driver-log-strips/problem-03.pddl new file mode 100644 index 0000000..8ad17ff --- /dev/null +++ b/instances/ipc-2002-driver-log-strips/problem-03.pddl @@ -0,0 +1,59 @@ +(define (problem DLOG-2-2-4) + (:domain driverlog) + (:objects + driver1 - driver + driver2 - driver + truck1 - truck + truck2 - truck + package1 - obj + package2 - obj + package3 - obj + package4 - obj + s0 - location + s1 - location + s2 - location + p0-1 - location + p2-0 - location + p2-1 - location + ) + (:init + (at driver1 s1) + (at driver2 s0) + (at truck1 s1) + (empty truck1) + (at truck2 s2) + (empty truck2) + (at package1 s0) + (at package2 s0) + (at package3 s1) + (at package4 s1) + (path s0 p0-1) + (path p0-1 s0) + (path s1 p0-1) + (path p0-1 s1) + (path s2 p2-0) + (path p2-0 s2) + (path s0 p2-0) + (path p2-0 s0) + (path s2 p2-1) + (path p2-1 s2) + (path s1 p2-1) + (path p2-1 s1) + (link s1 s0) + (link s0 s1) + (link s1 s2) + (link s2 s1) + (link s2 s0) + (link s0 s2) +) + (:goal (and + (at driver2 s2) + (at truck1 s1) + (at truck2 s2) + (at package1 s1) + (at package2 s1) + (at package3 s2) + )) + + +) diff --git a/instances/ipc-2002-driver-log-strips/solutions b/instances/ipc-2002-driver-log-strips/solutions new file mode 100644 index 0000000..c7d5efd --- /dev/null +++ b/instances/ipc-2002-driver-log-strips/solutions @@ -0,0 +1,4 @@ +instance | minimal horizon | #solutions with minimal horizon +============================================================ +problem-01.pddl | 7 | 1 +problem-03.pddl | 12 | 1056