-
Notifications
You must be signed in to change notification settings - Fork 1
/
ppro-xo-opt-as-dof-lmc.def
104 lines (88 loc) · 2.79 KB
/
ppro-xo-opt-as-dof-lmc.def
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
Bootstrap: docker
From: ubuntu:22.04
%files
## This copies all files in this repository into the container.
## If you do so, please remove all files not needed to run the planner
## (e.g. source-code, testing or debugging planning problems) from the container
## to decrease its size as much as possible.
. /planner
%setup
## The "%setup"-part of this script is called to bootstrap an empty
## container.
%post
## The "%post"-part of this script is called after the container has
## been created with the "%setup"-part above and runs "inside the
## container". Most importantly, it is used to install dependencies
## and build the planner. Add all commands that have to be executed
## once before the planner runs in this part of the script.
## Install all necessary dependencies.
apt-get update
apt-get -y install make g++ bison cmake gengetopt flex unzip patch
## go to directory and make the planner
cd /planner
cd 00-parser/
make
mv pandaPIparser ..
cd ..
cd 01-grounder
cd cpddl
make boruvka opts bliss lpsolve
make
cd ../src
make
cd ..
mv pandaPIgrounder ..
cd ..
cd 04-panda-base/src
mkdir bin
cd bin
cmake ..
make
mv pandaPIengine ../../..
cd ..
## remove files not needed to execute the planner
%runscript
## The runscript is called whenever the container is used to solve
## an instance.
## DOMAINFILE and PROBLEMFILE contain the HDDL input files.
## DOMAINFILE=$1
## PROBLEMFILE=$2
## PLANFILE is the name of the file to which your planner should write the plan it found.
## PLANFILE=$3
## run your planner here
/planner/pandaPIparser $1 $2 temp.parsed
if [ ! -f temp.parsed ]; then
echo "Parsing failed."
exit 101
fi
/planner/pandaPIgrounder -q -i temp.parsed "$(basename "$1" .hddl)-$(basename "$2" .hddl).psas"
# /planner/pandaPIgrounder -q -DE temp.parsed "$(basename "$1" .hddl)-$(basename "$2" .hddl).psas"
rm temp.parsed
if [ ! -f "$(basename "$1" .hddl)-$(basename "$2" .hddl).psas" ]; then
echo "Grounding failed."
exit 102
fi
# DOF heuristic with
# - LP encoding
# - using TDG constrating with unconnected cycles
# - not using PG constraints
# - using LM-Cut landmarks
# - not using AO landmarks
# - using operator counting constraints
/planner/pandaPIengine -g action --astarweight=1 --heuristic="dof(type=lp;mode=optimal)" "$(basename "$1" .hddl)-$(basename "$2" .hddl).psas" >> panda.log
/planner/pandaPIparser -c panda.log $3
## Update the following fields with meta data about your submission.
## Please use the same field names and use only one line for each value.
%labels
Name PANDApro
Description
Authors Daniel Höller
SupportsRecursion yes
SupportsPartialOrder yes
SupportsOptimalPlanning yes
Track-TO-agile no
Track-TO-satisficing no
Track-TO-optimal yes
Track-PO-agile no
Track-PO-satisficing no
Track-PO-optimal yes