-
Notifications
You must be signed in to change notification settings - Fork 0
/
reference-sokoban.pddl
66 lines (63 loc) · 2.14 KB
/
reference-sokoban.pddl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
(define (domain sokoban-sequential)
(:requirements :typing)
(:types thing location direction - object
player stone - thing)
(:predicates (clear ?l - location)
(at ?t - thing ?l - location)
(at-goal ?s - stone)
(IS-GOAL ?l - location)
(IS-NONGOAL ?l - location)
(MOVE-DIR ?from ?to - location ?dir - direction))
(:action move
:parameters (?p - player ?from ?to - location ?dir - direction)
:precondition (and (at ?p ?from)
(clear ?to)
(MOVE-DIR ?from ?to ?dir)
)
:effect (and (not (at ?p ?from))
(not (clear ?to))
(at ?p ?to)
(clear ?from)
)
)
(:action push-to-nongoal
:parameters (?p - player ?s - stone
?ppos ?from ?to - location
?dir - direction)
:precondition (and (at ?p ?ppos)
(at ?s ?from)
(clear ?to)
(MOVE-DIR ?ppos ?from ?dir)
(MOVE-DIR ?from ?to ?dir)
(IS-NONGOAL ?to)
)
:effect (and (not (at ?p ?ppos))
(not (at ?s ?from))
(not (clear ?to))
(at ?p ?from)
(at ?s ?to)
(clear ?ppos)
(not (at-goal ?s))
)
)
(:action push-to-goal
:parameters (?p - player ?s - stone
?ppos ?from ?to - location
?dir - direction)
:precondition (and (at ?p ?ppos)
(at ?s ?from)
(clear ?to)
(MOVE-DIR ?ppos ?from ?dir)
(MOVE-DIR ?from ?to ?dir)
(IS-GOAL ?to)
)
:effect (and (not (at ?p ?ppos))
(not (at ?s ?from))
(not (clear ?to))
(at ?p ?from)
(at ?s ?to)
(clear ?ppos)
(at-goal ?s)
)
)
)