diff --git a/instances/ipc-2004-satellite/domain.pddl b/instances/ipc-2004-satellite/domain.pddl new file mode 100644 index 0000000..f82b344 --- /dev/null +++ b/instances/ipc-2004-satellite/domain.pddl @@ -0,0 +1,75 @@ + +(define (domain satellite) + (:requirements :strips :equality :typing) + (:types satellite direction instrument mode) + (:predicates + (on_board ?i - instrument ?s - satellite) + (supports ?i - instrument ?m - mode) + (pointing ?s - satellite ?d - direction) + (power_avail ?s - satellite) + (power_on ?i - instrument) + (calibrated ?i - instrument) + (have_image ?d - direction ?m - mode) + (calibration_target ?i - instrument ?d - direction)) + + + + (:action turn_to + :parameters (?s - satellite ?d_new - direction ?d_prev - direction) + :precondition (and (pointing ?s ?d_prev) + ) + :effect (and (pointing ?s ?d_new) + (not (pointing ?s ?d_prev)) + ) + ) + + + (:action switch_on + :parameters (?i - instrument ?s - satellite) + + :precondition (and (on_board ?i ?s) + (power_avail ?s) + ) + :effect (and (power_on ?i) + (not (calibrated ?i)) + (not (power_avail ?s)) + ) + + ) + + + (:action switch_off + :parameters (?i - instrument ?s - satellite) + + :precondition (and (on_board ?i ?s) + (power_on ?i) + ) + :effect (and (not (power_on ?i)) + (power_avail ?s) + ) + ) + + (:action calibrate + :parameters (?s - satellite ?i - instrument ?d - direction) + :precondition (and (on_board ?i ?s) + (calibration_target ?i ?d) + (pointing ?s ?d) + (power_on ?i) + ) + :effect (calibrated ?i) + ) + + + (:action take_image + :parameters (?s - satellite ?d - direction ?i - instrument ?m - mode) + :precondition (and (calibrated ?i) + (on_board ?i ?s) + (supports ?i ?m) + (power_on ?i) + (pointing ?s ?d) + (power_on ?i) + ) + :effect (have_image ?d ?m) + ) +) + diff --git a/instances/ipc-2004-satellite/problem-01.pddl b/instances/ipc-2004-satellite/problem-01.pddl new file mode 100644 index 0000000..de41c7f --- /dev/null +++ b/instances/ipc-2004-satellite/problem-01.pddl @@ -0,0 +1,30 @@ +(define (problem strips-sat-x-1) +(:domain satellite) +(:objects + satellite0 - satellite + instrument0 - instrument + image1 - mode + spectrograph2 - mode + thermograph0 - mode + Star0 - direction + GroundStation1 - direction + GroundStation2 - direction + Phenomenon3 - direction + Phenomenon4 - direction + Star5 - direction + Phenomenon6 - direction +) +(:init + (supports instrument0 thermograph0) + (calibration_target instrument0 GroundStation2) + (on_board instrument0 satellite0) + (power_avail satellite0) + (pointing satellite0 Phenomenon6) +) +(:goal (and + (have_image Phenomenon4 thermograph0) + (have_image Star5 thermograph0) + (have_image Phenomenon6 thermograph0) +)) + +) diff --git a/instances/ipc-2004-satellite/problem-02.pddl b/instances/ipc-2004-satellite/problem-02.pddl new file mode 100644 index 0000000..6b41f02 --- /dev/null +++ b/instances/ipc-2004-satellite/problem-02.pddl @@ -0,0 +1,40 @@ +(define (problem strips-sat-x-1) +(:domain satellite) +(:objects + satellite0 - satellite + instrument0 - instrument + instrument1 - instrument + infrared0 - mode + infrared1 - mode + image2 - mode + GroundStation1 - direction + Star0 - direction + GroundStation2 - direction + Planet3 - direction + Planet4 - direction + Phenomenon5 - direction + Phenomenon6 - direction + Star7 - direction +) +(:init + (supports instrument0 infrared1) + (supports instrument0 infrared0) + (calibration_target instrument0 Star0) + (supports instrument1 image2) + (supports instrument1 infrared1) + (supports instrument1 infrared0) + (calibration_target instrument1 GroundStation2) + (on_board instrument0 satellite0) + (on_board instrument1 satellite0) + (power_avail satellite0) + (pointing satellite0 Planet4) +) +(:goal (and + (have_image Planet3 infrared0) + (have_image Planet4 infrared0) + (have_image Phenomenon5 image2) + (have_image Phenomenon6 infrared0) + (have_image Star7 infrared0) +)) + +) diff --git a/instances/ipc-2004-satellite/problem-03.pddl b/instances/ipc-2004-satellite/problem-03.pddl new file mode 100644 index 0000000..0a26185 --- /dev/null +++ b/instances/ipc-2004-satellite/problem-03.pddl @@ -0,0 +1,52 @@ +(define (problem strips-sat-x-1) +(:domain satellite) +(:objects + satellite0 - satellite + instrument0 - instrument + instrument1 - instrument + instrument2 - instrument + satellite1 - satellite + instrument3 - instrument + image1 - mode + infrared0 - mode + spectrograph2 - mode + Star1 - direction + Star2 - direction + Star0 - direction + Star3 - direction + Star4 - direction + Phenomenon5 - direction + Phenomenon6 - direction + Phenomenon7 - direction +) +(:init + (supports instrument0 spectrograph2) + (supports instrument0 infrared0) + (calibration_target instrument0 Star1) + (supports instrument1 image1) + (calibration_target instrument1 Star2) + (supports instrument2 infrared0) + (supports instrument2 image1) + (calibration_target instrument2 Star0) + (on_board instrument0 satellite0) + (on_board instrument1 satellite0) + (on_board instrument2 satellite0) + (power_avail satellite0) + (pointing satellite0 Star4) + (supports instrument3 spectrograph2) + (supports instrument3 infrared0) + (supports instrument3 image1) + (calibration_target instrument3 Star0) + (on_board instrument3 satellite1) + (power_avail satellite1) + (pointing satellite1 Star0) +) +(:goal (and + (pointing satellite0 Phenomenon5) + (have_image Star3 infrared0) + (have_image Star4 spectrograph2) + (have_image Phenomenon5 spectrograph2) + (have_image Phenomenon7 spectrograph2) +)) + +) diff --git a/instances/ipc-2004-satellite/solutions b/instances/ipc-2004-satellite/solutions new file mode 100644 index 0000000..a44ffac --- /dev/null +++ b/instances/ipc-2004-satellite/solutions @@ -0,0 +1,5 @@ +instance | minimal horizon | #solutions with minimal horizon +============================================================ +problem-01.pddl | 9 | 12 +problem-02.pddl | 13 | 240 +problem-03.pddl | 11 | 276