58 lines
1.5 KiB
Text
58 lines
1.5 KiB
Text
(:types EquipmentClass Equipment)
|
|
|
|
(:constants
|
|
EC_PositioningUnit - EquipmentClass
|
|
EC_TransportationNode - EquipmentClass
|
|
EC_Shuttle - EquipmentClass
|
|
)
|
|
|
|
(:predicates
|
|
(EquipmentClassed ?E - Equipment ?C - EquipmentClass)
|
|
(TransportationNodeOccupied ?E - Equipment)
|
|
(PositioningUnitLocked ?E - Equipment)
|
|
(TransportationNodeConnection ?F ?T - Equipment)
|
|
(EquipmentLocation ?E ?R - Equipment)
|
|
)
|
|
|
|
(:functions
|
|
(total-cost)
|
|
(shuttle-time ?FROM ?TO - Equipment)
|
|
)
|
|
|
|
(:action MoveShuttle
|
|
:parameters (?SHUTTLE ?FROM ?TO - Equipment)
|
|
:precondition
|
|
(and
|
|
(EquipmentClassed ?SHUTTLE EC_Shuttle)
|
|
(or
|
|
(EquipmentClassed ?FROM EC_PositioningUnit)
|
|
(EquipmentClassed ?FROM EC_TransportationNode)
|
|
)
|
|
(imply (EquipmentClassed ?FROM EC_PositioningUnit)
|
|
(not (PositioningUnitLocked ?FROM))
|
|
)
|
|
(imply (EquipmentClassed ?FROM EC_TransportationNode) (TransportationNodeOccupied ?FROM)
|
|
)
|
|
(or
|
|
(EquipmentClassed ?TO EC_PositioningUnit)
|
|
(EquipmentClassed ?TO EC_TransportationNode)
|
|
)
|
|
(imply (EquipmentClassed ?TO EC_PositioningUnit)
|
|
(not (PositioningUnitLocked ?TO))
|
|
)
|
|
(imply (EquipmentClassed ?TO EC_TransportationNode)
|
|
(not (TransportationNodeOccupied ?TO))
|
|
)
|
|
(TransportationNodeConnection ?FROM ?TO)
|
|
(EquipmentLocation ?SHUTTLE ?FROM)
|
|
(not (EquipmentLocation ?SHUTTLE ?TO))
|
|
)
|
|
:effect
|
|
(and
|
|
(not (TransportationNodeOccupied ?FROM))
|
|
(TransportationNodeOccupied ?TO)
|
|
(increase (total-cost) (shuttle-time ?FROM ?TO))
|
|
(not (EquipmentLocation ?SHUTTLE ?FROM))
|
|
(EquipmentLocation ?SHUTTLE ?TO)
|
|
)
|
|
)
|