diff --git a/instances/ipc-2006-tpp-propositional/domain.pddl b/instances/ipc-2006-tpp-propositional/domain.pddl new file mode 100644 index 0000000..45d378f --- /dev/null +++ b/instances/ipc-2006-tpp-propositional/domain.pddl @@ -0,0 +1,65 @@ +; IPC5 Domain: TPP Propositional +; Authors: Alfonso Gerevini and Alessandro Saetti + +(define (domain TPP-Propositional) +(:requirements :strips :typing) +(:types place locatable level - object + depot market - place + truck goods - locatable) + +(:predicates (loaded ?g - goods ?t - truck ?l - level) + (ready-to-load ?g - goods ?m - market ?l - level) + (stored ?g - goods ?l - level) + (on-sale ?g - goods ?m - market ?l - level) + (next ?l1 ?l2 - level) + (at ?t - truck ?p - place) + (connected ?p1 ?p2 - place)) + +(:action drive + :parameters (?t - truck ?from ?to - place) + :precondition (and (at ?t ?from) (connected ?from ?to)) + :effect (and (not (at ?t ?from)) (at ?t ?to))) + + +; ### LOAD ### +; ?l1 is the level of ?g ready to be loaded at ?m before loading +; ?l2 is the level of ?g ready to be loaded at ?m after loading +; ?l3 is the level of ?g in ?t before loading +; ?l4 is the level of ?g in ?t after loading + +(:action load + :parameters (?g - goods ?t - truck ?m - market ?l1 ?l2 ?l3 ?l4 - level) + :precondition (and (at ?t ?m) (loaded ?g ?t ?l3) + (ready-to-load ?g ?m ?l2) (next ?l2 ?l1) (next ?l4 ?l3)) + :effect (and (loaded ?g ?t ?l4) (not (loaded ?g ?t ?l3)) + (ready-to-load ?g ?m ?l1) (not (ready-to-load ?g ?m ?l2)))) + + +; ### UNLOAD ### +; ?l1 is the level of ?g in ?t before unloading +; ?l2 is the level of ?g in ?t after unloading +; ?l3 is the level of ?g in ?d before unloading +; ?l4 is the level of ?g in ?d after unloading + +(:action unload + :parameters (?g - goods ?t - truck ?d - depot ?l1 ?l2 ?l3 ?l4 - level) + :precondition (and (at ?t ?d) (loaded ?g ?t ?l2) + (stored ?g ?l3) (next ?l2 ?l1) (next ?l4 ?l3)) + :effect (and (loaded ?g ?t ?l1) (not (loaded ?g ?t ?l2)) + (stored ?g ?l4) (not (stored ?g ?l3)))) + + +; ### BUY ### +; ?l1 is the level of ?g on sale at ?m before buying +; ?l2 is the level of ?g on sale at ?m after buying +; ?l3 is the level of ?g ready to be loaded at ?m before buying +; ?l4 is the level of ?g ready to be loaded at ?m after buying + +(:action buy + :parameters (?t - truck ?g - goods ?m - market ?l1 ?l2 ?l3 ?l4 - level) + :precondition (and (at ?t ?m) (on-sale ?g ?m ?l2) (ready-to-load ?g ?m ?l3) + (next ?l2 ?l1) (next ?l4 ?l3)) + :effect (and (on-sale ?g ?m ?l1) (not (on-sale ?g ?m ?l2)) + (ready-to-load ?g ?m ?l4) (not (ready-to-load ?g ?m ?l3)))) + +) \ No newline at end of file diff --git a/instances/ipc-2006-tpp-propositional/problem-02.pddl b/instances/ipc-2006-tpp-propositional/problem-02.pddl new file mode 100644 index 0000000..c520a4a --- /dev/null +++ b/instances/ipc-2006-tpp-propositional/problem-02.pddl @@ -0,0 +1,28 @@ +(define (problem TPP) +(:domain TPP-Propositional) +(:objects + goods1 goods2 - goods + truck1 - truck + market1 - market + depot1 - depot + level0 level1 - level) + +(:init + (next level1 level0) + (ready-to-load goods1 market1 level0) + (ready-to-load goods2 market1 level0) + (stored goods1 level0) + (stored goods2 level0) + (loaded goods1 truck1 level0) + (loaded goods2 truck1 level0) + (connected depot1 market1) + (connected market1 depot1) + (on-sale goods1 market1 level1) + (on-sale goods2 market1 level1) + (at truck1 depot1)) + +(:goal (and + (stored goods1 level1) + (stored goods2 level1))) + +) diff --git a/instances/ipc-2006-tpp-propositional/problem-03.pddl b/instances/ipc-2006-tpp-propositional/problem-03.pddl new file mode 100644 index 0000000..2c9f262 --- /dev/null +++ b/instances/ipc-2006-tpp-propositional/problem-03.pddl @@ -0,0 +1,33 @@ +(define (problem TPP) +(:domain TPP-Propositional) +(:objects + goods1 goods2 goods3 - goods + truck1 - truck + market1 - market + depot1 - depot + level0 level1 - level) + +(:init + (next level1 level0) + (ready-to-load goods1 market1 level0) + (ready-to-load goods2 market1 level0) + (ready-to-load goods3 market1 level0) + (stored goods1 level0) + (stored goods2 level0) + (stored goods3 level0) + (loaded goods1 truck1 level0) + (loaded goods2 truck1 level0) + (loaded goods3 truck1 level0) + (connected depot1 market1) + (connected market1 depot1) + (on-sale goods1 market1 level1) + (on-sale goods2 market1 level1) + (on-sale goods3 market1 level1) + (at truck1 depot1)) + +(:goal (and + (stored goods1 level1) + (stored goods2 level1) + (stored goods3 level1))) + +) diff --git a/instances/ipc-2006-tpp-propositional/problem-04.pddl b/instances/ipc-2006-tpp-propositional/problem-04.pddl new file mode 100644 index 0000000..687a918 --- /dev/null +++ b/instances/ipc-2006-tpp-propositional/problem-04.pddl @@ -0,0 +1,38 @@ +(define (problem TPP) +(:domain TPP-Propositional) +(:objects + goods1 goods2 goods3 goods4 - goods + truck1 - truck + market1 - market + depot1 - depot + level0 level1 - level) + +(:init + (next level1 level0) + (ready-to-load goods1 market1 level0) + (ready-to-load goods2 market1 level0) + (ready-to-load goods3 market1 level0) + (ready-to-load goods4 market1 level0) + (stored goods1 level0) + (stored goods2 level0) + (stored goods3 level0) + (stored goods4 level0) + (loaded goods1 truck1 level0) + (loaded goods2 truck1 level0) + (loaded goods3 truck1 level0) + (loaded goods4 truck1 level0) + (connected depot1 market1) + (connected market1 depot1) + (on-sale goods1 market1 level1) + (on-sale goods2 market1 level1) + (on-sale goods3 market1 level1) + (on-sale goods4 market1 level1) + (at truck1 depot1)) + +(:goal (and + (stored goods1 level1) + (stored goods2 level1) + (stored goods3 level1) + (stored goods4 level1))) + +) diff --git a/instances/ipc-2006-tpp-propositional/solutions b/instances/ipc-2006-tpp-propositional/solutions new file mode 100644 index 0000000..079575b --- /dev/null +++ b/instances/ipc-2006-tpp-propositional/solutions @@ -0,0 +1,5 @@ +instance | minimal horizon | #solutions with minimal horizon +============================================================ +problem-02.pddl | 8 | 12 +problem-03.pddl | 11 | 540 +problem-04.pddl | 14 | 60480