patrick
/
plasp
Archived
1
0
Fork 0

Added IPC 2006 TPP example instances.

This commit is contained in:
Patrick Lühne 2016-08-18 15:43:14 +02:00
parent 3ceeb3ae40
commit f8ec341015
5 changed files with 169 additions and 0 deletions

View File

@ -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))))
)

View File

@ -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)))
)

View File

@ -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)))
)

View File

@ -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)))
)

View File

@ -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