76 lines
1.9 KiB
Plaintext
76 lines
1.9 KiB
Plaintext
|
|
(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)
|
|
)
|
|
)
|
|
|