Skip to content

Commit 7daf0c1

Browse files
committed
popf 1 included and made work
1 parent 3483eb7 commit 7daf0c1

File tree

141 files changed

+19539
-26420
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

141 files changed

+19539
-26420
lines changed

CMakeLists.txt

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
cmake_minimum_required(VERSION 2.6)
2+
project (popf)
3+
4+
add_subdirectory(src)

LICENCE

+345
Large diffs are not rendered by default.

README

100644100755
+55-20
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,70 @@
1-
About
2-
-----
1+
=== POPF1.1 ===
32

4-
This directory contains the planner POPF2. The original incarnation of POPF
5-
is described in the ICAPS 2010 paper "Forward-Chaining Partial-Order Planning."
6-
by Amanda Coles, Andrew Coles, Maria Fox and Derek Long. This version
7-
extends POPF by introducing any-time search, allowing it to optimise solution
8-
quality.
3+
This archive contains the source release of POPF, as described in the 2010 ICAPS paper, plus a few bug fixes. The directory 'src/popf' contains the sources of the planner itself, and the directory 'src/VALfiles' contains PDDL parsing and action instantiation code, taken from VAL (the PDDL validator). Contact details for the authors are available from the Strathclyde Planning Group Website:
94

10-
Compiling
11-
---------
5+
http://planning.cis.strath.ac.uk/
126

13-
POPF2 requires:
7+
In the first instance, for bug reports or technical discussions, contact Andrew Coles ([email protected]).
8+
9+
== Compiling POPF ==
10+
11+
A precompiled, statically linked binary of POPF for Linux x86 is available to download. For those wishing to compile POPF themselves, carry on reading, otherwise, skip to the 'Running POPF' section.
12+
13+
Build prerequisites:
1414
- cmake ( http://www.cmake.org/ )
1515
- the CBC mixed integer programming solver ( https://projects.coin-or.org/Cbc/ )
1616
- perl, bison and flex to build the parser
1717

18-
These are packaged with most linux distributions - on Ubuntu/Debian, the
19-
following should suffice:
18+
These are packaged with most linux distributions - on Ubuntu/Debian, the following should suffice:
19+
20+
sudo apt-get install cmake coinor-libcbc-dev coinor-libclp-dev coinor-libcoinutils-dev bison flex
21+
22+
Once installed, open a terminal and type the following:
23+
24+
cd <directory containing this file>
25+
cd <build>
26+
./buildscript
27+
make
28+
29+
Assuming all goes well, the file 'build/popf/popf-clp' is then a the binary of popf.
30+
31+
== Running POPF ==
32+
33+
To run POPF (using the new heuristic described in the ICAPS paper), type:
34+
35+
popf-clp domain.pddl problem.pddl
36+
37+
To disable the new heuristic, add the -c option, i.e. type:
38+
39+
popf-clp -c domain.pddl problem.pddl
40+
41+
To read a solution plan in (to then lift a partial order from and print the resulting plan) run:
42+
43+
popf-clp -r domain.pddl problem.pddl plan.soln
44+
45+
If you are using POPF in a paper, to print the appropriate BibTeX reference run:
46+
47+
popf-clp -citation
48+
49+
For full details of the other command-line options, run popf without any arguments.
2050

21-
sudo apt-get install cmake coinor-libcbc-dev coinor-libclp-dev \
22-
coinor-libcoinutils-dev bison flex
51+
== Known Issues ==
2352

53+
There used to be some (known) bugs affecting the enhanced heuristic. Those should be fixed now; but, if it crashes or exhibits other strange behaviour, try running with the -c option, as described above. If you have a particularly small domain and problem file pair for which passing -c to POPF fixes the bug, then email Andrew Coles - such files are useful for debugging.
2454

25-
After that, run ./build
55+
Otherwise, if -c doesn't fix the problem, and POPF crashes, then you may want to compile with debugging information. Change build/buildscript, and follow the instructions given in the comments (instead of passing RelWithDebInfo to cmake, pass Debug). Then, run the newly built popf binary, and send the output it produces along with your domain and problem file to Andrew Coles ([email protected]).
2656

57+
== Licence ==
2758

28-
Running
29-
-------
59+
POPF is free software: you can redistribute it and/or modify
60+
it under the terms of the GNU General Public License as published by
61+
the Free Software Foundation, either version 2 of the License, or
62+
(at your option) any later version.
3063

31-
Run:
64+
POPF is distributed in the hope that it will be useful,
65+
but WITHOUT ANY WARRANTY; without even the implied warranty of
66+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
67+
GNU General Public License for more details.
3268

33-
./plan <domain> <problem> <solution filename>
69+
For details of the license, see the file LICENCE in this directory.
3470

35-
As POPF2 is an any-time planer, it will save sequentially numbered plans.

build

-5
This file was deleted.

build/buildscript

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#!/bin/bash
2+
3+
# Uncomment the following two lines if you have CBC/Clp installed in a non-standard
4+
# location. This is useful if building a static binary: compile CBC and set its
5+
# install path to $PWD/../coin.
6+
#export CLPDIR="$PWD/../coin"
7+
#export CMAKE_PREFIX_PATH="$PWD/../coin"
8+
9+
10+
# Uncomment this line to make a static binary
11+
#cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DSTATIC_POPF=1 ../src
12+
13+
# Run CMake, specifying to build a release binary with debugging symbols enabled.
14+
# To exclude debugging symbols, change RelWithDebInfo to Release
15+
# To disable optimisation, change RelWithDebInfo to Debug
16+
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ../src
17+
18+
cd popf
19+
make

package.xml

+55
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
<?xml version="1.0"?>
2+
<package>
3+
<name>popf</name>
4+
<version>0.0.0</version>
5+
<description>The POPF package</description>
6+
7+
<!-- One maintainer tag required, multiple allowed, one person per tag -->
8+
<!-- Example: -->
9+
<!-- <maintainer email="[email protected]">Jane Doe</maintainer> -->
10+
<maintainer email="[email protected]">Marc Hanheide</maintainer>
11+
12+
13+
<!-- One license tag required, multiple allowed, one license per tag -->
14+
<!-- Commonly used license strings: -->
15+
<!-- BSD, MIT, Boost Software License, GPLv2, GPLv3, LGPLv2.1, LGPLv3 -->
16+
<license>BSD</license>
17+
18+
<!-- Author tags are optional, mutiple are allowed, one per tag -->
19+
<!-- Authors do not have to be maintianers, but could be -->
20+
<!-- Example: -->
21+
22+
23+
<!-- The *_depend tags are used to specify dependencies -->
24+
<!-- Dependencies can be catkin packages or system dependencies -->
25+
<!-- Examples: -->
26+
<!-- Use build_depend for packages you need at compile time: -->
27+
<!-- <build_depend>message_generation</build_depend> -->
28+
<!-- Use buildtool_depend for build tool packages: -->
29+
<!-- <buildtool_depend>catkin</buildtool_depend> -->
30+
<!-- Use run_depend for packages you need at runtime: -->
31+
<!-- <run_depend>message_runtime</run_depend> -->
32+
<!-- Use test_depend for packages you need only for testing: -->
33+
<!-- <test_depend>gtest</test_depend> -->
34+
<buildtool_depend>catkin</buildtool_depend>
35+
<build_depend>roscpp</build_depend>
36+
<build_depend>flex</build_depend>
37+
<build_depend>bison</build_depend>
38+
<build_depend>coinor-solvers</build_depend>
39+
40+
<run_depend>roscpp</run_depend>
41+
<run_depend>flex</run_depend>
42+
<run_depend>bison</run_depend>
43+
<run_depend>coinor-solvers</run_depend>
44+
45+
46+
<!-- The export tag contains other, unspecified, tags -->
47+
<export>
48+
<!-- You can specify that this package is a metapackage here: -->
49+
<!-- <metapackage/> -->
50+
51+
<!-- Other tools can request additional information be placed here -->
52+
<build_type>cmake</build_type>
53+
54+
</export>
55+
</package>

plan

-48
This file was deleted.

src/CMakeLists.txt

100755100644
+2-10
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,9 @@
11
cmake_minimum_required(VERSION 2.4)
2-
32
if(COMMAND cmake_policy)
43
cmake_policy(SET CMP0003 NEW)
54
endif(COMMAND cmake_policy)
65

7-
project(colinroot)
8-
9-
set(CMAKE_CXX_FLAGS_PROFILE "-pg -O -g")
10-
set(CMAKE_CXX_LINK_FLAGS_PROFILE "-pg -g")
11-
12-
13-
set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}
14-
${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules)
6+
project(root)
157

168
add_subdirectory(VALfiles)
17-
add_subdirectory(popf2)
9+
add_subdirectory(popf)

src/VALfiles/.cvsignore

100755100644
File mode changed.

src/VALfiles/Analysis.cpp

100755100644
File mode changed.

src/VALfiles/CMakeLists.txt

+28
Original file line numberDiff line numberDiff line change
@@ -23,3 +23,31 @@ set(libInst_SRCS
2323

2424
add_library(Inst STATIC ${libInst_SRCS})
2525

26+
set(validate_SRCS
27+
Action.cpp Proposition.cpp FuncExp.cpp typecheck.cpp main.cpp
28+
Validator.cpp RepairAdvice.cpp LaTeXSupport.cpp State.cpp Plan.cpp Ownership.cpp
29+
Environment.cpp Polynomial.cpp Utils.cpp
30+
TrajectoryConstraints.cpp RobustAnalyse.cpp random.cpp Events.cpp PrettyPrinter.cpp)
31+
32+
add_executable(validate ${validate_SRCS})
33+
34+
target_link_libraries(validate
35+
ParsePDDL
36+
)
37+
38+
set(parser_SRCS
39+
parse.cpp
40+
)
41+
42+
add_executable(parser ${parser_SRCS})
43+
44+
target_link_libraries(parser
45+
ParsePDDL
46+
)
47+
48+
install(TARGETS validate parser
49+
ARCHIVE DESTINATION lib
50+
LIBRARY DESTINATION lib
51+
RUNTIME DESTINATION bin
52+
)
53+

src/VALfiles/Environment.cpp

100755100644
File mode changed.

src/VALfiles/Environment.h

100755100644
File mode changed.

src/VALfiles/Evaluator.cpp

100755100644
File mode changed.

src/VALfiles/Exceptions.h

100755100644
File mode changed.

src/VALfiles/FastEnvironment.cpp

100755100644
File mode changed.

src/VALfiles/FuncAnalysis.h

100755100644
File mode changed.

src/VALfiles/FuncExp.cpp

100755100644
File mode changed.

src/VALfiles/GoalHypSpace.h

100755100644
File mode changed.

src/VALfiles/InstPropLinker.cpp

100755100644
File mode changed.

src/VALfiles/InstPropLinker.h

100755100644
File mode changed.

src/VALfiles/LaTeXSupport.cpp

100755100644
File mode changed.

src/VALfiles/LaTeXSupport.h

100755100644
File mode changed.

src/VALfiles/Ownership.cpp

100755100644
File mode changed.

src/VALfiles/Partitions.h

100755100644
File mode changed.

src/VALfiles/PlanExecutionTracker.h

100755100644
File mode changed.

0 commit comments

Comments
 (0)