[Project IFT702] / Planning with HSP*



REF : http://www.ida.liu.se/~pahas/hsps/

HSP* is a planner that support numeric and time planning.

We cannot use HSP* due to an internal limitation of HSP*. When we try HSP*, he complains about non static function.

[eric@siela projet]$ ../hsps/hsp0 ScientificConf.pddl test1.fct
instantiating...

error: function currenttime is not static

HSP* does not permits the use of dynamic variables in effects. But, for our domain, this kind of effects are important.

Consider the following definition of WAIT-PRES-SESSION action :
   (:action WAIT-PRES-SESSION
     :parameters(?ses - pres-session)
     :precondition(and
         (< (currenttime) (time-pres-begin ?ses))
         (>= (battery-level) (* (- (time-pres-begin ?ses) (currenttime)) (energyconsumed-per-second)))
         )
     :effect(and
         (increase (currenttime) (- (time-pres-begin ?ses) (currenttime)))
         (decrease (battery-level) (* (- (time-pres-begin ?ses) (currenttime)) (energyconsumed-per-second)))
         )
   )

Because WAIT actions takes a variable duration, we need to descrease the battery level proportionnaly to the duration. But, to compute the duration, we need to use the function currenttime that is not static.