diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml
new file mode 100644
index 00000000..a6ed62c6
--- /dev/null
+++ b/.github/workflows/benchmarks.yml
@@ -0,0 +1,55 @@
+name: Googlebenchmark
+on: [push, pull_request]
+#on:
+# push:
+# branches:
+# - main
+
+jobs:
+ benchmark:
+ name: Performance regression check
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+
+ - name: Install boost
+ id: install-boost
+ run: |
+ bash .github/workflows/scripts/install_boost.sh
+ echo "BOOST_ROOT=${{runner.workspace}}/Loki/boost_1_84_0" >> "$GITHUB_OUTPUT"
+
+ - name: Configure CMake
+ run: cmake -DENABLE_BENCHMARKING:BOOL=TRUE -S $GITHUB_WORKSPACE -B ${{runner.workspace}}/build
+ env:
+ BOOST_ROOT: ${{ steps.install-boost.outputs.BOOST_ROOT }}
+
+ - name: Build
+ working-directory: ${{runner.workspace}}/build
+ run: export CXXFLAGS="-Werror" && cmake --build .
+
+ # Run benchmark and store the output to a file
+ - name: Run benchmark
+ run: ${{runner.workspace}}/build/benchmarks/persistent_factory --benchmark_format=json | tee benchmark_result.json
+ # Download previous benchmark result from cache (if exists)
+ - name: Download previous benchmark data
+ uses: actions/cache@v1
+ with:
+ path: ./cache/benchmarks/
+ key: ${{ runner.os }}-benchmark
+ # Run `github-action-benchmark` action
+ - name: Store benchmark result
+ uses: benchmark-action/github-action-benchmark@v1
+ with:
+ # What benchmark tool the output.txt came from
+ tool: 'googlecpp'
+ # Where the output from the benchmark tool is stored
+ output-file-path: benchmark_result.json
+ # Where the previous data file is stored
+ external-data-json-path: ./benchmarks/cache/benchmark-data.json
+ # Workflow will fail when an alert happens
+ fail-on-alert: true
+ # GitHub API token to make a commit comment
+ github-token: ${{ secrets.GITHUB_TOKEN }}
+ # Enable alert commit comment
+ comment-on-alert: true
+ # Upload the updated cache file for the next job by actions/cache
diff --git a/.github/workflows/scripts/install_boost.sh b/.github/workflows/scripts/install_boost.sh
new file mode 100644
index 00000000..673eba41
--- /dev/null
+++ b/.github/workflows/scripts/install_boost.sh
@@ -0,0 +1,13 @@
+#!/bin/bash
+
+wget --no-check-certificate 'https://archives.boost.io/release/1.84.0/source/boost_1_84_0.tar.gz'
+tar xf boost_1_84_0.tar.gz
+
+## We use header-only parts
+
+#cd boost_1_84_0
+#./bootstrap.sh
+
+# Compile with fPIC flag
+#export CXXFLAGS="-fPIC"
+#./b2 cxxflags="$CXXFLAGS" link=static
diff --git a/.github/workflows/unittests.yml b/.github/workflows/unittests.yml
new file mode 100644
index 00000000..aa0dddf3
--- /dev/null
+++ b/.github/workflows/unittests.yml
@@ -0,0 +1,34 @@
+name: Googletest Unit Tests
+
+on: [push, pull_request]
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+
+ defaults:
+ run:
+ shell: bash
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v2
+
+ - name: Download boost
+ id: install-boost
+ run: |
+ bash .github/workflows/scripts/install_boost.sh
+ echo "BOOST_ROOT=${{runner.workspace}}/Loki/boost_1_84_0" >> "$GITHUB_OUTPUT"
+
+ - name: Configure CMake
+ run: cmake -DENABLE_TESTING:BOOL=TRUE -S $GITHUB_WORKSPACE -B ${{runner.workspace}}/build
+ env:
+ BOOST_ROOT: ${{ steps.install-boost.outputs.BOOST_ROOT }}
+
+ - name: Build
+ working-directory: ${{runner.workspace}}/build
+ run: export CXXFLAGS="-Werror" && cmake --build .
+
+ - name: Test
+ working-directory: ${{runner.workspace}}/build/tests
+ run: GTEST_OUTPUT=xml:test-results/ GTEST_COLOR=1 ctest -V
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 00000000..b2fd9a72
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,38 @@
+# Build artefacts
+build
+
+# IDE files
+.vscode
+
+# Prerequisites
+*.d
+
+# Compiled Object files
+*.slo
+*.lo
+*.o
+*.obj
+
+# Precompiled Headers
+*.gch
+*.pch
+
+# Compiled Dynamic libraries
+*.so
+*.dylib
+*.dll
+
+# Fortran module files
+*.mod
+*.smod
+
+# Compiled Static libraries
+*.lai
+*.la
+*.a
+*.lib
+
+# Executables
+*.exe
+*.out
+*.app
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 00000000..37249c0e
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,89 @@
+cmake_minimum_required(VERSION 3.13)
+
+##############################################################
+# Language setup
+##############################################################
+
+set(CMAKE_CXX_STANDARD 17)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+set(CMAKE_CXX_EXTENSIONS OFF)
+
+##############################################################
+# Establish project
+##############################################################
+
+project(sketches VERSION 0.1 LANGUAGES C CXX)
+
+# Compilation flags, some configuration-specific
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -Wall -Wextra -pedantic -fPIC")
+set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG -fomit-frame-pointer")
+set(CMAKE_CXX_FLAGS_DEBUG "-O3 -DDEBUG")
+
+# Set a default build type if none was specified
+set(default_build_type "Debug")
+if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
+ message(STATUS "Setting build type to '${default_build_type}', as none was specified.")
+ set(CMAKE_BUILD_TYPE "${default_build_type}" CACHE
+ STRING "Choose the type of build." FORCE)
+endif()
+
+option(ENABLE_TESTING "Enables compilation of tests." OFF)
+if (ENABLE_TESTING)
+ message("Building tests enabled.")
+else()
+ message("Building tests disabled.")
+endif()
+
+##############################################################
+# CMake modules and macro files
+##############################################################
+
+# make cache variables for install destinations
+include(GNUInstallDirs)
+
+list(APPEND CMAKE_MODULE_PATH
+ "${PROJECT_SOURCE_DIR}/cmake"
+)
+include("configure_boost")
+include("configure_ccache")
+
+# CCache
+configure_ccache()
+
+# Boost
+configure_boost()
+find_package(Boost ${BOOST_MIN_VERSION})
+include_directories(${Boost_INCLUDE_DIRS})
+#include_directories("${PROJECT_SOURCE_DIR}/external/flatbuffers/include")
+
+
+##############################################################
+# Add library and executable targets
+##############################################################
+
+# Add FlatBuffers directly to our build. This defines the `flatbuffers` target.
+#set(FLATBUFFERS_MAX_PARSING_DEPTH 16)
+#set(FLATBUFFERS_SRC_DIR "${PROJECT_SOURCE_DIR}/external/flatbuffers/")
+#add_subdirectory(${FLATBUFFERS_SRC_DIR}
+# ${CMAKE_CURRENT_BINARY_DIR}/flatbuffers-build
+# EXCLUDE_FROM_ALL)
+
+add_subdirectory(src)
+
+add_subdirectory(exe)
+
+add_subdirectory(examples)
+
+set(ENABLE_TESTING True)
+if (ENABLE_TESTING)
+ add_subdirectory(tests)
+endif()
+
+set(ENABLE_BENCHMARKING True)
+if (ENABLE_BENCHMARKING)
+ add_subdirectory(benchmarks)
+endif()
+
+###########
+# Install #
+###########
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 00000000..f288702d
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+
+ Copyright (C)
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see .
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ Copyright (C)
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+.
diff --git a/README.md b/README.md
new file mode 100644
index 00000000..b7f5b462
--- /dev/null
+++ b/README.md
@@ -0,0 +1,92 @@
+# Loki
+
+ATTENTION: Loki's testing framework must be stronger, and Loki itself must still be tested in production. Therefore, we strongly advise against using it already. However, we are thankful for all kinds of feedback, suggestions, and feature requests.
+
+Loki is a C++17 library for efficient syntactic and semantic parsing of PDDL files. Loki implements exhaustive error handling to provide meaningful clang-style messages for syntactic, semantic, and modeling errors. The resulting PDDL objects are structurally uniquely constructed immutable pointer objects stored in persistent and continuous memory to enable hashing in constant time, equality comparison in constant time, and cache-efficient data access.
+
+## Supported PDDL Requirements
+
+- [x] :strips
+- [x] :typing
+- [x] :negative-preconditions
+- [x] :disjunctive-preconditions
+- [x] :equality
+- [x] :existential-preconditions
+- [x] :universal-preconditions
+- [x] :quantified-preconditions
+- [x] :conditional-effects
+- [ ] :fluents
+- [x] :numeric-fluents
+- [ ] :object-fluents
+- [x] :adl
+- [ ] :durative-actions
+- [ ] :derived-predicates
+- [ ] :timed-initial-literals
+- [ ] :preferences
+- [ ] :constraints
+- [x] :action-costs
+
+
+## Dependencies
+
+Loki depends on a fraction of Boost's (boost.org) header-only libraries.
+
+- Fusion
+- Spirit x3
+- Container
+
+
+## Installation
+
+```console
+cmake -S . -B build
+cmake --build build -j16
+```
+
+## Running the Examples
+
+The examples illustrate best practices on how to use Loki.
+
+The first example shows the incorrect handling of the ownership semantics. The example is supposed to crash when trying to print the domain for the second time.
+
+```console
+./build/examples/undefined_behavior
+```
+
+The second example shows how to parse a domain and problem file which is supposed to be used in a planning system where a non-fragmented indexing of atoms and literals is preferred.
+
+```console
+./build/examples/single_problem
+```
+
+The third example shows how to detect structurally equivalent problems over a common domain.
+
+```console
+./build/examples/multiple_problems
+```
+
+The fourth example shows how to find the matched positions of each PDDL object in the input stream and how to report customized clang-style error reports.
+
+```console
+./build/examples/position_cache
+```
+
+
+## Running the Executables
+
+Parsing a domain file and printing it.
+
+```console
+./build/exe/domain benchmarks/gripper/domain.pddl
+```
+
+Parsing a domain and a problem file and printing both.
+
+```console
+./build/exe/problem benchmarks/gripper/domain.pddl benchmarks/gripper/p-2-0.pddl
+```
+
+
+## Acknowledgements
+
+This work was partially supported by the Wallenberg AI, Autonomous Systems and Software Program (WASP) funded by the Knut and Alice Wallenberg Foundation.
diff --git a/benchmarks/CMakeLists.txt b/benchmarks/CMakeLists.txt
new file mode 100644
index 00000000..793f03c9
--- /dev/null
+++ b/benchmarks/CMakeLists.txt
@@ -0,0 +1,15 @@
+include(FetchContent)
+
+FetchContent_Declare(
+ googlebenchmark
+ GIT_REPOSITORY https://github.com/google/benchmark.git
+ GIT_TAG v1.8.3
+)
+
+# Make Google Benchmark available
+FetchContent_MakeAvailable(googlebenchmark)
+
+# Now declare your executable
+add_executable(persistent_factory "persistent_factory.cpp")
+target_link_libraries(persistent_factory parsers)
+target_link_libraries(persistent_factory benchmark::benchmark)
\ No newline at end of file
diff --git a/benchmarks/cache/benchmark-data.json b/benchmarks/cache/benchmark-data.json
new file mode 100644
index 00000000..e69de29b
diff --git a/benchmarks/persistent_factory.cpp b/benchmarks/persistent_factory.cpp
new file mode 100644
index 00000000..5b1b4fab
--- /dev/null
+++ b/benchmarks/persistent_factory.cpp
@@ -0,0 +1,83 @@
+/*
+ * Copyright (C) 2023 Dominik Drexler and Simon Stahlberg
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "../include/loki/common/pddl/types.hpp"
+#include "../include/loki/common/memory.hpp"
+
+#include
+
+#include
+#include
+#include
+
+
+/// @brief In this benchmark, we evaluate the performance of constructing atoms.
+static void BM_ConstructAtoms(benchmark::State& state) {
+ const size_t num_objects = 100;
+ const size_t num_predicates = 100;
+
+ for (auto _ : state) {
+ // Create num_objects-many objects with name object_1,...,object_
+ auto object_factory = loki::ObjectFactory();
+ auto objects = loki::pddl::ObjectList();
+ for (size_t i = 1; i <= num_objects; ++i) {
+ objects.push_back(object_factory.get_or_create(
+ ("object_" + std::to_string(i)))
+ );
+ }
+
+ // Create num_predicates-many binary predicates with name predicate_1,...,predicate_
+ auto predicate_factory = loki::PredicateFactory();
+ auto parameter_factory = loki::ParameterFactory();
+ auto variable_factory = loki::VariableFactory();
+ auto parameters = loki::pddl::ParameterList{
+ parameter_factory.get_or_create(
+ variable_factory.get_or_create("?variable_left"),
+ loki::pddl::TypeList{}),
+ parameter_factory.get_or_create(
+ variable_factory.get_or_create("?variable_right"),
+ loki::pddl::TypeList{})
+ };
+
+ auto predicates = loki::pddl::PredicateList();
+ for (size_t i = 1; i <= num_predicates; ++i) {
+ predicates.push_back(predicate_factory.get_or_create(
+ ("predicate_" + std::to_string(i)),
+ parameters));
+ }
+
+ auto atom_factory = loki::AtomFactory();
+ auto term_factory = loki::TermFactory();
+ auto atoms = loki::pddl::AtomList();
+ // Construct num_objects^2 * num_predicates many atoms
+ for (const auto& predicate : predicates) {
+ for (const auto& object_left : objects) {
+ for (const auto& object_right : objects) {
+ atoms.push_back(atom_factory.get_or_create(
+ predicate,
+ loki::pddl::TermList{
+ term_factory.get_or_create(object_left),
+ term_factory.get_or_create(object_right)
+ }));
+ }
+ }
+ }
+ }
+}
+BENCHMARK(BM_ConstructAtoms);
+
+BENCHMARK_MAIN();
diff --git a/cmake/configure_boost.cmake b/cmake/configure_boost.cmake
new file mode 100644
index 00000000..ac1a8849
--- /dev/null
+++ b/cmake/configure_boost.cmake
@@ -0,0 +1,12 @@
+
+macro(configure_boost)
+ set(Boost_USE_STATIC_LIBS ON)
+ set(Boost_USE_MULTITHREADED ON)
+ set(Boost_USE_STATIC_RUNTIME OFF)
+ set(BOOST_MIN_VERSION "1.74.0")
+
+ if (DEFINED ENV{BOOST_ROOT})
+ set(Boost_NO_SYSTEM_PATHS ON)
+ set(BOOST_ROOT $ENV{BOOST_ROOT})
+ endif()
+endmacro()
diff --git a/cmake/configure_ccache.cmake b/cmake/configure_ccache.cmake
new file mode 100644
index 00000000..c13ad3a4
--- /dev/null
+++ b/cmake/configure_ccache.cmake
@@ -0,0 +1,11 @@
+
+macro(configure_ccache)
+ # If it's available, use ccache to cache compilation results. The two ccache options
+ # allow sharing compilation results between different build directories.
+ find_program(CCACHE_FOUND ccache)
+ if(CCACHE_FOUND AND NOT WIN32) # Windows Github Actions find "ccache" --> ignore it.
+ message("Using ccache")
+ set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE
+ "CCACHE_BASEDIR=${CMAKE_CURRENT_SOURCE_DIR} CCACHE_NOHASHDIR=true ccache")
+ endif(CCACHE_FOUND AND NOT WIN32)
+endmacro()
diff --git a/data/gripper/domain.pddl b/data/gripper/domain.pddl
new file mode 100644
index 00000000..36b293cd
--- /dev/null
+++ b/data/gripper/domain.pddl
@@ -0,0 +1,36 @@
+(define (domain gripper-strips)
+ (:requirements :strips)
+ (:constants rooma roomb)
+ (:predicates (room ?r)
+ (ball ?b)
+ (gripper ?g)
+ (at-robby ?r)
+ (at ?b ?r)
+ (free ?g)
+ (carry ?o ?g))
+
+ (:action move
+ :parameters (?from ?to)
+ :precondition (and (room ?from) (room ?to) (at-robby ?from))
+ :effect (and (at-robby ?to)
+ (not (at-robby ?from))))
+
+
+
+ (:action pick
+ :parameters (?obj ?room ?gripper)
+ :precondition (and (ball ?obj) (room ?room) (gripper ?gripper)
+ (at ?obj ?room) (at-robby ?room) (free ?gripper))
+ :effect (and (carry ?obj ?gripper)
+ (not (at ?obj ?room))
+ (not (free ?gripper))))
+
+
+ (:action drop
+ :parameters (?obj ?room ?gripper)
+ :precondition (and (ball ?obj) (room ?room) (gripper ?gripper)
+ (carry ?obj ?gripper) (at-robby ?room))
+ :effect (and (at ?obj ?room)
+ (free ?gripper)
+ (not (carry ?obj ?gripper)))))
+
diff --git a/data/gripper/p-2-0.pddl b/data/gripper/p-2-0.pddl
new file mode 100644
index 00000000..16120633
--- /dev/null
+++ b/data/gripper/p-2-0.pddl
@@ -0,0 +1,28 @@
+
+
+
+(define (problem gripper-2)
+(:domain gripper-strips)
+(:objects left right ball1 ball2)
+(:init
+(room rooma)
+(room roomb)
+(gripper left)
+(gripper right)
+(ball ball1)
+(ball ball2)
+(free left)
+(free right)
+(at ball1 rooma)
+(at ball2 rooma)
+(at-robby rooma)
+)
+(:goal
+(and
+(at ball1 roomb)
+(at ball2 roomb)
+)
+)
+)
+
+
diff --git a/data/gripper/p-2-1.pddl b/data/gripper/p-2-1.pddl
new file mode 100644
index 00000000..6d599c39
--- /dev/null
+++ b/data/gripper/p-2-1.pddl
@@ -0,0 +1,28 @@
+
+
+
+(define (problem gripper-2)
+(:domain gripper-strips)
+(:objects ball1 ball2 left right)
+(:init
+(room rooma)
+(room roomb)
+(gripper left)
+(gripper right)
+(ball ball1)
+(ball ball2)
+(free left)
+(free right)
+(at ball1 rooma)
+(at ball2 rooma)
+(at-robby rooma)
+)
+(:goal
+(and
+(at ball1 roomb)
+(at ball2 roomb)
+)
+)
+)
+
+
diff --git a/data/miconic/domain.pddl b/data/miconic/domain.pddl
new file mode 100644
index 00000000..e7d9aa4e
--- /dev/null
+++ b/data/miconic/domain.pddl
@@ -0,0 +1,58 @@
+(define (domain miconic)
+ (:requirements :strips :typing )
+ (:types passenger - object
+ floor - object
+ )
+
+(:predicates
+(origin ?person - passenger ?floor - floor)
+;; entry of ?person is ?floor
+;; inertia
+
+(destin ?person - passenger ?floor - floor)
+;; exit of ?person is ?floor
+;; inertia
+
+(above ?floor1 - floor ?floor2 - floor)
+;; ?floor2 is located above of ?floor1
+
+(boarded ?person - passenger)
+;; true if ?person has boarded the lift
+
+(served ?person - passenger)
+;; true if ?person has alighted as her destination
+
+(lift-at ?floor - floor)
+;; current position of the lift is at ?floor
+)
+
+
+;;stop and allow boarding
+
+(:action board
+ :parameters (?f - floor ?p - passenger)
+ :precondition (and (lift-at ?f) (origin ?p ?f))
+ :effect (and (boarded ?p) (not (origin ?p ?f))))
+
+(:action depart
+ :parameters (?f - floor ?p - passenger)
+ :precondition (and (lift-at ?f) (destin ?p ?f)
+ (boarded ?p))
+ :effect (and (not (boarded ?p))
+ (served ?p)))
+;;drive up
+
+(:action up
+ :parameters (?f1 - floor ?f2 - floor)
+ :precondition (and (lift-at ?f1) (above ?f1 ?f2))
+ :effect (and (lift-at ?f2) (not (lift-at ?f1))))
+
+
+;;drive down
+
+(:action down
+ :parameters (?f1 - floor ?f2 - floor)
+ :precondition (and (lift-at ?f1) (above ?f2 ?f1))
+ :effect (and (lift-at ?f2) (not (lift-at ?f1))))
+)
+
diff --git a/data/miconic/p02.pddl b/data/miconic/p02.pddl
new file mode 100644
index 00000000..4a79b55b
--- /dev/null
+++ b/data/miconic/p02.pddl
@@ -0,0 +1,229 @@
+
+
+
+(define (problem mixed-f14-p23-u0-v0-d0-a0-n0-A0-B0-N0-F0)
+ (:domain miconic)
+ (:requirements :typing)
+ (:objects p0 p1 p2 p3 p4 p5 p6 p7 p8 p9
+ p10 p11 p12 p13 p14 p15 p16 p17 p18 p19
+ p20 p21 p22 - passenger
+ f0 f1 f2 f3 f4 f5 f6 f7 f8 f9
+ f10 f11 f12 f13 - floor)
+
+
+(:init
+(above f0 f1)
+(above f0 f2)
+(above f0 f3)
+(above f0 f4)
+(above f0 f5)
+(above f0 f6)
+(above f0 f7)
+(above f0 f8)
+(above f0 f9)
+(above f0 f10)
+(above f0 f11)
+(above f0 f12)
+(above f0 f13)
+
+(above f1 f2)
+(above f1 f3)
+(above f1 f4)
+(above f1 f5)
+(above f1 f6)
+(above f1 f7)
+(above f1 f8)
+(above f1 f9)
+(above f1 f10)
+(above f1 f11)
+(above f1 f12)
+(above f1 f13)
+
+(above f2 f3)
+(above f2 f4)
+(above f2 f5)
+(above f2 f6)
+(above f2 f7)
+(above f2 f8)
+(above f2 f9)
+(above f2 f10)
+(above f2 f11)
+(above f2 f12)
+(above f2 f13)
+
+(above f3 f4)
+(above f3 f5)
+(above f3 f6)
+(above f3 f7)
+(above f3 f8)
+(above f3 f9)
+(above f3 f10)
+(above f3 f11)
+(above f3 f12)
+(above f3 f13)
+
+(above f4 f5)
+(above f4 f6)
+(above f4 f7)
+(above f4 f8)
+(above f4 f9)
+(above f4 f10)
+(above f4 f11)
+(above f4 f12)
+(above f4 f13)
+
+(above f5 f6)
+(above f5 f7)
+(above f5 f8)
+(above f5 f9)
+(above f5 f10)
+(above f5 f11)
+(above f5 f12)
+(above f5 f13)
+
+(above f6 f7)
+(above f6 f8)
+(above f6 f9)
+(above f6 f10)
+(above f6 f11)
+(above f6 f12)
+(above f6 f13)
+
+(above f7 f8)
+(above f7 f9)
+(above f7 f10)
+(above f7 f11)
+(above f7 f12)
+(above f7 f13)
+
+(above f8 f9)
+(above f8 f10)
+(above f8 f11)
+(above f8 f12)
+(above f8 f13)
+
+(above f9 f10)
+(above f9 f11)
+(above f9 f12)
+(above f9 f13)
+
+(above f10 f11)
+(above f10 f12)
+(above f10 f13)
+
+(above f11 f12)
+(above f11 f13)
+
+(above f12 f13)
+
+
+
+(origin p0 f0)
+(destin p0 f1)
+
+(origin p1 f10)
+(destin p1 f6)
+
+(origin p2 f2)
+(destin p2 f1)
+
+(origin p3 f8)
+(destin p3 f7)
+
+(origin p4 f3)
+(destin p4 f2)
+
+(origin p5 f12)
+(destin p5 f2)
+
+(origin p6 f12)
+(destin p6 f5)
+
+(origin p7 f4)
+(destin p7 f12)
+
+(origin p8 f8)
+(destin p8 f1)
+
+(origin p9 f2)
+(destin p9 f6)
+
+(origin p10 f8)
+(destin p10 f4)
+
+(origin p11 f9)
+(destin p11 f13)
+
+(origin p12 f2)
+(destin p12 f0)
+
+(origin p13 f12)
+(destin p13 f8)
+
+(origin p14 f2)
+(destin p14 f9)
+
+(origin p15 f1)
+(destin p15 f2)
+
+(origin p16 f10)
+(destin p16 f12)
+
+(origin p17 f6)
+(destin p17 f12)
+
+(origin p18 f13)
+(destin p18 f1)
+
+(origin p19 f3)
+(destin p19 f1)
+
+(origin p20 f1)
+(destin p20 f3)
+
+(origin p21 f13)
+(destin p21 f4)
+
+(origin p22 f7)
+(destin p22 f10)
+
+
+
+
+
+
+(lift-at f0)
+)
+
+
+(:goal
+
+
+(and
+(served p0)
+(served p1)
+(served p2)
+(served p3)
+(served p4)
+(served p5)
+(served p6)
+(served p7)
+(served p8)
+(served p9)
+(served p10)
+(served p11)
+(served p12)
+(served p13)
+(served p14)
+(served p15)
+(served p16)
+(served p17)
+(served p18)
+(served p19)
+(served p20)
+(served p21)
+(served p22)
+))
+)
+
+
diff --git a/data/schedule/domain.pddl b/data/schedule/domain.pddl
new file mode 100644
index 00000000..91bcb2aa
--- /dev/null
+++ b/data/schedule/domain.pddl
@@ -0,0 +1,207 @@
+
+
+(define (domain schedule)
+ (:requirements :adl :typing)
+ (:types temperature-type
+ ashape
+ surface
+ machine
+ part
+ colour
+ width
+ anorient)
+
+ (:constants cold hot - temperature-type
+ cylindrical - ashape
+ polisher roller lathe grinder punch drill-press
+ spray-painter immersion-painter - machine
+ polished rough smooth - surface)
+
+ (:predicates (temperature ?obj - part ?temp - temperature-type)
+ (busy ?machine - machine)
+ (scheduled ?obj - part)
+ (objscheduled)
+ (surface-condition ?obj - part ?surface-cond - surface)
+ (shape ?obj - part ?shape - ashape)
+ (painted ?obj - part ?colour - colour)
+ (has-hole ?obj - part ?width - width ?orientation - anorient)
+ (has-bit ?machine - machine ?width - width)
+ (can-orient ?machine - machine ?orientation - anorient)
+ (has-paint ?machine - machine ?colour - colour))
+
+ (:action do-polish
+ :parameters (?x - part)
+ :precondition (and (not (busy polisher))
+ (not (scheduled ?x))
+ (temperature ?x cold))
+ :effect (and (busy polisher)
+ (scheduled ?x)
+ (surface-condition ?x polished)
+ (when (not (objscheduled))
+ (objscheduled))
+ (forall (?oldsurface - surface)
+ (when (and (surface-condition ?x ?oldsurface)
+ (not (= ?oldsurface polished)))
+ (not (surface-condition ?x ?oldsurface))))))
+
+ (:action do-roll
+ :parameters (?x - part)
+ :precondition (and (not (busy roller))
+ (not (scheduled ?x)))
+ :effect (and
+ (busy roller)
+ (scheduled ?x)
+ (temperature ?x hot)
+ (shape ?x cylindrical)
+ (when (not (objscheduled))
+ (objscheduled))
+ (forall (?oldsurface - surface)
+ (when (surface-condition ?x ?oldsurface)
+ (not (surface-condition ?x ?oldsurface))))
+ (forall (?oldpaint - colour)
+ (when (painted ?x ?oldpaint)
+ (not (painted ?x ?oldpaint))))
+ (forall (?oldwidth - width ?oldorient - anorient)
+ (when (has-hole ?x ?oldwidth ?oldorient)
+ (not (has-hole ?x ?oldwidth ?oldorient))))
+ (forall (?oldshape - ashape)
+ (when (and (shape ?x ?oldshape)
+ (not (= ?oldshape cylindrical)))
+ (not (shape ?x ?oldshape))))
+ (forall (?oldtemp - temperature-type)
+ (when (and (temperature ?x ?oldtemp)
+ (not (= ?oldtemp hot)))
+ (not (temperature ?x ?oldtemp))))))
+
+ (:action do-lathe
+ :parameters (?x - part)
+ :precondition (and (not (busy lathe))
+ (not (scheduled ?x)))
+ :effect (and
+ (busy lathe)
+ (scheduled ?x)
+ (surface-condition ?x rough)
+ (shape ?x cylindrical)
+ (when (not (objscheduled))
+ (objscheduled))
+ (forall (?oldshape - ashape)
+ (when (and (shape ?x ?oldshape)
+ (not (= ?oldshape cylindrical)))
+ (not (shape ?x ?oldshape))))
+ (forall (?oldsurface - surface)
+ (when (and (surface-condition ?x ?oldsurface)
+ (not (= ?oldsurface rough)))
+ (not (surface-condition ?x ?oldsurface))))
+ (forall (?oldpaint - colour)
+ (when (painted ?x ?oldpaint)
+ (not (painted ?x ?oldpaint))))))
+
+ (:action do-grind
+ :parameters (?x - part)
+ :precondition (and (not (busy grinder))
+ (not (scheduled ?x)))
+ :effect (and
+ (busy grinder)
+ (scheduled ?x)
+ (surface-condition ?x smooth)
+ (when (not (objscheduled))
+ (objscheduled))
+ (forall (?oldsurface - surface)
+ (when (and (surface-condition ?x ?oldsurface)
+ (not (= ?oldsurface smooth)))
+ (not (surface-condition ?x ?oldsurface))))
+ (forall (?oldpaint - colour)
+ (when (painted ?x ?oldpaint)
+ (not (painted ?x ?oldpaint))))))
+
+ (:action do-punch
+ :parameters (?x - part ?width - width ?orient - anorient)
+ :precondition (and
+ (has-bit punch ?width)
+ (can-orient punch ?orient)
+ (temperature ?x cold)
+ (not (busy punch))
+ (not (scheduled ?x))
+ (not (has-hole ?x ?width ?orient)))
+ :effect (and
+ (busy punch)
+ (scheduled ?x)
+ (has-hole ?x ?width ?orient)
+ (surface-condition ?x rough)
+ (when (not (objscheduled))
+ (objscheduled))
+ (forall (?oldsurface - surface)
+ (when (and (surface-condition ?x ?oldsurface)
+ (not (= ?oldsurface rough)))
+ (not (surface-condition ?x ?oldsurface))))))
+
+ (:action do-drill-press
+ :parameters (?x - part ?width - width ?orient - anorient)
+ :precondition (and
+ (has-bit drill-press ?width)
+ (can-orient drill-press ?orient)
+ (temperature ?x cold)
+ (not (busy drill-press))
+ (not (scheduled ?x))
+ (not (has-hole ?x ?width ?orient)))
+ :effect (and
+ (busy drill-press)
+ (scheduled ?x)
+ (has-hole ?x ?width ?orient)
+ (when (not (objscheduled))
+ (objscheduled))))
+
+ (:action do-spray-paint
+ :parameters (?x - part ?newpaint - colour)
+ :precondition (and
+ (has-paint spray-painter ?newpaint)
+ (not (busy spray-painter))
+ (not (scheduled ?x))
+ (temperature ?x cold))
+ :effect (and
+ (busy spray-painter)
+ (scheduled ?x)
+ (painted ?x ?newpaint)
+ (when (not (objscheduled))
+ (objscheduled))
+ (forall (?oldsurface - surface)
+ (when (surface-condition ?x ?oldsurface)
+ (not (surface-condition ?x ?oldsurface))))
+ (forall (?oldpaint - colour)
+ (when (and (painted ?x ?oldpaint)
+ (not (= ?oldpaint ?newpaint)))
+ (not (painted ?x ?oldpaint))))))
+
+ (:action do-immersion-paint
+ :parameters (?x - part ?newpaint - colour)
+ :precondition (and
+ (has-paint immersion-painter ?newpaint)
+ (not (busy immersion-painter))
+ (not (scheduled ?x)))
+ :effect (and
+ (busy immersion-painter)
+ (scheduled ?x)
+ (painted ?x ?newpaint)
+ (when (not (objscheduled))
+ (objscheduled))
+ (forall (?oldpaint - colour)
+ (when (and (painted ?x ?oldpaint)
+ (not (= ?oldpaint ?newpaint)))
+ (not (painted ?x ?oldpaint))))))
+
+ (:action do-time-step
+ :parameters ()
+ :precondition (objscheduled)
+ :effect (and
+ (forall (?x - part)
+ (when (scheduled ?x)
+ (not (scheduled ?x))))
+ (forall (?m - machine)
+ (when (busy ?m)
+ (not (busy ?m)))))))
+
+
+
+
+
+
diff --git a/data/schedule/probschedule-51-2.pddl b/data/schedule/probschedule-51-2.pddl
new file mode 100644
index 00000000..743c9422
--- /dev/null
+++ b/data/schedule/probschedule-51-2.pddl
@@ -0,0 +1,400 @@
+(define (problem schedule-51-2)
+(:domain schedule)
+(:requirements :adl :typing)
+(:objects
+ E2
+ D2
+ C2
+ B2
+ A2
+ Z1
+ W1
+ V1
+ U1
+ S1
+ R1
+ P1
+ Q1
+ O1
+ N1
+ M1
+ L1
+ K1
+ J1
+ I1
+ H1
+ G1
+ F1
+ E1
+ D1
+ C1
+ B1
+ A1
+ Z0
+ W0
+ V0
+ U0
+ S0
+ R0
+ P0
+ Q0
+ O0
+ N0
+ M0
+ L0
+ K0
+ J0
+ I0
+ H0
+ G0
+ F0
+ E0
+ D0
+ C0
+ B0
+ A0
+ - part
+ CIRCULAR
+ OBLONG
+ - ashape
+ BLUE
+ YELLOW
+ RED
+ BLACK
+ - colour
+ TWO
+ THREE
+ ONE
+ - width
+ BACK
+ FRONT
+ - anorient
+)
+(:init
+ (SHAPE A0 CYLINDRICAL)
+ (SURFACE-CONDITION A0 ROUGH)
+ (PAINTED A0 YELLOW)
+ (HAS-HOLE A0 ONE FRONT)
+ (TEMPERATURE A0 COLD)
+ (SHAPE B0 CYLINDRICAL)
+ (SURFACE-CONDITION B0 POLISHED)
+ (PAINTED B0 YELLOW)
+ (HAS-HOLE B0 ONE BACK)
+ (TEMPERATURE B0 COLD)
+ (SHAPE C0 OBLONG)
+ (SURFACE-CONDITION C0 ROUGH)
+ (PAINTED C0 RED)
+ (HAS-HOLE C0 THREE BACK)
+ (TEMPERATURE C0 COLD)
+ (SHAPE D0 CYLINDRICAL)
+ (SURFACE-CONDITION D0 ROUGH)
+ (PAINTED D0 RED)
+ (HAS-HOLE D0 TWO FRONT)
+ (TEMPERATURE D0 COLD)
+ (SHAPE E0 CYLINDRICAL)
+ (SURFACE-CONDITION E0 SMOOTH)
+ (PAINTED E0 BLUE)
+ (HAS-HOLE E0 THREE BACK)
+ (TEMPERATURE E0 COLD)
+ (SHAPE F0 CYLINDRICAL)
+ (SURFACE-CONDITION F0 ROUGH)
+ (PAINTED F0 BLACK)
+ (HAS-HOLE F0 TWO BACK)
+ (TEMPERATURE F0 COLD)
+ (SHAPE G0 OBLONG)
+ (SURFACE-CONDITION G0 POLISHED)
+ (PAINTED G0 BLUE)
+ (HAS-HOLE G0 ONE FRONT)
+ (TEMPERATURE G0 COLD)
+ (SHAPE H0 CIRCULAR)
+ (SURFACE-CONDITION H0 POLISHED)
+ (PAINTED H0 YELLOW)
+ (HAS-HOLE H0 THREE FRONT)
+ (TEMPERATURE H0 COLD)
+ (SHAPE I0 CIRCULAR)
+ (SURFACE-CONDITION I0 SMOOTH)
+ (PAINTED I0 BLACK)
+ (HAS-HOLE I0 THREE BACK)
+ (TEMPERATURE I0 COLD)
+ (SHAPE J0 OBLONG)
+ (SURFACE-CONDITION J0 ROUGH)
+ (PAINTED J0 RED)
+ (HAS-HOLE J0 ONE FRONT)
+ (TEMPERATURE J0 COLD)
+ (SHAPE K0 CIRCULAR)
+ (SURFACE-CONDITION K0 ROUGH)
+ (PAINTED K0 YELLOW)
+ (HAS-HOLE K0 ONE FRONT)
+ (TEMPERATURE K0 COLD)
+ (SHAPE L0 OBLONG)
+ (SURFACE-CONDITION L0 ROUGH)
+ (PAINTED L0 BLUE)
+ (HAS-HOLE L0 ONE BACK)
+ (TEMPERATURE L0 COLD)
+ (SHAPE M0 OBLONG)
+ (SURFACE-CONDITION M0 SMOOTH)
+ (PAINTED M0 YELLOW)
+ (HAS-HOLE M0 ONE BACK)
+ (TEMPERATURE M0 COLD)
+ (SHAPE N0 CYLINDRICAL)
+ (SURFACE-CONDITION N0 POLISHED)
+ (PAINTED N0 RED)
+ (HAS-HOLE N0 TWO FRONT)
+ (TEMPERATURE N0 COLD)
+ (SHAPE O0 CYLINDRICAL)
+ (SURFACE-CONDITION O0 SMOOTH)
+ (PAINTED O0 RED)
+ (HAS-HOLE O0 ONE BACK)
+ (TEMPERATURE O0 COLD)
+ (SHAPE Q0 CYLINDRICAL)
+ (SURFACE-CONDITION Q0 SMOOTH)
+ (PAINTED Q0 RED)
+ (HAS-HOLE Q0 TWO BACK)
+ (TEMPERATURE Q0 COLD)
+ (SHAPE P0 CIRCULAR)
+ (SURFACE-CONDITION P0 SMOOTH)
+ (PAINTED P0 BLACK)
+ (HAS-HOLE P0 THREE FRONT)
+ (TEMPERATURE P0 COLD)
+ (SHAPE R0 CYLINDRICAL)
+ (SURFACE-CONDITION R0 SMOOTH)
+ (PAINTED R0 BLUE)
+ (HAS-HOLE R0 ONE FRONT)
+ (TEMPERATURE R0 COLD)
+ (SHAPE S0 CIRCULAR)
+ (SURFACE-CONDITION S0 SMOOTH)
+ (PAINTED S0 RED)
+ (HAS-HOLE S0 TWO BACK)
+ (TEMPERATURE S0 COLD)
+ (SHAPE U0 CIRCULAR)
+ (SURFACE-CONDITION U0 SMOOTH)
+ (PAINTED U0 BLACK)
+ (HAS-HOLE U0 TWO BACK)
+ (TEMPERATURE U0 COLD)
+ (SHAPE V0 CYLINDRICAL)
+ (SURFACE-CONDITION V0 ROUGH)
+ (PAINTED V0 RED)
+ (HAS-HOLE V0 TWO FRONT)
+ (TEMPERATURE V0 COLD)
+ (SHAPE W0 CIRCULAR)
+ (SURFACE-CONDITION W0 ROUGH)
+ (PAINTED W0 YELLOW)
+ (HAS-HOLE W0 THREE FRONT)
+ (TEMPERATURE W0 COLD)
+ (SHAPE Z0 CIRCULAR)
+ (SURFACE-CONDITION Z0 SMOOTH)
+ (PAINTED Z0 BLACK)
+ (HAS-HOLE Z0 THREE FRONT)
+ (TEMPERATURE Z0 COLD)
+ (SHAPE A1 OBLONG)
+ (SURFACE-CONDITION A1 POLISHED)
+ (PAINTED A1 BLUE)
+ (HAS-HOLE A1 TWO BACK)
+ (TEMPERATURE A1 COLD)
+ (SHAPE B1 CIRCULAR)
+ (SURFACE-CONDITION B1 ROUGH)
+ (PAINTED B1 YELLOW)
+ (HAS-HOLE B1 TWO FRONT)
+ (TEMPERATURE B1 COLD)
+ (SHAPE C1 CIRCULAR)
+ (SURFACE-CONDITION C1 ROUGH)
+ (PAINTED C1 BLACK)
+ (HAS-HOLE C1 THREE FRONT)
+ (TEMPERATURE C1 COLD)
+ (SHAPE D1 OBLONG)
+ (SURFACE-CONDITION D1 POLISHED)
+ (PAINTED D1 RED)
+ (HAS-HOLE D1 ONE BACK)
+ (TEMPERATURE D1 COLD)
+ (SHAPE E1 OBLONG)
+ (SURFACE-CONDITION E1 ROUGH)
+ (PAINTED E1 RED)
+ (HAS-HOLE E1 TWO BACK)
+ (TEMPERATURE E1 COLD)
+ (SHAPE F1 OBLONG)
+ (SURFACE-CONDITION F1 ROUGH)
+ (PAINTED F1 YELLOW)
+ (HAS-HOLE F1 ONE BACK)
+ (TEMPERATURE F1 COLD)
+ (SHAPE G1 CIRCULAR)
+ (SURFACE-CONDITION G1 ROUGH)
+ (PAINTED G1 YELLOW)
+ (HAS-HOLE G1 ONE BACK)
+ (TEMPERATURE G1 COLD)
+ (SHAPE H1 OBLONG)
+ (SURFACE-CONDITION H1 POLISHED)
+ (PAINTED H1 BLUE)
+ (HAS-HOLE H1 ONE FRONT)
+ (TEMPERATURE H1 COLD)
+ (SHAPE I1 OBLONG)
+ (SURFACE-CONDITION I1 POLISHED)
+ (PAINTED I1 RED)
+ (HAS-HOLE I1 TWO BACK)
+ (TEMPERATURE I1 COLD)
+ (SHAPE J1 CYLINDRICAL)
+ (SURFACE-CONDITION J1 ROUGH)
+ (PAINTED J1 BLACK)
+ (HAS-HOLE J1 TWO FRONT)
+ (TEMPERATURE J1 COLD)
+ (SHAPE K1 OBLONG)
+ (SURFACE-CONDITION K1 SMOOTH)
+ (PAINTED K1 BLUE)
+ (HAS-HOLE K1 ONE FRONT)
+ (TEMPERATURE K1 COLD)
+ (SHAPE L1 CYLINDRICAL)
+ (SURFACE-CONDITION L1 SMOOTH)
+ (PAINTED L1 RED)
+ (HAS-HOLE L1 THREE FRONT)
+ (TEMPERATURE L1 COLD)
+ (SHAPE M1 OBLONG)
+ (SURFACE-CONDITION M1 POLISHED)
+ (PAINTED M1 YELLOW)
+ (HAS-HOLE M1 ONE BACK)
+ (TEMPERATURE M1 COLD)
+ (SHAPE N1 CIRCULAR)
+ (SURFACE-CONDITION N1 ROUGH)
+ (PAINTED N1 YELLOW)
+ (HAS-HOLE N1 THREE FRONT)
+ (TEMPERATURE N1 COLD)
+ (SHAPE O1 CYLINDRICAL)
+ (SURFACE-CONDITION O1 SMOOTH)
+ (PAINTED O1 YELLOW)
+ (HAS-HOLE O1 TWO BACK)
+ (TEMPERATURE O1 COLD)
+ (SHAPE Q1 CIRCULAR)
+ (SURFACE-CONDITION Q1 SMOOTH)
+ (PAINTED Q1 BLACK)
+ (HAS-HOLE Q1 TWO FRONT)
+ (TEMPERATURE Q1 COLD)
+ (SHAPE P1 CIRCULAR)
+ (SURFACE-CONDITION P1 POLISHED)
+ (PAINTED P1 BLACK)
+ (HAS-HOLE P1 TWO BACK)
+ (TEMPERATURE P1 COLD)
+ (SHAPE R1 CIRCULAR)
+ (SURFACE-CONDITION R1 ROUGH)
+ (PAINTED R1 BLACK)
+ (HAS-HOLE R1 ONE BACK)
+ (TEMPERATURE R1 COLD)
+ (SHAPE S1 OBLONG)
+ (SURFACE-CONDITION S1 SMOOTH)
+ (PAINTED S1 BLACK)
+ (HAS-HOLE S1 TWO BACK)
+ (TEMPERATURE S1 COLD)
+ (SHAPE U1 CYLINDRICAL)
+ (SURFACE-CONDITION U1 SMOOTH)
+ (PAINTED U1 YELLOW)
+ (HAS-HOLE U1 THREE FRONT)
+ (TEMPERATURE U1 COLD)
+ (SHAPE V1 CYLINDRICAL)
+ (SURFACE-CONDITION V1 ROUGH)
+ (PAINTED V1 YELLOW)
+ (HAS-HOLE V1 THREE BACK)
+ (TEMPERATURE V1 COLD)
+ (SHAPE W1 CYLINDRICAL)
+ (SURFACE-CONDITION W1 POLISHED)
+ (PAINTED W1 RED)
+ (HAS-HOLE W1 TWO BACK)
+ (TEMPERATURE W1 COLD)
+ (SHAPE Z1 OBLONG)
+ (SURFACE-CONDITION Z1 POLISHED)
+ (PAINTED Z1 YELLOW)
+ (HAS-HOLE Z1 ONE BACK)
+ (TEMPERATURE Z1 COLD)
+ (SHAPE A2 CIRCULAR)
+ (SURFACE-CONDITION A2 ROUGH)
+ (PAINTED A2 BLUE)
+ (HAS-HOLE A2 ONE FRONT)
+ (TEMPERATURE A2 COLD)
+ (SHAPE B2 CIRCULAR)
+ (SURFACE-CONDITION B2 POLISHED)
+ (PAINTED B2 RED)
+ (HAS-HOLE B2 THREE BACK)
+ (TEMPERATURE B2 COLD)
+ (SHAPE C2 CIRCULAR)
+ (SURFACE-CONDITION C2 SMOOTH)
+ (PAINTED C2 YELLOW)
+ (HAS-HOLE C2 TWO FRONT)
+ (TEMPERATURE C2 COLD)
+ (SHAPE D2 CIRCULAR)
+ (SURFACE-CONDITION D2 SMOOTH)
+ (PAINTED D2 YELLOW)
+ (HAS-HOLE D2 TWO BACK)
+ (TEMPERATURE D2 COLD)
+ (SHAPE E2 CYLINDRICAL)
+ (SURFACE-CONDITION E2 POLISHED)
+ (PAINTED E2 RED)
+ (HAS-HOLE E2 THREE BACK)
+ (TEMPERATURE E2 COLD)
+ (CAN-ORIENT DRILL-PRESS BACK)
+ (CAN-ORIENT PUNCH BACK)
+ (CAN-ORIENT DRILL-PRESS FRONT)
+ (CAN-ORIENT PUNCH FRONT)
+ (HAS-PAINT IMMERSION-PAINTER YELLOW)
+ (HAS-PAINT SPRAY-PAINTER YELLOW)
+ (HAS-PAINT IMMERSION-PAINTER BLUE)
+ (HAS-PAINT SPRAY-PAINTER BLUE)
+ (HAS-PAINT IMMERSION-PAINTER BLACK)
+ (HAS-PAINT SPRAY-PAINTER BLACK)
+ (HAS-PAINT IMMERSION-PAINTER RED)
+ (HAS-PAINT SPRAY-PAINTER RED)
+ (HAS-BIT DRILL-PRESS THREE)
+ (HAS-BIT PUNCH THREE)
+ (HAS-BIT DRILL-PRESS TWO)
+ (HAS-BIT PUNCH TWO)
+ (HAS-BIT DRILL-PRESS ONE)
+ (HAS-BIT PUNCH ONE)
+)
+(:goal (and
+ (PAINTED A0 BLUE)
+ (SURFACE-CONDITION U0 ROUGH)
+ (SURFACE-CONDITION C0 SMOOTH)
+ (SURFACE-CONDITION Q0 POLISHED)
+ (SHAPE G0 CYLINDRICAL)
+ (SHAPE J0 CYLINDRICAL)
+ (PAINTED C1 RED)
+ (SHAPE M0 CYLINDRICAL)
+ (SHAPE U0 CYLINDRICAL)
+ (SURFACE-CONDITION B0 ROUGH)
+ (SURFACE-CONDITION S0 ROUGH)
+ (SURFACE-CONDITION B2 SMOOTH)
+ (PAINTED A2 BLACK)
+ (PAINTED H0 BLACK)
+ (PAINTED N1 RED)
+ (PAINTED I1 BLUE)
+ (PAINTED Z0 YELLOW)
+ (SHAPE E1 CYLINDRICAL)
+ (SURFACE-CONDITION E2 ROUGH)
+ (SHAPE K1 CYLINDRICAL)
+ (PAINTED A1 BLACK)
+ (SURFACE-CONDITION O0 POLISHED)
+ (SHAPE H1 CYLINDRICAL)
+ (SHAPE I0 CYLINDRICAL)
+ (PAINTED Q1 BLUE)
+ (SHAPE A2 CYLINDRICAL)
+ (SURFACE-CONDITION M1 ROUGH)
+ (SURFACE-CONDITION R1 POLISHED)
+ (SURFACE-CONDITION I0 ROUGH)
+ (PAINTED G1 BLACK)
+ (PAINTED J1 YELLOW)
+ (SURFACE-CONDITION B1 POLISHED)
+ (SURFACE-CONDITION E0 POLISHED)
+ (PAINTED B2 YELLOW)
+ (PAINTED F1 BLACK)
+ (PAINTED B0 RED)
+ (SURFACE-CONDITION Z0 ROUGH)
+ (PAINTED I0 YELLOW)
+ (PAINTED V0 YELLOW)
+ (SHAPE B1 CYLINDRICAL)
+ (SHAPE M1 CYLINDRICAL)
+ (PAINTED U0 RED)
+ (PAINTED D0 BLUE)
+ (SURFACE-CONDITION J1 POLISHED)
+ (SURFACE-CONDITION F0 POLISHED)
+ (PAINTED M0 BLACK)
+ (PAINTED W0 RED)
+ (SURFACE-CONDITION H0 ROUGH)
+ (PAINTED H1 YELLOW)
+ (SHAPE D1 CYLINDRICAL)
+ (SURFACE-CONDITION P0 POLISHED)
+)))
diff --git a/data/woodworking-sat08-strips/domain.pddl b/data/woodworking-sat08-strips/domain.pddl
new file mode 100644
index 00000000..2597e627
--- /dev/null
+++ b/data/woodworking-sat08-strips/domain.pddl
@@ -0,0 +1,283 @@
+;; Woodworking
+;;
+
+(define (domain woodworking)
+ (:requirements :typing :action-costs)
+ (:types
+ acolour awood woodobj machine
+ surface treatmentstatus
+ aboardsize apartsize - object
+ highspeed-saw glazer grinder immersion-varnisher
+ planer saw spray-varnisher - machine
+ board part - woodobj)
+
+ (:constants
+ verysmooth smooth rough - surface
+ varnished glazed untreated colourfragments - treatmentstatus
+ natural - acolour
+ small medium large - apartsize)
+
+ (:predicates
+ (unused ?obj - part)
+ (available ?obj - woodobj)
+
+ (surface-condition ?obj - woodobj ?surface - surface)
+ (treatment ?obj - part ?treatment - treatmentstatus)
+ (colour ?obj - part ?colour - acolour)
+ (wood ?obj - woodobj ?wood - awood)
+ (boardsize ?board - board ?size - aboardsize)
+ (goalsize ?part - part ?size - apartsize)
+ (boardsize-successor ?size1 ?size2 - aboardsize)
+
+ (in-highspeed-saw ?b - board ?m - highspeed-saw)
+ (empty ?m - highspeed-saw)
+ (has-colour ?machine - machine ?colour - acolour)
+ (contains-part ?b - board ?p - part)
+ (grind-treatment-change ?old ?new - treatmentstatus)
+ (is-smooth ?surface - surface))
+
+ (:functions (total-cost) - number
+ (spray-varnish-cost ?obj - part) - number
+ (glaze-cost ?obj - part) - number
+ (grind-cost ?obj - part) - number
+ (plane-cost ?obj - part) - number)
+
+ (:action do-immersion-varnish
+ :parameters (?x - part ?m - immersion-varnisher
+ ?newcolour - acolour ?surface - surface)
+ :precondition (and
+ (available ?x)
+ (has-colour ?m ?newcolour)
+ (surface-condition ?x ?surface)
+ (is-smooth ?surface)
+ (treatment ?x untreated))
+ :effect (and
+ (increase (total-cost) 10)
+ (not (treatment ?x untreated))
+ (treatment ?x varnished)
+ (not (colour ?x natural))
+ (colour ?x ?newcolour)))
+
+ (:action do-spray-varnish
+ :parameters (?x - part ?m - spray-varnisher
+ ?newcolour - acolour ?surface - surface)
+ :precondition (and
+ (available ?x)
+ (has-colour ?m ?newcolour)
+ (surface-condition ?x ?surface)
+ (is-smooth ?surface)
+ (treatment ?x untreated))
+ :effect (and
+ (increase (total-cost) (spray-varnish-cost ?x))
+ (not (treatment ?x untreated))
+ (treatment ?x varnished)
+ (not (colour ?x natural))
+ (colour ?x ?newcolour)))
+
+ (:action do-glaze
+ :parameters (?x - part ?m - glazer
+ ?newcolour - acolour)
+ :precondition (and
+ (available ?x)
+ (has-colour ?m ?newcolour)
+ (treatment ?x untreated))
+ :effect (and
+ (increase (total-cost) (glaze-cost ?x))
+ (not (treatment ?x untreated))
+ (treatment ?x glazed)
+ (not (colour ?x natural))
+ (colour ?x ?newcolour)))
+
+ (:action do-grind
+ :parameters (?x - part ?m - grinder ?oldsurface - surface
+ ?oldcolour - acolour
+ ?oldtreatment ?newtreatment - treatmentstatus)
+ :precondition (and
+ (available ?x)
+ (surface-condition ?x ?oldsurface)
+ (is-smooth ?oldsurface)
+ (colour ?x ?oldcolour)
+ (treatment ?x ?oldtreatment)
+ (grind-treatment-change ?oldtreatment ?newtreatment))
+ :effect (and
+ (increase (total-cost) (grind-cost ?x))
+ (not (surface-condition ?x ?oldsurface))
+ (surface-condition ?x verysmooth)
+ (not (treatment ?x ?oldtreatment))
+ (treatment ?x ?newtreatment)
+ (not (colour ?x ?oldcolour))
+ (colour ?x natural)))
+
+ (:action do-plane
+ :parameters (?x - part ?m - planer ?oldsurface - surface
+ ?oldcolour - acolour ?oldtreatment - treatmentstatus)
+ :precondition (and
+ (available ?x)
+ (surface-condition ?x ?oldsurface)
+ (treatment ?x ?oldtreatment)
+ (colour ?x ?oldcolour))
+ :effect (and
+ (increase (total-cost) (plane-cost ?x))
+ (not (surface-condition ?x ?oldsurface))
+ (surface-condition ?x smooth)
+ (not (treatment ?x ?oldtreatment))
+ (treatment ?x untreated)
+ (not (colour ?x ?oldcolour))
+ (colour ?x natural)))
+
+ (:action load-highspeed-saw
+ :parameters (?b - board ?m - highspeed-saw)
+ :precondition (and
+ (empty ?m)
+ (available ?b))
+ :effect (and
+ (increase (total-cost) 30)
+ (not (available ?b))
+ (not (empty ?m))
+ (in-highspeed-saw ?b ?m)))
+
+ (:action unload-highspeed-saw
+ :parameters (?b - board ?m - highspeed-saw)
+ :precondition (in-highspeed-saw ?b ?m)
+ :effect (and
+ (increase (total-cost) 10)
+ (available ?b)
+ (not (in-highspeed-saw ?b ?m))
+ (empty ?m)))
+
+ (:action cut-board-small
+ :parameters (?b - board ?p - part ?m - highspeed-saw ?w - awood
+ ?surface - surface ?size_before ?size_after - aboardsize)
+ :precondition (and
+ (unused ?p)
+ (goalsize ?p small)
+ (in-highspeed-saw ?b ?m)
+ (wood ?b ?w)
+ (surface-condition ?b ?surface)
+ (boardsize ?b ?size_before)
+ (boardsize-successor ?size_after ?size_before))
+ :effect (and
+ (increase (total-cost) 10)
+ (not (unused ?p))
+ (available ?p)
+ (wood ?p ?w)
+ (surface-condition ?p ?surface)
+ (colour ?p natural)
+ (treatment ?p untreated)
+ (boardsize ?b ?size_after)))
+
+ (:action cut-board-medium
+ :parameters (?b - board ?p - part ?m - highspeed-saw ?w - awood
+ ?surface - surface
+ ?size_before ?s1 ?size_after - aboardsize)
+ :precondition (and
+ (unused ?p)
+ (goalsize ?p medium)
+ (in-highspeed-saw ?b ?m)
+ (wood ?b ?w)
+ (surface-condition ?b ?surface)
+ (boardsize ?b ?size_before)
+ (boardsize-successor ?size_after ?s1)
+ (boardsize-successor ?s1 ?size_before))
+ :effect (and
+ (increase (total-cost) 10)
+ (not (unused ?p))
+ (available ?p)
+ (wood ?p ?w)
+ (surface-condition ?p ?surface)
+ (colour ?p natural)
+ (treatment ?p untreated)
+ (boardsize ?b ?size_after)))
+
+ (:action cut-board-large
+ :parameters (?b - board ?p - part ?m - highspeed-saw ?w - awood
+ ?surface - surface
+ ?size_before ?s1 ?s2 ?size_after - aboardsize)
+ :precondition (and
+ (unused ?p)
+ (goalsize ?p large)
+ (in-highspeed-saw ?b ?m)
+ (wood ?b ?w)
+ (surface-condition ?b ?surface)
+ (boardsize ?b ?size_before)
+ (boardsize-successor ?size_after ?s1)
+ (boardsize-successor ?s1 ?s2)
+ (boardsize-successor ?s2 ?size_before))
+ :effect (and
+ (increase (total-cost) 10)
+ (not (unused ?p))
+ (available ?p)
+ (wood ?p ?w)
+ (surface-condition ?p ?surface)
+ (colour ?p natural)
+ (treatment ?p untreated)
+ (boardsize ?b ?size_after)))
+
+ (:action do-saw-small
+ :parameters (?b - board ?p - part ?m - saw ?w - awood
+ ?surface - surface ?size_before ?size_after - aboardsize)
+ :precondition (and
+ (unused ?p)
+ (goalsize ?p small)
+ (available ?b)
+ (wood ?b ?w)
+ (surface-condition ?b ?surface)
+ (boardsize ?b ?size_before)
+ (boardsize-successor ?size_after ?size_before))
+ :effect (and
+ (increase (total-cost) 30)
+ (not (unused ?p))
+ (available ?p)
+ (wood ?p ?w)
+ (surface-condition ?p ?surface)
+ (colour ?p natural)
+ (treatment ?p untreated)
+ (boardsize ?b ?size_after)))
+
+ (:action do-saw-medium
+ :parameters (?b - board ?p - part ?m - saw ?w - awood
+ ?surface - surface
+ ?size_before ?s1 ?size_after - aboardsize)
+ :precondition (and
+ (unused ?p)
+ (goalsize ?p medium)
+ (available ?b)
+ (wood ?b ?w)
+ (surface-condition ?b ?surface)
+ (boardsize ?b ?size_before)
+ (boardsize-successor ?size_after ?s1)
+ (boardsize-successor ?s1 ?size_before))
+ :effect (and
+ (increase (total-cost) 30)
+ (not (unused ?p))
+ (available ?p)
+ (wood ?p ?w)
+ (surface-condition ?p ?surface)
+ (colour ?p natural)
+ (treatment ?p untreated)
+ (boardsize ?b ?size_after)))
+
+ (:action do-saw-large
+ :parameters (?b - board ?p - part ?m - saw ?w - awood
+ ?surface - surface
+ ?size_before ?s1 ?s2 ?size_after - aboardsize)
+ :precondition (and
+ (unused ?p)
+ (goalsize ?p large)
+ (available ?b)
+ (wood ?b ?w)
+ (surface-condition ?b ?surface)
+ (boardsize ?b ?size_before)
+ (boardsize-successor ?size_after ?s1)
+ (boardsize-successor ?s1 ?s2)
+ (boardsize-successor ?s2 ?size_before))
+ :effect (and
+ (increase (total-cost) 30)
+ (not (unused ?p))
+ (available ?p)
+ (wood ?p ?w)
+ (surface-condition ?p ?surface)
+ (colour ?p natural)
+ (treatment ?p untreated)
+ (boardsize ?b ?size_after)))
+)
diff --git a/data/woodworking-sat08-strips/domain_fixed.pddl b/data/woodworking-sat08-strips/domain_fixed.pddl
new file mode 100644
index 00000000..fbb89081
--- /dev/null
+++ b/data/woodworking-sat08-strips/domain_fixed.pddl
@@ -0,0 +1,282 @@
+;; Woodworking
+;;
+
+(define (domain woodworking)
+ (:requirements :typing :action-costs :numeric-fluents)
+ (:types
+ acolour awood woodobj machine
+ surface treatmentstatus
+ aboardsize apartsize - object
+ highspeed-saw glazer grinder immersion-varnisher
+ planer saw spray-varnisher - machine
+ board part - woodobj)
+
+ (:constants
+ verysmooth smooth rough - surface
+ varnished glazed untreated colourfragments - treatmentstatus
+ natural - acolour
+ small medium large - apartsize)
+
+ (:predicates
+ (unused ?obj - part)
+ (available ?obj - woodobj)
+
+ (surface-condition ?obj - woodobj ?surface - surface)
+ (treatment ?obj - part ?treatment - treatmentstatus)
+ (colour ?obj - part ?colour - acolour)
+ (wood ?obj - woodobj ?wood - awood)
+ (boardsize ?board - board ?size - aboardsize)
+ (goalsize ?part - part ?size - apartsize)
+ (boardsize-successor ?size1 ?size2 - aboardsize)
+
+ (in-highspeed-saw ?b - board ?m - highspeed-saw)
+ (empty ?m - highspeed-saw)
+ (has-colour ?machine - machine ?colour - acolour)
+ (grind-treatment-change ?old ?new - treatmentstatus)
+ (is-smooth ?surface - surface))
+
+ (:functions (total-cost) - number
+ (spray-varnish-cost ?obj - part) - number
+ (glaze-cost ?obj - part) - number
+ (grind-cost ?obj - part) - number
+ (plane-cost ?obj - part) - number)
+
+ (:action do-immersion-varnish
+ :parameters (?x - part ?m - immersion-varnisher
+ ?newcolour - acolour ?surface - surface)
+ :precondition (and
+ (available ?x)
+ (has-colour ?m ?newcolour)
+ (surface-condition ?x ?surface)
+ (is-smooth ?surface)
+ (treatment ?x untreated))
+ :effect (and
+ (increase (total-cost) 10)
+ (not (treatment ?x untreated))
+ (treatment ?x varnished)
+ (not (colour ?x natural))
+ (colour ?x ?newcolour)))
+
+ (:action do-spray-varnish
+ :parameters (?x - part ?m - spray-varnisher
+ ?newcolour - acolour ?surface - surface)
+ :precondition (and
+ (available ?x)
+ (has-colour ?m ?newcolour)
+ (surface-condition ?x ?surface)
+ (is-smooth ?surface)
+ (treatment ?x untreated))
+ :effect (and
+ (increase (total-cost) (spray-varnish-cost ?x))
+ (not (treatment ?x untreated))
+ (treatment ?x varnished)
+ (not (colour ?x natural))
+ (colour ?x ?newcolour)))
+
+ (:action do-glaze
+ :parameters (?x - part ?m - glazer
+ ?newcolour - acolour)
+ :precondition (and
+ (available ?x)
+ (has-colour ?m ?newcolour)
+ (treatment ?x untreated))
+ :effect (and
+ (increase (total-cost) (glaze-cost ?x))
+ (not (treatment ?x untreated))
+ (treatment ?x glazed)
+ (not (colour ?x natural))
+ (colour ?x ?newcolour)))
+
+ (:action do-grind
+ :parameters (?x - part ?oldsurface - surface
+ ?oldcolour - acolour
+ ?oldtreatment ?newtreatment - treatmentstatus)
+ :precondition (and
+ (available ?x)
+ (surface-condition ?x ?oldsurface)
+ (is-smooth ?oldsurface)
+ (colour ?x ?oldcolour)
+ (treatment ?x ?oldtreatment)
+ (grind-treatment-change ?oldtreatment ?newtreatment))
+ :effect (and
+ (increase (total-cost) (grind-cost ?x))
+ (not (surface-condition ?x ?oldsurface))
+ (surface-condition ?x verysmooth)
+ (not (treatment ?x ?oldtreatment))
+ (treatment ?x ?newtreatment)
+ (not (colour ?x ?oldcolour))
+ (colour ?x natural)))
+
+ (:action do-plane
+ :parameters (?x - part ?oldsurface - surface
+ ?oldcolour - acolour ?oldtreatment - treatmentstatus)
+ :precondition (and
+ (available ?x)
+ (surface-condition ?x ?oldsurface)
+ (treatment ?x ?oldtreatment)
+ (colour ?x ?oldcolour))
+ :effect (and
+ (increase (total-cost) (plane-cost ?x))
+ (not (surface-condition ?x ?oldsurface))
+ (surface-condition ?x smooth)
+ (not (treatment ?x ?oldtreatment))
+ (treatment ?x untreated)
+ (not (colour ?x ?oldcolour))
+ (colour ?x natural)))
+
+ (:action load-highspeed-saw
+ :parameters (?b - board ?m - highspeed-saw)
+ :precondition (and
+ (empty ?m)
+ (available ?b))
+ :effect (and
+ (increase (total-cost) 30)
+ (not (available ?b))
+ (not (empty ?m))
+ (in-highspeed-saw ?b ?m)))
+
+ (:action unload-highspeed-saw
+ :parameters (?b - board ?m - highspeed-saw)
+ :precondition (in-highspeed-saw ?b ?m)
+ :effect (and
+ (increase (total-cost) 10)
+ (available ?b)
+ (not (in-highspeed-saw ?b ?m))
+ (empty ?m)))
+
+ (:action cut-board-small
+ :parameters (?b - board ?p - part ?m - highspeed-saw ?w - awood
+ ?surface - surface ?size_before ?size_after - aboardsize)
+ :precondition (and
+ (unused ?p)
+ (goalsize ?p small)
+ (in-highspeed-saw ?b ?m)
+ (wood ?b ?w)
+ (surface-condition ?b ?surface)
+ (boardsize ?b ?size_before)
+ (boardsize-successor ?size_after ?size_before))
+ :effect (and
+ (increase (total-cost) 10)
+ (not (unused ?p))
+ (available ?p)
+ (wood ?p ?w)
+ (surface-condition ?p ?surface)
+ (colour ?p natural)
+ (treatment ?p untreated)
+ (boardsize ?b ?size_after)))
+
+ (:action cut-board-medium
+ :parameters (?b - board ?p - part ?m - highspeed-saw ?w - awood
+ ?surface - surface
+ ?size_before ?s1 ?size_after - aboardsize)
+ :precondition (and
+ (unused ?p)
+ (goalsize ?p medium)
+ (in-highspeed-saw ?b ?m)
+ (wood ?b ?w)
+ (surface-condition ?b ?surface)
+ (boardsize ?b ?size_before)
+ (boardsize-successor ?size_after ?s1)
+ (boardsize-successor ?s1 ?size_before))
+ :effect (and
+ (increase (total-cost) 10)
+ (not (unused ?p))
+ (available ?p)
+ (wood ?p ?w)
+ (surface-condition ?p ?surface)
+ (colour ?p natural)
+ (treatment ?p untreated)
+ (boardsize ?b ?size_after)))
+
+ (:action cut-board-large
+ :parameters (?b - board ?p - part ?m - highspeed-saw ?w - awood
+ ?surface - surface
+ ?size_before ?s1 ?s2 ?size_after - aboardsize)
+ :precondition (and
+ (unused ?p)
+ (goalsize ?p large)
+ (in-highspeed-saw ?b ?m)
+ (wood ?b ?w)
+ (surface-condition ?b ?surface)
+ (boardsize ?b ?size_before)
+ (boardsize-successor ?size_after ?s1)
+ (boardsize-successor ?s1 ?s2)
+ (boardsize-successor ?s2 ?size_before))
+ :effect (and
+ (increase (total-cost) 10)
+ (not (unused ?p))
+ (available ?p)
+ (wood ?p ?w)
+ (surface-condition ?p ?surface)
+ (colour ?p natural)
+ (treatment ?p untreated)
+ (boardsize ?b ?size_after)))
+
+ (:action do-saw-small
+ :parameters (?b - board ?p - part ?w - awood
+ ?surface - surface ?size_before ?size_after - aboardsize)
+ :precondition (and
+ (unused ?p)
+ (goalsize ?p small)
+ (available ?b)
+ (wood ?b ?w)
+ (surface-condition ?b ?surface)
+ (boardsize ?b ?size_before)
+ (boardsize-successor ?size_after ?size_before))
+ :effect (and
+ (increase (total-cost) 30)
+ (not (unused ?p))
+ (available ?p)
+ (wood ?p ?w)
+ (surface-condition ?p ?surface)
+ (colour ?p natural)
+ (treatment ?p untreated)
+ (boardsize ?b ?size_after)))
+
+ (:action do-saw-medium
+ :parameters (?b - board ?p - part ?w - awood
+ ?surface - surface
+ ?size_before ?s1 ?size_after - aboardsize)
+ :precondition (and
+ (unused ?p)
+ (goalsize ?p medium)
+ (available ?b)
+ (wood ?b ?w)
+ (surface-condition ?b ?surface)
+ (boardsize ?b ?size_before)
+ (boardsize-successor ?size_after ?s1)
+ (boardsize-successor ?s1 ?size_before))
+ :effect (and
+ (increase (total-cost) 30)
+ (not (unused ?p))
+ (available ?p)
+ (wood ?p ?w)
+ (surface-condition ?p ?surface)
+ (colour ?p natural)
+ (treatment ?p untreated)
+ (boardsize ?b ?size_after)))
+
+ (:action do-saw-large
+ :parameters (?b - board ?p - part ?w - awood
+ ?surface - surface
+ ?size_before ?s1 ?s2 ?size_after - aboardsize)
+ :precondition (and
+ (unused ?p)
+ (goalsize ?p large)
+ (available ?b)
+ (wood ?b ?w)
+ (surface-condition ?b ?surface)
+ (boardsize ?b ?size_before)
+ (boardsize-successor ?size_after ?s1)
+ (boardsize-successor ?s1 ?s2)
+ (boardsize-successor ?s2 ?size_before))
+ :effect (and
+ (increase (total-cost) 30)
+ (not (unused ?p))
+ (available ?p)
+ (wood ?p ?w)
+ (surface-condition ?p ?surface)
+ (colour ?p natural)
+ (treatment ?p untreated)
+ (boardsize ?b ?size_after)))
+)
diff --git a/data/woodworking-sat08-strips/p01.pddl b/data/woodworking-sat08-strips/p01.pddl
new file mode 100644
index 00000000..8bab2331
--- /dev/null
+++ b/data/woodworking-sat08-strips/p01.pddl
@@ -0,0 +1,91 @@
+; woodworking task with 3 parts and 140% wood
+; Machines:
+; 1 grinder
+; 1 glazer
+; 1 immersion-varnisher
+; 1 planer
+; 1 highspeed-saw
+; 1 spray-varnisher
+; 1 saw
+; random seed: 973895
+
+(define (problem wood-prob)
+ (:domain woodworking)
+ (:requirements :typing :action-costs :numeric-fluents)
+ (:objects
+ glazer0 - glazer
+ immersion-varnisher0 - immersion-varnisher
+ highspeed-saw0 - highspeed-saw
+ spray-varnisher0 - spray-varnisher
+ red - acolour
+ pine teak - awood
+ p0 p1 p2 - part
+ b0 - board
+ s0 s1 s2 s3 - aboardsize
+ )
+ (:init
+ (grind-treatment-change varnished colourfragments)
+ (grind-treatment-change glazed untreated)
+ (grind-treatment-change untreated untreated)
+ (grind-treatment-change colourfragments untreated)
+ (is-smooth smooth)
+ (is-smooth verysmooth)
+ (= (total-cost) 0)
+ (boardsize-successor s0 s1)
+ (boardsize-successor s1 s2)
+ (boardsize-successor s2 s3)
+ (has-colour glazer0 natural)
+ (has-colour glazer0 red)
+ (has-colour immersion-varnisher0 natural)
+ (has-colour immersion-varnisher0 red)
+ (empty highspeed-saw0)
+ (has-colour spray-varnisher0 natural)
+ (has-colour spray-varnisher0 red)
+ (available p0)
+ (colour p0 red)
+ (wood p0 pine)
+ (surface-condition p0 smooth)
+ (treatment p0 varnished)
+ (goalsize p0 small)
+ (= (spray-varnish-cost p0) 5)
+ (= (glaze-cost p0) 10)
+ (= (grind-cost p0) 15)
+ (= (plane-cost p0) 10)
+ (unused p1)
+ (goalsize p1 medium)
+ (= (spray-varnish-cost p1) 10)
+ (= (glaze-cost p1) 15)
+ (= (grind-cost p1) 30)
+ (= (plane-cost p1) 20)
+ (available p2)
+ (colour p2 natural)
+ (wood p2 teak)
+ (surface-condition p2 verysmooth)
+ (treatment p2 varnished)
+ (goalsize p2 large)
+ (= (spray-varnish-cost p2) 15)
+ (= (glaze-cost p2) 20)
+ (= (grind-cost p2) 45)
+ (= (plane-cost p2) 30)
+ (boardsize b0 s3)
+ (wood b0 pine)
+ (surface-condition b0 rough)
+ (available b0)
+ )
+ (:goal
+ (and
+ (available p0)
+ (colour p0 natural)
+ (wood p0 pine)
+ (available p1)
+ (colour p1 natural)
+ (wood p1 pine)
+ (surface-condition p1 smooth)
+ (treatment p1 varnished)
+ (available p2)
+ (colour p2 red)
+ (wood p2 teak)
+ )
+ )
+ (:metric minimize (total-cost))
+)
diff --git a/data/woodworking-sat08-strips/p02.pddl b/data/woodworking-sat08-strips/p02.pddl
new file mode 100644
index 00000000..4592b735
--- /dev/null
+++ b/data/woodworking-sat08-strips/p02.pddl
@@ -0,0 +1,132 @@
+; woodworking task with 6 parts and 140% wood
+; Machines:
+; 1 grinder
+; 1 glazer
+; 1 immersion-varnisher
+; 1 planer
+; 1 highspeed-saw
+; 1 spray-varnisher
+; 1 saw
+; random seed: 887881
+
+(define (problem wood-prob)
+ (:domain woodworking)
+ (:objects
+ grinder0 - grinder
+ glazer0 - glazer
+ immersion-varnisher0 - immersion-varnisher
+ planer0 - planer
+ highspeed-saw0 - highspeed-saw
+ spray-varnisher0 - spray-varnisher
+ saw0 - saw
+ black blue mauve red - acolour
+ walnut mahogany - awood
+ p0 p1 p2 p3 p4 p5 - part
+ b0 - board
+ s0 s1 s2 s3 s4 s5 s6 - aboardsize
+ )
+ (:init
+ (grind-treatment-change varnished colourfragments)
+ (grind-treatment-change glazed untreated)
+ (grind-treatment-change untreated untreated)
+ (grind-treatment-change colourfragments untreated)
+ (is-smooth smooth)
+ (is-smooth verysmooth)
+ (= (total-cost) 0)
+ (boardsize-successor s0 s1)
+ (boardsize-successor s1 s2)
+ (boardsize-successor s2 s3)
+ (boardsize-successor s3 s4)
+ (boardsize-successor s4 s5)
+ (boardsize-successor s5 s6)
+ (has-colour glazer0 blue)
+ (has-colour immersion-varnisher0 mauve)
+ (has-colour immersion-varnisher0 black)
+ (empty highspeed-saw0)
+ (has-colour spray-varnisher0 mauve)
+ (has-colour spray-varnisher0 black)
+ (available p0)
+ (colour p0 natural)
+ (wood p0 walnut)
+ (surface-condition p0 verysmooth)
+ (treatment p0 glazed)
+ (goalsize p0 small)
+ (= (spray-varnish-cost p0) 5)
+ (= (glaze-cost p0) 10)
+ (= (grind-cost p0) 15)
+ (= (plane-cost p0) 10)
+ (unused p1)
+ (goalsize p1 medium)
+ (= (spray-varnish-cost p1) 10)
+ (= (glaze-cost p1) 15)
+ (= (grind-cost p1) 30)
+ (= (plane-cost p1) 20)
+ (available p2)
+ (colour p2 black)
+ (wood p2 mahogany)
+ (surface-condition p2 rough)
+ (treatment p2 glazed)
+ (goalsize p2 large)
+ (= (spray-varnish-cost p2) 15)
+ (= (glaze-cost p2) 20)
+ (= (grind-cost p2) 45)
+ (= (plane-cost p2) 30)
+ (unused p3)
+ (goalsize p3 medium)
+ (= (spray-varnish-cost p3) 10)
+ (= (glaze-cost p3) 15)
+ (= (grind-cost p3) 30)
+ (= (plane-cost p3) 20)
+ (available p4)
+ (colour p4 black)
+ (wood p4 mahogany)
+ (surface-condition p4 verysmooth)
+ (treatment p4 varnished)
+ (goalsize p4 large)
+ (= (spray-varnish-cost p4) 15)
+ (= (glaze-cost p4) 20)
+ (= (grind-cost p4) 45)
+ (= (plane-cost p4) 30)
+ (available p5)
+ (colour p5 mauve)
+ (wood p5 walnut)
+ (surface-condition p5 rough)
+ (treatment p5 glazed)
+ (goalsize p5 small)
+ (= (spray-varnish-cost p5) 5)
+ (= (glaze-cost p5) 10)
+ (= (grind-cost p5) 15)
+ (= (plane-cost p5) 10)
+ (boardsize b0 s6)
+ (wood b0 walnut)
+ (surface-condition b0 smooth)
+ (available b0)
+ )
+ (:goal
+ (and
+ (available p0)
+ (colour p0 black)
+ (treatment p0 varnished)
+ (available p1)
+ (wood p1 walnut)
+ (surface-condition p1 smooth)
+ (treatment p1 glazed)
+ (available p2)
+ (colour p2 blue)
+ (surface-condition p2 verysmooth)
+ (treatment p2 glazed)
+ (available p3)
+ (surface-condition p3 smooth)
+ (treatment p3 varnished)
+ (available p4)
+ (colour p4 mauve)
+ (wood p4 mahogany)
+ (surface-condition p4 smooth)
+ (treatment p4 varnished)
+ (available p5)
+ (surface-condition p5 verysmooth)
+ (treatment p5 varnished)
+ )
+ )
+ (:metric minimize (total-cost))
+)
diff --git a/data/woodworking-sat08-strips/p03.pddl b/data/woodworking-sat08-strips/p03.pddl
new file mode 100644
index 00000000..47345e6a
--- /dev/null
+++ b/data/woodworking-sat08-strips/p03.pddl
@@ -0,0 +1,168 @@
+; woodworking task with 9 parts and 140% wood
+; Machines:
+; 1 grinder
+; 1 glazer
+; 1 immersion-varnisher
+; 1 planer
+; 1 highspeed-saw
+; 1 spray-varnisher
+; 1 saw
+; random seed: 976727
+
+(define (problem wood-prob)
+ (:domain woodworking)
+ (:objects
+ grinder0 - grinder
+ glazer0 - glazer
+ immersion-varnisher0 - immersion-varnisher
+ planer0 - planer
+ highspeed-saw0 - highspeed-saw
+ spray-varnisher0 - spray-varnisher
+ saw0 - saw
+ white green blue mauve red black - acolour
+ teak mahogany - awood
+ p0 p1 p2 p3 p4 p5 p6 p7 p8 - part
+ b0 b1 b2 b3 - board
+ s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 - aboardsize
+ )
+ (:init
+ (grind-treatment-change varnished colourfragments)
+ (grind-treatment-change glazed untreated)
+ (grind-treatment-change untreated untreated)
+ (grind-treatment-change colourfragments untreated)
+ (is-smooth smooth)
+ (is-smooth verysmooth)
+ (= (total-cost) 0)
+ (boardsize-successor s0 s1)
+ (boardsize-successor s1 s2)
+ (boardsize-successor s2 s3)
+ (boardsize-successor s3 s4)
+ (boardsize-successor s4 s5)
+ (boardsize-successor s5 s6)
+ (boardsize-successor s6 s7)
+ (boardsize-successor s7 s8)
+ (boardsize-successor s8 s9)
+ (boardsize-successor s9 s10)
+ (has-colour glazer0 mauve)
+ (has-colour glazer0 natural)
+ (has-colour immersion-varnisher0 green)
+ (has-colour immersion-varnisher0 black)
+ (has-colour immersion-varnisher0 natural)
+ (has-colour immersion-varnisher0 mauve)
+ (empty highspeed-saw0)
+ (has-colour spray-varnisher0 green)
+ (has-colour spray-varnisher0 black)
+ (has-colour spray-varnisher0 natural)
+ (has-colour spray-varnisher0 mauve)
+ (unused p0)
+ (goalsize p0 large)
+ (= (spray-varnish-cost p0) 15)
+ (= (glaze-cost p0) 20)
+ (= (grind-cost p0) 45)
+ (= (plane-cost p0) 30)
+ (unused p1)
+ (goalsize p1 large)
+ (= (spray-varnish-cost p1) 15)
+ (= (glaze-cost p1) 20)
+ (= (grind-cost p1) 45)
+ (= (plane-cost p1) 30)
+ (unused p2)
+ (goalsize p2 medium)
+ (= (spray-varnish-cost p2) 10)
+ (= (glaze-cost p2) 15)
+ (= (grind-cost p2) 30)
+ (= (plane-cost p2) 20)
+ (unused p3)
+ (goalsize p3 large)
+ (= (spray-varnish-cost p3) 15)
+ (= (glaze-cost p3) 20)
+ (= (grind-cost p3) 45)
+ (= (plane-cost p3) 30)
+ (unused p4)
+ (goalsize p4 small)
+ (= (spray-varnish-cost p4) 5)
+ (= (glaze-cost p4) 10)
+ (= (grind-cost p4) 15)
+ (= (plane-cost p4) 10)
+ (available p5)
+ (colour p5 blue)
+ (wood p5 teak)
+ (surface-condition p5 rough)
+ (treatment p5 glazed)
+ (goalsize p5 large)
+ (= (spray-varnish-cost p5) 15)
+ (= (glaze-cost p5) 20)
+ (= (grind-cost p5) 45)
+ (= (plane-cost p5) 30)
+ (unused p6)
+ (goalsize p6 small)
+ (= (spray-varnish-cost p6) 5)
+ (= (glaze-cost p6) 10)
+ (= (grind-cost p6) 15)
+ (= (plane-cost p6) 10)
+ (unused p7)
+ (goalsize p7 medium)
+ (= (spray-varnish-cost p7) 10)
+ (= (glaze-cost p7) 15)
+ (= (grind-cost p7) 30)
+ (= (plane-cost p7) 20)
+ (unused p8)
+ (goalsize p8 large)
+ (= (spray-varnish-cost p8) 15)
+ (= (glaze-cost p8) 20)
+ (= (grind-cost p8) 45)
+ (= (plane-cost p8) 30)
+ (boardsize b0 s10)
+ (wood b0 teak)
+ (surface-condition b0 rough)
+ (available b0)
+ (boardsize b1 s6)
+ (wood b1 teak)
+ (surface-condition b1 smooth)
+ (available b1)
+ (boardsize b2 s7)
+ (wood b2 mahogany)
+ (surface-condition b2 rough)
+ (available b2)
+ (boardsize b3 s3)
+ (wood b3 mahogany)
+ (surface-condition b3 smooth)
+ (available b3)
+ )
+ (:goal
+ (and
+ (available p0)
+ (colour p0 green)
+ (treatment p0 varnished)
+ (available p1)
+ (colour p1 black)
+ (surface-condition p1 verysmooth)
+ (treatment p1 varnished)
+ (available p2)
+ (colour p2 mauve)
+ (wood p2 teak)
+ (available p3)
+ (surface-condition p3 verysmooth)
+ (treatment p3 glazed)
+ (available p4)
+ (wood p4 mahogany)
+ (treatment p4 varnished)
+ (available p5)
+ (surface-condition p5 verysmooth)
+ (treatment p5 varnished)
+ (available p6)
+ (wood p6 mahogany)
+ (treatment p6 varnished)
+ (available p7)
+ (colour p7 natural)
+ (wood p7 mahogany)
+ (surface-condition p7 verysmooth)
+ (treatment p7 varnished)
+ (available p8)
+ (colour p8 natural)
+ (surface-condition p8 smooth)
+ (treatment p8 glazed)
+ )
+ )
+ (:metric minimize (total-cost))
+)
diff --git a/data/woodworking-sat08-strips/p04.pddl b/data/woodworking-sat08-strips/p04.pddl
new file mode 100644
index 00000000..2d298881
--- /dev/null
+++ b/data/woodworking-sat08-strips/p04.pddl
@@ -0,0 +1,205 @@
+; woodworking task with 12 parts and 140% wood
+; Machines:
+; 1 grinder
+; 1 glazer
+; 1 immersion-varnisher
+; 1 planer
+; 1 highspeed-saw
+; 1 spray-varnisher
+; 1 saw
+; random seed: 686037
+
+(define (problem wood-prob)
+ (:domain woodworking)
+ (:objects
+ grinder0 - grinder
+ glazer0 - glazer
+ immersion-varnisher0 - immersion-varnisher
+ planer0 - planer
+ highspeed-saw0 - highspeed-saw
+ spray-varnisher0 - spray-varnisher
+ saw0 - saw
+ mauve green white red blue black - acolour
+ beech oak pine - awood
+ p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 - part
+ b0 b1 b2 b3 - board
+ s0 s1 s2 s3 s4 s5 s6 s7 - aboardsize
+ )
+ (:init
+ (grind-treatment-change varnished colourfragments)
+ (grind-treatment-change glazed untreated)
+ (grind-treatment-change untreated untreated)
+ (grind-treatment-change colourfragments untreated)
+ (is-smooth smooth)
+ (is-smooth verysmooth)
+ (= (total-cost) 0)
+ (boardsize-successor s0 s1)
+ (boardsize-successor s1 s2)
+ (boardsize-successor s2 s3)
+ (boardsize-successor s3 s4)
+ (boardsize-successor s4 s5)
+ (boardsize-successor s5 s6)
+ (boardsize-successor s6 s7)
+ (has-colour glazer0 white)
+ (has-colour glazer0 red)
+ (has-colour immersion-varnisher0 mauve)
+ (has-colour immersion-varnisher0 white)
+ (has-colour immersion-varnisher0 natural)
+ (has-colour immersion-varnisher0 red)
+ (empty highspeed-saw0)
+ (has-colour spray-varnisher0 mauve)
+ (has-colour spray-varnisher0 white)
+ (has-colour spray-varnisher0 natural)
+ (has-colour spray-varnisher0 red)
+ (unused p0)
+ (goalsize p0 medium)
+ (= (spray-varnish-cost p0) 10)
+ (= (glaze-cost p0) 15)
+ (= (grind-cost p0) 30)
+ (= (plane-cost p0) 20)
+ (unused p1)
+ (goalsize p1 medium)
+ (= (spray-varnish-cost p1) 10)
+ (= (glaze-cost p1) 15)
+ (= (grind-cost p1) 30)
+ (= (plane-cost p1) 20)
+ (unused p2)
+ (goalsize p2 small)
+ (= (spray-varnish-cost p2) 5)
+ (= (glaze-cost p2) 10)
+ (= (grind-cost p2) 15)
+ (= (plane-cost p2) 10)
+ (unused p3)
+ (goalsize p3 small)
+ (= (spray-varnish-cost p3) 5)
+ (= (glaze-cost p3) 10)
+ (= (grind-cost p3) 15)
+ (= (plane-cost p3) 10)
+ (unused p4)
+ (goalsize p4 large)
+ (= (spray-varnish-cost p4) 15)
+ (= (glaze-cost p4) 20)
+ (= (grind-cost p4) 45)
+ (= (plane-cost p4) 30)
+ (unused p5)
+ (goalsize p5 large)
+ (= (spray-varnish-cost p5) 15)
+ (= (glaze-cost p5) 20)
+ (= (grind-cost p5) 45)
+ (= (plane-cost p5) 30)
+ (unused p6)
+ (goalsize p6 medium)
+ (= (spray-varnish-cost p6) 10)
+ (= (glaze-cost p6) 15)
+ (= (grind-cost p6) 30)
+ (= (plane-cost p6) 20)
+ (available p7)
+ (colour p7 blue)
+ (wood p7 oak)
+ (surface-condition p7 rough)
+ (treatment p7 varnished)
+ (goalsize p7 medium)
+ (= (spray-varnish-cost p7) 10)
+ (= (glaze-cost p7) 15)
+ (= (grind-cost p7) 30)
+ (= (plane-cost p7) 20)
+ (available p8)
+ (colour p8 blue)
+ (wood p8 beech)
+ (surface-condition p8 smooth)
+ (treatment p8 glazed)
+ (goalsize p8 large)
+ (= (spray-varnish-cost p8) 15)
+ (= (glaze-cost p8) 20)
+ (= (grind-cost p8) 45)
+ (= (plane-cost p8) 30)
+ (unused p9)
+ (goalsize p9 small)
+ (= (spray-varnish-cost p9) 5)
+ (= (glaze-cost p9) 10)
+ (= (grind-cost p9) 15)
+ (= (plane-cost p9) 10)
+ (unused p10)
+ (goalsize p10 medium)
+ (= (spray-varnish-cost p10) 10)
+ (= (glaze-cost p10) 15)
+ (= (grind-cost p10) 30)
+ (= (plane-cost p10) 20)
+ (unused p11)
+ (goalsize p11 small)
+ (= (spray-varnish-cost p11) 5)
+ (= (glaze-cost p11) 10)
+ (= (grind-cost p11) 15)
+ (= (plane-cost p11) 10)
+ (boardsize b0 s6)
+ (wood b0 beech)
+ (surface-condition b0 rough)
+ (available b0)
+ (boardsize b1 s7)
+ (wood b1 beech)
+ (surface-condition b1 rough)
+ (available b1)
+ (boardsize b2 s6)
+ (wood b2 oak)
+ (surface-condition b2 rough)
+ (available b2)
+ (boardsize b3 s7)
+ (wood b3 pine)
+ (surface-condition b3 rough)
+ (available b3)
+ )
+ (:goal
+ (and
+ (available p0)
+ (colour p0 red)
+ (wood p0 beech)
+ (surface-condition p0 verysmooth)
+ (treatment p0 glazed)
+ (available p1)
+ (wood p1 pine)
+ (surface-condition p1 verysmooth)
+ (available p2)
+ (surface-condition p2 verysmooth)
+ (treatment p2 glazed)
+ (available p3)
+ (colour p3 natural)
+ (wood p3 beech)
+ (surface-condition p3 verysmooth)
+ (treatment p3 varnished)
+ (available p4)
+ (colour p4 natural)
+ (wood p4 oak)
+ (surface-condition p4 smooth)
+ (treatment p4 varnished)
+ (available p5)
+ (colour p5 red)
+ (surface-condition p5 smooth)
+ (available p6)
+ (colour p6 natural)
+ (wood p6 beech)
+ (surface-condition p6 verysmooth)
+ (treatment p6 varnished)
+ (available p7)
+ (colour p7 mauve)
+ (surface-condition p7 smooth)
+ (treatment p7 varnished)
+ (available p8)
+ (colour p8 white)
+ (wood p8 beech)
+ (surface-condition p8 verysmooth)
+ (available p9)
+ (surface-condition p9 verysmooth)
+ (treatment p9 varnished)
+ (available p10)
+ (wood p10 pine)
+ (surface-condition p10 verysmooth)
+ (treatment p10 glazed)
+ (available p11)
+ (colour p11 red)
+ (wood p11 oak)
+ (surface-condition p11 verysmooth)
+ (treatment p11 glazed)
+ )
+ )
+ (:metric minimize (total-cost))
+)
diff --git a/data/woodworking-sat08-strips/p05.pddl b/data/woodworking-sat08-strips/p05.pddl
new file mode 100644
index 00000000..f44f87d8
--- /dev/null
+++ b/data/woodworking-sat08-strips/p05.pddl
@@ -0,0 +1,243 @@
+; woodworking task with 15 parts and 140% wood
+; Machines:
+; 1 grinder
+; 1 glazer
+; 1 immersion-varnisher
+; 1 planer
+; 1 highspeed-saw
+; 1 spray-varnisher
+; 1 saw
+; random seed: 627360
+
+(define (problem wood-prob)
+ (:domain woodworking)
+ (:objects
+ grinder0 - grinder
+ glazer0 - glazer
+ immersion-varnisher0 - immersion-varnisher
+ planer0 - planer
+ highspeed-saw0 - highspeed-saw
+ spray-varnisher0 - spray-varnisher
+ saw0 - saw
+ red black mauve blue green white - acolour
+ teak cherry walnut pine - awood
+ p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 - part
+ b0 b1 b2 b3 b4 b5 - board
+ s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 - aboardsize
+ )
+ (:init
+ (grind-treatment-change varnished colourfragments)
+ (grind-treatment-change glazed untreated)
+ (grind-treatment-change untreated untreated)
+ (grind-treatment-change colourfragments untreated)
+ (is-smooth smooth)
+ (is-smooth verysmooth)
+ (= (total-cost) 0)
+ (boardsize-successor s0 s1)
+ (boardsize-successor s1 s2)
+ (boardsize-successor s2 s3)
+ (boardsize-successor s3 s4)
+ (boardsize-successor s4 s5)
+ (boardsize-successor s5 s6)
+ (boardsize-successor s6 s7)
+ (boardsize-successor s7 s8)
+ (boardsize-successor s8 s9)
+ (has-colour glazer0 green)
+ (has-colour glazer0 red)
+ (has-colour immersion-varnisher0 mauve)
+ (has-colour immersion-varnisher0 white)
+ (has-colour immersion-varnisher0 green)
+ (has-colour immersion-varnisher0 red)
+ (empty highspeed-saw0)
+ (has-colour spray-varnisher0 mauve)
+ (has-colour spray-varnisher0 white)
+ (has-colour spray-varnisher0 green)
+ (has-colour spray-varnisher0 red)
+ (unused p0)
+ (goalsize p0 medium)
+ (= (spray-varnish-cost p0) 10)
+ (= (glaze-cost p0) 15)
+ (= (grind-cost p0) 30)
+ (= (plane-cost p0) 20)
+ (unused p1)
+ (goalsize p1 medium)
+ (= (spray-varnish-cost p1) 10)
+ (= (glaze-cost p1) 15)
+ (= (grind-cost p1) 30)
+ (= (plane-cost p1) 20)
+ (unused p2)
+ (goalsize p2 large)
+ (= (spray-varnish-cost p2) 15)
+ (= (glaze-cost p2) 20)
+ (= (grind-cost p2) 45)
+ (= (plane-cost p2) 30)
+ (unused p3)
+ (goalsize p3 small)
+ (= (spray-varnish-cost p3) 5)
+ (= (glaze-cost p3) 10)
+ (= (grind-cost p3) 15)
+ (= (plane-cost p3) 10)
+ (unused p4)
+ (goalsize p4 small)
+ (= (spray-varnish-cost p4) 5)
+ (= (glaze-cost p4) 10)
+ (= (grind-cost p4) 15)
+ (= (plane-cost p4) 10)
+ (unused p5)
+ (goalsize p5 medium)
+ (= (spray-varnish-cost p5) 10)
+ (= (glaze-cost p5) 15)
+ (= (grind-cost p5) 30)
+ (= (plane-cost p5) 20)
+ (unused p6)
+ (goalsize p6 small)
+ (= (spray-varnish-cost p6) 5)
+ (= (glaze-cost p6) 10)
+ (= (grind-cost p6) 15)
+ (= (plane-cost p6) 10)
+ (unused p7)
+ (goalsize p7 small)
+ (= (spray-varnish-cost p7) 5)
+ (= (glaze-cost p7) 10)
+ (= (grind-cost p7) 15)
+ (= (plane-cost p7) 10)
+ (unused p8)
+ (goalsize p8 large)
+ (= (spray-varnish-cost p8) 15)
+ (= (glaze-cost p8) 20)
+ (= (grind-cost p8) 45)
+ (= (plane-cost p8) 30)
+ (available p9)
+ (colour p9 natural)
+ (wood p9 pine)
+ (surface-condition p9 smooth)
+ (treatment p9 glazed)
+ (goalsize p9 medium)
+ (= (spray-varnish-cost p9) 10)
+ (= (glaze-cost p9) 15)
+ (= (grind-cost p9) 30)
+ (= (plane-cost p9) 20)
+ (unused p10)
+ (goalsize p10 small)
+ (= (spray-varnish-cost p10) 5)
+ (= (glaze-cost p10) 10)
+ (= (grind-cost p10) 15)
+ (= (plane-cost p10) 10)
+ (unused p11)
+ (goalsize p11 small)
+ (= (spray-varnish-cost p11) 5)
+ (= (glaze-cost p11) 10)
+ (= (grind-cost p11) 15)
+ (= (plane-cost p11) 10)
+ (available p12)
+ (colour p12 mauve)
+ (wood p12 teak)
+ (surface-condition p12 verysmooth)
+ (treatment p12 colourfragments)
+ (goalsize p12 small)
+ (= (spray-varnish-cost p12) 5)
+ (= (glaze-cost p12) 10)
+ (= (grind-cost p12) 15)
+ (= (plane-cost p12) 10)
+ (unused p13)
+ (goalsize p13 large)
+ (= (spray-varnish-cost p13) 15)
+ (= (glaze-cost p13) 20)
+ (= (grind-cost p13) 45)
+ (= (plane-cost p13) 30)
+ (unused p14)
+ (goalsize p14 small)
+ (= (spray-varnish-cost p14) 5)
+ (= (glaze-cost p14) 10)
+ (= (grind-cost p14) 15)
+ (= (plane-cost p14) 10)
+ (boardsize b0 s6)
+ (wood b0 cherry)
+ (surface-condition b0 rough)
+ (available b0)
+ (boardsize b1 s1)
+ (wood b1 cherry)
+ (surface-condition b1 smooth)
+ (available b1)
+ (boardsize b2 s2)
+ (wood b2 walnut)
+ (surface-condition b2 rough)
+ (available b2)
+ (boardsize b3 s8)
+ (wood b3 pine)
+ (surface-condition b3 rough)
+ (available b3)
+ (boardsize b4 s6)
+ (wood b4 pine)
+ (surface-condition b4 smooth)
+ (available b4)
+ (boardsize b5 s9)
+ (wood b5 teak)
+ (surface-condition b5 rough)
+ (available b5)
+ )
+ (:goal
+ (and
+ (available p0)
+ (colour p0 green)
+ (wood p0 pine)
+ (surface-condition p0 smooth)
+ (treatment p0 glazed)
+ (available p1)
+ (colour p1 red)
+ (surface-condition p1 smooth)
+ (available p2)
+ (colour p2 red)
+ (wood p2 pine)
+ (surface-condition p2 smooth)
+ (available p3)
+ (wood p3 pine)
+ (treatment p3 varnished)
+ (available p4)
+ (colour p4 white)
+ (wood p4 cherry)
+ (surface-condition p4 verysmooth)
+ (treatment p4 varnished)
+ (available p5)
+ (colour p5 mauve)
+ (wood p5 teak)
+ (surface-condition p5 smooth)
+ (treatment p5 varnished)
+ (available p6)
+ (surface-condition p6 verysmooth)
+ (treatment p6 glazed)
+ (available p7)
+ (wood p7 cherry)
+ (treatment p7 glazed)
+ (available p8)
+ (colour p8 red)
+ (surface-condition p8 verysmooth)
+ (available p9)
+ (colour p9 red)
+ (wood p9 pine)
+ (surface-condition p9 verysmooth)
+ (treatment p9 varnished)
+ (available p10)
+ (wood p10 walnut)
+ (surface-condition p10 verysmooth)
+ (treatment p10 varnished)
+ (available p11)
+ (colour p11 green)
+ (wood p11 pine)
+ (surface-condition p11 verysmooth)
+ (treatment p11 varnished)
+ (available p12)
+ (colour p12 green)
+ (wood p12 teak)
+ (surface-condition p12 smooth)
+ (treatment p12 glazed)
+ (available p13)
+ (wood p13 pine)
+ (surface-condition p13 smooth)
+ (available p14)
+ (surface-condition p14 smooth)
+ (treatment p14 varnished)
+ )
+ )
+ (:metric minimize (total-cost))
+)
diff --git a/data/woodworking-sat08-strips/p06.pddl b/data/woodworking-sat08-strips/p06.pddl
new file mode 100644
index 00000000..4959879b
--- /dev/null
+++ b/data/woodworking-sat08-strips/p06.pddl
@@ -0,0 +1,276 @@
+; woodworking task with 18 parts and 140% wood
+; Machines:
+; 1 grinder
+; 1 glazer
+; 1 immersion-varnisher
+; 1 planer
+; 1 highspeed-saw
+; 1 spray-varnisher
+; 1 saw
+; random seed: 859097
+
+(define (problem wood-prob)
+ (:domain woodworking)
+ (:objects
+ grinder0 - grinder
+ glazer0 - glazer
+ immersion-varnisher0 - immersion-varnisher
+ planer0 - planer
+ highspeed-saw0 - highspeed-saw
+ spray-varnisher0 - spray-varnisher
+ saw0 - saw
+ white blue green black mauve red - acolour
+ mahogany oak pine walnut teak - awood
+ p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 p16 p17 - part
+ b0 b1 b2 b3 b4 b5 b6 - board
+ s0 s1 s2 s3 s4 s5 s6 s7 s8 - aboardsize
+ )
+ (:init
+ (grind-treatment-change varnished colourfragments)
+ (grind-treatment-change glazed untreated)
+ (grind-treatment-change untreated untreated)
+ (grind-treatment-change colourfragments untreated)
+ (is-smooth smooth)
+ (is-smooth verysmooth)
+ (= (total-cost) 0)
+ (boardsize-successor s0 s1)
+ (boardsize-successor s1 s2)
+ (boardsize-successor s2 s3)
+ (boardsize-successor s3 s4)
+ (boardsize-successor s4 s5)
+ (boardsize-successor s5 s6)
+ (boardsize-successor s6 s7)
+ (boardsize-successor s7 s8)
+ (has-colour glazer0 natural)
+ (has-colour glazer0 white)
+ (has-colour glazer0 green)
+ (has-colour glazer0 red)
+ (has-colour glazer0 black)
+ (has-colour immersion-varnisher0 black)
+ (has-colour immersion-varnisher0 white)
+ (has-colour immersion-varnisher0 natural)
+ (has-colour immersion-varnisher0 red)
+ (empty highspeed-saw0)
+ (has-colour spray-varnisher0 black)
+ (has-colour spray-varnisher0 white)
+ (has-colour spray-varnisher0 natural)
+ (has-colour spray-varnisher0 red)
+ (unused p0)
+ (goalsize p0 medium)
+ (= (spray-varnish-cost p0) 10)
+ (= (glaze-cost p0) 15)
+ (= (grind-cost p0) 30)
+ (= (plane-cost p0) 20)
+ (available p1)
+ (colour p1 green)
+ (wood p1 teak)
+ (surface-condition p1 verysmooth)
+ (treatment p1 varnished)
+ (goalsize p1 large)
+ (= (spray-varnish-cost p1) 15)
+ (= (glaze-cost p1) 20)
+ (= (grind-cost p1) 45)
+ (= (plane-cost p1) 30)
+ (available p2)
+ (colour p2 mauve)
+ (wood p2 mahogany)
+ (surface-condition p2 smooth)
+ (treatment p2 glazed)
+ (goalsize p2 large)
+ (= (spray-varnish-cost p2) 15)
+ (= (glaze-cost p2) 20)
+ (= (grind-cost p2) 45)
+ (= (plane-cost p2) 30)
+ (unused p3)
+ (goalsize p3 small)
+ (= (spray-varnish-cost p3) 5)
+ (= (glaze-cost p3) 10)
+ (= (grind-cost p3) 15)
+ (= (plane-cost p3) 10)
+ (unused p4)
+ (goalsize p4 medium)
+ (= (spray-varnish-cost p4) 10)
+ (= (glaze-cost p4) 15)
+ (= (grind-cost p4) 30)
+ (= (plane-cost p4) 20)
+ (unused p5)
+ (goalsize p5 medium)
+ (= (spray-varnish-cost p5) 10)
+ (= (glaze-cost p5) 15)
+ (= (grind-cost p5) 30)
+ (= (plane-cost p5) 20)
+ (unused p6)
+ (goalsize p6 large)
+ (= (spray-varnish-cost p6) 15)
+ (= (glaze-cost p6) 20)
+ (= (grind-cost p6) 45)
+ (= (plane-cost p6) 30)
+ (available p7)
+ (colour p7 blue)
+ (wood p7 pine)
+ (surface-condition p7 rough)
+ (treatment p7 colourfragments)
+ (goalsize p7 medium)
+ (= (spray-varnish-cost p7) 10)
+ (= (glaze-cost p7) 15)
+ (= (grind-cost p7) 30)
+ (= (plane-cost p7) 20)
+ (unused p8)
+ (goalsize p8 small)
+ (= (spray-varnish-cost p8) 5)
+ (= (glaze-cost p8) 10)
+ (= (grind-cost p8) 15)
+ (= (plane-cost p8) 10)
+ (unused p9)
+ (goalsize p9 medium)
+ (= (spray-varnish-cost p9) 10)
+ (= (glaze-cost p9) 15)
+ (= (grind-cost p9) 30)
+ (= (plane-cost p9) 20)
+ (unused p10)
+ (goalsize p10 small)
+ (= (spray-varnish-cost p10) 5)
+ (= (glaze-cost p10) 10)
+ (= (grind-cost p10) 15)
+ (= (plane-cost p10) 10)
+ (unused p11)
+ (goalsize p11 large)
+ (= (spray-varnish-cost p11) 15)
+ (= (glaze-cost p11) 20)
+ (= (grind-cost p11) 45)
+ (= (plane-cost p11) 30)
+ (unused p12)
+ (goalsize p12 small)
+ (= (spray-varnish-cost p12) 5)
+ (= (glaze-cost p12) 10)
+ (= (grind-cost p12) 15)
+ (= (plane-cost p12) 10)
+ (unused p13)
+ (goalsize p13 small)
+ (= (spray-varnish-cost p13) 5)
+ (= (glaze-cost p13) 10)
+ (= (grind-cost p13) 15)
+ (= (plane-cost p13) 10)
+ (unused p14)
+ (goalsize p14 medium)
+ (= (spray-varnish-cost p14) 10)
+ (= (glaze-cost p14) 15)
+ (= (grind-cost p14) 30)
+ (= (plane-cost p14) 20)
+ (unused p15)
+ (goalsize p15 medium)
+ (= (spray-varnish-cost p15) 10)
+ (= (glaze-cost p15) 15)
+ (= (grind-cost p15) 30)
+ (= (plane-cost p15) 20)
+ (unused p16)
+ (goalsize p16 small)
+ (= (spray-varnish-cost p16) 5)
+ (= (glaze-cost p16) 10)
+ (= (grind-cost p16) 15)
+ (= (plane-cost p16) 10)
+ (unused p17)
+ (goalsize p17 small)
+ (= (spray-varnish-cost p17) 5)
+ (= (glaze-cost p17) 10)
+ (= (grind-cost p17) 15)
+ (= (plane-cost p17) 10)
+ (boardsize b0 s3)
+ (wood b0 teak)
+ (surface-condition b0 rough)
+ (available b0)
+ (boardsize b1 s6)
+ (wood b1 mahogany)
+ (surface-condition b1 rough)
+ (available b1)
+ (boardsize b2 s6)
+ (wood b2 oak)
+ (surface-condition b2 smooth)
+ (available b2)
+ (boardsize b3 s8)
+ (wood b3 pine)
+ (surface-condition b3 rough)
+ (available b3)
+ (boardsize b4 s4)
+ (wood b4 pine)
+ (surface-condition b4 rough)
+ (available b4)
+ (boardsize b5 s8)
+ (wood b5 walnut)
+ (surface-condition b5 rough)
+ (available b5)
+ (boardsize b6 s2)
+ (wood b6 walnut)
+ (surface-condition b6 rough)
+ (available b6)
+ )
+ (:goal
+ (and
+ (available p0)
+ (wood p0 walnut)
+ (surface-condition p0 verysmooth)
+ (available p1)
+ (colour p1 natural)
+ (wood p1 teak)
+ (surface-condition p1 verysmooth)
+ (available p2)
+ (colour p2 natural)
+ (surface-condition p2 verysmooth)
+ (treatment p2 glazed)
+ (available p3)
+ (colour p3 black)
+ (wood p3 pine)
+ (surface-condition p3 verysmooth)
+ (treatment p3 varnished)
+ (available p4)
+ (colour p4 green)
+ (wood p4 pine)
+ (surface-condition p4 smooth)
+ (treatment p4 glazed)
+ (available p5)
+ (wood p5 walnut)
+ (surface-condition p5 verysmooth)
+ (treatment p5 glazed)
+ (available p6)
+ (colour p6 red)
+ (wood p6 oak)
+ (surface-condition p6 smooth)
+ (treatment p6 varnished)
+ (available p7)
+ (wood p7 pine)
+ (treatment p7 glazed)
+ (available p8)
+ (surface-condition p8 smooth)
+ (treatment p8 glazed)
+ (available p9)
+ (colour p9 white)
+ (wood p9 pine)
+ (available p10)
+ (colour p10 black)
+ (wood p10 oak)
+ (treatment p10 glazed)
+ (available p11)
+ (colour p11 natural)
+ (wood p11 pine)
+ (available p12)
+ (wood p12 walnut)
+ (surface-condition p12 verysmooth)
+ (available p13)
+ (colour p13 natural)
+ (surface-condition p13 smooth)
+ (available p14)
+ (wood p14 mahogany)
+ (treatment p14 glazed)
+ (available p15)
+ (wood p15 mahogany)
+ (surface-condition p15 verysmooth)
+ (available p16)
+ (colour p16 natural)
+ (treatment p16 varnished)
+ (available p17)
+ (colour p17 red)
+ (wood p17 teak)
+ )
+ )
+ (:metric minimize (total-cost))
+)
diff --git a/data/woodworking-sat08-strips/p07.pddl b/data/woodworking-sat08-strips/p07.pddl
new file mode 100644
index 00000000..581a366c
--- /dev/null
+++ b/data/woodworking-sat08-strips/p07.pddl
@@ -0,0 +1,311 @@
+; woodworking task with 21 parts and 140% wood
+; Machines:
+; 1 grinder
+; 1 glazer
+; 1 immersion-varnisher
+; 1 planer
+; 1 highspeed-saw
+; 1 spray-varnisher
+; 1 saw
+; random seed: 176206
+
+(define (problem wood-prob)
+ (:domain woodworking)
+ (:objects
+ grinder0 - grinder
+ glazer0 - glazer
+ immersion-varnisher0 - immersion-varnisher
+ planer0 - planer
+ highspeed-saw0 - highspeed-saw
+ spray-varnisher0 - spray-varnisher
+ saw0 - saw
+ red green blue mauve black white - acolour
+ mahogany oak beech teak cherry - awood
+ p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 p16 p17 p18 p19 p20 - part
+ b0 b1 b2 b3 b4 b5 b6 b7 b8 - board
+ s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 - aboardsize
+ )
+ (:init
+ (grind-treatment-change varnished colourfragments)
+ (grind-treatment-change glazed untreated)
+ (grind-treatment-change untreated untreated)
+ (grind-treatment-change colourfragments untreated)
+ (is-smooth smooth)
+ (is-smooth verysmooth)
+ (= (total-cost) 0)
+ (boardsize-successor s0 s1)
+ (boardsize-successor s1 s2)
+ (boardsize-successor s2 s3)
+ (boardsize-successor s3 s4)
+ (boardsize-successor s4 s5)
+ (boardsize-successor s5 s6)
+ (boardsize-successor s6 s7)
+ (boardsize-successor s7 s8)
+ (boardsize-successor s8 s9)
+ (boardsize-successor s9 s10)
+ (boardsize-successor s10 s11)
+ (has-colour glazer0 blue)
+ (has-colour glazer0 black)
+ (has-colour glazer0 white)
+ (has-colour glazer0 green)
+ (has-colour glazer0 mauve)
+ (has-colour immersion-varnisher0 blue)
+ (has-colour immersion-varnisher0 mauve)
+ (has-colour immersion-varnisher0 white)
+ (has-colour immersion-varnisher0 green)
+ (has-colour immersion-varnisher0 black)
+ (empty highspeed-saw0)
+ (has-colour spray-varnisher0 blue)
+ (has-colour spray-varnisher0 mauve)
+ (has-colour spray-varnisher0 white)
+ (has-colour spray-varnisher0 green)
+ (has-colour spray-varnisher0 black)
+ (available p0)
+ (colour p0 red)
+ (wood p0 teak)
+ (surface-condition p0 verysmooth)
+ (treatment p0 colourfragments)
+ (goalsize p0 medium)
+ (= (spray-varnish-cost p0) 10)
+ (= (glaze-cost p0) 15)
+ (= (grind-cost p0) 30)
+ (= (plane-cost p0) 20)
+ (unused p1)
+ (goalsize p1 large)
+ (= (spray-varnish-cost p1) 15)
+ (= (glaze-cost p1) 20)
+ (= (grind-cost p1) 45)
+ (= (plane-cost p1) 30)
+ (unused p2)
+ (goalsize p2 medium)
+ (= (spray-varnish-cost p2) 10)
+ (= (glaze-cost p2) 15)
+ (= (grind-cost p2) 30)
+ (= (plane-cost p2) 20)
+ (unused p3)
+ (goalsize p3 small)
+ (= (spray-varnish-cost p3) 5)
+ (= (glaze-cost p3) 10)
+ (= (grind-cost p3) 15)
+ (= (plane-cost p3) 10)
+ (unused p4)
+ (goalsize p4 medium)
+ (= (spray-varnish-cost p4) 10)
+ (= (glaze-cost p4) 15)
+ (= (grind-cost p4) 30)
+ (= (plane-cost p4) 20)
+ (unused p5)
+ (goalsize p5 medium)
+ (= (spray-varnish-cost p5) 10)
+ (= (glaze-cost p5) 15)
+ (= (grind-cost p5) 30)
+ (= (plane-cost p5) 20)
+ (unused p6)
+ (goalsize p6 large)
+ (= (spray-varnish-cost p6) 15)
+ (= (glaze-cost p6) 20)
+ (= (grind-cost p6) 45)
+ (= (plane-cost p6) 30)
+ (unused p7)
+ (goalsize p7 medium)
+ (= (spray-varnish-cost p7) 10)
+ (= (glaze-cost p7) 15)
+ (= (grind-cost p7) 30)
+ (= (plane-cost p7) 20)
+ (unused p8)
+ (goalsize p8 small)
+ (= (spray-varnish-cost p8) 5)
+ (= (glaze-cost p8) 10)
+ (= (grind-cost p8) 15)
+ (= (plane-cost p8) 10)
+ (unused p9)
+ (goalsize p9 medium)
+ (= (spray-varnish-cost p9) 10)
+ (= (glaze-cost p9) 15)
+ (= (grind-cost p9) 30)
+ (= (plane-cost p9) 20)
+ (unused p10)
+ (goalsize p10 small)
+ (= (spray-varnish-cost p10) 5)
+ (= (glaze-cost p10) 10)
+ (= (grind-cost p10) 15)
+ (= (plane-cost p10) 10)
+ (unused p11)
+ (goalsize p11 large)
+ (= (spray-varnish-cost p11) 15)
+ (= (glaze-cost p11) 20)
+ (= (grind-cost p11) 45)
+ (= (plane-cost p11) 30)
+ (unused p12)
+ (goalsize p12 medium)
+ (= (spray-varnish-cost p12) 10)
+ (= (glaze-cost p12) 15)
+ (= (grind-cost p12) 30)
+ (= (plane-cost p12) 20)
+ (unused p13)
+ (goalsize p13 medium)
+ (= (spray-varnish-cost p13) 10)
+ (= (glaze-cost p13) 15)
+ (= (grind-cost p13) 30)
+ (= (plane-cost p13) 20)
+ (unused p14)
+ (goalsize p14 medium)
+ (= (spray-varnish-cost p14) 10)
+ (= (glaze-cost p14) 15)
+ (= (grind-cost p14) 30)
+ (= (plane-cost p14) 20)
+ (unused p15)
+ (goalsize p15 small)
+ (= (spray-varnish-cost p15) 5)
+ (= (glaze-cost p15) 10)
+ (= (grind-cost p15) 15)
+ (= (plane-cost p15) 10)
+ (unused p16)
+ (goalsize p16 small)
+ (= (spray-varnish-cost p16) 5)
+ (= (glaze-cost p16) 10)
+ (= (grind-cost p16) 15)
+ (= (plane-cost p16) 10)
+ (unused p17)
+ (goalsize p17 large)
+ (= (spray-varnish-cost p17) 15)
+ (= (glaze-cost p17) 20)
+ (= (grind-cost p17) 45)
+ (= (plane-cost p17) 30)
+ (unused p18)
+ (goalsize p18 large)
+ (= (spray-varnish-cost p18) 15)
+ (= (glaze-cost p18) 20)
+ (= (grind-cost p18) 45)
+ (= (plane-cost p18) 30)
+ (unused p19)
+ (goalsize p19 medium)
+ (= (spray-varnish-cost p19) 10)
+ (= (glaze-cost p19) 15)
+ (= (grind-cost p19) 30)
+ (= (plane-cost p19) 20)
+ (unused p20)
+ (goalsize p20 large)
+ (= (spray-varnish-cost p20) 15)
+ (= (glaze-cost p20) 20)
+ (= (grind-cost p20) 45)
+ (= (plane-cost p20) 30)
+ (boardsize b0 s11)
+ (wood b0 beech)
+ (surface-condition b0 rough)
+ (available b0)
+ (boardsize b1 s8)
+ (wood b1 beech)
+ (surface-condition b1 smooth)
+ (available b1)
+ (boardsize b2 s2)
+ (wood b2 beech)
+ (surface-condition b2 rough)
+ (available b2)
+ (boardsize b3 s7)
+ (wood b3 teak)
+ (surface-condition b3 smooth)
+ (available b3)
+ (boardsize b4 s5)
+ (wood b4 teak)
+ (surface-condition b4 smooth)
+ (available b4)
+ (boardsize b5 s9)
+ (wood b5 mahogany)
+ (surface-condition b5 rough)
+ (available b5)
+ (boardsize b6 s7)
+ (wood b6 oak)
+ (surface-condition b6 smooth)
+ (available b6)
+ (boardsize b7 s5)
+ (wood b7 oak)
+ (surface-condition b7 rough)
+ (available b7)
+ (boardsize b8 s6)
+ (wood b8 cherry)
+ (surface-condition b8 rough)
+ (available b8)
+ )
+ (:goal
+ (and
+ (available p0)
+ (colour p0 green)
+ (wood p0 teak)
+ (available p1)
+ (colour p1 black)
+ (treatment p1 glazed)
+ (available p2)
+ (colour p2 green)
+ (treatment p2 glazed)
+ (available p3)
+ (wood p3 oak)
+ (treatment p3 glazed)
+ (available p4)
+ (colour p4 black)
+ (wood p4 beech)
+ (surface-condition p4 smooth)
+ (treatment p4 glazed)
+ (available p5)
+ (surface-condition p5 smooth)
+ (treatment p5 glazed)
+ (available p6)
+ (colour p6 white)
+ (wood p6 beech)
+ (surface-condition p6 verysmooth)
+ (available p7)
+ (wood p7 mahogany)
+ (treatment p7 varnished)
+ (available p8)
+ (colour p8 blue)
+ (wood p8 cherry)
+ (surface-condition p8 verysmooth)
+ (available p9)
+ (colour p9 white)
+ (wood p9 beech)
+ (surface-condition p9 verysmooth)
+ (treatment p9 varnished)
+ (available p10)
+ (colour p10 green)
+ (wood p10 oak)
+ (available p11)
+ (wood p11 beech)
+ (treatment p11 glazed)
+ (available p12)
+ (colour p12 green)
+ (wood p12 beech)
+ (available p13)
+ (colour p13 blue)
+ (wood p13 oak)
+ (surface-condition p13 verysmooth)
+ (treatment p13 varnished)
+ (available p14)
+ (colour p14 mauve)
+ (wood p14 oak)
+ (surface-condition p14 verysmooth)
+ (available p15)
+ (colour p15 mauve)
+ (treatment p15 glazed)
+ (available p16)
+ (colour p16 mauve)
+ (wood p16 teak)
+ (surface-condition p16 smooth)
+ (treatment p16 varnished)
+ (available p17)
+ (colour p17 black)
+ (wood p17 beech)
+ (available p18)
+ (colour p18 black)
+ (wood p18 mahogany)
+ (surface-condition p18 verysmooth)
+ (treatment p18 glazed)
+ (available p19)
+ (surface-condition p19 verysmooth)
+ (treatment p19 varnished)
+ (available p20)
+ (surface-condition p20 verysmooth)
+ (treatment p20 glazed)
+ )
+ )
+ (:metric minimize (total-cost))
+)
diff --git a/data/woodworking-sat08-strips/p08.pddl b/data/woodworking-sat08-strips/p08.pddl
new file mode 100644
index 00000000..ecda1a5a
--- /dev/null
+++ b/data/woodworking-sat08-strips/p08.pddl
@@ -0,0 +1,349 @@
+; woodworking task with 24 parts and 140% wood
+; Machines:
+; 1 grinder
+; 1 glazer
+; 1 immersion-varnisher
+; 1 planer
+; 1 highspeed-saw
+; 1 spray-varnisher
+; 1 saw
+; random seed: 490926
+
+(define (problem wood-prob)
+ (:domain woodworking)
+ (:objects
+ grinder0 - grinder
+ glazer0 - glazer
+ immersion-varnisher0 - immersion-varnisher
+ planer0 - planer
+ highspeed-saw0 - highspeed-saw
+ spray-varnisher0 - spray-varnisher
+ saw0 - saw
+ black mauve green blue red white - acolour
+ beech pine mahogany walnut cherry teak - awood
+ p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 p16 p17 p18 p19 p20 p21 p22 p23 - part
+ b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 - board
+ s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 - aboardsize
+ )
+ (:init
+ (grind-treatment-change varnished colourfragments)
+ (grind-treatment-change glazed untreated)
+ (grind-treatment-change untreated untreated)
+ (grind-treatment-change colourfragments untreated)
+ (is-smooth smooth)
+ (is-smooth verysmooth)
+ (= (total-cost) 0)
+ (boardsize-successor s0 s1)
+ (boardsize-successor s1 s2)
+ (boardsize-successor s2 s3)
+ (boardsize-successor s3 s4)
+ (boardsize-successor s4 s5)
+ (boardsize-successor s5 s6)
+ (boardsize-successor s6 s7)
+ (boardsize-successor s7 s8)
+ (boardsize-successor s8 s9)
+ (boardsize-successor s9 s10)
+ (boardsize-successor s10 s11)
+ (boardsize-successor s11 s12)
+ (has-colour glazer0 blue)
+ (has-colour glazer0 mauve)
+ (has-colour glazer0 white)
+ (has-colour glazer0 natural)
+ (has-colour glazer0 red)
+ (has-colour immersion-varnisher0 blue)
+ (has-colour immersion-varnisher0 mauve)
+ (has-colour immersion-varnisher0 natural)
+ (has-colour immersion-varnisher0 red)
+ (empty highspeed-saw0)
+ (has-colour spray-varnisher0 blue)
+ (has-colour spray-varnisher0 mauve)
+ (has-colour spray-varnisher0 natural)
+ (has-colour spray-varnisher0 red)
+ (unused p0)
+ (goalsize p0 large)
+ (= (spray-varnish-cost p0) 15)
+ (= (glaze-cost p0) 20)
+ (= (grind-cost p0) 45)
+ (= (plane-cost p0) 30)
+ (unused p1)
+ (goalsize p1 medium)
+ (= (spray-varnish-cost p1) 10)
+ (= (glaze-cost p1) 15)
+ (= (grind-cost p1) 30)
+ (= (plane-cost p1) 20)
+ (unused p2)
+ (goalsize p2 medium)
+ (= (spray-varnish-cost p2) 10)
+ (= (glaze-cost p2) 15)
+ (= (grind-cost p2) 30)
+ (= (plane-cost p2) 20)
+ (available p3)
+ (colour p3 green)
+ (wood p3 pine)
+ (surface-condition p3 verysmooth)
+ (treatment p3 varnished)
+ (goalsize p3 small)
+ (= (spray-varnish-cost p3) 5)
+ (= (glaze-cost p3) 10)
+ (= (grind-cost p3) 15)
+ (= (plane-cost p3) 10)
+ (unused p4)
+ (goalsize p4 large)
+ (= (spray-varnish-cost p4) 15)
+ (= (glaze-cost p4) 20)
+ (= (grind-cost p4) 45)
+ (= (plane-cost p4) 30)
+ (unused p5)
+ (goalsize p5 small)
+ (= (spray-varnish-cost p5) 5)
+ (= (glaze-cost p5) 10)
+ (= (grind-cost p5) 15)
+ (= (plane-cost p5) 10)
+ (unused p6)
+ (goalsize p6 large)
+ (= (spray-varnish-cost p6) 15)
+ (= (glaze-cost p6) 20)
+ (= (grind-cost p6) 45)
+ (= (plane-cost p6) 30)
+ (unused p7)
+ (goalsize p7 large)
+ (= (spray-varnish-cost p7) 15)
+ (= (glaze-cost p7) 20)
+ (= (grind-cost p7) 45)
+ (= (plane-cost p7) 30)
+ (unused p8)
+ (goalsize p8 large)
+ (= (spray-varnish-cost p8) 15)
+ (= (glaze-cost p8) 20)
+ (= (grind-cost p8) 45)
+ (= (plane-cost p8) 30)
+ (unused p9)
+ (goalsize p9 medium)
+ (= (spray-varnish-cost p9) 10)
+ (= (glaze-cost p9) 15)
+ (= (grind-cost p9) 30)
+ (= (plane-cost p9) 20)
+ (unused p10)
+ (goalsize p10 large)
+ (= (spray-varnish-cost p10) 15)
+ (= (glaze-cost p10) 20)
+ (= (grind-cost p10) 45)
+ (= (plane-cost p10) 30)
+ (unused p11)
+ (goalsize p11 medium)
+ (= (spray-varnish-cost p11) 10)
+ (= (glaze-cost p11) 15)
+ (= (grind-cost p11) 30)
+ (= (plane-cost p11) 20)
+ (unused p12)
+ (goalsize p12 small)
+ (= (spray-varnish-cost p12) 5)
+ (= (glaze-cost p12) 10)
+ (= (grind-cost p12) 15)
+ (= (plane-cost p12) 10)
+ (unused p13)
+ (goalsize p13 large)
+ (= (spray-varnish-cost p13) 15)
+ (= (glaze-cost p13) 20)
+ (= (grind-cost p13) 45)
+ (= (plane-cost p13) 30)
+ (unused p14)
+ (goalsize p14 small)
+ (= (spray-varnish-cost p14) 5)
+ (= (glaze-cost p14) 10)
+ (= (grind-cost p14) 15)
+ (= (plane-cost p14) 10)
+ (unused p15)
+ (goalsize p15 large)
+ (= (spray-varnish-cost p15) 15)
+ (= (glaze-cost p15) 20)
+ (= (grind-cost p15) 45)
+ (= (plane-cost p15) 30)
+ (available p16)
+ (colour p16 red)
+ (wood p16 teak)
+ (surface-condition p16 rough)
+ (treatment p16 varnished)
+ (goalsize p16 small)
+ (= (spray-varnish-cost p16) 5)
+ (= (glaze-cost p16) 10)
+ (= (grind-cost p16) 15)
+ (= (plane-cost p16) 10)
+ (unused p17)
+ (goalsize p17 large)
+ (= (spray-varnish-cost p17) 15)
+ (= (glaze-cost p17) 20)
+ (= (grind-cost p17) 45)
+ (= (plane-cost p17) 30)
+ (unused p18)
+ (goalsize p18 large)
+ (= (spray-varnish-cost p18) 15)
+ (= (glaze-cost p18) 20)
+ (= (grind-cost p18) 45)
+ (= (plane-cost p18) 30)
+ (unused p19)
+ (goalsize p19 large)
+ (= (spray-varnish-cost p19) 15)
+ (= (glaze-cost p19) 20)
+ (= (grind-cost p19) 45)
+ (= (plane-cost p19) 30)
+ (unused p20)
+ (goalsize p20 large)
+ (= (spray-varnish-cost p20) 15)
+ (= (glaze-cost p20) 20)
+ (= (grind-cost p20) 45)
+ (= (plane-cost p20) 30)
+ (unused p21)
+ (goalsize p21 large)
+ (= (spray-varnish-cost p21) 15)
+ (= (glaze-cost p21) 20)
+ (= (grind-cost p21) 45)
+ (= (plane-cost p21) 30)
+ (unused p22)
+ (goalsize p22 small)
+ (= (spray-varnish-cost p22) 5)
+ (= (glaze-cost p22) 10)
+ (= (grind-cost p22) 15)
+ (= (plane-cost p22) 10)
+ (unused p23)
+ (goalsize p23 large)
+ (= (spray-varnish-cost p23) 15)
+ (= (glaze-cost p23) 20)
+ (= (grind-cost p23) 45)
+ (= (plane-cost p23) 30)
+ (boardsize b0 s9)
+ (wood b0 cherry)
+ (surface-condition b0 rough)
+ (available b0)
+ (boardsize b1 s12)
+ (wood b1 mahogany)
+ (surface-condition b1 rough)
+ (available b1)
+ (boardsize b2 s7)
+ (wood b2 mahogany)
+ (surface-condition b2 smooth)
+ (available b2)
+ (boardsize b3 s9)
+ (wood b3 pine)
+ (surface-condition b3 rough)
+ (available b3)
+ (boardsize b4 s8)
+ (wood b4 walnut)
+ (surface-condition b4 rough)
+ (available b4)
+ (boardsize b5 s6)
+ (wood b5 walnut)
+ (surface-condition b5 rough)
+ (available b5)
+ (boardsize b6 s10)
+ (wood b6 teak)
+ (surface-condition b6 rough)
+ (available b6)
+ (boardsize b7 s3)
+ (wood b7 teak)
+ (surface-condition b7 rough)
+ (available b7)
+ (boardsize b8 s8)
+ (wood b8 beech)
+ (surface-condition b8 smooth)
+ (available b8)
+ (boardsize b9 s6)
+ (wood b9 beech)
+ (surface-condition b9 rough)
+ (available b9)
+ )
+ (:goal
+ (and
+ (available p0)
+ (wood p0 cherry)
+ (treatment p0 varnished)
+ (available p1)
+ (colour p1 blue)
+ (treatment p1 glazed)
+ (available p2)
+ (wood p2 beech)
+ (treatment p2 varnished)
+ (available p3)
+ (colour p3 red)
+ (wood p3 pine)
+ (surface-condition p3 smooth)
+ (treatment p3 glazed)
+ (available p4)
+ (colour p4 red)
+ (wood p4 mahogany)
+ (surface-condition p4 verysmooth)
+ (treatment p4 varnished)
+ (available p5)
+ (colour p5 white)
+ (surface-condition p5 smooth)
+ (treatment p5 glazed)
+ (available p6)
+ (colour p6 natural)
+ (wood p6 walnut)
+ (surface-condition p6 verysmooth)
+ (treatment p6 glazed)
+ (available p7)
+ (colour p7 red)
+ (wood p7 beech)
+ (surface-condition p7 smooth)
+ (treatment p7 varnished)
+ (available p8)
+ (colour p8 mauve)
+ (wood p8 pine)
+ (treatment p8 varnished)
+ (available p9)
+ (colour p9 red)
+ (wood p9 beech)
+ (surface-condition p9 smooth)
+ (treatment p9 varnished)
+ (available p10)
+ (surface-condition p10 verysmooth)
+ (treatment p10 varnished)
+ (available p11)
+ (colour p11 mauve)
+ (surface-condition p11 smooth)
+ (available p12)
+ (colour p12 blue)
+ (wood p12 mahogany)
+ (surface-condition p12 verysmooth)
+ (treatment p12 varnished)
+ (available p13)
+ (colour p13 natural)
+ (treatment p13 glazed)
+ (available p14)
+ (colour p14 mauve)
+ (wood p14 beech)
+ (treatment p14 glazed)
+ (available p15)
+ (wood p15 pine)
+ (surface-condition p15 verysmooth)
+ (available p16)
+ (wood p16 teak)
+ (surface-condition p16 verysmooth)
+ (available p17)
+ (surface-condition p17 verysmooth)
+ (treatment p17 glazed)
+ (available p18)
+ (wood p18 walnut)
+ (treatment p18 glazed)
+ (available p19)
+ (wood p19 mahogany)
+ (surface-condition p19 verysmooth)
+ (available p20)
+ (wood p20 teak)
+ (treatment p20 varnished)
+ (available p21)
+ (wood p21 mahogany)
+ (surface-condition p21 verysmooth)
+ (available p22)
+ (wood p22 cherry)
+ (surface-condition p22 verysmooth)
+ (available p23)
+ (colour p23 natural)
+ (wood p23 teak)
+ (surface-condition p23 smooth)
+ (treatment p23 varnished)
+ )
+ )
+ (:metric minimize (total-cost))
+)
diff --git a/data/woodworking-sat08-strips/p09.pddl b/data/woodworking-sat08-strips/p09.pddl
new file mode 100644
index 00000000..5310c848
--- /dev/null
+++ b/data/woodworking-sat08-strips/p09.pddl
@@ -0,0 +1,381 @@
+; woodworking task with 27 parts and 140% wood
+; Machines:
+; 1 grinder
+; 1 glazer
+; 1 immersion-varnisher
+; 1 planer
+; 1 highspeed-saw
+; 1 spray-varnisher
+; 1 saw
+; random seed: 633615
+
+(define (problem wood-prob)
+ (:domain woodworking)
+ (:objects
+ grinder0 - grinder
+ glazer0 - glazer
+ immersion-varnisher0 - immersion-varnisher
+ planer0 - planer
+ highspeed-saw0 - highspeed-saw
+ spray-varnisher0 - spray-varnisher
+ saw0 - saw
+ red green blue white black mauve - acolour
+ pine beech teak walnut oak mahogany cherry - awood
+ p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 p16 p17 p18 p19 p20 p21 p22 p23 p24 p25 p26 - part
+ b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 - board
+ s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 - aboardsize
+ )
+ (:init
+ (grind-treatment-change varnished colourfragments)
+ (grind-treatment-change glazed untreated)
+ (grind-treatment-change untreated untreated)
+ (grind-treatment-change colourfragments untreated)
+ (is-smooth smooth)
+ (is-smooth verysmooth)
+ (= (total-cost) 0)
+ (boardsize-successor s0 s1)
+ (boardsize-successor s1 s2)
+ (boardsize-successor s2 s3)
+ (boardsize-successor s3 s4)
+ (boardsize-successor s4 s5)
+ (boardsize-successor s5 s6)
+ (boardsize-successor s6 s7)
+ (boardsize-successor s7 s8)
+ (boardsize-successor s8 s9)
+ (boardsize-successor s9 s10)
+ (has-colour glazer0 blue)
+ (has-colour glazer0 natural)
+ (has-colour glazer0 mauve)
+ (has-colour glazer0 green)
+ (has-colour glazer0 black)
+ (has-colour glazer0 white)
+ (has-colour glazer0 red)
+ (has-colour immersion-varnisher0 blue)
+ (has-colour immersion-varnisher0 natural)
+ (has-colour immersion-varnisher0 mauve)
+ (has-colour immersion-varnisher0 black)
+ (has-colour immersion-varnisher0 white)
+ (has-colour immersion-varnisher0 red)
+ (empty highspeed-saw0)
+ (has-colour spray-varnisher0 blue)
+ (has-colour spray-varnisher0 natural)
+ (has-colour spray-varnisher0 mauve)
+ (has-colour spray-varnisher0 black)
+ (has-colour spray-varnisher0 white)
+ (has-colour spray-varnisher0 red)
+ (unused p0)
+ (goalsize p0 small)
+ (= (spray-varnish-cost p0) 5)
+ (= (glaze-cost p0) 10)
+ (= (grind-cost p0) 15)
+ (= (plane-cost p0) 10)
+ (unused p1)
+ (goalsize p1 medium)
+ (= (spray-varnish-cost p1) 10)
+ (= (glaze-cost p1) 15)
+ (= (grind-cost p1) 30)
+ (= (plane-cost p1) 20)
+ (unused p2)
+ (goalsize p2 large)
+ (= (spray-varnish-cost p2) 15)
+ (= (glaze-cost p2) 20)
+ (= (grind-cost p2) 45)
+ (= (plane-cost p2) 30)
+ (unused p3)
+ (goalsize p3 medium)
+ (= (spray-varnish-cost p3) 10)
+ (= (glaze-cost p3) 15)
+ (= (grind-cost p3) 30)
+ (= (plane-cost p3) 20)
+ (available p4)
+ (colour p4 black)
+ (wood p4 beech)
+ (surface-condition p4 verysmooth)
+ (treatment p4 glazed)
+ (goalsize p4 large)
+ (= (spray-varnish-cost p4) 15)
+ (= (glaze-cost p4) 20)
+ (= (grind-cost p4) 45)
+ (= (plane-cost p4) 30)
+ (unused p5)
+ (goalsize p5 large)
+ (= (spray-varnish-cost p5) 15)
+ (= (glaze-cost p5) 20)
+ (= (grind-cost p5) 45)
+ (= (plane-cost p5) 30)
+ (unused p6)
+ (goalsize p6 large)
+ (= (spray-varnish-cost p6) 15)
+ (= (glaze-cost p6) 20)
+ (= (grind-cost p6) 45)
+ (= (plane-cost p6) 30)
+ (unused p7)
+ (goalsize p7 small)
+ (= (spray-varnish-cost p7) 5)
+ (= (glaze-cost p7) 10)
+ (= (grind-cost p7) 15)
+ (= (plane-cost p7) 10)
+ (unused p8)
+ (goalsize p8 large)
+ (= (spray-varnish-cost p8) 15)
+ (= (glaze-cost p8) 20)
+ (= (grind-cost p8) 45)
+ (= (plane-cost p8) 30)
+ (unused p9)
+ (goalsize p9 large)
+ (= (spray-varnish-cost p9) 15)
+ (= (glaze-cost p9) 20)
+ (= (grind-cost p9) 45)
+ (= (plane-cost p9) 30)
+ (unused p10)
+ (goalsize p10 large)
+ (= (spray-varnish-cost p10) 15)
+ (= (glaze-cost p10) 20)
+ (= (grind-cost p10) 45)
+ (= (plane-cost p10) 30)
+ (unused p11)
+ (goalsize p11 small)
+ (= (spray-varnish-cost p11) 5)
+ (= (glaze-cost p11) 10)
+ (= (grind-cost p11) 15)
+ (= (plane-cost p11) 10)
+ (unused p12)
+ (goalsize p12 medium)
+ (= (spray-varnish-cost p12) 10)
+ (= (glaze-cost p12) 15)
+ (= (grind-cost p12) 30)
+ (= (plane-cost p12) 20)
+ (unused p13)
+ (goalsize p13 medium)
+ (= (spray-varnish-cost p13) 10)
+ (= (glaze-cost p13) 15)
+ (= (grind-cost p13) 30)
+ (= (plane-cost p13) 20)
+ (unused p14)
+ (goalsize p14 small)
+ (= (spray-varnish-cost p14) 5)
+ (= (glaze-cost p14) 10)
+ (= (grind-cost p14) 15)
+ (= (plane-cost p14) 10)
+ (unused p15)
+ (goalsize p15 medium)
+ (= (spray-varnish-cost p15) 10)
+ (= (glaze-cost p15) 15)
+ (= (grind-cost p15) 30)
+ (= (plane-cost p15) 20)
+ (unused p16)
+ (goalsize p16 small)
+ (= (spray-varnish-cost p16) 5)
+ (= (glaze-cost p16) 10)
+ (= (grind-cost p16) 15)
+ (= (plane-cost p16) 10)
+ (available p17)
+ (colour p17 blue)
+ (wood p17 teak)
+ (surface-condition p17 smooth)
+ (treatment p17 varnished)
+ (goalsize p17 medium)
+ (= (spray-varnish-cost p17) 10)
+ (= (glaze-cost p17) 15)
+ (= (grind-cost p17) 30)
+ (= (plane-cost p17) 20)
+ (unused p18)
+ (goalsize p18 large)
+ (= (spray-varnish-cost p18) 15)
+ (= (glaze-cost p18) 20)
+ (= (grind-cost p18) 45)
+ (= (plane-cost p18) 30)
+ (unused p19)
+ (goalsize p19 large)
+ (= (spray-varnish-cost p19) 15)
+ (= (glaze-cost p19) 20)
+ (= (grind-cost p19) 45)
+ (= (plane-cost p19) 30)
+ (unused p20)
+ (goalsize p20 large)
+ (= (spray-varnish-cost p20) 15)
+ (= (glaze-cost p20) 20)
+ (= (grind-cost p20) 45)
+ (= (plane-cost p20) 30)
+ (unused p21)
+ (goalsize p21 small)
+ (= (spray-varnish-cost p21) 5)
+ (= (glaze-cost p21) 10)
+ (= (grind-cost p21) 15)
+ (= (plane-cost p21) 10)
+ (unused p22)
+ (goalsize p22 small)
+ (= (spray-varnish-cost p22) 5)
+ (= (glaze-cost p22) 10)
+ (= (grind-cost p22) 15)
+ (= (plane-cost p22) 10)
+ (unused p23)
+ (goalsize p23 small)
+ (= (spray-varnish-cost p23) 5)
+ (= (glaze-cost p23) 10)
+ (= (grind-cost p23) 15)
+ (= (plane-cost p23) 10)
+ (unused p24)
+ (goalsize p24 medium)
+ (= (spray-varnish-cost p24) 10)
+ (= (glaze-cost p24) 15)
+ (= (grind-cost p24) 30)
+ (= (plane-cost p24) 20)
+ (unused p25)
+ (goalsize p25 medium)
+ (= (spray-varnish-cost p25) 10)
+ (= (glaze-cost p25) 15)
+ (= (grind-cost p25) 30)
+ (= (plane-cost p25) 20)
+ (unused p26)
+ (goalsize p26 medium)
+ (= (spray-varnish-cost p26) 10)
+ (= (glaze-cost p26) 15)
+ (= (grind-cost p26) 30)
+ (= (plane-cost p26) 20)
+ (boardsize b0 s6)
+ (wood b0 cherry)
+ (surface-condition b0 rough)
+ (available b0)
+ (boardsize b1 s10)
+ (wood b1 mahogany)
+ (surface-condition b1 rough)
+ (available b1)
+ (boardsize b2 s7)
+ (wood b2 mahogany)
+ (surface-condition b2 rough)
+ (available b2)
+ (boardsize b3 s5)
+ (wood b3 oak)
+ (surface-condition b3 rough)
+ (available b3)
+ (boardsize b4 s2)
+ (wood b4 oak)
+ (surface-condition b4 rough)
+ (available b4)
+ (boardsize b5 s10)
+ (wood b5 pine)
+ (surface-condition b5 smooth)
+ (available b5)
+ (boardsize b6 s6)
+ (wood b6 pine)
+ (surface-condition b6 rough)
+ (available b6)
+ (boardsize b7 s7)
+ (wood b7 walnut)
+ (surface-condition b7 smooth)
+ (available b7)
+ (boardsize b8 s7)
+ (wood b8 teak)
+ (surface-condition b8 rough)
+ (available b8)
+ (boardsize b9 s9)
+ (wood b9 beech)
+ (surface-condition b9 rough)
+ (available b9)
+ (boardsize b10 s4)
+ (wood b10 beech)
+ (surface-condition b10 smooth)
+ (available b10)
+ )
+ (:goal
+ (and
+ (available p0)
+ (colour p0 mauve)
+ (treatment p0 varnished)
+ (available p1)
+ (colour p1 mauve)
+ (surface-condition p1 smooth)
+ (available p2)
+ (wood p2 mahogany)
+ (surface-condition p2 smooth)
+ (available p3)
+ (colour p3 black)
+ (wood p3 teak)
+ (surface-condition p3 smooth)
+ (treatment p3 varnished)
+ (available p4)
+ (colour p4 green)
+ (wood p4 beech)
+ (surface-condition p4 smooth)
+ (treatment p4 glazed)
+ (available p5)
+ (colour p5 black)
+ (wood p5 walnut)
+ (surface-condition p5 smooth)
+ (treatment p5 varnished)
+ (available p6)
+ (colour p6 natural)
+ (wood p6 pine)
+ (surface-condition p6 smooth)
+ (treatment p6 varnished)
+ (available p7)
+ (surface-condition p7 verysmooth)
+ (treatment p7 varnished)
+ (available p8)
+ (colour p8 blue)
+ (wood p8 beech)
+ (available p9)
+ (colour p9 mauve)
+ (wood p9 pine)
+ (surface-condition p9 verysmooth)
+ (treatment p9 varnished)
+ (available p10)
+ (wood p10 pine)
+ (treatment p10 glazed)
+ (available p11)
+ (wood p11 mahogany)
+ (treatment p11 glazed)
+ (available p12)
+ (colour p12 blue)
+ (wood p12 oak)
+ (available p13)
+ (colour p13 mauve)
+ (surface-condition p13 verysmooth)
+ (available p14)
+ (colour p14 natural)
+ (surface-condition p14 verysmooth)
+ (available p15)
+ (colour p15 blue)
+ (surface-condition p15 smooth)
+ (available p16)
+ (colour p16 natural)
+ (surface-condition p16 smooth)
+ (treatment p16 varnished)
+ (available p17)
+ (colour p17 white)
+ (wood p17 teak)
+ (treatment p17 varnished)
+ (available p18)
+ (wood p18 mahogany)
+ (treatment p18 glazed)
+ (available p19)
+ (wood p19 mahogany)
+ (surface-condition p19 verysmooth)
+ (available p20)
+ (colour p20 blue)
+ (treatment p20 varnished)
+ (available p21)
+ (colour p21 red)
+ (wood p21 oak)
+ (available p22)
+ (colour p22 black)
+ (wood p22 oak)
+ (surface-condition p22 smooth)
+ (treatment p22 glazed)
+ (available p23)
+ (colour p23 white)
+ (surface-condition p23 verysmooth)
+ (available p24)
+ (wood p24 pine)
+ (surface-condition p24 verysmooth)
+ (available p25)
+ (wood p25 cherry)
+ (treatment p25 varnished)
+ (available p26)
+ (colour p26 mauve)
+ (surface-condition p26 verysmooth)
+ )
+ )
+ (:metric minimize (total-cost))
+)
diff --git a/data/woodworking-sat08-strips/p10.pddl b/data/woodworking-sat08-strips/p10.pddl
new file mode 100644
index 00000000..6f63b3ea
--- /dev/null
+++ b/data/woodworking-sat08-strips/p10.pddl
@@ -0,0 +1,426 @@
+; woodworking task with 30 parts and 140% wood
+; Machines:
+; 1 grinder
+; 1 glazer
+; 1 immersion-varnisher
+; 1 planer
+; 1 highspeed-saw
+; 1 spray-varnisher
+; 1 saw
+; random seed: 747708
+
+(define (problem wood-prob)
+ (:domain woodworking)
+ (:objects
+ grinder0 - grinder
+ glazer0 - glazer
+ immersion-varnisher0 - immersion-varnisher
+ planer0 - planer
+ highspeed-saw0 - highspeed-saw
+ spray-varnisher0 - spray-varnisher
+ saw0 - saw
+ black mauve white green blue red - acolour
+ teak beech cherry walnut pine mahogany oak - awood
+ p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 p16 p17 p18 p19 p20 p21 p22 p23 p24 p25 p26 p27 p28 p29 - part
+ b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 - board
+ s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 - aboardsize
+ )
+ (:init
+ (grind-treatment-change varnished colourfragments)
+ (grind-treatment-change glazed untreated)
+ (grind-treatment-change untreated untreated)
+ (grind-treatment-change colourfragments untreated)
+ (is-smooth smooth)
+ (is-smooth verysmooth)
+ (= (total-cost) 0)
+ (boardsize-successor s0 s1)
+ (boardsize-successor s1 s2)
+ (boardsize-successor s2 s3)
+ (boardsize-successor s3 s4)
+ (boardsize-successor s4 s5)
+ (boardsize-successor s5 s6)
+ (boardsize-successor s6 s7)
+ (boardsize-successor s7 s8)
+ (boardsize-successor s8 s9)
+ (boardsize-successor s9 s10)
+ (has-colour glazer0 blue)
+ (has-colour glazer0 natural)
+ (has-colour glazer0 mauve)
+ (has-colour glazer0 green)
+ (has-colour glazer0 black)
+ (has-colour glazer0 white)
+ (has-colour glazer0 red)
+ (has-colour immersion-varnisher0 blue)
+ (has-colour immersion-varnisher0 natural)
+ (has-colour immersion-varnisher0 mauve)
+ (has-colour immersion-varnisher0 black)
+ (has-colour immersion-varnisher0 white)
+ (has-colour immersion-varnisher0 red)
+ (empty highspeed-saw0)
+ (has-colour spray-varnisher0 blue)
+ (has-colour spray-varnisher0 natural)
+ (has-colour spray-varnisher0 mauve)
+ (has-colour spray-varnisher0 black)
+ (has-colour spray-varnisher0 white)
+ (has-colour spray-varnisher0 red)
+ (unused p0)
+ (goalsize p0 large)
+ (= (spray-varnish-cost p0) 15)
+ (= (glaze-cost p0) 20)
+ (= (grind-cost p0) 45)
+ (= (plane-cost p0) 30)
+ (unused p1)
+ (goalsize p1 medium)
+ (= (spray-varnish-cost p1) 10)
+ (= (glaze-cost p1) 15)
+ (= (grind-cost p1) 30)
+ (= (plane-cost p1) 20)
+ (unused p2)
+ (goalsize p2 small)
+ (= (spray-varnish-cost p2) 5)
+ (= (glaze-cost p2) 10)
+ (= (grind-cost p2) 15)
+ (= (plane-cost p2) 10)
+ (unused p3)
+ (goalsize p3 large)
+ (= (spray-varnish-cost p3) 15)
+ (= (glaze-cost p3) 20)
+ (= (grind-cost p3) 45)
+ (= (plane-cost p3) 30)
+ (available p4)
+ (colour p4 blue)
+ (wood p4 oak)
+ (surface-condition p4 smooth)
+ (treatment p4 colourfragments)
+ (goalsize p4 large)
+ (= (spray-varnish-cost p4) 15)
+ (= (glaze-cost p4) 20)
+ (= (grind-cost p4) 45)
+ (= (plane-cost p4) 30)
+ (unused p5)
+ (goalsize p5 small)
+ (= (spray-varnish-cost p5) 5)
+ (= (glaze-cost p5) 10)
+ (= (grind-cost p5) 15)
+ (= (plane-cost p5) 10)
+ (unused p6)
+ (goalsize p6 large)
+ (= (spray-varnish-cost p6) 15)
+ (= (glaze-cost p6) 20)
+ (= (grind-cost p6) 45)
+ (= (plane-cost p6) 30)
+ (unused p7)
+ (goalsize p7 large)
+ (= (spray-varnish-cost p7) 15)
+ (= (glaze-cost p7) 20)
+ (= (grind-cost p7) 45)
+ (= (plane-cost p7) 30)
+ (unused p8)
+ (goalsize p8 large)
+ (= (spray-varnish-cost p8) 15)
+ (= (glaze-cost p8) 20)
+ (= (grind-cost p8) 45)
+ (= (plane-cost p8) 30)
+ (unused p9)
+ (goalsize p9 medium)
+ (= (spray-varnish-cost p9) 10)
+ (= (glaze-cost p9) 15)
+ (= (grind-cost p9) 30)
+ (= (plane-cost p9) 20)
+ (unused p10)
+ (goalsize p10 large)
+ (= (spray-varnish-cost p10) 15)
+ (= (glaze-cost p10) 20)
+ (= (grind-cost p10) 45)
+ (= (plane-cost p10) 30)
+ (unused p11)
+ (goalsize p11 small)
+ (= (spray-varnish-cost p11) 5)
+ (= (glaze-cost p11) 10)
+ (= (grind-cost p11) 15)
+ (= (plane-cost p11) 10)
+ (unused p12)
+ (goalsize p12 medium)
+ (= (spray-varnish-cost p12) 10)
+ (= (glaze-cost p12) 15)
+ (= (grind-cost p12) 30)
+ (= (plane-cost p12) 20)
+ (unused p13)
+ (goalsize p13 large)
+ (= (spray-varnish-cost p13) 15)
+ (= (glaze-cost p13) 20)
+ (= (grind-cost p13) 45)
+ (= (plane-cost p13) 30)
+ (unused p14)
+ (goalsize p14 medium)
+ (= (spray-varnish-cost p14) 10)
+ (= (glaze-cost p14) 15)
+ (= (grind-cost p14) 30)
+ (= (plane-cost p14) 20)
+ (unused p15)
+ (goalsize p15 medium)
+ (= (spray-varnish-cost p15) 10)
+ (= (glaze-cost p15) 15)
+ (= (grind-cost p15) 30)
+ (= (plane-cost p15) 20)
+ (available p16)
+ (colour p16 green)
+ (wood p16 beech)
+ (surface-condition p16 verysmooth)
+ (treatment p16 varnished)
+ (goalsize p16 small)
+ (= (spray-varnish-cost p16) 5)
+ (= (glaze-cost p16) 10)
+ (= (grind-cost p16) 15)
+ (= (plane-cost p16) 10)
+ (unused p17)
+ (goalsize p17 medium)
+ (= (spray-varnish-cost p17) 10)
+ (= (glaze-cost p17) 15)
+ (= (grind-cost p17) 30)
+ (= (plane-cost p17) 20)
+ (available p18)
+ (colour p18 natural)
+ (wood p18 mahogany)
+ (surface-condition p18 smooth)
+ (treatment p18 glazed)
+ (goalsize p18 small)
+ (= (spray-varnish-cost p18) 5)
+ (= (glaze-cost p18) 10)
+ (= (grind-cost p18) 15)
+ (= (plane-cost p18) 10)
+ (available p19)
+ (colour p19 red)
+ (wood p19 walnut)
+ (surface-condition p19 verysmooth)
+ (treatment p19 varnished)
+ (goalsize p19 small)
+ (= (spray-varnish-cost p19) 5)
+ (= (glaze-cost p19) 10)
+ (= (grind-cost p19) 15)
+ (= (plane-cost p19) 10)
+ (unused p20)
+ (goalsize p20 medium)
+ (= (spray-varnish-cost p20) 10)
+ (= (glaze-cost p20) 15)
+ (= (grind-cost p20) 30)
+ (= (plane-cost p20) 20)
+ (unused p21)
+ (goalsize p21 small)
+ (= (spray-varnish-cost p21) 5)
+ (= (glaze-cost p21) 10)
+ (= (grind-cost p21) 15)
+ (= (plane-cost p21) 10)
+ (unused p22)
+ (goalsize p22 small)
+ (= (spray-varnish-cost p22) 5)
+ (= (glaze-cost p22) 10)
+ (= (grind-cost p22) 15)
+ (= (plane-cost p22) 10)
+ (unused p23)
+ (goalsize p23 small)
+ (= (spray-varnish-cost p23) 5)
+ (= (glaze-cost p23) 10)
+ (= (grind-cost p23) 15)
+ (= (plane-cost p23) 10)
+ (unused p24)
+ (goalsize p24 small)
+ (= (spray-varnish-cost p24) 5)
+ (= (glaze-cost p24) 10)
+ (= (grind-cost p24) 15)
+ (= (plane-cost p24) 10)
+ (available p25)
+ (colour p25 mauve)
+ (wood p25 cherry)
+ (surface-condition p25 rough)
+ (treatment p25 varnished)
+ (goalsize p25 small)
+ (= (spray-varnish-cost p25) 5)
+ (= (glaze-cost p25) 10)
+ (= (grind-cost p25) 15)
+ (= (plane-cost p25) 10)
+ (unused p26)
+ (goalsize p26 large)
+ (= (spray-varnish-cost p26) 15)
+ (= (glaze-cost p26) 20)
+ (= (grind-cost p26) 45)
+ (= (plane-cost p26) 30)
+ (unused p27)
+ (goalsize p27 medium)
+ (= (spray-varnish-cost p27) 10)
+ (= (glaze-cost p27) 15)
+ (= (grind-cost p27) 30)
+ (= (plane-cost p27) 20)
+ (unused p28)
+ (goalsize p28 small)
+ (= (spray-varnish-cost p28) 5)
+ (= (glaze-cost p28) 10)
+ (= (grind-cost p28) 15)
+ (= (plane-cost p28) 10)
+ (unused p29)
+ (goalsize p29 medium)
+ (= (spray-varnish-cost p29) 10)
+ (= (glaze-cost p29) 15)
+ (= (grind-cost p29) 30)
+ (= (plane-cost p29) 20)
+ (boardsize b0 s10)
+ (wood b0 cherry)
+ (surface-condition b0 rough)
+ (available b0)
+ (boardsize b1 s4)
+ (wood b1 cherry)
+ (surface-condition b1 rough)
+ (available b1)
+ (boardsize b2 s7)
+ (wood b2 mahogany)
+ (surface-condition b2 rough)
+ (available b2)
+ (boardsize b3 s6)
+ (wood b3 oak)
+ (surface-condition b3 rough)
+ (available b3)
+ (boardsize b4 s8)
+ (wood b4 oak)
+ (surface-condition b4 rough)
+ (available b4)
+ (boardsize b5 s6)
+ (wood b5 oak)
+ (surface-condition b5 smooth)
+ (available b5)
+ (boardsize b6 s9)
+ (wood b6 pine)
+ (surface-condition b6 smooth)
+ (available b6)
+ (boardsize b7 s3)
+ (wood b7 teak)
+ (surface-condition b7 smooth)
+ (available b7)
+ (boardsize b8 s10)
+ (wood b8 beech)
+ (surface-condition b8 rough)
+ (available b8)
+ (boardsize b9 s8)
+ (wood b9 beech)
+ (surface-condition b9 rough)
+ (available b9)
+ (boardsize b10 s1)
+ (wood b10 beech)
+ (surface-condition b10 rough)
+ (available b10)
+ )
+ (:goal
+ (and
+ (available p0)
+ (colour p0 black)
+ (treatment p0 glazed)
+ (available p1)
+ (colour p1 mauve)
+ (wood p1 oak)
+ (treatment p1 glazed)
+ (available p2)
+ (surface-condition p2 verysmooth)
+ (treatment p2 glazed)
+ (available p3)
+ (colour p3 white)
+ (surface-condition p3 verysmooth)
+ (available p4)
+ (wood p4 oak)
+ (surface-condition p4 verysmooth)
+ (treatment p4 glazed)
+ (available p5)
+ (colour p5 green)
+ (wood p5 oak)
+ (surface-condition p5 verysmooth)
+ (treatment p5 glazed)
+ (available p6)
+ (colour p6 black)
+ (wood p6 cherry)
+ (surface-condition p6 smooth)
+ (treatment p6 varnished)
+ (available p7)
+ (colour p7 natural)
+ (wood p7 mahogany)
+ (surface-condition p7 smooth)
+ (treatment p7 varnished)
+ (available p8)
+ (colour p8 natural)
+ (wood p8 beech)
+ (available p9)
+ (surface-condition p9 smooth)
+ (treatment p9 varnished)
+ (available p10)
+ (surface-condition p10 verysmooth)
+ (treatment p10 varnished)
+ (available p11)
+ (colour p11 mauve)
+ (surface-condition p11 smooth)
+ (available p12)
+ (colour p12 blue)
+ (wood p12 oak)
+ (surface-condition p12 smooth)
+ (treatment p12 varnished)
+ (available p13)
+ (colour p13 black)
+ (surface-condition p13 verysmooth)
+ (available p14)
+ (colour p14 natural)
+ (treatment p14 varnished)
+ (available p15)
+ (wood p15 beech)
+ (treatment p15 varnished)
+ (available p16)
+ (colour p16 red)
+ (surface-condition p16 smooth)
+ (available p17)
+ (colour p17 black)
+ (wood p17 oak)
+ (surface-condition p17 smooth)
+ (available p18)
+ (wood p18 mahogany)
+ (surface-condition p18 smooth)
+ (treatment p18 varnished)
+ (available p19)
+ (colour p19 natural)
+ (surface-condition p19 verysmooth)
+ (treatment p19 glazed)
+ (available p20)
+ (wood p20 pine)
+ (treatment p20 glazed)
+ (available p21)
+ (colour p21 red)
+ (wood p21 beech)
+ (surface-condition p21 verysmooth)
+ (treatment p21 glazed)
+ (available p22)
+ (colour p22 blue)
+ (surface-condition p22 smooth)
+ (treatment p22 glazed)
+ (available p23)
+ (colour p23 black)
+ (wood p23 pine)
+ (surface-condition p23 verysmooth)
+ (available p24)
+ (colour p24 black)
+ (treatment p24 glazed)
+ (available p25)
+ (colour p25 green)
+ (treatment p25 glazed)
+ (available p26)
+ (colour p26 natural)
+ (treatment p26 glazed)
+ (available p27)
+ (colour p27 green)
+ (treatment p27 glazed)
+ (available p28)
+ (colour p28 mauve)
+ (surface-condition p28 verysmooth)
+ (treatment p28 varnished)
+ (available p29)
+ (colour p29 black)
+ (wood p29 cherry)
+ (surface-condition p29 verysmooth)
+ (treatment p29 glazed)
+ )
+ )
+ (:metric minimize (total-cost))
+)
diff --git a/data/woodworking-sat08-strips/p11.pddl b/data/woodworking-sat08-strips/p11.pddl
new file mode 100644
index 00000000..21d602b9
--- /dev/null
+++ b/data/woodworking-sat08-strips/p11.pddl
@@ -0,0 +1,85 @@
+; woodworking task with 3 parts and 120% wood
+; Machines:
+; 1 grinder
+; 1 glazer
+; 1 immersion-varnisher
+; 1 planer
+; 1 highspeed-saw
+; 1 spray-varnisher
+; 1 saw
+; random seed: 578239
+
+(define (problem wood-prob)
+ (:domain woodworking)
+ (:objects
+ grinder0 - grinder
+ glazer0 - glazer
+ immersion-varnisher0 - immersion-varnisher
+ planer0 - planer
+ highspeed-saw0 - highspeed-saw
+ spray-varnisher0 - spray-varnisher
+ saw0 - saw
+ blue mauve - acolour
+ beech mahogany - awood
+ p0 p1 p2 - part
+ - board
+ s0 - aboardsize
+ )
+ (:init
+ (grind-treatment-change varnished colourfragments)
+ (grind-treatment-change glazed untreated)
+ (grind-treatment-change untreated untreated)
+ (grind-treatment-change colourfragments untreated)
+ (is-smooth smooth)
+ (is-smooth verysmooth)
+ (= (total-cost) 0)
+ (has-colour glazer0 natural)
+ (has-colour immersion-varnisher0 blue)
+ (empty highspeed-saw0)
+ (has-colour spray-varnisher0 mauve)
+ (available p0)
+ (colour p0 blue)
+ (wood p0 mahogany)
+ (surface-condition p0 verysmooth)
+ (treatment p0 colourfragments)
+ (goalsize p0 small)
+ (= (spray-varnish-cost p0) 5)
+ (= (glaze-cost p0) 10)
+ (= (grind-cost p0) 15)
+ (= (plane-cost p0) 10)
+ (available p1)
+ (colour p1 natural)
+ (wood p1 mahogany)
+ (surface-condition p1 smooth)
+ (treatment p1 colourfragments)
+ (goalsize p1 small)
+ (= (spray-varnish-cost p1) 5)
+ (= (glaze-cost p1) 10)
+ (= (grind-cost p1) 15)
+ (= (plane-cost p1) 10)
+ (available p2)
+ (colour p2 mauve)
+ (wood p2 beech)
+ (surface-condition p2 verysmooth)
+ (treatment p2 colourfragments)
+ (goalsize p2 small)
+ (= (spray-varnish-cost p2) 5)
+ (= (glaze-cost p2) 10)
+ (= (grind-cost p2) 15)
+ (= (plane-cost p2) 10)
+ )
+ (:goal
+ (and
+ (available p0)
+ (wood p0 mahogany)
+ (surface-condition p0 smooth)
+ (available p1)
+ (surface-condition p1 smooth)
+ (treatment p1 glazed)
+ (available p2)
+ (colour p2 natural)
+ (treatment p2 glazed)
+ )
+ )
+ (:metric minimize (total-cost))
+)
diff --git a/data/woodworking-sat08-strips/p12.pddl b/data/woodworking-sat08-strips/p12.pddl
new file mode 100644
index 00000000..a46b37c8
--- /dev/null
+++ b/data/woodworking-sat08-strips/p12.pddl
@@ -0,0 +1,126 @@
+; woodworking task with 6 parts and 120% wood
+; Machines:
+; 1 grinder
+; 1 glazer
+; 1 immersion-varnisher
+; 1 planer
+; 1 highspeed-saw
+; 1 spray-varnisher
+; 1 saw
+; random seed: 920484
+
+(define (problem wood-prob)
+ (:domain woodworking)
+ (:objects
+ grinder0 - grinder
+ glazer0 - glazer
+ immersion-varnisher0 - immersion-varnisher
+ planer0 - planer
+ highspeed-saw0 - highspeed-saw
+ spray-varnisher0 - spray-varnisher
+ saw0 - saw
+ black blue mauve green - acolour
+ cherry pine - awood
+ p0 p1 p2 p3 p4 p5 - part
+ b0 b1 - board
+ s0 s1 s2 s3 s4 s5 s6 s7 s8 - aboardsize
+ )
+ (:init
+ (grind-treatment-change varnished colourfragments)
+ (grind-treatment-change glazed untreated)
+ (grind-treatment-change untreated untreated)
+ (grind-treatment-change colourfragments untreated)
+ (is-smooth smooth)
+ (is-smooth verysmooth)
+ (= (total-cost) 0)
+ (boardsize-successor s0 s1)
+ (boardsize-successor s1 s2)
+ (boardsize-successor s2 s3)
+ (boardsize-successor s3 s4)
+ (boardsize-successor s4 s5)
+ (boardsize-successor s5 s6)
+ (boardsize-successor s6 s7)
+ (boardsize-successor s7 s8)
+ (has-colour glazer0 black)
+ (has-colour immersion-varnisher0 blue)
+ (empty highspeed-saw0)
+ (has-colour spray-varnisher0 blue)
+ (available p0)
+ (colour p0 black)
+ (wood p0 cherry)
+ (surface-condition p0 rough)
+ (treatment p0 glazed)
+ (goalsize p0 small)
+ (= (spray-varnish-cost p0) 5)
+ (= (glaze-cost p0) 10)
+ (= (grind-cost p0) 15)
+ (= (plane-cost p0) 10)
+ (unused p1)
+ (goalsize p1 large)
+ (= (spray-varnish-cost p1) 15)
+ (= (glaze-cost p1) 20)
+ (= (grind-cost p1) 45)
+ (= (plane-cost p1) 30)
+ (unused p2)
+ (goalsize p2 large)
+ (= (spray-varnish-cost p2) 15)
+ (= (glaze-cost p2) 20)
+ (= (grind-cost p2) 45)
+ (= (plane-cost p2) 30)
+ (unused p3)
+ (goalsize p3 small)
+ (= (spray-varnish-cost p3) 5)
+ (= (glaze-cost p3) 10)
+ (= (grind-cost p3) 15)
+ (= (plane-cost p3) 10)
+ (unused p4)
+ (goalsize p4 large)
+ (= (spray-varnish-cost p4) 15)
+ (= (glaze-cost p4) 20)
+ (= (grind-cost p4) 45)
+ (= (plane-cost p4) 30)
+ (available p5)
+ (colour p5 mauve)
+ (wood p5 cherry)
+ (surface-condition p5 rough)
+ (treatment p5 colourfragments)
+ (goalsize p5 medium)
+ (= (spray-varnish-cost p5) 10)
+ (= (glaze-cost p5) 15)
+ (= (grind-cost p5) 30)
+ (= (plane-cost p5) 20)
+ (boardsize b0 s5)
+ (wood b0 cherry)
+ (surface-condition b0 rough)
+ (available b0)
+ (boardsize b1 s8)
+ (wood b1 pine)
+ (surface-condition b1 smooth)
+ (available b1)
+ )
+ (:goal
+ (and
+ (available p0)
+ (surface-condition p0 verysmooth)
+ (treatment p0 varnished)
+ (available p1)
+ (wood p1 pine)
+ (surface-condition p1 smooth)
+ (available p2)
+ (colour p2 blue)
+ (wood p2 pine)
+ (surface-condition p2 verysmooth)
+ (treatment p2 varnished)
+ (available p3)
+ (wood p3 cherry)
+ (surface-condition p3 smooth)
+ (available p4)
+ (wood p4 cherry)
+ (surface-condition p4 verysmooth)
+ (available p5)
+ (wood p5 cherry)
+ (surface-condition p5 smooth)
+ )
+ )
+ (:metric minimize (total-cost))
+)
diff --git a/data/woodworking-sat08-strips/p13.pddl b/data/woodworking-sat08-strips/p13.pddl
new file mode 100644
index 00000000..2b00e854
--- /dev/null
+++ b/data/woodworking-sat08-strips/p13.pddl
@@ -0,0 +1,161 @@
+; woodworking task with 9 parts and 120% wood
+; Machines:
+; 1 grinder
+; 1 glazer
+; 1 immersion-varnisher
+; 1 planer
+; 1 highspeed-saw
+; 1 spray-varnisher
+; 1 saw
+; random seed: 958211
+
+(define (problem wood-prob)
+ (:domain woodworking)
+ (:objects
+ grinder0 - grinder
+ glazer0 - glazer
+ immersion-varnisher0 - immersion-varnisher
+ planer0 - planer
+ highspeed-saw0 - highspeed-saw
+ spray-varnisher0 - spray-varnisher
+ saw0 - saw
+ green mauve blue red black white - acolour
+ cherry mahogany - awood
+ p0 p1 p2 p3 p4 p5 p6 p7 p8 - part
+ b0 b1 b2 - board
+ s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 - aboardsize
+ )
+ (:init
+ (grind-treatment-change varnished colourfragments)
+ (grind-treatment-change glazed untreated)
+ (grind-treatment-change untreated untreated)
+ (grind-treatment-change colourfragments untreated)
+ (is-smooth smooth)
+ (is-smooth verysmooth)
+ (= (total-cost) 0)
+ (boardsize-successor s0 s1)
+ (boardsize-successor s1 s2)
+ (boardsize-successor s2 s3)
+ (boardsize-successor s3 s4)
+ (boardsize-successor s4 s5)
+ (boardsize-successor s5 s6)
+ (boardsize-successor s6 s7)
+ (boardsize-successor s7 s8)
+ (boardsize-successor s8 s9)
+ (has-colour glazer0 blue)
+ (has-colour glazer0 white)
+ (has-colour immersion-varnisher0 blue)
+ (has-colour immersion-varnisher0 white)
+ (has-colour immersion-varnisher0 black)
+ (has-colour immersion-varnisher0 red)
+ (empty highspeed-saw0)
+ (has-colour spray-varnisher0 blue)
+ (has-colour spray-varnisher0 white)
+ (has-colour spray-varnisher0 black)
+ (has-colour spray-varnisher0 red)
+ (unused p0)
+ (goalsize p0 large)
+ (= (spray-varnish-cost p0) 15)
+ (= (glaze-cost p0) 20)
+ (= (grind-cost p0) 45)
+ (= (plane-cost p0) 30)
+ (unused p1)
+ (goalsize p1 medium)
+ (= (spray-varnish-cost p1) 10)
+ (= (glaze-cost p1) 15)
+ (= (grind-cost p1) 30)
+ (= (plane-cost p1) 20)
+ (unused p2)
+ (goalsize p2 small)
+ (= (spray-varnish-cost p2) 5)
+ (= (glaze-cost p2) 10)
+ (= (grind-cost p2) 15)
+ (= (plane-cost p2) 10)
+ (unused p3)
+ (goalsize p3 medium)
+ (= (spray-varnish-cost p3) 10)
+ (= (glaze-cost p3) 15)
+ (= (grind-cost p3) 30)
+ (= (plane-cost p3) 20)
+ (unused p4)
+ (goalsize p4 small)
+ (= (spray-varnish-cost p4) 5)
+ (= (glaze-cost p4) 10)
+ (= (grind-cost p4) 15)
+ (= (plane-cost p4) 10)
+ (unused p5)
+ (goalsize p5 small)
+ (= (spray-varnish-cost p5) 5)
+ (= (glaze-cost p5) 10)
+ (= (grind-cost p5) 15)
+ (= (plane-cost p5) 10)
+ (unused p6)
+ (goalsize p6 medium)
+ (= (spray-varnish-cost p6) 10)
+ (= (glaze-cost p6) 15)
+ (= (grind-cost p6) 30)
+ (= (plane-cost p6) 20)
+ (unused p7)
+ (goalsize p7 large)
+ (= (spray-varnish-cost p7) 15)
+ (= (glaze-cost p7) 20)
+ (= (grind-cost p7) 45)
+ (= (plane-cost p7) 30)
+ (unused p8)
+ (goalsize p8 large)
+ (= (spray-varnish-cost p8) 15)
+ (= (glaze-cost p8) 20)
+ (= (grind-cost p8) 45)
+ (= (plane-cost p8) 30)
+ (boardsize b0 s9)
+ (wood b0 cherry)
+ (surface-condition b0 rough)
+ (available b0)
+ (boardsize b1 s7)
+ (wood b1 mahogany)
+ (surface-condition b1 rough)
+ (available b1)
+ (boardsize b2 s7)
+ (wood b2 mahogany)
+ (surface-condition b2 rough)
+ (available b2)
+ )
+ (:goal
+ (and
+ (available p0)
+ (colour p0 red)
+ (wood p0 cherry)
+ (surface-condition p0 verysmooth)
+ (treatment p0 varnished)
+ (available p1)
+ (colour p1 blue)
+ (surface-condition p1 verysmooth)
+ (available p2)
+ (colour p2 white)
+ (wood p2 cherry)
+ (surface-condition p2 smooth)
+ (treatment p2 varnished)
+ (available p3)
+ (surface-condition p3 smooth)
+ (treatment p3 glazed)
+ (available p4)
+ (colour p4 black)
+ (wood p4 mahogany)
+ (surface-condition p4 smooth)
+ (treatment p4 varnished)
+ (available p5)
+ (colour p5 white)
+ (wood p5 mahogany)
+ (available p6)
+ (colour p6 white)
+ (treatment p6 glazed)
+ (available p7)
+ (wood p7 cherry)
+ (surface-condition p7 smooth)
+ (available p8)
+ (wood p8 mahogany)
+ (treatment p8 glazed)
+ )
+ )
+ (:metric minimize (total-cost))
+)
diff --git a/data/woodworking-sat08-strips/p14.pddl b/data/woodworking-sat08-strips/p14.pddl
new file mode 100644
index 00000000..076b70e9
--- /dev/null
+++ b/data/woodworking-sat08-strips/p14.pddl
@@ -0,0 +1,205 @@
+; woodworking task with 12 parts and 120% wood
+; Machines:
+; 1 grinder
+; 1 glazer
+; 1 immersion-varnisher
+; 1 planer
+; 1 highspeed-saw
+; 1 spray-varnisher
+; 1 saw
+; random seed: 48592
+
+(define (problem wood-prob)
+ (:domain woodworking)
+ (:objects
+ grinder0 - grinder
+ glazer0 - glazer
+ immersion-varnisher0 - immersion-varnisher
+ planer0 - planer
+ highspeed-saw0 - highspeed-saw
+ spray-varnisher0 - spray-varnisher
+ saw0 - saw
+ green blue red mauve white black - acolour
+ beech teak cherry - awood
+ p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 - part
+ b0 b1 b2 b3 b4 - board
+ s0 s1 s2 s3 s4 s5 s6 s7 s8 - aboardsize
+ )
+ (:init
+ (grind-treatment-change varnished colourfragments)
+ (grind-treatment-change glazed untreated)
+ (grind-treatment-change untreated untreated)
+ (grind-treatment-change colourfragments untreated)
+ (is-smooth smooth)
+ (is-smooth verysmooth)
+ (= (total-cost) 0)
+ (boardsize-successor s0 s1)
+ (boardsize-successor s1 s2)
+ (boardsize-successor s2 s3)
+ (boardsize-successor s3 s4)
+ (boardsize-successor s4 s5)
+ (boardsize-successor s5 s6)
+ (boardsize-successor s6 s7)
+ (boardsize-successor s7 s8)
+ (has-colour glazer0 blue)
+ (has-colour glazer0 natural)
+ (has-colour glazer0 white)
+ (has-colour glazer0 green)
+ (has-colour glazer0 red)
+ (has-colour immersion-varnisher0 blue)
+ (has-colour immersion-varnisher0 natural)
+ (has-colour immersion-varnisher0 green)
+ (has-colour immersion-varnisher0 black)
+ (has-colour immersion-varnisher0 white)
+ (has-colour immersion-varnisher0 red)
+ (empty highspeed-saw0)
+ (has-colour spray-varnisher0 blue)
+ (has-colour spray-varnisher0 natural)
+ (has-colour spray-varnisher0 green)
+ (has-colour spray-varnisher0 black)
+ (has-colour spray-varnisher0 white)
+ (has-colour spray-varnisher0 red)
+ (unused p0)
+ (goalsize p0 small)
+ (= (spray-varnish-cost p0) 5)
+ (= (glaze-cost p0) 10)
+ (= (grind-cost p0) 15)
+ (= (plane-cost p0) 10)
+ (available p1)
+ (colour p1 blue)
+ (wood p1 beech)
+ (surface-condition p1 smooth)
+ (treatment p1 glazed)
+ (goalsize p1 small)
+ (= (spray-varnish-cost p1) 5)
+ (= (glaze-cost p1) 10)
+ (= (grind-cost p1) 15)
+ (= (plane-cost p1) 10)
+ (unused p2)
+ (goalsize p2 large)
+ (= (spray-varnish-cost p2) 15)
+ (= (glaze-cost p2) 20)
+ (= (grind-cost p2) 45)
+ (= (plane-cost p2) 30)
+ (unused p3)
+ (goalsize p3 small)
+ (= (spray-varnish-cost p3) 5)
+ (= (glaze-cost p3) 10)
+ (= (grind-cost p3) 15)
+ (= (plane-cost p3) 10)
+ (unused p4)
+ (goalsize p4 medium)
+ (= (spray-varnish-cost p4) 10)
+ (= (glaze-cost p4) 15)
+ (= (grind-cost p4) 30)
+ (= (plane-cost p4) 20)
+ (unused p5)
+ (goalsize p5 medium)
+ (= (spray-varnish-cost p5) 10)
+ (= (glaze-cost p5) 15)
+ (= (grind-cost p5) 30)
+ (= (plane-cost p5) 20)
+ (unused p6)
+ (goalsize p6 large)
+ (= (spray-varnish-cost p6) 15)
+ (= (glaze-cost p6) 20)
+ (= (grind-cost p6) 45)
+ (= (plane-cost p6) 30)
+ (unused p7)
+ (goalsize p7 large)
+ (= (spray-varnish-cost p7) 15)
+ (= (glaze-cost p7) 20)
+ (= (grind-cost p7) 45)
+ (= (plane-cost p7) 30)
+ (unused p8)
+ (goalsize p8 large)
+ (= (spray-varnish-cost p8) 15)
+ (= (glaze-cost p8) 20)
+ (= (grind-cost p8) 45)
+ (= (plane-cost p8) 30)
+ (unused p9)
+ (goalsize p9 small)
+ (= (spray-varnish-cost p9) 5)
+ (= (glaze-cost p9) 10)
+ (= (grind-cost p9) 15)
+ (= (plane-cost p9) 10)
+ (unused p10)
+ (goalsize p10 medium)
+ (= (spray-varnish-cost p10) 10)
+ (= (glaze-cost p10) 15)
+ (= (grind-cost p10) 30)
+ (= (plane-cost p10) 20)
+ (unused p11)
+ (goalsize p11 medium)
+ (= (spray-varnish-cost p11) 10)
+ (= (glaze-cost p11) 15)
+ (= (grind-cost p11) 30)
+ (= (plane-cost p11) 20)
+ (boardsize b0 s6)
+ (wood b0 beech)
+ (surface-condition b0 smooth)
+ (available b0)
+ (boardsize b1 s6)
+ (wood b1 beech)
+ (surface-condition b1 rough)
+ (available b1)
+ (boardsize b2 s8)
+ (wood b2 cherry)
+ (surface-condition b2 rough)
+ (available b2)
+ (boardsize b3 s3)
+ (wood b3 cherry)
+ (surface-condition b3 smooth)
+ (available b3)
+ (boardsize b4 s5)
+ (wood b4 teak)
+ (surface-condition b4 rough)
+ (available b4)
+ )
+ (:goal
+ (and
+ (available p0)
+ (wood p0 cherry)
+ (surface-condition p0 verysmooth)
+ (available p1)
+ (colour p1 white)
+ (surface-condition p1 verysmooth)
+ (available p2)
+ (wood p2 beech)
+ (surface-condition p2 smooth)
+ (available p3)
+ (colour p3 blue)
+ (wood p3 beech)
+ (surface-condition p3 smooth)
+ (treatment p3 varnished)
+ (available p4)
+ (colour p4 black)
+ (wood p4 teak)
+ (treatment p4 varnished)
+ (available p5)
+ (colour p5 blue)
+ (wood p5 beech)
+ (available p6)
+ (colour p6 natural)
+ (surface-condition p6 verysmooth)
+ (available p7)
+ (colour p7 white)
+ (wood p7 beech)
+ (surface-condition p7 verysmooth)
+ (treatment p7 glazed)
+ (available p8)
+ (colour p8 red)
+ (surface-condition p8 smooth)
+ (available p9)
+ (colour p9 red)
+ (surface-condition p9 verysmooth)
+ (available p10)
+ (colour p10 green)
+ (wood p10 cherry)
+ (available p11)
+ (surface-condition p11 verysmooth)
+ (treatment p11 glazed)
+ )
+ )
+ (:metric minimize (total-cost))
+)
diff --git a/data/woodworking-sat08-strips/p15.pddl b/data/woodworking-sat08-strips/p15.pddl
new file mode 100644
index 00000000..431ace50
--- /dev/null
+++ b/data/woodworking-sat08-strips/p15.pddl
@@ -0,0 +1,234 @@
+; woodworking task with 15 parts and 120% wood
+; Machines:
+; 1 grinder
+; 1 glazer
+; 1 immersion-varnisher
+; 1 planer
+; 1 highspeed-saw
+; 1 spray-varnisher
+; 1 saw
+; random seed: 370706
+
+(define (problem wood-prob)
+ (:domain woodworking)
+ (:objects
+ grinder0 - grinder
+ glazer0 - glazer
+ immersion-varnisher0 - immersion-varnisher
+ planer0 - planer
+ highspeed-saw0 - highspeed-saw
+ spray-varnisher0 - spray-varnisher
+ saw0 - saw
+ mauve white blue black red green - acolour
+ oak mahogany teak beech - awood
+ p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 - part
+ b0 b1 b2 b3 b4 - board
+ s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 - aboardsize
+ )
+ (:init
+ (grind-treatment-change varnished colourfragments)
+ (grind-treatment-change glazed untreated)
+ (grind-treatment-change untreated untreated)
+ (grind-treatment-change colourfragments untreated)
+ (is-smooth smooth)
+ (is-smooth verysmooth)
+ (= (total-cost) 0)
+ (boardsize-successor s0 s1)
+ (boardsize-successor s1 s2)
+ (boardsize-successor s2 s3)
+ (boardsize-successor s3 s4)
+ (boardsize-successor s4 s5)
+ (boardsize-successor s5 s6)
+ (boardsize-successor s6 s7)
+ (boardsize-successor s7 s8)
+ (boardsize-successor s8 s9)
+ (boardsize-successor s9 s10)
+ (boardsize-successor s10 s11)
+ (has-colour glazer0 blue)
+ (has-colour glazer0 white)
+ (has-colour glazer0 red)
+ (has-colour immersion-varnisher0 blue)
+ (has-colour immersion-varnisher0 white)
+ (empty highspeed-saw0)
+ (has-colour spray-varnisher0 blue)
+ (has-colour spray-varnisher0 white)
+ (unused p0)
+ (goalsize p0 large)
+ (= (spray-varnish-cost p0) 15)
+ (= (glaze-cost p0) 20)
+ (= (grind-cost p0) 45)
+ (= (plane-cost p0) 30)
+ (unused p1)
+ (goalsize p1 large)
+ (= (spray-varnish-cost p1) 15)
+ (= (glaze-cost p1) 20)
+ (= (grind-cost p1) 45)
+ (= (plane-cost p1) 30)
+ (unused p2)
+ (goalsize p2 small)
+ (= (spray-varnish-cost p2) 5)
+ (= (glaze-cost p2) 10)
+ (= (grind-cost p2) 15)
+ (= (plane-cost p2) 10)
+ (available p3)
+ (colour p3 green)
+ (wood p3 beech)
+ (surface-condition p3 verysmooth)
+ (treatment p3 varnished)
+ (goalsize p3 large)
+ (= (spray-varnish-cost p3) 15)
+ (= (glaze-cost p3) 20)
+ (= (grind-cost p3) 45)
+ (= (plane-cost p3) 30)
+ (unused p4)
+ (goalsize p4 medium)
+ (= (spray-varnish-cost p4) 10)
+ (= (glaze-cost p4) 15)
+ (= (grind-cost p4) 30)
+ (= (plane-cost p4) 20)
+ (unused p5)
+ (goalsize p5 large)
+ (= (spray-varnish-cost p5) 15)
+ (= (glaze-cost p5) 20)
+ (= (grind-cost p5) 45)
+ (= (plane-cost p5) 30)
+ (unused p6)
+ (goalsize p6 large)
+ (= (spray-varnish-cost p6) 15)
+ (= (glaze-cost p6) 20)
+ (= (grind-cost p6) 45)
+ (= (plane-cost p6) 30)
+ (unused p7)
+ (goalsize p7 large)
+ (= (spray-varnish-cost p7) 15)
+ (= (glaze-cost p7) 20)
+ (= (grind-cost p7) 45)
+ (= (plane-cost p7) 30)
+ (unused p8)
+ (goalsize p8 large)
+ (= (spray-varnish-cost p8) 15)
+ (= (glaze-cost p8) 20)
+ (= (grind-cost p8) 45)
+ (= (plane-cost p8) 30)
+ (unused p9)
+ (goalsize p9 medium)
+ (= (spray-varnish-cost p9) 10)
+ (= (glaze-cost p9) 15)
+ (= (grind-cost p9) 30)
+ (= (plane-cost p9) 20)
+ (unused p10)
+ (goalsize p10 large)
+ (= (spray-varnish-cost p10) 15)
+ (= (glaze-cost p10) 20)
+ (= (grind-cost p10) 45)
+ (= (plane-cost p10) 30)
+ (unused p11)
+ (goalsize p11 small)
+ (= (spray-varnish-cost p11) 5)
+ (= (glaze-cost p11) 10)
+ (= (grind-cost p11) 15)
+ (= (plane-cost p11) 10)
+ (unused p12)
+ (goalsize p12 large)
+ (= (spray-varnish-cost p12) 15)
+ (= (glaze-cost p12) 20)
+ (= (grind-cost p12) 45)
+ (= (plane-cost p12) 30)
+ (available p13)
+ (colour p13 red)
+ (wood p13 beech)
+ (surface-condition p13 rough)
+ (treatment p13 glazed)
+ (goalsize p13 medium)
+ (= (spray-varnish-cost p13) 10)
+ (= (glaze-cost p13) 15)
+ (= (grind-cost p13) 30)
+ (= (plane-cost p13) 20)
+ (available p14)
+ (colour p14 green)
+ (wood p14 teak)
+ (surface-condition p14 rough)
+ (treatment p14 colourfragments)
+ (goalsize p14 small)
+ (= (spray-varnish-cost p14) 5)
+ (= (glaze-cost p14) 10)
+ (= (grind-cost p14) 15)
+ (= (plane-cost p14) 10)
+ (boardsize b0 s10)
+ (wood b0 beech)
+ (surface-condition b0 rough)
+ (available b0)
+ (boardsize b1 s5)
+ (wood b1 teak)
+ (surface-condition b1 rough)
+ (available b1)
+ (boardsize b2 s9)
+ (wood b2 mahogany)
+ (surface-condition b2 rough)
+ (available b2)
+ (boardsize b3 s11)
+ (wood b3 oak)
+ (surface-condition b3 rough)
+ (available b3)
+ (boardsize b4 s3)
+ (wood b4 oak)
+ (surface-condition b4 rough)
+ (available b4)
+ )
+ (:goal
+ (and
+ (available p0)
+ (colour p0 white)
+ (treatment p0 glazed)
+ (available p1)
+ (wood p1 mahogany)
+ (surface-condition p1 verysmooth)
+ (available p2)
+ (surface-condition p2 smooth)
+ (treatment p2 varnished)
+ (available p3)
+ (colour p3 red)
+ (treatment p3 glazed)
+ (available p4)
+ (colour p4 blue)
+ (surface-condition p4 verysmooth)
+ (treatment p4 varnished)
+ (available p5)
+ (surface-condition p5 smooth)
+ (treatment p5 varnished)
+ (available p6)
+ (surface-condition p6 smooth)
+ (treatment p6 glazed)
+ (available p7)
+ (wood p7 mahogany)
+ (treatment p7 varnished)
+ (available p8)
+ (colour p8 red)
+ (wood p8 beech)
+ (surface-condition p8 smooth)
+ (treatment p8 glazed)
+ (available p9)
+ (wood p9 oak)
+ (surface-condition p9 smooth)
+ (available p10)
+ (wood p10 oak)
+ (surface-condition p10 verysmooth)
+ (available p11)
+ (colour p11 white)
+ (wood p11 mahogany)
+ (surface-condition p11 smooth)
+ (treatment p11 varnished)
+ (available p12)
+ (wood p12 oak)
+ (surface-condition p12 smooth)
+ (available p13)
+ (colour p13 blue)
+ (wood p13 beech)
+ (treatment p13 glazed)
+ (available p14)
+ (surface-condition p14 smooth)
+ (treatment p14 glazed)
+ )
+ )
+ (:metric minimize (total-cost))
+)
diff --git a/data/woodworking-sat08-strips/p16.pddl b/data/woodworking-sat08-strips/p16.pddl
new file mode 100644
index 00000000..8e1a5bc4
--- /dev/null
+++ b/data/woodworking-sat08-strips/p16.pddl
@@ -0,0 +1,281 @@
+; woodworking task with 18 parts and 120% wood
+; Machines:
+; 1 grinder
+; 1 glazer
+; 1 immersion-varnisher
+; 1 planer
+; 1 highspeed-saw
+; 1 spray-varnisher
+; 1 saw
+; random seed: 68491
+
+(define (problem wood-prob)
+ (:domain woodworking)
+ (:objects
+ grinder0 - grinder
+ glazer0 - glazer
+ immersion-varnisher0 - immersion-varnisher
+ planer0 - planer
+ highspeed-saw0 - highspeed-saw
+ spray-varnisher0 - spray-varnisher
+ saw0 - saw
+ red green mauve black blue white - acolour
+ walnut teak cherry beech oak - awood
+ p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 p16 p17 - part
+ b0 b1 b2 b3 b4 b5 b6 - board
+ s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 - aboardsize
+ )
+ (:init
+ (grind-treatment-change varnished colourfragments)
+ (grind-treatment-change glazed untreated)
+ (grind-treatment-change untreated untreated)
+ (grind-treatment-change colourfragments untreated)
+ (is-smooth smooth)
+ (is-smooth verysmooth)
+ (= (total-cost) 0)
+ (boardsize-successor s0 s1)
+ (boardsize-successor s1 s2)
+ (boardsize-successor s2 s3)
+ (boardsize-successor s3 s4)
+ (boardsize-successor s4 s5)
+ (boardsize-successor s5 s6)
+ (boardsize-successor s6 s7)
+ (boardsize-successor s7 s8)
+ (boardsize-successor s8 s9)
+ (has-colour glazer0 blue)
+ (has-colour glazer0 green)
+ (has-colour glazer0 white)
+ (has-colour glazer0 natural)
+ (has-colour glazer0 mauve)
+ (has-colour immersion-varnisher0 blue)
+ (has-colour immersion-varnisher0 natural)
+ (has-colour immersion-varnisher0 mauve)
+ (has-colour immersion-varnisher0 black)
+ (has-colour immersion-varnisher0 green)
+ (has-colour immersion-varnisher0 white)
+ (empty highspeed-saw0)
+ (has-colour spray-varnisher0 blue)
+ (has-colour spray-varnisher0 natural)
+ (has-colour spray-varnisher0 mauve)
+ (has-colour spray-varnisher0 black)
+ (has-colour spray-varnisher0 green)
+ (has-colour spray-varnisher0 white)
+ (unused p0)
+ (goalsize p0 large)
+ (= (spray-varnish-cost p0) 15)
+ (= (glaze-cost p0) 20)
+ (= (grind-cost p0) 45)
+ (= (plane-cost p0) 30)
+ (unused p1)
+ (goalsize p1 small)
+ (= (spray-varnish-cost p1) 5)
+ (= (glaze-cost p1) 10)
+ (= (grind-cost p1) 15)
+ (= (plane-cost p1) 10)
+ (available p2)
+ (colour p2 mauve)
+ (wood p2 oak)
+ (surface-condition p2 rough)
+ (treatment p2 glazed)
+ (goalsize p2 small)
+ (= (spray-varnish-cost p2) 5)
+ (= (glaze-cost p2) 10)
+ (= (grind-cost p2) 15)
+ (= (plane-cost p2) 10)
+ (unused p3)
+ (goalsize p3 large)
+ (= (spray-varnish-cost p3) 15)
+ (= (glaze-cost p3) 20)
+ (= (grind-cost p3) 45)
+ (= (plane-cost p3) 30)
+ (unused p4)
+ (goalsize p4 medium)
+ (= (spray-varnish-cost p4) 10)
+ (= (glaze-cost p4) 15)
+ (= (grind-cost p4) 30)
+ (= (plane-cost p4) 20)
+ (unused p5)
+ (goalsize p5 large)
+ (= (spray-varnish-cost p5) 15)
+ (= (glaze-cost p5) 20)
+ (= (grind-cost p5) 45)
+ (= (plane-cost p5) 30)
+ (unused p6)
+ (goalsize p6 small)
+ (= (spray-varnish-cost p6) 5)
+ (= (glaze-cost p6) 10)
+ (= (grind-cost p6) 15)
+ (= (plane-cost p6) 10)
+ (unused p7)
+ (goalsize p7 large)
+ (= (spray-varnish-cost p7) 15)
+ (= (glaze-cost p7) 20)
+ (= (grind-cost p7) 45)
+ (= (plane-cost p7) 30)
+ (available p8)
+ (colour p8 black)
+ (wood p8 walnut)
+ (surface-condition p8 verysmooth)
+ (treatment p8 colourfragments)
+ (goalsize p8 small)
+ (= (spray-varnish-cost p8) 5)
+ (= (glaze-cost p8) 10)
+ (= (grind-cost p8) 15)
+ (= (plane-cost p8) 10)
+ (unused p9)
+ (goalsize p9 medium)
+ (= (spray-varnish-cost p9) 10)
+ (= (glaze-cost p9) 15)
+ (= (grind-cost p9) 30)
+ (= (plane-cost p9) 20)
+ (unused p10)
+ (goalsize p10 small)
+ (= (spray-varnish-cost p10) 5)
+ (= (glaze-cost p10) 10)
+ (= (grind-cost p10) 15)
+ (= (plane-cost p10) 10)
+ (unused p11)
+ (goalsize p11 large)
+ (= (spray-varnish-cost p11) 15)
+ (= (glaze-cost p11) 20)
+ (= (grind-cost p11) 45)
+ (= (plane-cost p11) 30)
+ (available p12)
+ (colour p12 red)
+ (wood p12 walnut)
+ (surface-condition p12 verysmooth)
+ (treatment p12 glazed)
+ (goalsize p12 small)
+ (= (spray-varnish-cost p12) 5)
+ (= (glaze-cost p12) 10)
+ (= (grind-cost p12) 15)
+ (= (plane-cost p12) 10)
+ (unused p13)
+ (goalsize p13 small)
+ (= (spray-varnish-cost p13) 5)
+ (= (glaze-cost p13) 10)
+ (= (grind-cost p13) 15)
+ (= (plane-cost p13) 10)
+ (unused p14)
+ (goalsize p14 small)
+ (= (spray-varnish-cost p14) 5)
+ (= (glaze-cost p14) 10)
+ (= (grind-cost p14) 15)
+ (= (plane-cost p14) 10)
+ (unused p15)
+ (goalsize p15 large)
+ (= (spray-varnish-cost p15) 15)
+ (= (glaze-cost p15) 20)
+ (= (grind-cost p15) 45)
+ (= (plane-cost p15) 30)
+ (unused p16)
+ (goalsize p16 large)
+ (= (spray-varnish-cost p16) 15)
+ (= (glaze-cost p16) 20)
+ (= (grind-cost p16) 45)
+ (= (plane-cost p16) 30)
+ (available p17)
+ (colour p17 natural)
+ (wood p17 teak)
+ (surface-condition p17 verysmooth)
+ (treatment p17 varnished)
+ (goalsize p17 large)
+ (= (spray-varnish-cost p17) 15)
+ (= (glaze-cost p17) 20)
+ (= (grind-cost p17) 45)
+ (= (plane-cost p17) 30)
+ (boardsize b0 s9)
+ (wood b0 beech)
+ (surface-condition b0 smooth)
+ (available b0)
+ (boardsize b1 s3)
+ (wood b1 beech)
+ (surface-condition b1 rough)
+ (available b1)
+ (boardsize b2 s4)
+ (wood b2 teak)
+ (surface-condition b2 rough)
+ (available b2)
+ (boardsize b3 s9)
+ (wood b3 oak)
+ (surface-condition b3 rough)
+ (available b3)
+ (boardsize b4 s2)
+ (wood b4 oak)
+ (surface-condition b4 rough)
+ (available b4)
+ (boardsize b5 s4)
+ (wood b5 cherry)
+ (surface-condition b5 rough)
+ (available b5)
+ (boardsize b6 s6)
+ (wood b6 walnut)
+ (surface-condition b6 rough)
+ (available b6)
+ )
+ (:goal
+ (and
+ (available p0)
+ (surface-condition p0 verysmooth)
+ (treatment p0 varnished)
+ (available p1)
+ (surface-condition p1 smooth)
+ (treatment p1 varnished)
+ (available p2)
+ (colour p2 green)
+ (surface-condition p2 smooth)
+ (treatment p2 glazed)
+ (available p3)
+ (colour p3 natural)
+ (wood p3 walnut)
+ (surface-condition p3 smooth)
+ (treatment p3 glazed)
+ (available p4)
+ (colour p4 white)
+ (wood p4 teak)
+ (available p5)
+ (colour p5 mauve)
+ (wood p5 beech)
+ (available p6)
+ (colour p6 green)
+ (wood p6 oak)
+ (available p7)
+ (surface-condition p7 verysmooth)
+ (treatment p7 glazed)
+ (available p8)
+ (colour p8 natural)
+ (treatment p8 varnished)
+ (available p9)
+ (wood p9 oak)
+ (surface-condition p9 verysmooth)
+ (available p10)
+ (colour p10 blue)
+ (surface-condition p10 verysmooth)
+ (available p11)
+ (colour p11 blue)
+ (wood p11 beech)
+ (available p12)
+ (colour p12 green)
+ (wood p12 walnut)
+ (surface-condition p12 verysmooth)
+ (treatment p12 glazed)
+ (available p13)
+ (colour p13 black)
+ (surface-condition p13 verysmooth)
+ (treatment p13 varnished)
+ (available p14)
+ (colour p14 blue)
+ (wood p14 beech)
+ (available p15)
+ (colour p15 mauve)
+ (wood p15 beech)
+ (available p16)
+ (surface-condition p16 smooth)
+ (treatment p16 glazed)
+ (available p17)
+ (colour p17 blue)
+ (wood p17 teak)
+ )
+ )
+ (:metric minimize (total-cost))
+)
diff --git a/data/woodworking-sat08-strips/p17.pddl b/data/woodworking-sat08-strips/p17.pddl
new file mode 100644
index 00000000..01d938aa
--- /dev/null
+++ b/data/woodworking-sat08-strips/p17.pddl
@@ -0,0 +1,324 @@
+; woodworking task with 21 parts and 120% wood
+; Machines:
+; 1 grinder
+; 1 glazer
+; 1 immersion-varnisher
+; 1 planer
+; 1 highspeed-saw
+; 1 spray-varnisher
+; 1 saw
+; random seed: 654403
+
+(define (problem wood-prob)
+ (:domain woodworking)
+ (:objects
+ grinder0 - grinder
+ glazer0 - glazer
+ immersion-varnisher0 - immersion-varnisher
+ planer0 - planer
+ highspeed-saw0 - highspeed-saw
+ spray-varnisher0 - spray-varnisher
+ saw0 - saw
+ blue black red white mauve green - acolour
+ pine beech walnut cherry teak - awood
+ p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 p16 p17 p18 p19 p20 - part
+ b0 b1 b2 b3 b4 b5 b6 b7 - board
+ s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 - aboardsize
+ )
+ (:init
+ (grind-treatment-change varnished colourfragments)
+ (grind-treatment-change glazed untreated)
+ (grind-treatment-change untreated untreated)
+ (grind-treatment-change colourfragments untreated)
+ (is-smooth smooth)
+ (is-smooth verysmooth)
+ (= (total-cost) 0)
+ (boardsize-successor s0 s1)
+ (boardsize-successor s1 s2)
+ (boardsize-successor s2 s3)
+ (boardsize-successor s3 s4)
+ (boardsize-successor s4 s5)
+ (boardsize-successor s5 s6)
+ (boardsize-successor s6 s7)
+ (boardsize-successor s7 s8)
+ (boardsize-successor s8 s9)
+ (has-colour glazer0 blue)
+ (has-colour glazer0 natural)
+ (has-colour glazer0 mauve)
+ (has-colour glazer0 green)
+ (has-colour glazer0 black)
+ (has-colour glazer0 red)
+ (has-colour immersion-varnisher0 blue)
+ (has-colour immersion-varnisher0 natural)
+ (has-colour immersion-varnisher0 mauve)
+ (has-colour immersion-varnisher0 black)
+ (has-colour immersion-varnisher0 green)
+ (has-colour immersion-varnisher0 red)
+ (empty highspeed-saw0)
+ (has-colour spray-varnisher0 blue)
+ (has-colour spray-varnisher0 natural)
+ (has-colour spray-varnisher0 mauve)
+ (has-colour spray-varnisher0 black)
+ (has-colour spray-varnisher0 green)
+ (has-colour spray-varnisher0 red)
+ (unused p0)
+ (goalsize p0 small)
+ (= (spray-varnish-cost p0) 5)
+ (= (glaze-cost p0) 10)
+ (= (grind-cost p0) 15)
+ (= (plane-cost p0) 10)
+ (unused p1)
+ (goalsize p1 small)
+ (= (spray-varnish-cost p1) 5)
+ (= (glaze-cost p1) 10)
+ (= (grind-cost p1) 15)
+ (= (plane-cost p1) 10)
+ (unused p2)
+ (goalsize p2 medium)
+ (= (spray-varnish-cost p2) 10)
+ (= (glaze-cost p2) 15)
+ (= (grind-cost p2) 30)
+ (= (plane-cost p2) 20)
+ (unused p3)
+ (goalsize p3 small)
+ (= (spray-varnish-cost p3) 5)
+ (= (glaze-cost p3) 10)
+ (= (grind-cost p3) 15)
+ (= (plane-cost p3) 10)
+ (unused p4)
+ (goalsize p4 medium)
+ (= (spray-varnish-cost p4) 10)
+ (= (glaze-cost p4) 15)
+ (= (grind-cost p4) 30)
+ (= (plane-cost p4) 20)
+ (available p5)
+ (colour p5 mauve)
+ (wood p5 teak)
+ (surface-condition p5 rough)
+ (treatment p5 glazed)
+ (goalsize p5 small)
+ (= (spray-varnish-cost p5) 5)
+ (= (glaze-cost p5) 10)
+ (= (grind-cost p5) 15)
+ (= (plane-cost p5) 10)
+ (unused p6)
+ (goalsize p6 large)
+ (= (spray-varnish-cost p6) 15)
+ (= (glaze-cost p6) 20)
+ (= (grind-cost p6) 45)
+ (= (plane-cost p6) 30)
+ (unused p7)
+ (goalsize p7 large)
+ (= (spray-varnish-cost p7) 15)
+ (= (glaze-cost p7) 20)
+ (= (grind-cost p7) 45)
+ (= (plane-cost p7) 30)
+ (unused p8)
+ (goalsize p8 large)
+ (= (spray-varnish-cost p8) 15)
+ (= (glaze-cost p8) 20)
+ (= (grind-cost p8) 45)
+ (= (plane-cost p8) 30)
+ (unused p9)
+ (goalsize p9 medium)
+ (= (spray-varnish-cost p9) 10)
+ (= (glaze-cost p9) 15)
+ (= (grind-cost p9) 30)
+ (= (plane-cost p9) 20)
+ (unused p10)
+ (goalsize p10 large)
+ (= (spray-varnish-cost p10) 15)
+ (= (glaze-cost p10) 20)
+ (= (grind-cost p10) 45)
+ (= (plane-cost p10) 30)
+ (available p11)
+ (colour p11 white)
+ (wood p11 walnut)
+ (surface-condition p11 rough)
+ (treatment p11 colourfragments)
+ (goalsize p11 small)
+ (= (spray-varnish-cost p11) 5)
+ (= (glaze-cost p11) 10)
+ (= (grind-cost p11) 15)
+ (= (plane-cost p11) 10)
+ (available p12)
+ (colour p12 black)
+ (wood p12 teak)
+ (surface-condition p12 rough)
+ (treatment p12 glazed)
+ (goalsize p12 small)
+ (= (spray-varnish-cost p12) 5)
+ (= (glaze-cost p12) 10)
+ (= (grind-cost p12) 15)
+ (= (plane-cost p12) 10)
+ (available p13)
+ (colour p13 green)
+ (wood p13 beech)
+ (surface-condition p13 smooth)
+ (treatment p13 varnished)
+ (goalsize p13 medium)
+ (= (spray-varnish-cost p13) 10)
+ (= (glaze-cost p13) 15)
+ (= (grind-cost p13) 30)
+ (= (plane-cost p13) 20)
+ (unused p14)
+ (goalsize p14 large)
+ (= (spray-varnish-cost p14) 15)
+ (= (glaze-cost p14) 20)
+ (= (grind-cost p14) 45)
+ (= (plane-cost p14) 30)
+ (unused p15)
+ (goalsize p15 large)
+ (= (spray-varnish-cost p15) 15)
+ (= (glaze-cost p15) 20)
+ (= (grind-cost p15) 45)
+ (= (plane-cost p15) 30)
+ (unused p16)
+ (goalsize p16 medium)
+ (= (spray-varnish-cost p16) 10)
+ (= (glaze-cost p16) 15)
+ (= (grind-cost p16) 30)
+ (= (plane-cost p16) 20)
+ (unused p17)
+ (goalsize p17 small)
+ (= (spray-varnish-cost p17) 5)
+ (= (glaze-cost p17) 10)
+ (= (grind-cost p17) 15)
+ (= (plane-cost p17) 10)
+ (unused p18)
+ (goalsize p18 medium)
+ (= (spray-varnish-cost p18) 10)
+ (= (glaze-cost p18) 15)
+ (= (grind-cost p18) 30)
+ (= (plane-cost p18) 20)
+ (unused p19)
+ (goalsize p19 small)
+ (= (spray-varnish-cost p19) 5)
+ (= (glaze-cost p19) 10)
+ (= (grind-cost p19) 15)
+ (= (plane-cost p19) 10)
+ (available p20)
+ (colour p20 white)
+ (wood p20 beech)
+ (surface-condition p20 smooth)
+ (treatment p20 colourfragments)
+ (goalsize p20 medium)
+ (= (spray-varnish-cost p20) 10)
+ (= (glaze-cost p20) 15)
+ (= (grind-cost p20) 30)
+ (= (plane-cost p20) 20)
+ (boardsize b0 s8)
+ (wood b0 beech)
+ (surface-condition b0 rough)
+ (available b0)
+ (boardsize b1 s3)
+ (wood b1 beech)
+ (surface-condition b1 rough)
+ (available b1)
+ (boardsize b2 s5)
+ (wood b2 teak)
+ (surface-condition b2 rough)
+ (available b2)
+ (boardsize b3 s5)
+ (wood b3 cherry)
+ (surface-condition b3 rough)
+ (available b3)
+ (boardsize b4 s7)
+ (wood b4 pine)
+ (surface-condition b4 rough)
+ (available b4)
+ (boardsize b5 s1)
+ (wood b5 pine)
+ (surface-condition b5 rough)
+ (available b5)
+ (boardsize b6 s9)
+ (wood b6 walnut)
+ (surface-condition b6 rough)
+ (available b6)
+ (boardsize b7 s3)
+ (wood b7 walnut)
+ (surface-condition b7 rough)
+ (available b7)
+ )
+ (:goal
+ (and
+ (available p0)
+ (colour p0 green)
+ (wood p0 pine)
+ (available p1)
+ (colour p1 natural)
+ (treatment p1 glazed)
+ (available p2)
+ (colour p2 natural)
+ (surface-condition p2 smooth)
+ (available p3)
+ (colour p3 natural)
+ (treatment p3 glazed)
+ (available p4)
+ (colour p4 mauve)
+ (wood p4 teak)
+ (surface-condition p4 verysmooth)
+ (available p5)
+ (colour p5 black)
+ (wood p5 teak)
+ (surface-condition p5 smooth)
+ (treatment p5 varnished)
+ (available p6)
+ (colour p6 natural)
+ (treatment p6 varnished)
+ (available p7)
+ (colour p7 red)
+ (wood p7 cherry)
+ (surface-condition p7 smooth)
+ (treatment p7 glazed)
+ (available p8)
+ (colour p8 green)
+ (wood p8 beech)
+ (surface-condition p8 verysmooth)
+ (treatment p8 varnished)
+ (available p9)
+ (colour p9 red)
+ (wood p9 pine)
+ (surface-condition p9 smooth)
+ (treatment p9 glazed)
+ (available p10)
+ (colour p10 mauve)
+ (surface-condition p10 smooth)
+ (treatment p10 varnished)
+ (available p11)
+ (colour p11 mauve)
+ (wood p11 walnut)
+ (surface-condition p11 smooth)
+ (treatment p11 varnished)
+ (available p12)
+ (colour p12 red)
+ (wood p12 teak)
+ (available p13)
+ (colour p13 red)
+ (surface-condition p13 verysmooth)
+ (treatment p13 varnished)
+ (available p14)
+ (colour p14 black)
+ (wood p14 beech)
+ (available p15)
+ (colour p15 mauve)
+ (wood p15 walnut)
+ (available p16)
+ (wood p16 beech)
+ (treatment p16 glazed)
+ (available p17)
+ (colour p17 mauve)
+ (treatment p17 varnished)
+ (available p18)
+ (colour p18 red)
+ (treatment p18 glazed)
+ (available p19)
+ (colour p19 blue)
+ (surface-condition p19 verysmooth)
+ (available p20)
+ (surface-condition p20 verysmooth)
+ (treatment p20 glazed)
+ )
+ )
+ (:metric minimize (total-cost))
+)
diff --git a/data/woodworking-sat08-strips/p18.pddl b/data/woodworking-sat08-strips/p18.pddl
new file mode 100644
index 00000000..33426b45
--- /dev/null
+++ b/data/woodworking-sat08-strips/p18.pddl
@@ -0,0 +1,354 @@
+; woodworking task with 24 parts and 120% wood
+; Machines:
+; 1 grinder
+; 1 glazer
+; 1 immersion-varnisher
+; 1 planer
+; 1 highspeed-saw
+; 1 spray-varnisher
+; 1 saw
+; random seed: 90334
+
+(define (problem wood-prob)
+ (:domain woodworking)
+ (:objects
+ grinder0 - grinder
+ glazer0 - glazer
+ immersion-varnisher0 - immersion-varnisher
+ planer0 - planer
+ highspeed-saw0 - highspeed-saw
+ spray-varnisher0 - spray-varnisher
+ saw0 - saw
+ red blue green white mauve black - acolour
+ cherry pine mahogany teak walnut beech - awood
+ p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 p16 p17 p18 p19 p20 p21 p22 p23 - part
+ b0 b1 b2 b3 b4 b5 b6 b7 - board
+ s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 - aboardsize
+ )
+ (:init
+ (grind-treatment-change varnished colourfragments)
+ (grind-treatment-change glazed untreated)
+ (grind-treatment-change untreated untreated)
+ (grind-treatment-change colourfragments untreated)
+ (is-smooth smooth)
+ (is-smooth verysmooth)
+ (= (total-cost) 0)
+ (boardsize-successor s0 s1)
+ (boardsize-successor s1 s2)
+ (boardsize-successor s2 s3)
+ (boardsize-successor s3 s4)
+ (boardsize-successor s4 s5)
+ (boardsize-successor s5 s6)
+ (boardsize-successor s6 s7)
+ (boardsize-successor s7 s8)
+ (boardsize-successor s8 s9)
+ (boardsize-successor s9 s10)
+ (has-colour glazer0 blue)
+ (has-colour glazer0 black)
+ (has-colour glazer0 natural)
+ (has-colour glazer0 green)
+ (has-colour glazer0 red)
+ (has-colour immersion-varnisher0 blue)
+ (has-colour immersion-varnisher0 natural)
+ (has-colour immersion-varnisher0 mauve)
+ (has-colour immersion-varnisher0 green)
+ (has-colour immersion-varnisher0 white)
+ (has-colour immersion-varnisher0 red)
+ (empty highspeed-saw0)
+ (has-colour spray-varnisher0 blue)
+ (has-colour spray-varnisher0 natural)
+ (has-colour spray-varnisher0 mauve)
+ (has-colour spray-varnisher0 green)
+ (has-colour spray-varnisher0 white)
+ (has-colour spray-varnisher0 red)
+ (available p0)
+ (colour p0 green)
+ (wood p0 walnut)
+ (surface-condition p0 rough)
+ (treatment p0 glazed)
+ (goalsize p0 small)
+ (= (spray-varnish-cost p0) 5)
+ (= (glaze-cost p0) 10)
+ (= (grind-cost p0) 15)
+ (= (plane-cost p0) 10)
+ (unused p1)
+ (goalsize p1 medium)
+ (= (spray-varnish-cost p1) 10)
+ (= (glaze-cost p1) 15)
+ (= (grind-cost p1) 30)
+ (= (plane-cost p1) 20)
+ (unused p2)
+ (goalsize p2 small)
+ (= (spray-varnish-cost p2) 5)
+ (= (glaze-cost p2) 10)
+ (= (grind-cost p2) 15)
+ (= (plane-cost p2) 10)
+ (unused p3)
+ (goalsize p3 large)
+ (= (spray-varnish-cost p3) 15)
+ (= (glaze-cost p3) 20)
+ (= (grind-cost p3) 45)
+ (= (plane-cost p3) 30)
+ (unused p4)
+ (goalsize p4 small)
+ (= (spray-varnish-cost p4) 5)
+ (= (glaze-cost p4) 10)
+ (= (grind-cost p4) 15)
+ (= (plane-cost p4) 10)
+ (available p5)
+ (colour p5 green)
+ (wood p5 teak)
+ (surface-condition p5 rough)
+ (treatment p5 colourfragments)
+ (goalsize p5 large)
+ (= (spray-varnish-cost p5) 15)
+ (= (glaze-cost p5) 20)
+ (= (grind-cost p5) 45)
+ (= (plane-cost p5) 30)
+ (unused p6)
+ (goalsize p6 medium)
+ (= (spray-varnish-cost p6) 10)
+ (= (glaze-cost p6) 15)
+ (= (grind-cost p6) 30)
+ (= (plane-cost p6) 20)
+ (available p7)
+ (colour p7 green)
+ (wood p7 cherry)
+ (surface-condition p7 rough)
+ (treatment p7 glazed)
+ (goalsize p7 large)
+ (= (spray-varnish-cost p7) 15)
+ (= (glaze-cost p7) 20)
+ (= (grind-cost p7) 45)
+ (= (plane-cost p7) 30)
+ (unused p8)
+ (goalsize p8 large)
+ (= (spray-varnish-cost p8) 15)
+ (= (glaze-cost p8) 20)
+ (= (grind-cost p8) 45)
+ (= (plane-cost p8) 30)
+ (unused p9)
+ (goalsize p9 small)
+ (= (spray-varnish-cost p9) 5)
+ (= (glaze-cost p9) 10)
+ (= (grind-cost p9) 15)
+ (= (plane-cost p9) 10)
+ (unused p10)
+ (goalsize p10 large)
+ (= (spray-varnish-cost p10) 15)
+ (= (glaze-cost p10) 20)
+ (= (grind-cost p10) 45)
+ (= (plane-cost p10) 30)
+ (available p11)
+ (colour p11 black)
+ (wood p11 beech)
+ (surface-condition p11 rough)
+ (treatment p11 glazed)
+ (goalsize p11 medium)
+ (= (spray-varnish-cost p11) 10)
+ (= (glaze-cost p11) 15)
+ (= (grind-cost p11) 30)
+ (= (plane-cost p11) 20)
+ (unused p12)
+ (goalsize p12 medium)
+ (= (spray-varnish-cost p12) 10)
+ (= (glaze-cost p12) 15)
+ (= (grind-cost p12) 30)
+ (= (plane-cost p12) 20)
+ (unused p13)
+ (goalsize p13 medium)
+ (= (spray-varnish-cost p13) 10)
+ (= (glaze-cost p13) 15)
+ (= (grind-cost p13) 30)
+ (= (plane-cost p13) 20)
+ (unused p14)
+ (goalsize p14 medium)
+ (= (spray-varnish-cost p14) 10)
+ (= (glaze-cost p14) 15)
+ (= (grind-cost p14) 30)
+ (= (plane-cost p14) 20)
+ (unused p15)
+ (goalsize p15 small)
+ (= (spray-varnish-cost p15) 5)
+ (= (glaze-cost p15) 10)
+ (= (grind-cost p15) 15)
+ (= (plane-cost p15) 10)
+ (unused p16)
+ (goalsize p16 small)
+ (= (spray-varnish-cost p16) 5)
+ (= (glaze-cost p16) 10)
+ (= (grind-cost p16) 15)
+ (= (plane-cost p16) 10)
+ (unused p17)
+ (goalsize p17 large)
+ (= (spray-varnish-cost p17) 15)
+ (= (glaze-cost p17) 20)
+ (= (grind-cost p17) 45)
+ (= (plane-cost p17) 30)
+ (unused p18)
+ (goalsize p18 small)
+ (= (spray-varnish-cost p18) 5)
+ (= (glaze-cost p18) 10)
+ (= (grind-cost p18) 15)
+ (= (plane-cost p18) 10)
+ (unused p19)
+ (goalsize p19 medium)
+ (= (spray-varnish-cost p19) 10)
+ (= (glaze-cost p19) 15)
+ (= (grind-cost p19) 30)
+ (= (plane-cost p19) 20)
+ (available p20)
+ (colour p20 blue)
+ (wood p20 mahogany)
+ (surface-condition p20 smooth)
+ (treatment p20 varnished)
+ (goalsize p20 large)
+ (= (spray-varnish-cost p20) 15)
+ (= (glaze-cost p20) 20)
+ (= (grind-cost p20) 45)
+ (= (plane-cost p20) 30)
+ (unused p21)
+ (goalsize p21 medium)
+ (= (spray-varnish-cost p21) 10)
+ (= (glaze-cost p21) 15)
+ (= (grind-cost p21) 30)
+ (= (plane-cost p21) 20)
+ (unused p22)
+ (goalsize p22 medium)
+ (= (spray-varnish-cost p22) 10)
+ (= (glaze-cost p22) 15)
+ (= (grind-cost p22) 30)
+ (= (plane-cost p22) 20)
+ (unused p23)
+ (goalsize p23 large)
+ (= (spray-varnish-cost p23) 15)
+ (= (glaze-cost p23) 20)
+ (= (grind-cost p23) 45)
+ (= (plane-cost p23) 30)
+ (boardsize b0 s6)
+ (wood b0 cherry)
+ (surface-condition b0 smooth)
+ (available b0)
+ (boardsize b1 s5)
+ (wood b1 mahogany)
+ (surface-condition b1 rough)
+ (available b1)
+ (boardsize b2 s4)
+ (wood b2 pine)
+ (surface-condition b2 smooth)
+ (available b2)
+ (boardsize b3 s10)
+ (wood b3 walnut)
+ (surface-condition b3 rough)
+ (available b3)
+ (boardsize b4 s2)
+ (wood b4 walnut)
+ (surface-condition b4 rough)
+ (available b4)
+ (boardsize b5 s9)
+ (wood b5 teak)
+ (surface-condition b5 rough)
+ (available b5)
+ (boardsize b6 s6)
+ (wood b6 teak)
+ (surface-condition b6 rough)
+ (available b6)
+ (boardsize b7 s4)
+ (wood b7 beech)
+ (surface-condition b7 smooth)
+ (available b7)
+ )
+ (:goal
+ (and
+ (available p0)
+ (colour p0 red)
+ (wood p0 walnut)
+ (surface-condition p0 smooth)
+ (treatment p0 varnished)
+ (available p1)
+ (wood p1 walnut)
+ (surface-condition p1 verysmooth)
+ (available p2)
+ (colour p2 green)
+ (wood p2 teak)
+ (available p3)
+ (colour p3 blue)
+ (wood p3 teak)
+ (available p4)
+ (wood p4 mahogany)
+ (surface-condition p4 verysmooth)
+ (available p5)
+ (wood p5 teak)
+ (surface-condition p5 verysmooth)
+ (available p6)
+ (wood p6 pine)
+ (surface-condition p6 verysmooth)
+ (available p7)
+ (wood p7 cherry)
+ (treatment p7 varnished)
+ (available p8)
+ (colour p8 white)
+ (wood p8 walnut)
+ (surface-condition p8 smooth)
+ (treatment p8 varnished)
+ (available p9)
+ (colour p9 mauve)
+ (wood p9 pine)
+ (surface-condition p9 smooth)
+ (treatment p9 varnished)
+ (available p10)
+ (colour p10 mauve)
+ (treatment p10 varnished)
+ (available p11)
+ (colour p11 red)
+ (treatment p11 glazed)
+ (available p12)
+ (colour p12 natural)
+ (wood p12 teak)
+ (surface-condition p12 verysmooth)
+ (treatment p12 varnished)
+ (available p13)
+ (colour p13 red)
+ (surface-condition p13 smooth)
+ (available p14)
+ (colour p14 black)
+ (wood p14 teak)
+ (surface-condition p14 verysmooth)
+ (treatment p14 glazed)
+ (available p15)
+ (colour p15 natural)
+ (surface-condition p15 verysmooth)
+ (treatment p15 glazed)
+ (available p16)
+ (colour p16 black)
+ (wood p16 cherry)
+ (surface-condition p16 smooth)
+ (treatment p16 glazed)
+ (available p17)
+ (colour p17 green)
+ (treatment p17 varnished)
+ (available p18)
+ (colour p18 natural)
+ (wood p18 mahogany)
+ (treatment p18 glazed)
+ (available p19)
+ (colour p19 mauve)
+ (wood p19 walnut)
+ (surface-condition p19 smooth)
+ (treatment p19 varnished)
+ (available p20)
+ (colour p20 natural)
+ (treatment p20 varnished)
+ (available p21)
+ (wood p21 mahogany)
+ (surface-condition p21 smooth)
+ (available p22)
+ (wood p22 teak)
+ (treatment p22 varnished)
+ (available p23)
+ (wood p23 cherry)
+ (treatment p23 varnished)
+ )
+ )
+ (:metric minimize (total-cost))
+)
diff --git a/data/woodworking-sat08-strips/p19.pddl b/data/woodworking-sat08-strips/p19.pddl
new file mode 100644
index 00000000..6502a587
--- /dev/null
+++ b/data/woodworking-sat08-strips/p19.pddl
@@ -0,0 +1,400 @@
+; woodworking task with 27 parts and 120% wood
+; Machines:
+; 1 grinder
+; 1 glazer
+; 1 immersion-varnisher
+; 1 planer
+; 1 highspeed-saw
+; 1 spray-varnisher
+; 1 saw
+; random seed: 331662
+
+(define (problem wood-prob)
+ (:domain woodworking)
+ (:objects
+ grinder0 - grinder
+ glazer0 - glazer
+ immersion-varnisher0 - immersion-varnisher
+ planer0 - planer
+ highspeed-saw0 - highspeed-saw
+ spray-varnisher0 - spray-varnisher
+ saw0 - saw
+ black green white red mauve blue - acolour
+ oak mahogany walnut cherry teak pine beech - awood
+ p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 p16 p17 p18 p19 p20 p21 p22 p23 p24 p25 p26 - part
+ b0 b1 b2 b3 b4 b5 b6 b7 b8 - board
+ s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 - aboardsize
+ )
+ (:init
+ (grind-treatment-change varnished colourfragments)
+ (grind-treatment-change glazed untreated)
+ (grind-treatment-change untreated untreated)
+ (grind-treatment-change colourfragments untreated)
+ (is-smooth smooth)
+ (is-smooth verysmooth)
+ (= (total-cost) 0)
+ (boardsize-successor s0 s1)
+ (boardsize-successor s1 s2)
+ (boardsize-successor s2 s3)
+ (boardsize-successor s3 s4)
+ (boardsize-successor s4 s5)
+ (boardsize-successor s5 s6)
+ (boardsize-successor s6 s7)
+ (boardsize-successor s7 s8)
+ (boardsize-successor s8 s9)
+ (has-colour glazer0 blue)
+ (has-colour glazer0 natural)
+ (has-colour glazer0 white)
+ (has-colour glazer0 black)
+ (has-colour immersion-varnisher0 blue)
+ (has-colour immersion-varnisher0 natural)
+ (has-colour immersion-varnisher0 mauve)
+ (has-colour immersion-varnisher0 green)
+ (has-colour immersion-varnisher0 black)
+ (has-colour immersion-varnisher0 white)
+ (has-colour immersion-varnisher0 red)
+ (empty highspeed-saw0)
+ (has-colour spray-varnisher0 blue)
+ (has-colour spray-varnisher0 natural)
+ (has-colour spray-varnisher0 mauve)
+ (has-colour spray-varnisher0 green)
+ (has-colour spray-varnisher0 black)
+ (has-colour spray-varnisher0 white)
+ (has-colour spray-varnisher0 red)
+ (available p0)
+ (colour p0 mauve)
+ (wood p0 pine)
+ (surface-condition p0 smooth)
+ (treatment p0 glazed)
+ (goalsize p0 large)
+ (= (spray-varnish-cost p0) 15)
+ (= (glaze-cost p0) 20)
+ (= (grind-cost p0) 45)
+ (= (plane-cost p0) 30)
+ (unused p1)
+ (goalsize p1 large)
+ (= (spray-varnish-cost p1) 15)
+ (= (glaze-cost p1) 20)
+ (= (grind-cost p1) 45)
+ (= (plane-cost p1) 30)
+ (available p2)
+ (colour p2 red)
+ (wood p2 teak)
+ (surface-condition p2 smooth)
+ (treatment p2 glazed)
+ (goalsize p2 large)
+ (= (spray-varnish-cost p2) 15)
+ (= (glaze-cost p2) 20)
+ (= (grind-cost p2) 45)
+ (= (plane-cost p2) 30)
+ (available p3)
+ (colour p3 natural)
+ (wood p3 cherry)
+ (surface-condition p3 verysmooth)
+ (treatment p3 glazed)
+ (goalsize p3 small)
+ (= (spray-varnish-cost p3) 5)
+ (= (glaze-cost p3) 10)
+ (= (grind-cost p3) 15)
+ (= (plane-cost p3) 10)
+ (unused p4)
+ (goalsize p4 large)
+ (= (spray-varnish-cost p4) 15)
+ (= (glaze-cost p4) 20)
+ (= (grind-cost p4) 45)
+ (= (plane-cost p4) 30)
+ (unused p5)
+ (goalsize p5 large)
+ (= (spray-varnish-cost p5) 15)
+ (= (glaze-cost p5) 20)
+ (= (grind-cost p5) 45)
+ (= (plane-cost p5) 30)
+ (unused p6)
+ (goalsize p6 small)
+ (= (spray-varnish-cost p6) 5)
+ (= (glaze-cost p6) 10)
+ (= (grind-cost p6) 15)
+ (= (plane-cost p6) 10)
+ (unused p7)
+ (goalsize p7 small)
+ (= (spray-varnish-cost p7) 5)
+ (= (glaze-cost p7) 10)
+ (= (grind-cost p7) 15)
+ (= (plane-cost p7) 10)
+ (unused p8)
+ (goalsize p8 large)
+ (= (spray-varnish-cost p8) 15)
+ (= (glaze-cost p8) 20)
+ (= (grind-cost p8) 45)
+ (= (plane-cost p8) 30)
+ (unused p9)
+ (goalsize p9 medium)
+ (= (spray-varnish-cost p9) 10)
+ (= (glaze-cost p9) 15)
+ (= (grind-cost p9) 30)
+ (= (plane-cost p9) 20)
+ (unused p10)
+ (goalsize p10 small)
+ (= (spray-varnish-cost p10) 5)
+ (= (glaze-cost p10) 10)
+ (= (grind-cost p10) 15)
+ (= (plane-cost p10) 10)
+ (unused p11)
+ (goalsize p11 small)
+ (= (spray-varnish-cost p11) 5)
+ (= (glaze-cost p11) 10)
+ (= (grind-cost p11) 15)
+ (= (plane-cost p11) 10)
+ (unused p12)
+ (goalsize p12 large)
+ (= (spray-varnish-cost p12) 15)
+ (= (glaze-cost p12) 20)
+ (= (grind-cost p12) 45)
+ (= (plane-cost p12) 30)
+ (unused p13)
+ (goalsize p13 small)
+ (= (spray-varnish-cost p13) 5)
+ (= (glaze-cost p13) 10)
+ (= (grind-cost p13) 15)
+ (= (plane-cost p13) 10)
+ (unused p14)
+ (goalsize p14 small)
+ (= (spray-varnish-cost p14) 5)
+ (= (glaze-cost p14) 10)
+ (= (grind-cost p14) 15)
+ (= (plane-cost p14) 10)
+ (available p15)
+ (colour p15 red)
+ (wood p15 beech)
+ (surface-condition p15 verysmooth)
+ (treatment p15 varnished)
+ (goalsize p15 medium)
+ (= (spray-varnish-cost p15) 10)
+ (= (glaze-cost p15) 15)
+ (= (grind-cost p15) 30)
+ (= (plane-cost p15) 20)
+ (unused p16)
+ (goalsize p16 large)
+ (= (spray-varnish-cost p16) 15)
+ (= (glaze-cost p16) 20)
+ (= (grind-cost p16) 45)
+ (= (plane-cost p16) 30)
+ (unused p17)
+ (goalsize p17 medium)
+ (= (spray-varnish-cost p17) 10)
+ (= (glaze-cost p17) 15)
+ (= (grind-cost p17) 30)
+ (= (plane-cost p17) 20)
+ (unused p18)
+ (goalsize p18 medium)
+ (= (spray-varnish-cost p18) 10)
+ (= (glaze-cost p18) 15)
+ (= (grind-cost p18) 30)
+ (= (plane-cost p18) 20)
+ (available p19)
+ (colour p19 mauve)
+ (wood p19 cherry)
+ (surface-condition p19 smooth)
+ (treatment p19 colourfragments)
+ (goalsize p19 medium)
+ (= (spray-varnish-cost p19) 10)
+ (= (glaze-cost p19) 15)
+ (= (grind-cost p19) 30)
+ (= (plane-cost p19) 20)
+ (unused p20)
+ (goalsize p20 medium)
+ (= (spray-varnish-cost p20) 10)
+ (= (glaze-cost p20) 15)
+ (= (grind-cost p20) 30)
+ (= (plane-cost p20) 20)
+ (unused p21)
+ (goalsize p21 large)
+ (= (spray-varnish-cost p21) 15)
+ (= (glaze-cost p21) 20)
+ (= (grind-cost p21) 45)
+ (= (plane-cost p21) 30)
+ (available p22)
+ (colour p22 blue)
+ (wood p22 teak)
+ (surface-condition p22 rough)
+ (treatment p22 colourfragments)
+ (goalsize p22 small)
+ (= (spray-varnish-cost p22) 5)
+ (= (glaze-cost p22) 10)
+ (= (grind-cost p22) 15)
+ (= (plane-cost p22) 10)
+ (unused p23)
+ (goalsize p23 medium)
+ (= (spray-varnish-cost p23) 10)
+ (= (glaze-cost p23) 15)
+ (= (grind-cost p23) 30)
+ (= (plane-cost p23) 20)
+ (available p24)
+ (colour p24 natural)
+ (wood p24 pine)
+ (surface-condition p24 verysmooth)
+ (treatment p24 colourfragments)
+ (goalsize p24 small)
+ (= (spray-varnish-cost p24) 5)
+ (= (glaze-cost p24) 10)
+ (= (grind-cost p24) 15)
+ (= (plane-cost p24) 10)
+ (unused p25)
+ (goalsize p25 large)
+ (= (spray-varnish-cost p25) 15)
+ (= (glaze-cost p25) 20)
+ (= (grind-cost p25) 45)
+ (= (plane-cost p25) 30)
+ (available p26)
+ (colour p26 mauve)
+ (wood p26 oak)
+ (surface-condition p26 verysmooth)
+ (treatment p26 colourfragments)
+ (goalsize p26 small)
+ (= (spray-varnish-cost p26) 5)
+ (= (glaze-cost p26) 10)
+ (= (grind-cost p26) 15)
+ (= (plane-cost p26) 10)
+ (boardsize b0 s5)
+ (wood b0 cherry)
+ (surface-condition b0 smooth)
+ (available b0)
+ (boardsize b1 s8)
+ (wood b1 mahogany)
+ (surface-condition b1 rough)
+ (available b1)
+ (boardsize b2 s5)
+ (wood b2 oak)
+ (surface-condition b2 rough)
+ (available b2)
+ (boardsize b3 s8)
+ (wood b3 pine)
+ (surface-condition b3 rough)
+ (available b3)
+ (boardsize b4 s9)
+ (wood b4 walnut)
+ (surface-condition b4 rough)
+ (available b4)
+ (boardsize b5 s3)
+ (wood b5 walnut)
+ (surface-condition b5 rough)
+ (available b5)
+ (boardsize b6 s2)
+ (wood b6 teak)
+ (surface-condition b6 rough)
+ (available b6)
+ (boardsize b7 s8)
+ (wood b7 beech)
+ (surface-condition b7 rough)
+ (available b7)
+ (boardsize b8 s3)
+ (wood b8 beech)
+ (surface-condition b8 rough)
+ (available b8)
+ )
+ (:goal
+ (and
+ (available p0)
+ (colour p0 black)
+ (wood p0 pine)
+ (surface-condition p0 smooth)
+ (treatment p0 varnished)
+ (available p1)
+ (wood p1 beech)
+ (treatment p1 varnished)
+ (available p2)
+ (surface-condition p2 smooth)
+ (treatment p2 varnished)
+ (available p3)
+ (colour p3 white)
+ (surface-condition p3 smooth)
+ (available p4)
+ (colour p4 mauve)
+ (wood p4 walnut)
+ (surface-condition p4 smooth)
+ (treatment p4 varnished)
+ (available p5)
+ (colour p5 natural)
+ (wood p5 walnut)
+ (surface-condition p5 smooth)
+ (treatment p5 glazed)
+ (available p6)
+ (colour p6 natural)
+ (wood p6 teak)
+ (available p7)
+ (wood p7 cherry)
+ (treatment p7 varnished)
+ (available p8)
+ (colour p8 blue)
+ (wood p8 pine)
+ (available p9)
+ (surface-condition p9 verysmooth)
+ (treatment p9 varnished)
+ (available p10)
+ (colour p10 blue)
+ (wood p10 pine)
+ (treatment p10 varnished)
+ (available p11)
+ (colour p11 mauve)
+ (surface-condition p11 verysmooth)
+ (treatment p11 varnished)
+ (available p12)
+ (wood p12 cherry)
+ (treatment p12 glazed)
+ (available p13)
+ (colour p13 white)
+ (treatment p13 glazed)
+ (available p14)
+ (wood p14 beech)
+ (surface-condition p14 verysmooth)
+ (available p15)
+ (wood p15 beech)
+ (surface-condition p15 smooth)
+ (available p16)
+ (wood p16 mahogany)
+ (treatment p16 varnished)
+ (available p17)
+ (colour p17 natural)
+ (treatment p17 glazed)
+ (available p18)
+ (colour p18 green)
+ (wood p18 pine)
+ (surface-condition p18 smooth)
+ (treatment p18 varnished)
+ (available p19)
+ (colour p19 natural)
+ (wood p19 cherry)
+ (surface-condition p19 verysmooth)
+ (treatment p19 varnished)
+ (available p20)
+ (colour p20 blue)
+ (wood p20 oak)
+ (available p21)
+ (colour p21 black)
+ (wood p21 beech)
+ (surface-condition p21 verysmooth)
+ (treatment p21 glazed)
+ (available p22)
+ (wood p22 teak)
+ (treatment p22 varnished)
+ (available p23)
+ (wood p23 walnut)
+ (surface-condition p23 smooth)
+ (treatment p23 glazed)
+ (available p24)
+ (colour p24 blue)
+ (wood p24 pine)
+ (surface-condition p24 smooth)
+ (treatment p24 varnished)
+ (available p25)
+ (colour p25 blue)
+ (wood p25 mahogany)
+ (available p26)
+ (colour p26 red)
+ (wood p26 oak)
+ (surface-condition p26 smooth)
+ (treatment p26 varnished)
+ )
+ )
+ (:metric minimize (total-cost))
+)
diff --git a/data/woodworking-sat08-strips/p20.pddl b/data/woodworking-sat08-strips/p20.pddl
new file mode 100644
index 00000000..8d46365e
--- /dev/null
+++ b/data/woodworking-sat08-strips/p20.pddl
@@ -0,0 +1,421 @@
+; woodworking task with 30 parts and 120% wood
+; Machines:
+; 1 grinder
+; 1 glazer
+; 1 immersion-varnisher
+; 1 planer
+; 1 highspeed-saw
+; 1 spray-varnisher
+; 1 saw
+; random seed: 702790
+
+(define (problem wood-prob)
+ (:domain woodworking)
+ (:objects
+ grinder0 - grinder
+ glazer0 - glazer
+ immersion-varnisher0 - immersion-varnisher
+ planer0 - planer
+ highspeed-saw0 - highspeed-saw
+ spray-varnisher0 - spray-varnisher
+ saw0 - saw
+ red green blue white black mauve - acolour
+ mahogany teak walnut beech oak cherry pine - awood
+ p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 p16 p17 p18 p19 p20 p21 p22 p23 p24 p25 p26 p27 p28 p29 - part
+ b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 - board
+ s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 - aboardsize
+ )
+ (:init
+ (grind-treatment-change varnished colourfragments)
+ (grind-treatment-change glazed untreated)
+ (grind-treatment-change untreated untreated)
+ (grind-treatment-change colourfragments untreated)
+ (is-smooth smooth)
+ (is-smooth verysmooth)
+ (= (total-cost) 0)
+ (boardsize-successor s0 s1)
+ (boardsize-successor s1 s2)
+ (boardsize-successor s2 s3)
+ (boardsize-successor s3 s4)
+ (boardsize-successor s4 s5)
+ (boardsize-successor s5 s6)
+ (boardsize-successor s6 s7)
+ (boardsize-successor s7 s8)
+ (boardsize-successor s8 s9)
+ (boardsize-successor s9 s10)
+ (boardsize-successor s10 s11)
+ (has-colour glazer0 blue)
+ (has-colour glazer0 natural)
+ (has-colour glazer0 mauve)
+ (has-colour glazer0 green)
+ (has-colour glazer0 black)
+ (has-colour glazer0 white)
+ (has-colour glazer0 red)
+ (has-colour immersion-varnisher0 blue)
+ (has-colour immersion-varnisher0 natural)
+ (has-colour immersion-varnisher0 mauve)
+ (has-colour immersion-varnisher0 black)
+ (has-colour immersion-varnisher0 green)
+ (has-colour immersion-varnisher0 white)
+ (has-colour immersion-varnisher0 red)
+ (empty highspeed-saw0)
+ (has-colour spray-varnisher0 blue)
+ (has-colour spray-varnisher0 natural)
+ (has-colour spray-varnisher0 mauve)
+ (has-colour spray-varnisher0 black)
+ (has-colour spray-varnisher0 green)
+ (has-colour spray-varnisher0 white)
+ (has-colour spray-varnisher0 red)
+ (unused p0)
+ (goalsize p0 medium)
+ (= (spray-varnish-cost p0) 10)
+ (= (glaze-cost p0) 15)
+ (= (grind-cost p0) 30)
+ (= (plane-cost p0) 20)
+ (unused p1)
+ (goalsize p1 small)
+ (= (spray-varnish-cost p1) 5)
+ (= (glaze-cost p1) 10)
+ (= (grind-cost p1) 15)
+ (= (plane-cost p1) 10)
+ (unused p2)
+ (goalsize p2 small)
+ (= (spray-varnish-cost p2) 5)
+ (= (glaze-cost p2) 10)
+ (= (grind-cost p2) 15)
+ (= (plane-cost p2) 10)
+ (available p3)
+ (colour p3 blue)
+ (wood p3 pine)
+ (surface-condition p3 smooth)
+ (treatment p3 glazed)
+ (goalsize p3 small)
+ (= (spray-varnish-cost p3) 5)
+ (= (glaze-cost p3) 10)
+ (= (grind-cost p3) 15)
+ (= (plane-cost p3) 10)
+ (unused p4)
+ (goalsize p4 large)
+ (= (spray-varnish-cost p4) 15)
+ (= (glaze-cost p4) 20)
+ (= (grind-cost p4) 45)
+ (= (plane-cost p4) 30)
+ (unused p5)
+ (goalsize p5 medium)
+ (= (spray-varnish-cost p5) 10)
+ (= (glaze-cost p5) 15)
+ (= (grind-cost p5) 30)
+ (= (plane-cost p5) 20)
+ (unused p6)
+ (goalsize p6 medium)
+ (= (spray-varnish-cost p6) 10)
+ (= (glaze-cost p6) 15)
+ (= (grind-cost p6) 30)
+ (= (plane-cost p6) 20)
+ (unused p7)
+ (goalsize p7 small)
+ (= (spray-varnish-cost p7) 5)
+ (= (glaze-cost p7) 10)
+ (= (grind-cost p7) 15)
+ (= (plane-cost p7) 10)
+ (unused p8)
+ (goalsize p8 medium)
+ (= (spray-varnish-cost p8) 10)
+ (= (glaze-cost p8) 15)
+ (= (grind-cost p8) 30)
+ (= (plane-cost p8) 20)
+ (unused p9)
+ (goalsize p9 small)
+ (= (spray-varnish-cost p9) 5)
+ (= (glaze-cost p9) 10)
+ (= (grind-cost p9) 15)
+ (= (plane-cost p9) 10)
+ (unused p10)
+ (goalsize p10 medium)
+ (= (spray-varnish-cost p10) 10)
+ (= (glaze-cost p10) 15)
+ (= (grind-cost p10) 30)
+ (= (plane-cost p10) 20)
+ (unused p11)
+ (goalsize p11 large)
+ (= (spray-varnish-cost p11) 15)
+ (= (glaze-cost p11) 20)
+ (= (grind-cost p11) 45)
+ (= (plane-cost p11) 30)
+ (unused p12)
+ (goalsize p12 medium)
+ (= (spray-varnish-cost p12) 10)
+ (= (glaze-cost p12) 15)
+ (= (grind-cost p12) 30)
+ (= (plane-cost p12) 20)
+ (unused p13)
+ (goalsize p13 small)
+ (= (spray-varnish-cost p13) 5)
+ (= (glaze-cost p13) 10)
+ (= (grind-cost p13) 15)
+ (= (plane-cost p13) 10)
+ (unused p14)
+ (goalsize p14 medium)
+ (= (spray-varnish-cost p14) 10)
+ (= (glaze-cost p14) 15)
+ (= (grind-cost p14) 30)
+ (= (plane-cost p14) 20)
+ (unused p15)
+ (goalsize p15 small)
+ (= (spray-varnish-cost p15) 5)
+ (= (glaze-cost p15) 10)
+ (= (grind-cost p15) 15)
+ (= (plane-cost p15) 10)
+ (unused p16)
+ (goalsize p16 large)
+ (= (spray-varnish-cost p16) 15)
+ (= (glaze-cost p16) 20)
+ (= (grind-cost p16) 45)
+ (= (plane-cost p16) 30)
+ (unused p17)
+ (goalsize p17 large)
+ (= (spray-varnish-cost p17) 15)
+ (= (glaze-cost p17) 20)
+ (= (grind-cost p17) 45)
+ (= (plane-cost p17) 30)
+ (unused p18)
+ (goalsize p18 large)
+ (= (spray-varnish-cost p18) 15)
+ (= (glaze-cost p18) 20)
+ (= (grind-cost p18) 45)
+ (= (plane-cost p18) 30)
+ (available p19)
+ (colour p19 white)
+ (wood p19 mahogany)
+ (surface-condition p19 rough)
+ (treatment p19 colourfragments)
+ (goalsize p19 medium)
+ (= (spray-varnish-cost p19) 10)
+ (= (glaze-cost p19) 15)
+ (= (grind-cost p19) 30)
+ (= (plane-cost p19) 20)
+ (unused p20)
+ (goalsize p20 large)
+ (= (spray-varnish-cost p20) 15)
+ (= (glaze-cost p20) 20)
+ (= (grind-cost p20) 45)
+ (= (plane-cost p20) 30)
+ (unused p21)
+ (goalsize p21 large)
+ (= (spray-varnish-cost p21) 15)
+ (= (glaze-cost p21) 20)
+ (= (grind-cost p21) 45)
+ (= (plane-cost p21) 30)
+ (unused p22)
+ (goalsize p22 large)
+ (= (spray-varnish-cost p22) 15)
+ (= (glaze-cost p22) 20)
+ (= (grind-cost p22) 45)
+ (= (plane-cost p22) 30)
+ (unused p23)
+ (goalsize p23 small)
+ (= (spray-varnish-cost p23) 5)
+ (= (glaze-cost p23) 10)
+ (= (grind-cost p23) 15)
+ (= (plane-cost p23) 10)
+ (available p24)
+ (colour p24 black)
+ (wood p24 teak)
+ (surface-condition p24 verysmooth)
+ (treatment p24 glazed)
+ (goalsize p24 large)
+ (= (spray-varnish-cost p24) 15)
+ (= (glaze-cost p24) 20)
+ (= (grind-cost p24) 45)
+ (= (plane-cost p24) 30)
+ (unused p25)
+ (goalsize p25 small)
+ (= (spray-varnish-cost p25) 5)
+ (= (glaze-cost p25) 10)
+ (= (grind-cost p25) 15)
+ (= (plane-cost p25) 10)
+ (unused p26)
+ (goalsize p26 small)
+ (= (spray-varnish-cost p26) 5)
+ (= (glaze-cost p26) 10)
+ (= (grind-cost p26) 15)
+ (= (plane-cost p26) 10)
+ (unused p27)
+ (goalsize p27 small)
+ (= (spray-varnish-cost p27) 5)
+ (= (glaze-cost p27) 10)
+ (= (grind-cost p27) 15)
+ (= (plane-cost p27) 10)
+ (unused p28)
+ (goalsize p28 medium)
+ (= (spray-varnish-cost p28) 10)
+ (= (glaze-cost p28) 15)
+ (= (grind-cost p28) 30)
+ (= (plane-cost p28) 20)
+ (unused p29)
+ (goalsize p29 large)
+ (= (spray-varnish-cost p29) 15)
+ (= (glaze-cost p29) 20)
+ (= (grind-cost p29) 45)
+ (= (plane-cost p29) 30)
+ (boardsize b0 s9)
+ (wood b0 cherry)
+ (surface-condition b0 rough)
+ (available b0)
+ (boardsize b1 s2)
+ (wood b1 cherry)
+ (surface-condition b1 rough)
+ (available b1)
+ (boardsize b2 s9)
+ (wood b2 mahogany)
+ (surface-condition b2 rough)
+ (available b2)
+ (boardsize b3 s5)
+ (wood b3 mahogany)
+ (surface-condition b3 smooth)
+ (available b3)
+ (boardsize b4 s9)
+ (wood b4 oak)
+ (surface-condition b4 rough)
+ (available b4)
+ (boardsize b5 s6)
+ (wood b5 pine)
+ (surface-condition b5 rough)
+ (available b5)
+ (boardsize b6 s5)
+ (wood b6 walnut)
+ (surface-condition b6 rough)
+ (available b6)
+ (boardsize b7 s11)
+ (wood b7 teak)
+ (surface-condition b7 rough)
+ (available b7)
+ (boardsize b8 s4)
+ (wood b8 teak)
+ (surface-condition b8 rough)
+ (available b8)
+ (boardsize b9 s5)
+ (wood b9 beech)
+ (surface-condition b9 rough)
+ (available b9)
+ (boardsize b10 s1)
+ (wood b10 beech)
+ (surface-condition b10 smooth)
+ (available b10)
+ )
+ (:goal
+ (and
+ (available p0)
+ (colour p0 blue)
+ (wood p0 beech)
+ (surface-condition p0 smooth)
+ (available p1)
+ (colour p1 mauve)
+ (wood p1 walnut)
+ (surface-condition p1 verysmooth)
+ (available p2)
+ (wood p2 mahogany)
+ (surface-condition p2 smooth)
+ (available p3)
+ (colour p3 black)
+ (surface-condition p3 verysmooth)
+ (available p4)
+ (colour p4 black)
+ (wood p4 walnut)
+ (surface-condition p4 smooth)
+ (treatment p4 varnished)
+ (available p5)
+ (surface-condition p5 verysmooth)
+ (treatment p5 glazed)
+ (available p6)
+ (colour p6 mauve)
+ (wood p6 cherry)
+ (surface-condition p6 verysmooth)
+ (available p7)
+ (colour p7 black)
+ (wood p7 beech)
+ (surface-condition p7 smooth)
+ (treatment p7 varnished)
+ (available p8)
+ (colour p8 natural)
+ (surface-condition p8 smooth)
+ (available p9)
+ (colour p9 green)
+ (wood p9 pine)
+ (surface-condition p9 verysmooth)
+ (available p10)
+ (colour p10 mauve)
+ (treatment p10 glazed)
+ (available p11)
+ (colour p11 green)
+ (wood p11 pine)
+ (surface-condition p11 verysmooth)
+ (available p12)
+ (colour p12 red)
+ (wood p12 teak)
+ (available p13)
+ (colour p13 green)
+ (wood p13 mahogany)
+ (surface-condition p13 smooth)
+ (treatment p13 glazed)
+ (available p14)
+ (colour p14 white)
+ (surface-condition p14 verysmooth)
+ (available p15)
+ (wood p15 beech)
+ (treatment p15 varnished)
+ (available p16)
+ (colour p16 white)
+ (wood p16 cherry)
+ (surface-condition p16 smooth)
+ (treatment p16 glazed)
+ (available p17)
+ (wood p17 teak)
+ (treatment p17 varnished)
+ (available p18)
+ (colour p18 natural)
+ (surface-condition p18 verysmooth)
+ (available p19)
+ (colour p19 black)
+ (treatment p19 glazed)
+ (available p20)
+ (surface-condition p20 smooth)
+ (treatment p20 glazed)
+ (available p21)
+ (wood p21 oak)
+ (surface-condition p21 smooth)
+ (available p22)
+ (colour p22 black)
+ (wood p22 teak)
+ (surface-condition p22 smooth)
+ (available p23)
+ (colour p23 natural)
+ (wood p23 pine)
+ (surface-condition p23 verysmooth)
+ (treatment p23 glazed)
+ (available p24)
+ (colour p24 red)
+ (wood p24 teak)
+ (surface-condition p24 smooth)
+ (treatment p24 varnished)
+ (available p25)
+ (colour p25 red)
+ (surface-condition p25 smooth)
+ (available p26)
+ (wood p26 beech)
+ (treatment p26 glazed)
+ (available p27)
+ (colour p27 blue)
+ (wood p27 mahogany)
+ (available p28)
+ (surface-condition p28 smooth)
+ (treatment p28 varnished)
+ (available p29)
+ (colour p29 black)
+ (wood p29 mahogany)
+ (surface-condition p29 smooth)
+ (treatment p29 varnished)
+ )
+ )
+ (:metric minimize (total-cost))
+)
diff --git a/data/woodworking-sat08-strips/p21.pddl b/data/woodworking-sat08-strips/p21.pddl
new file mode 100644
index 00000000..b3b70c2b
--- /dev/null
+++ b/data/woodworking-sat08-strips/p21.pddl
@@ -0,0 +1,91 @@
+; woodworking task with 3 parts and 100% wood
+; Machines:
+; 1 grinder
+; 1 glazer
+; 1 immersion-varnisher
+; 1 planer
+; 1 highspeed-saw
+; 1 spray-varnisher
+; 1 saw
+; random seed: 406356
+
+(define (problem wood-prob)
+ (:domain woodworking)
+ (:objects
+ grinder0 - grinder
+ glazer0 - glazer
+ immersion-varnisher0 - immersion-varnisher
+ planer0 - planer
+ highspeed-saw0 - highspeed-saw
+ spray-varnisher0 - spray-varnisher
+ saw0 - saw
+ blue red - acolour
+ pine oak - awood
+ p0 p1 p2 - part
+ b0 b1 - board
+ s0 s1 s2 s3 s4 s5 s6 - aboardsize
+ )
+ (:init
+ (grind-treatment-change varnished colourfragments)
+ (grind-treatment-change glazed untreated)
+ (grind-treatment-change untreated untreated)
+ (grind-treatment-change colourfragments untreated)
+ (is-smooth smooth)
+ (is-smooth verysmooth)
+ (= (total-cost) 0)
+ (boardsize-successor s0 s1)
+ (boardsize-successor s1 s2)
+ (boardsize-successor s2 s3)
+ (boardsize-successor s3 s4)
+ (boardsize-successor s4 s5)
+ (boardsize-successor s5 s6)
+ (has-colour glazer0 blue)
+ (has-colour immersion-varnisher0 blue)
+ (has-colour immersion-varnisher0 natural)
+ (empty highspeed-saw0)
+ (has-colour spray-varnisher0 blue)
+ (has-colour spray-varnisher0 natural)
+ (unused p0)
+ (goalsize p0 small)
+ (= (spray-varnish-cost p0) 5)
+ (= (glaze-cost p0) 10)
+ (= (grind-cost p0) 15)
+ (= (plane-cost p0) 10)
+ (unused p1)
+ (goalsize p1 large)
+ (= (spray-varnish-cost p1) 15)
+ (= (glaze-cost p1) 20)
+ (= (grind-cost p1) 45)
+ (= (plane-cost p1) 30)
+ (unused p2)
+ (goalsize p2 large)
+ (= (spray-varnish-cost p2) 15)
+ (= (glaze-cost p2) 20)
+ (= (grind-cost p2) 45)
+ (= (plane-cost p2) 30)
+ (boardsize b0 s1)
+ (wood b0 oak)
+ (surface-condition b0 rough)
+ (available b0)
+ (boardsize b1 s6)
+ (wood b1 pine)
+ (surface-condition b1 rough)
+ (available b1)
+ )
+ (:goal
+ (and
+ (available p0)
+ (colour p0 natural)
+ (wood p0 oak)
+ (surface-condition p0 smooth)
+ (treatment p0 varnished)
+ (available p1)
+ (colour p1 blue)
+ (treatment p1 varnished)
+ (available p2)
+ (wood p2 pine)
+ (surface-condition p2 smooth)
+ )
+ )
+ (:metric minimize (total-cost))
+)
diff --git a/data/woodworking-sat08-strips/p22.pddl b/data/woodworking-sat08-strips/p22.pddl
new file mode 100644
index 00000000..b4574e20
--- /dev/null
+++ b/data/woodworking-sat08-strips/p22.pddl
@@ -0,0 +1,129 @@
+; woodworking task with 6 parts and 100% wood
+; Machines:
+; 1 grinder
+; 1 glazer
+; 1 immersion-varnisher
+; 1 planer
+; 1 highspeed-saw
+; 1 spray-varnisher
+; 1 saw
+; random seed: 93985
+
+(define (problem wood-prob)
+ (:domain woodworking)
+ (:objects
+ grinder0 - grinder
+ glazer0 - glazer
+ immersion-varnisher0 - immersion-varnisher
+ planer0 - planer
+ highspeed-saw0 - highspeed-saw
+ spray-varnisher0 - spray-varnisher
+ saw0 - saw
+ mauve black blue green - acolour
+ teak walnut - awood
+ p0 p1 p2 p3 p4 p5 - part
+ b0 b1 - board
+ s0 s1 s2 s3 s4 - aboardsize
+ )
+ (:init
+ (grind-treatment-change varnished colourfragments)
+ (grind-treatment-change glazed untreated)
+ (grind-treatment-change untreated untreated)
+ (grind-treatment-change colourfragments untreated)
+ (is-smooth smooth)
+ (is-smooth verysmooth)
+ (= (total-cost) 0)
+ (boardsize-successor s0 s1)
+ (boardsize-successor s1 s2)
+ (boardsize-successor s2 s3)
+ (boardsize-successor s3 s4)
+ (has-colour glazer0 blue)
+ (has-colour glazer0 green)
+ (has-colour glazer0 natural)
+ (has-colour immersion-varnisher0 blue)
+ (has-colour immersion-varnisher0 mauve)
+ (has-colour immersion-varnisher0 black)
+ (empty highspeed-saw0)
+ (has-colour spray-varnisher0 blue)
+ (has-colour spray-varnisher0 mauve)
+ (has-colour spray-varnisher0 black)
+ (available p0)
+ (colour p0 green)
+ (wood p0 walnut)
+ (surface-condition p0 smooth)
+ (treatment p0 colourfragments)
+ (goalsize p0 medium)
+ (= (spray-varnish-cost p0) 10)
+ (= (glaze-cost p0) 15)
+ (= (grind-cost p0) 30)
+ (= (plane-cost p0) 20)
+ (unused p1)
+ (goalsize p1 small)
+ (= (spray-varnish-cost p1) 5)
+ (= (glaze-cost p1) 10)
+ (= (grind-cost p1) 15)
+ (= (plane-cost p1) 10)
+ (unused p2)
+ (goalsize p2 large)
+ (= (spray-varnish-cost p2) 15)
+ (= (glaze-cost p2) 20)
+ (= (grind-cost p2) 45)
+ (= (plane-cost p2) 30)
+ (available p3)
+ (colour p3 blue)
+ (wood p3 teak)
+ (surface-condition p3 verysmooth)
+ (treatment p3 glazed)
+ (goalsize p3 large)
+ (= (spray-varnish-cost p3) 15)
+ (= (glaze-cost p3) 20)
+ (= (grind-cost p3) 45)
+ (= (plane-cost p3) 30)
+ (unused p4)
+ (goalsize p4 medium)
+ (= (spray-varnish-cost p4) 10)
+ (= (glaze-cost p4) 15)
+ (= (grind-cost p4) 30)
+ (= (plane-cost p4) 20)
+ (unused p5)
+ (goalsize p5 small)
+ (= (spray-varnish-cost p5) 5)
+ (= (glaze-cost p5) 10)
+ (= (grind-cost p5) 15)
+ (= (plane-cost p5) 10)
+ (boardsize b0 s3)
+ (wood b0 teak)
+ (surface-condition b0 rough)
+ (available b0)
+ (boardsize b1 s4)
+ (wood b1 walnut)
+ (surface-condition b1 rough)
+ (available b1)
+ )
+ (:goal
+ (and
+ (available p0)
+ (colour p0 black)
+ (wood p0 walnut)
+ (surface-condition p0 smooth)
+ (treatment p0 varnished)
+ (available p1)
+ (colour p1 green)
+ (treatment p1 glazed)
+ (available p2)
+ (colour p2 natural)
+ (treatment p2 glazed)
+ (available p3)
+ (colour p3 mauve)
+ (surface-condition p3 smooth)
+ (treatment p3 varnished)
+ (available p4)
+ (colour p4 blue)
+ (wood p4 teak)
+ (available p5)
+ (surface-condition p5 smooth)
+ (treatment p5 glazed)
+ )
+ )
+ (:metric minimize (total-cost))
+)
diff --git a/data/woodworking-sat08-strips/p23.pddl b/data/woodworking-sat08-strips/p23.pddl
new file mode 100644
index 00000000..2288506f
--- /dev/null
+++ b/data/woodworking-sat08-strips/p23.pddl
@@ -0,0 +1,169 @@
+; woodworking task with 9 parts and 100% wood
+; Machines:
+; 1 grinder
+; 1 glazer
+; 1 immersion-varnisher
+; 1 planer
+; 1 highspeed-saw
+; 1 spray-varnisher
+; 1 saw
+; random seed: 239783
+
+(define (problem wood-prob)
+ (:domain woodworking)
+ (:objects
+ grinder0 - grinder
+ glazer0 - glazer
+ immersion-varnisher0 - immersion-varnisher
+ planer0 - planer
+ highspeed-saw0 - highspeed-saw
+ spray-varnisher0 - spray-varnisher
+ saw0 - saw
+ blue black white mauve red green - acolour
+ oak teak - awood
+ p0 p1 p2 p3 p4 p5 p6 p7 p8 - part
+ b0 b1 - board
+ s0 s1 s2 s3 s4 s5 s6 - aboardsize
+ )
+ (:init
+ (grind-treatment-change varnished colourfragments)
+ (grind-treatment-change glazed untreated)
+ (grind-treatment-change untreated untreated)
+ (grind-treatment-change colourfragments untreated)
+ (is-smooth smooth)
+ (is-smooth verysmooth)
+ (= (total-cost) 0)
+ (boardsize-successor s0 s1)
+ (boardsize-successor s1 s2)
+ (boardsize-successor s2 s3)
+ (boardsize-successor s3 s4)
+ (boardsize-successor s4 s5)
+ (boardsize-successor s5 s6)
+ (has-colour glazer0 blue)
+ (has-colour glazer0 mauve)
+ (has-colour glazer0 natural)
+ (has-colour glazer0 green)
+ (has-colour glazer0 red)
+ (has-colour immersion-varnisher0 mauve)
+ (has-colour immersion-varnisher0 green)
+ (has-colour immersion-varnisher0 red)
+ (empty highspeed-saw0)
+ (has-colour spray-varnisher0 mauve)
+ (has-colour spray-varnisher0 green)
+ (has-colour spray-varnisher0 red)
+ (unused p0)
+ (goalsize p0 large)
+ (= (spray-varnish-cost p0) 15)
+ (= (glaze-cost p0) 20)
+ (= (grind-cost p0) 45)
+ (= (plane-cost p0) 30)
+ (available p1)
+ (colour p1 white)
+ (wood p1 teak)
+ (surface-condition p1 verysmooth)
+ (treatment p1 glazed)
+ (goalsize p1 large)
+ (= (spray-varnish-cost p1) 15)
+ (= (glaze-cost p1) 20)
+ (= (grind-cost p1) 45)
+ (= (plane-cost p1) 30)
+ (available p2)
+ (colour p2 mauve)
+ (wood p2 oak)
+ (surface-condition p2 smooth)
+ (treatment p2 colourfragments)
+ (goalsize p2 small)
+ (= (spray-varnish-cost p2) 5)
+ (= (glaze-cost p2) 10)
+ (= (grind-cost p2) 15)
+ (= (plane-cost p2) 10)
+ (available p3)
+ (colour p3 black)
+ (wood p3 teak)
+ (surface-condition p3 verysmooth)
+ (treatment p3 glazed)
+ (goalsize p3 large)
+ (= (spray-varnish-cost p3) 15)
+ (= (glaze-cost p3) 20)
+ (= (grind-cost p3) 45)
+ (= (plane-cost p3) 30)
+ (available p4)
+ (colour p4 red)
+ (wood p4 teak)
+ (surface-condition p4 verysmooth)
+ (treatment p4 colourfragments)
+ (goalsize p4 small)
+ (= (spray-varnish-cost p4) 5)
+ (= (glaze-cost p4) 10)
+ (= (grind-cost p4) 15)
+ (= (plane-cost p4) 10)
+ (unused p5)
+ (goalsize p5 small)
+ (= (spray-varnish-cost p5) 5)
+ (= (glaze-cost p5) 10)
+ (= (grind-cost p5) 15)
+ (= (plane-cost p5) 10)
+ (unused p6)
+ (goalsize p6 small)
+ (= (spray-varnish-cost p6) 5)
+ (= (glaze-cost p6) 10)
+ (= (grind-cost p6) 15)
+ (= (plane-cost p6) 10)
+ (unused p7)
+ (goalsize p7 small)
+ (= (spray-varnish-cost p7) 5)
+ (= (glaze-cost p7) 10)
+ (= (grind-cost p7) 15)
+ (= (plane-cost p7) 10)
+ (unused p8)
+ (goalsize p8 large)
+ (= (spray-varnish-cost p8) 15)
+ (= (glaze-cost p8) 20)
+ (= (grind-cost p8) 45)
+ (= (plane-cost p8) 30)
+ (boardsize b0 s6)
+ (wood b0 teak)
+ (surface-condition b0 rough)
+ (available b0)
+ (boardsize b1 s3)
+ (wood b1 oak)
+ (surface-condition b1 rough)
+ (available b1)
+ )
+ (:goal
+ (and
+ (available p0)
+ (surface-condition p0 smooth)
+ (treatment p0 varnished)
+ (available p1)
+ (colour p1 mauve)
+ (wood p1 teak)
+ (available p2)
+ (colour p2 red)
+ (wood p2 oak)
+ (available p3)
+ (colour p3 natural)
+ (treatment p3 glazed)
+ (available p4)
+ (colour p4 blue)
+ (wood p4 teak)
+ (surface-condition p4 smooth)
+ (treatment p4 glazed)
+ (available p5)
+ (colour p5 green)
+ (wood p5 oak)
+ (available p6)
+ (wood p6 oak)
+ (surface-condition p6 smooth)
+ (available p7)
+ (surface-condition p7 verysmooth)
+ (treatment p7 glazed)
+ (available p8)
+ (colour p8 mauve)
+ (wood p8 teak)
+ (surface-condition p8 verysmooth)
+ (treatment p8 varnished)
+ )
+ )
+ (:metric minimize (total-cost))
+)
diff --git a/data/woodworking-sat08-strips/p24.pddl b/data/woodworking-sat08-strips/p24.pddl
new file mode 100644
index 00000000..0b2bc33a
--- /dev/null
+++ b/data/woodworking-sat08-strips/p24.pddl
@@ -0,0 +1,209 @@
+; woodworking task with 12 parts and 100% wood
+; Machines:
+; 1 grinder
+; 1 glazer
+; 1 immersion-varnisher
+; 1 planer
+; 1 highspeed-saw
+; 1 spray-varnisher
+; 1 saw
+; random seed: 57937
+
+(define (problem wood-prob)
+ (:domain woodworking)
+ (:objects
+ grinder0 - grinder
+ glazer0 - glazer
+ immersion-varnisher0 - immersion-varnisher
+ planer0 - planer
+ highspeed-saw0 - highspeed-saw
+ spray-varnisher0 - spray-varnisher
+ saw0 - saw
+ mauve white green blue red black - acolour
+ walnut pine oak - awood
+ p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 - part
+ b0 b1 b2 b3 - board
+ s0 s1 s2 s3 s4 s5 s6 - aboardsize
+ )
+ (:init
+ (grind-treatment-change varnished colourfragments)
+ (grind-treatment-change glazed untreated)
+ (grind-treatment-change untreated untreated)
+ (grind-treatment-change colourfragments untreated)
+ (is-smooth smooth)
+ (is-smooth verysmooth)
+ (= (total-cost) 0)
+ (boardsize-successor s0 s1)
+ (boardsize-successor s1 s2)
+ (boardsize-successor s2 s3)
+ (boardsize-successor s3 s4)
+ (boardsize-successor s4 s5)
+ (boardsize-successor s5 s6)
+ (has-colour glazer0 blue)
+ (has-colour glazer0 mauve)
+ (has-colour glazer0 white)
+ (has-colour glazer0 black)
+ (has-colour glazer0 red)
+ (has-colour immersion-varnisher0 blue)
+ (has-colour immersion-varnisher0 white)
+ (has-colour immersion-varnisher0 natural)
+ (has-colour immersion-varnisher0 red)
+ (empty highspeed-saw0)
+ (has-colour spray-varnisher0 blue)
+ (has-colour spray-varnisher0 white)
+ (has-colour spray-varnisher0 natural)
+ (has-colour spray-varnisher0 red)
+ (unused p0)
+ (goalsize p0 large)
+ (= (spray-varnish-cost p0) 15)
+ (= (glaze-cost p0) 20)
+ (= (grind-cost p0) 45)
+ (= (plane-cost p0) 30)
+ (unused p1)
+ (goalsize p1 medium)
+ (= (spray-varnish-cost p1) 10)
+ (= (glaze-cost p1) 15)
+ (= (grind-cost p1) 30)
+ (= (plane-cost p1) 20)
+ (unused p2)
+ (goalsize p2 large)
+ (= (spray-varnish-cost p2) 15)
+ (= (glaze-cost p2) 20)
+ (= (grind-cost p2) 45)
+ (= (plane-cost p2) 30)
+ (unused p3)
+ (goalsize p3 large)
+ (= (spray-varnish-cost p3) 15)
+ (= (glaze-cost p3) 20)
+ (= (grind-cost p3) 45)
+ (= (plane-cost p3) 30)
+ (unused p4)
+ (goalsize p4 medium)
+ (= (spray-varnish-cost p4) 10)
+ (= (glaze-cost p4) 15)
+ (= (grind-cost p4) 30)
+ (= (plane-cost p4) 20)
+ (unused p5)
+ (goalsize p5 large)
+ (= (spray-varnish-cost p5) 15)
+ (= (glaze-cost p5) 20)
+ (= (grind-cost p5) 45)
+ (= (plane-cost p5) 30)
+ (unused p6)
+ (goalsize p6 small)
+ (= (spray-varnish-cost p6) 5)
+ (= (glaze-cost p6) 10)
+ (= (grind-cost p6) 15)
+ (= (plane-cost p6) 10)
+ (available p7)
+ (colour p7 red)
+ (wood p7 oak)
+ (surface-condition p7 rough)
+ (treatment p7 colourfragments)
+ (goalsize p7 large)
+ (= (spray-varnish-cost p7) 15)
+ (= (glaze-cost p7) 20)
+ (= (grind-cost p7) 45)
+ (= (plane-cost p7) 30)
+ (unused p8)
+ (goalsize p8 large)
+ (= (spray-varnish-cost p8) 15)
+ (= (glaze-cost p8) 20)
+ (= (grind-cost p8) 45)
+ (= (plane-cost p8) 30)
+ (available p9)
+ (colour p9 mauve)
+ (wood p9 walnut)
+ (surface-condition p9 verysmooth)
+ (treatment p9 varnished)
+ (goalsize p9 small)
+ (= (spray-varnish-cost p9) 5)
+ (= (glaze-cost p9) 10)
+ (= (grind-cost p9) 15)
+ (= (plane-cost p9) 10)
+ (available p10)
+ (colour p10 green)
+ (wood p10 pine)
+ (surface-condition p10 smooth)
+ (treatment p10 glazed)
+ (goalsize p10 medium)
+ (= (spray-varnish-cost p10) 10)
+ (= (glaze-cost p10) 15)
+ (= (grind-cost p10) 30)
+ (= (plane-cost p10) 20)
+ (unused p11)
+ (goalsize p11 large)
+ (= (spray-varnish-cost p11) 15)
+ (= (glaze-cost p11) 20)
+ (= (grind-cost p11) 45)
+ (= (plane-cost p11) 30)
+ (boardsize b0 s6)
+ (wood b0 oak)
+ (surface-condition b0 smooth)
+ (available b0)
+ (boardsize b1 s6)
+ (wood b1 oak)
+ (surface-condition b1 rough)
+ (available b1)
+ (boardsize b2 s5)
+ (wood b2 pine)
+ (surface-condition b2 rough)
+ (available b2)
+ (boardsize b3 s6)
+ (wood b3 walnut)
+ (surface-condition b3 smooth)
+ (available b3)
+ )
+ (:goal
+ (and
+ (available p0)
+ (surface-condition p0 smooth)
+ (treatment p0 varnished)
+ (available p1)
+ (colour p1 black)
+ (wood p1 pine)
+ (surface-condition p1 verysmooth)
+ (treatment p1 glazed)
+ (available p2)
+ (colour p2 blue)
+ (surface-condition p2 verysmooth)
+ (available p3)
+ (colour p3 blue)
+ (wood p3 oak)
+ (surface-condition p3 smooth)
+ (treatment p3 varnished)
+ (available p4)
+ (colour p4 mauve)
+ (wood p4 oak)
+ (surface-condition p4 verysmooth)
+ (treatment p4 glazed)
+ (available p5)
+ (colour p5 red)
+ (wood p5 oak)
+ (surface-condition p5 verysmooth)
+ (available p6)
+ (wood p6 oak)
+ (treatment p6 glazed)
+ (available p7)
+ (surface-condition p7 verysmooth)
+ (treatment p7 varnished)
+ (available p8)
+ (colour p8 red)
+ (wood p8 oak)
+ (available p9)
+ (colour p9 white)
+ (surface-condition p9 verysmooth)
+ (treatment p9 varnished)
+ (available p10)
+ (colour p10 natural)
+ (wood p10 pine)
+ (surface-condition p10 smooth)
+ (treatment p10 varnished)
+ (available p11)
+ (colour p11 white)
+ (surface-condition p11 smooth)
+ (treatment p11 glazed)
+ )
+ )
+ (:metric minimize (total-cost))
+)
diff --git a/data/woodworking-sat08-strips/p25.pddl b/data/woodworking-sat08-strips/p25.pddl
new file mode 100644
index 00000000..4a4ad396
--- /dev/null
+++ b/data/woodworking-sat08-strips/p25.pddl
@@ -0,0 +1,249 @@
+; woodworking task with 15 parts and 100% wood
+; Machines:
+; 1 grinder
+; 1 glazer
+; 1 immersion-varnisher
+; 1 planer
+; 1 highspeed-saw
+; 1 spray-varnisher
+; 1 saw
+; random seed: 224661
+
+(define (problem wood-prob)
+ (:domain woodworking)
+ (:objects
+ grinder0 - grinder
+ glazer0 - glazer
+ immersion-varnisher0 - immersion-varnisher
+ planer0 - planer
+ highspeed-saw0 - highspeed-saw
+ spray-varnisher0 - spray-varnisher
+ saw0 - saw
+ green blue white red mauve black - acolour
+ oak cherry walnut teak - awood
+ p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 - part
+ b0 b1 b2 b3 b4 - board
+ s0 s1 s2 s3 s4 s5 s6 s7 s8 - aboardsize
+ )
+ (:init
+ (grind-treatment-change varnished colourfragments)
+ (grind-treatment-change glazed untreated)
+ (grind-treatment-change untreated untreated)
+ (grind-treatment-change colourfragments untreated)
+ (is-smooth smooth)
+ (is-smooth verysmooth)
+ (= (total-cost) 0)
+ (boardsize-successor s0 s1)
+ (boardsize-successor s1 s2)
+ (boardsize-successor s2 s3)
+ (boardsize-successor s3 s4)
+ (boardsize-successor s4 s5)
+ (boardsize-successor s5 s6)
+ (boardsize-successor s6 s7)
+ (boardsize-successor s7 s8)
+ (has-colour glazer0 green)
+ (has-colour glazer0 white)
+ (has-colour glazer0 natural)
+ (has-colour glazer0 black)
+ (has-colour immersion-varnisher0 blue)
+ (has-colour immersion-varnisher0 mauve)
+ (has-colour immersion-varnisher0 white)
+ (has-colour immersion-varnisher0 natural)
+ (has-colour immersion-varnisher0 black)
+ (empty highspeed-saw0)
+ (has-colour spray-varnisher0 blue)
+ (has-colour spray-varnisher0 mauve)
+ (has-colour spray-varnisher0 white)
+ (has-colour spray-varnisher0 natural)
+ (has-colour spray-varnisher0 black)
+ (unused p0)
+ (goalsize p0 large)
+ (= (spray-varnish-cost p0) 15)
+ (= (glaze-cost p0) 20)
+ (= (grind-cost p0) 45)
+ (= (plane-cost p0) 30)
+ (unused p1)
+ (goalsize p1 medium)
+ (= (spray-varnish-cost p1) 10)
+ (= (glaze-cost p1) 15)
+ (= (grind-cost p1) 30)
+ (= (plane-cost p1) 20)
+ (unused p2)
+ (goalsize p2 small)
+ (= (spray-varnish-cost p2) 5)
+ (= (glaze-cost p2) 10)
+ (= (grind-cost p2) 15)
+ (= (plane-cost p2) 10)
+ (available p3)
+ (colour p3 green)
+ (wood p3 teak)
+ (surface-condition p3 rough)
+ (treatment p3 varnished)
+ (goalsize p3 large)
+ (= (spray-varnish-cost p3) 15)
+ (= (glaze-cost p3) 20)
+ (= (grind-cost p3) 45)
+ (= (plane-cost p3) 30)
+ (available p4)
+ (colour p4 blue)
+ (wood p4 teak)
+ (surface-condition p4 rough)
+ (treatment p4 colourfragments)
+ (goalsize p4 small)
+ (= (spray-varnish-cost p4) 5)
+ (= (glaze-cost p4) 10)
+ (= (grind-cost p4) 15)
+ (= (plane-cost p4) 10)
+ (unused p5)
+ (goalsize p5 small)
+ (= (spray-varnish-cost p5) 5)
+ (= (glaze-cost p5) 10)
+ (= (grind-cost p5) 15)
+ (= (plane-cost p5) 10)
+ (unused p6)
+ (goalsize p6 medium)
+ (= (spray-varnish-cost p6) 10)
+ (= (glaze-cost p6) 15)
+ (= (grind-cost p6) 30)
+ (= (plane-cost p6) 20)
+ (unused p7)
+ (goalsize p7 large)
+ (= (spray-varnish-cost p7) 15)
+ (= (glaze-cost p7) 20)
+ (= (grind-cost p7) 45)
+ (= (plane-cost p7) 30)
+ (unused p8)
+ (goalsize p8 large)
+ (= (spray-varnish-cost p8) 15)
+ (= (glaze-cost p8) 20)
+ (= (grind-cost p8) 45)
+ (= (plane-cost p8) 30)
+ (unused p9)
+ (goalsize p9 small)
+ (= (spray-varnish-cost p9) 5)
+ (= (glaze-cost p9) 10)
+ (= (grind-cost p9) 15)
+ (= (plane-cost p9) 10)
+ (available p10)
+ (colour p10 white)
+ (wood p10 walnut)
+ (surface-condition p10 smooth)
+ (treatment p10 colourfragments)
+ (goalsize p10 small)
+ (= (spray-varnish-cost p10) 5)
+ (= (glaze-cost p10) 10)
+ (= (grind-cost p10) 15)
+ (= (plane-cost p10) 10)
+ (unused p11)
+ (goalsize p11 large)
+ (= (spray-varnish-cost p11) 15)
+ (= (glaze-cost p11) 20)
+ (= (grind-cost p11) 45)
+ (= (plane-cost p11) 30)
+ (unused p12)
+ (goalsize p12 medium)
+ (= (spray-varnish-cost p12) 10)
+ (= (glaze-cost p12) 15)
+ (= (grind-cost p12) 30)
+ (= (plane-cost p12) 20)
+ (unused p13)
+ (goalsize p13 large)
+ (= (spray-varnish-cost p13) 15)
+ (= (glaze-cost p13) 20)
+ (= (grind-cost p13) 45)
+ (= (plane-cost p13) 30)
+ (unused p14)
+ (goalsize p14 medium)
+ (= (spray-varnish-cost p14) 10)
+ (= (glaze-cost p14) 15)
+ (= (grind-cost p14) 30)
+ (= (plane-cost p14) 20)
+ (boardsize b0 s5)
+ (wood b0 cherry)
+ (surface-condition b0 rough)
+ (available b0)
+ (boardsize b1 s3)
+ (wood b1 cherry)
+ (surface-condition b1 rough)
+ (available b1)
+ (boardsize b2 s7)
+ (wood b2 oak)
+ (surface-condition b2 smooth)
+ (available b2)
+ (boardsize b3 s3)
+ (wood b3 oak)
+ (surface-condition b3 rough)
+ (available b3)
+ (boardsize b4 s8)
+ (wood b4 teak)
+ (surface-condition b4 rough)
+ (available b4)
+ )
+ (:goal
+ (and
+ (available p0)
+ (colour p0 mauve)
+ (wood p0 oak)
+ (surface-condition p0 smooth)
+ (treatment p0 varnished)
+ (available p1)
+ (surface-condition p1 smooth)
+ (treatment p1 glazed)
+ (available p2)
+ (wood p2 cherry)
+ (surface-condition p2 smooth)
+ (treatment p2 glazed)
+ (available p3)
+ (wood p3 teak)
+ (treatment p3 glazed)
+ (available p4)
+ (colour p4 white)
+ (wood p4 teak)
+ (surface-condition p4 smooth)
+ (available p5)
+ (colour p5 natural)
+ (wood p5 cherry)
+ (surface-condition p5 smooth)
+ (treatment p5 varnished)
+ (available p6)
+ (colour p6 green)
+ (wood p6 oak)
+ (surface-condition p6 smooth)
+ (treatment p6 glazed)
+ (available p7)
+ (colour p7 white)
+ (wood p7 teak)
+ (treatment p7 varnished)
+ (available p8)
+ (colour p8 green)
+ (surface-condition p8 smooth)
+ (treatment p8 glazed)
+ (available p9)
+ (colour p9 white)
+ (treatment p9 varnished)
+ (available p10)
+ (colour p10 natural)
+ (wood p10 walnut)
+ (surface-condition p10 smooth)
+ (treatment p10 glazed)
+ (available p11)
+ (colour p11 black)
+ (wood p11 teak)
+ (surface-condition p11 smooth)
+ (available p12)
+ (colour p12 blue)
+ (wood p12 teak)
+ (surface-condition p12 verysmooth)
+ (treatment p12 varnished)
+ (available p13)
+ (colour p13 white)
+ (wood p13 cherry)
+ (available p14)
+ (colour p14 natural)
+ (wood p14 oak)
+ (surface-condition p14 smooth)
+ (treatment p14 glazed)
+ )
+ )
+ (:metric minimize (total-cost))
+)
diff --git a/data/woodworking-sat08-strips/p26.pddl b/data/woodworking-sat08-strips/p26.pddl
new file mode 100644
index 00000000..c201e23b
--- /dev/null
+++ b/data/woodworking-sat08-strips/p26.pddl
@@ -0,0 +1,280 @@
+; woodworking task with 18 parts and 100% wood
+; Machines:
+; 1 grinder
+; 1 glazer
+; 1 immersion-varnisher
+; 1 planer
+; 1 highspeed-saw
+; 1 spray-varnisher
+; 1 saw
+; random seed: 518346
+
+(define (problem wood-prob)
+ (:domain woodworking)
+ (:objects
+ grinder0 - grinder
+ glazer0 - glazer
+ immersion-varnisher0 - immersion-varnisher
+ planer0 - planer
+ highspeed-saw0 - highspeed-saw
+ spray-varnisher0 - spray-varnisher
+ saw0 - saw
+ white red mauve black blue green - acolour
+ walnut beech cherry mahogany pine - awood
+ p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 p16 p17 - part
+ b0 b1 b2 b3 b4 b5 b6 - board
+ s0 s1 s2 s3 s4 s5 s6 s7 s8 - aboardsize
+ )
+ (:init
+ (grind-treatment-change varnished colourfragments)
+ (grind-treatment-change glazed untreated)
+ (grind-treatment-change untreated untreated)
+ (grind-treatment-change colourfragments untreated)
+ (is-smooth smooth)
+ (is-smooth verysmooth)
+ (= (total-cost) 0)
+ (boardsize-successor s0 s1)
+ (boardsize-successor s1 s2)
+ (boardsize-successor s2 s3)
+ (boardsize-successor s3 s4)
+ (boardsize-successor s4 s5)
+ (boardsize-successor s5 s6)
+ (boardsize-successor s6 s7)
+ (boardsize-successor s7 s8)
+ (has-colour glazer0 blue)
+ (has-colour glazer0 black)
+ (has-colour glazer0 natural)
+ (has-colour glazer0 red)
+ (has-colour immersion-varnisher0 blue)
+ (has-colour immersion-varnisher0 mauve)
+ (has-colour immersion-varnisher0 white)
+ (has-colour immersion-varnisher0 red)
+ (empty highspeed-saw0)
+ (has-colour spray-varnisher0 blue)
+ (has-colour spray-varnisher0 mauve)
+ (has-colour spray-varnisher0 white)
+ (has-colour spray-varnisher0 red)
+ (available p0)
+ (colour p0 black)
+ (wood p0 pine)
+ (surface-condition p0 rough)
+ (treatment p0 varnished)
+ (goalsize p0 medium)
+ (= (spray-varnish-cost p0) 10)
+ (= (glaze-cost p0) 15)
+ (= (grind-cost p0) 30)
+ (= (plane-cost p0) 20)
+ (unused p1)
+ (goalsize p1 small)
+ (= (spray-varnish-cost p1) 5)
+ (= (glaze-cost p1) 10)
+ (= (grind-cost p1) 15)
+ (= (plane-cost p1) 10)
+ (unused p2)
+ (goalsize p2 medium)
+ (= (spray-varnish-cost p2) 10)
+ (= (glaze-cost p2) 15)
+ (= (grind-cost p2) 30)
+ (= (plane-cost p2) 20)
+ (available p3)
+ (colour p3 black)
+ (wood p3 beech)
+ (surface-condition p3 verysmooth)
+ (treatment p3 glazed)
+ (goalsize p3 small)
+ (= (spray-varnish-cost p3) 5)
+ (= (glaze-cost p3) 10)
+ (= (grind-cost p3) 15)
+ (= (plane-cost p3) 10)
+ (unused p4)
+ (goalsize p4 small)
+ (= (spray-varnish-cost p4) 5)
+ (= (glaze-cost p4) 10)
+ (= (grind-cost p4) 15)
+ (= (plane-cost p4) 10)
+ (unused p5)
+ (goalsize p5 large)
+ (= (spray-varnish-cost p5) 15)
+ (= (glaze-cost p5) 20)
+ (= (grind-cost p5) 45)
+ (= (plane-cost p5) 30)
+ (unused p6)
+ (goalsize p6 large)
+ (= (spray-varnish-cost p6) 15)
+ (= (glaze-cost p6) 20)
+ (= (grind-cost p6) 45)
+ (= (plane-cost p6) 30)
+ (unused p7)
+ (goalsize p7 medium)
+ (= (spray-varnish-cost p7) 10)
+ (= (glaze-cost p7) 15)
+ (= (grind-cost p7) 30)
+ (= (plane-cost p7) 20)
+ (unused p8)
+ (goalsize p8 small)
+ (= (spray-varnish-cost p8) 5)
+ (= (glaze-cost p8) 10)
+ (= (grind-cost p8) 15)
+ (= (plane-cost p8) 10)
+ (unused p9)
+ (goalsize p9 small)
+ (= (spray-varnish-cost p9) 5)
+ (= (glaze-cost p9) 10)
+ (= (grind-cost p9) 15)
+ (= (plane-cost p9) 10)
+ (unused p10)
+ (goalsize p10 small)
+ (= (spray-varnish-cost p10) 5)
+ (= (glaze-cost p10) 10)
+ (= (grind-cost p10) 15)
+ (= (plane-cost p10) 10)
+ (unused p11)
+ (goalsize p11 medium)
+ (= (spray-varnish-cost p11) 10)
+ (= (glaze-cost p11) 15)
+ (= (grind-cost p11) 30)
+ (= (plane-cost p11) 20)
+ (available p12)
+ (colour p12 blue)
+ (wood p12 pine)
+ (surface-condition p12 verysmooth)
+ (treatment p12 colourfragments)
+ (goalsize p12 small)
+ (= (spray-varnish-cost p12) 5)
+ (= (glaze-cost p12) 10)
+ (= (grind-cost p12) 15)
+ (= (plane-cost p12) 10)
+ (unused p13)
+ (goalsize p13 small)
+ (= (spray-varnish-cost p13) 5)
+ (= (glaze-cost p13) 10)
+ (= (grind-cost p13) 15)
+ (= (plane-cost p13) 10)
+ (unused p14)
+ (goalsize p14 small)
+ (= (spray-varnish-cost p14) 5)
+ (= (glaze-cost p14) 10)
+ (= (grind-cost p14) 15)
+ (= (plane-cost p14) 10)
+ (unused p15)
+ (goalsize p15 medium)
+ (= (spray-varnish-cost p15) 10)
+ (= (glaze-cost p15) 15)
+ (= (grind-cost p15) 30)
+ (= (plane-cost p15) 20)
+ (unused p16)
+ (goalsize p16 large)
+ (= (spray-varnish-cost p16) 15)
+ (= (glaze-cost p16) 20)
+ (= (grind-cost p16) 45)
+ (= (plane-cost p16) 30)
+ (available p17)
+ (colour p17 black)
+ (wood p17 mahogany)
+ (surface-condition p17 smooth)
+ (treatment p17 varnished)
+ (goalsize p17 medium)
+ (= (spray-varnish-cost p17) 10)
+ (= (glaze-cost p17) 15)
+ (= (grind-cost p17) 30)
+ (= (plane-cost p17) 20)
+ (boardsize b0 s5)
+ (wood b0 beech)
+ (surface-condition b0 rough)
+ (available b0)
+ (boardsize b1 s3)
+ (wood b1 cherry)
+ (surface-condition b1 rough)
+ (available b1)
+ (boardsize b2 s1)
+ (wood b2 mahogany)
+ (surface-condition b2 rough)
+ (available b2)
+ (boardsize b3 s8)
+ (wood b3 pine)
+ (surface-condition b3 rough)
+ (available b3)
+ (boardsize b4 s0)
+ (wood b4 pine)
+ (surface-condition b4 rough)
+ (available b4)
+ (boardsize b5 s3)
+ (wood b5 walnut)
+ (surface-condition b5 rough)
+ (available b5)
+ (boardsize b6 s4)
+ (wood b6 walnut)
+ (surface-condition b6 rough)
+ (available b6)
+ )
+ (:goal
+ (and
+ (available p0)
+ (surface-condition p0 verysmooth)
+ (treatment p0 glazed)
+ (available p1)
+ (colour p1 red)
+ (surface-condition p1 verysmooth)
+ (available p2)
+ (wood p2 pine)
+ (surface-condition p2 verysmooth)
+ (available p3)
+ (surface-condition p3 smooth)
+ (treatment p3 glazed)
+ (available p4)
+ (colour p4 blue)
+ (surface-condition p4 smooth)
+ (available p5)
+ (wood p5 cherry)
+ (surface-condition p5 verysmooth)
+ (available p6)
+ (wood p6 pine)
+ (surface-condition p6 smooth)
+ (available p7)
+ (colour p7 blue)
+ (wood p7 walnut)
+ (surface-condition p7 verysmooth)
+ (available p8)
+ (colour p8 mauve)
+ (wood p8 walnut)
+ (surface-condition p8 verysmooth)
+ (treatment p8 varnished)
+ (available p9)
+ (wood p9 walnut)
+ (treatment p9 glazed)
+ (available p10)
+ (colour p10 mauve)
+ (surface-condition p10 verysmooth)
+ (treatment p10 varnished)
+ (available p11)
+ (colour p11 black)
+ (wood p11 pine)
+ (surface-condition p11 verysmooth)
+ (treatment p11 glazed)
+ (available p12)
+ (colour p12 white)
+ (treatment p12 varnished)
+ (available p13)
+ (wood p13 walnut)
+ (surface-condition p13 verysmooth)
+ (treatment p13 varnished)
+ (available p14)
+ (colour p14 white)
+ (treatment p14 varnished)
+ (available p15)
+ (colour p15 red)
+ (wood p15 beech)
+ (available p16)
+ (colour p16 blue)
+ (wood p16 beech)
+ (surface-condition p16 smooth)
+ (treatment p16 glazed)
+ (available p17)
+ (colour p17 natural)
+ (wood p17 mahogany)
+ (surface-condition p17 verysmooth)
+ (treatment p17 glazed)
+ )
+ )
+ (:metric minimize (total-cost))
+)
diff --git a/data/woodworking-sat08-strips/p27.pddl b/data/woodworking-sat08-strips/p27.pddl
new file mode 100644
index 00000000..44050baa
--- /dev/null
+++ b/data/woodworking-sat08-strips/p27.pddl
@@ -0,0 +1,320 @@
+; woodworking task with 21 parts and 100% wood
+; Machines:
+; 1 grinder
+; 1 glazer
+; 1 immersion-varnisher
+; 1 planer
+; 1 highspeed-saw
+; 1 spray-varnisher
+; 1 saw
+; random seed: 8878
+
+(define (problem wood-prob)
+ (:domain woodworking)
+ (:objects
+ grinder0 - grinder
+ glazer0 - glazer
+ immersion-varnisher0 - immersion-varnisher
+ planer0 - planer
+ highspeed-saw0 - highspeed-saw
+ spray-varnisher0 - spray-varnisher
+ saw0 - saw
+ red blue black mauve white green - acolour
+ oak pine cherry teak beech - awood
+ p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 p16 p17 p18 p19 p20 - part
+ b0 b1 b2 b3 b4 b5 - board
+ s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 - aboardsize
+ )
+ (:init
+ (grind-treatment-change varnished colourfragments)
+ (grind-treatment-change glazed untreated)
+ (grind-treatment-change untreated untreated)
+ (grind-treatment-change colourfragments untreated)
+ (is-smooth smooth)
+ (is-smooth verysmooth)
+ (= (total-cost) 0)
+ (boardsize-successor s0 s1)
+ (boardsize-successor s1 s2)
+ (boardsize-successor s2 s3)
+ (boardsize-successor s3 s4)
+ (boardsize-successor s4 s5)
+ (boardsize-successor s5 s6)
+ (boardsize-successor s6 s7)
+ (boardsize-successor s7 s8)
+ (boardsize-successor s8 s9)
+ (has-colour glazer0 blue)
+ (has-colour glazer0 natural)
+ (has-colour glazer0 mauve)
+ (has-colour glazer0 green)
+ (has-colour glazer0 white)
+ (has-colour glazer0 red)
+ (has-colour immersion-varnisher0 blue)
+ (has-colour immersion-varnisher0 natural)
+ (has-colour immersion-varnisher0 mauve)
+ (has-colour immersion-varnisher0 green)
+ (has-colour immersion-varnisher0 black)
+ (has-colour immersion-varnisher0 red)
+ (empty highspeed-saw0)
+ (has-colour spray-varnisher0 blue)
+ (has-colour spray-varnisher0 natural)
+ (has-colour spray-varnisher0 mauve)
+ (has-colour spray-varnisher0 green)
+ (has-colour spray-varnisher0 black)
+ (has-colour spray-varnisher0 red)
+ (available p0)
+ (colour p0 red)
+ (wood p0 pine)
+ (surface-condition p0 rough)
+ (treatment p0 varnished)
+ (goalsize p0 small)
+ (= (spray-varnish-cost p0) 5)
+ (= (glaze-cost p0) 10)
+ (= (grind-cost p0) 15)
+ (= (plane-cost p0) 10)
+ (unused p1)
+ (goalsize p1 medium)
+ (= (spray-varnish-cost p1) 10)
+ (= (glaze-cost p1) 15)
+ (= (grind-cost p1) 30)
+ (= (plane-cost p1) 20)
+ (unused p2)
+ (goalsize p2 large)
+ (= (spray-varnish-cost p2) 15)
+ (= (glaze-cost p2) 20)
+ (= (grind-cost p2) 45)
+ (= (plane-cost p2) 30)
+ (available p3)
+ (colour p3 red)
+ (wood p3 oak)
+ (surface-condition p3 verysmooth)
+ (treatment p3 glazed)
+ (goalsize p3 medium)
+ (= (spray-varnish-cost p3) 10)
+ (= (glaze-cost p3) 15)
+ (= (grind-cost p3) 30)
+ (= (plane-cost p3) 20)
+ (unused p4)
+ (goalsize p4 large)
+ (= (spray-varnish-cost p4) 15)
+ (= (glaze-cost p4) 20)
+ (= (grind-cost p4) 45)
+ (= (plane-cost p4) 30)
+ (unused p5)
+ (goalsize p5 small)
+ (= (spray-varnish-cost p5) 5)
+ (= (glaze-cost p5) 10)
+ (= (grind-cost p5) 15)
+ (= (plane-cost p5) 10)
+ (unused p6)
+ (goalsize p6 small)
+ (= (spray-varnish-cost p6) 5)
+ (= (glaze-cost p6) 10)
+ (= (grind-cost p6) 15)
+ (= (plane-cost p6) 10)
+ (unused p7)
+ (goalsize p7 medium)
+ (= (spray-varnish-cost p7) 10)
+ (= (glaze-cost p7) 15)
+ (= (grind-cost p7) 30)
+ (= (plane-cost p7) 20)
+ (unused p8)
+ (goalsize p8 large)
+ (= (spray-varnish-cost p8) 15)
+ (= (glaze-cost p8) 20)
+ (= (grind-cost p8) 45)
+ (= (plane-cost p8) 30)
+ (unused p9)
+ (goalsize p9 large)
+ (= (spray-varnish-cost p9) 15)
+ (= (glaze-cost p9) 20)
+ (= (grind-cost p9) 45)
+ (= (plane-cost p9) 30)
+ (unused p10)
+ (goalsize p10 large)
+ (= (spray-varnish-cost p10) 15)
+ (= (glaze-cost p10) 20)
+ (= (grind-cost p10) 45)
+ (= (plane-cost p10) 30)
+ (unused p11)
+ (goalsize p11 large)
+ (= (spray-varnish-cost p11) 15)
+ (= (glaze-cost p11) 20)
+ (= (grind-cost p11) 45)
+ (= (plane-cost p11) 30)
+ (available p12)
+ (colour p12 white)
+ (wood p12 cherry)
+ (surface-condition p12 smooth)
+ (treatment p12 glazed)
+ (goalsize p12 large)
+ (= (spray-varnish-cost p12) 15)
+ (= (glaze-cost p12) 20)
+ (= (grind-cost p12) 45)
+ (= (plane-cost p12) 30)
+ (available p13)
+ (colour p13 white)
+ (wood p13 pine)
+ (surface-condition p13 smooth)
+ (treatment p13 varnished)
+ (goalsize p13 small)
+ (= (spray-varnish-cost p13) 5)
+ (= (glaze-cost p13) 10)
+ (= (grind-cost p13) 15)
+ (= (plane-cost p13) 10)
+ (available p14)
+ (colour p14 black)
+ (wood p14 cherry)
+ (surface-condition p14 smooth)
+ (treatment p14 glazed)
+ (goalsize p14 small)
+ (= (spray-varnish-cost p14) 5)
+ (= (glaze-cost p14) 10)
+ (= (grind-cost p14) 15)
+ (= (plane-cost p14) 10)
+ (unused p15)
+ (goalsize p15 large)
+ (= (spray-varnish-cost p15) 15)
+ (= (glaze-cost p15) 20)
+ (= (grind-cost p15) 45)
+ (= (plane-cost p15) 30)
+ (available p16)
+ (colour p16 white)
+ (wood p16 oak)
+ (surface-condition p16 rough)
+ (treatment p16 varnished)
+ (goalsize p16 large)
+ (= (spray-varnish-cost p16) 15)
+ (= (glaze-cost p16) 20)
+ (= (grind-cost p16) 45)
+ (= (plane-cost p16) 30)
+ (unused p17)
+ (goalsize p17 large)
+ (= (spray-varnish-cost p17) 15)
+ (= (glaze-cost p17) 20)
+ (= (grind-cost p17) 45)
+ (= (plane-cost p17) 30)
+ (unused p18)
+ (goalsize p18 small)
+ (= (spray-varnish-cost p18) 5)
+ (= (glaze-cost p18) 10)
+ (= (grind-cost p18) 15)
+ (= (plane-cost p18) 10)
+ (available p19)
+ (colour p19 black)
+ (wood p19 cherry)
+ (surface-condition p19 verysmooth)
+ (treatment p19 varnished)
+ (goalsize p19 medium)
+ (= (spray-varnish-cost p19) 10)
+ (= (glaze-cost p19) 15)
+ (= (grind-cost p19) 30)
+ (= (plane-cost p19) 20)
+ (unused p20)
+ (goalsize p20 medium)
+ (= (spray-varnish-cost p20) 10)
+ (= (glaze-cost p20) 15)
+ (= (grind-cost p20) 30)
+ (= (plane-cost p20) 20)
+ (boardsize b0 s9)
+ (wood b0 beech)
+ (surface-condition b0 rough)
+ (available b0)
+ (boardsize b1 s7)
+ (wood b1 cherry)
+ (surface-condition b1 rough)
+ (available b1)
+ (boardsize b2 s2)
+ (wood b2 cherry)
+ (surface-condition b2 smooth)
+ (available b2)
+ (boardsize b3 s5)
+ (wood b3 oak)
+ (surface-condition b3 smooth)
+ (available b3)
+ (boardsize b4 s8)
+ (wood b4 pine)
+ (surface-condition b4 rough)
+ (available b4)
+ (boardsize b5 s2)
+ (wood b5 teak)
+ (surface-condition b5 rough)
+ (available b5)
+ )
+ (:goal
+ (and
+ (available p0)
+ (colour p0 natural)
+ (surface-condition p0 smooth)
+ (available p1)
+ (colour p1 green)
+ (wood p1 pine)
+ (surface-condition p1 smooth)
+ (treatment p1 varnished)
+ (available p2)
+ (colour p2 natural)
+ (wood p2 cherry)
+ (available p3)
+ (colour p3 white)
+ (treatment p3 glazed)
+ (available p4)
+ (colour p4 mauve)
+ (surface-condition p4 smooth)
+ (available p5)
+ (colour p5 green)
+ (surface-condition p5 verysmooth)
+ (available p6)
+ (colour p6 black)
+ (wood p6 oak)
+ (surface-condition p6 smooth)
+ (treatment p6 varnished)
+ (available p7)
+ (colour p7 blue)
+ (wood p7 teak)
+ (available p8)
+ (colour p8 mauve)
+ (wood p8 beech)
+ (treatment p8 varnished)
+ (available p9)
+ (colour p9 mauve)
+ (treatment p9 glazed)
+ (available p10)
+ (wood p10 oak)
+ (treatment p10 varnished)
+ (available p11)
+ (colour p11 natural)
+ (treatment p11 glazed)
+ (available p12)
+ (wood p12 cherry)
+ (surface-condition p12 verysmooth)
+ (treatment p12 varnished)
+ (available p13)
+ (colour p13 red)
+ (wood p13 pine)
+ (surface-condition p13 verysmooth)
+ (available p14)
+ (colour p14 blue)
+ (wood p14 cherry)
+ (surface-condition p14 verysmooth)
+ (treatment p14 glazed)
+ (available p15)
+ (wood p15 beech)
+ (treatment p15 glazed)
+ (available p16)
+ (surface-condition p16 smooth)
+ (treatment p16 glazed)
+ (available p17)
+ (colour p17 blue)
+ (treatment p17 varnished)
+ (available p18)
+ (wood p18 cherry)
+ (surface-condition p18 verysmooth)
+ (available p19)
+ (colour p19 natural)
+ (wood p19 cherry)
+ (available p20)
+ (colour p20 blue)
+ (surface-condition p20 smooth)
+ )
+ )
+ (:metric minimize (total-cost))
+)
diff --git a/data/woodworking-sat08-strips/p28.pddl b/data/woodworking-sat08-strips/p28.pddl
new file mode 100644
index 00000000..1ada6699
--- /dev/null
+++ b/data/woodworking-sat08-strips/p28.pddl
@@ -0,0 +1,352 @@
+; woodworking task with 24 parts and 100% wood
+; Machines:
+; 1 grinder
+; 1 glazer
+; 1 immersion-varnisher
+; 1 planer
+; 1 highspeed-saw
+; 1 spray-varnisher
+; 1 saw
+; random seed: 660554
+
+(define (problem wood-prob)
+ (:domain woodworking)
+ (:objects
+ grinder0 - grinder
+ glazer0 - glazer
+ immersion-varnisher0 - immersion-varnisher
+ planer0 - planer
+ highspeed-saw0 - highspeed-saw
+ spray-varnisher0 - spray-varnisher
+ saw0 - saw
+ white blue green mauve red black - acolour
+ mahogany beech cherry pine oak teak - awood
+ p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 p16 p17 p18 p19 p20 p21 p22 p23 - part
+ b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 - board
+ s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 - aboardsize
+ )
+ (:init
+ (grind-treatment-change varnished colourfragments)
+ (grind-treatment-change glazed untreated)
+ (grind-treatment-change untreated untreated)
+ (grind-treatment-change colourfragments untreated)
+ (is-smooth smooth)
+ (is-smooth verysmooth)
+ (= (total-cost) 0)
+ (boardsize-successor s0 s1)
+ (boardsize-successor s1 s2)
+ (boardsize-successor s2 s3)
+ (boardsize-successor s3 s4)
+ (boardsize-successor s4 s5)
+ (boardsize-successor s5 s6)
+ (boardsize-successor s6 s7)
+ (boardsize-successor s7 s8)
+ (boardsize-successor s8 s9)
+ (has-colour glazer0 blue)
+ (has-colour glazer0 mauve)
+ (has-colour glazer0 white)
+ (has-colour glazer0 natural)
+ (has-colour glazer0 green)
+ (has-colour immersion-varnisher0 blue)
+ (has-colour immersion-varnisher0 natural)
+ (has-colour immersion-varnisher0 mauve)
+ (has-colour immersion-varnisher0 green)
+ (has-colour immersion-varnisher0 black)
+ (has-colour immersion-varnisher0 white)
+ (has-colour immersion-varnisher0 red)
+ (empty highspeed-saw0)
+ (has-colour spray-varnisher0 blue)
+ (has-colour spray-varnisher0 natural)
+ (has-colour spray-varnisher0 mauve)
+ (has-colour spray-varnisher0 green)
+ (has-colour spray-varnisher0 black)
+ (has-colour spray-varnisher0 white)
+ (has-colour spray-varnisher0 red)
+ (unused p0)
+ (goalsize p0 small)
+ (= (spray-varnish-cost p0) 5)
+ (= (glaze-cost p0) 10)
+ (= (grind-cost p0) 15)
+ (= (plane-cost p0) 10)
+ (unused p1)
+ (goalsize p1 medium)
+ (= (spray-varnish-cost p1) 10)
+ (= (glaze-cost p1) 15)
+ (= (grind-cost p1) 30)
+ (= (plane-cost p1) 20)
+ (unused p2)
+ (goalsize p2 medium)
+ (= (spray-varnish-cost p2) 10)
+ (= (glaze-cost p2) 15)
+ (= (grind-cost p2) 30)
+ (= (plane-cost p2) 20)
+ (unused p3)
+ (goalsize p3 medium)
+ (= (spray-varnish-cost p3) 10)
+ (= (glaze-cost p3) 15)
+ (= (grind-cost p3) 30)
+ (= (plane-cost p3) 20)
+ (unused p4)
+ (goalsize p4 large)
+ (= (spray-varnish-cost p4) 15)
+ (= (glaze-cost p4) 20)
+ (= (grind-cost p4) 45)
+ (= (plane-cost p4) 30)
+ (unused p5)
+ (goalsize p5 large)
+ (= (spray-varnish-cost p5) 15)
+ (= (glaze-cost p5) 20)
+ (= (grind-cost p5) 45)
+ (= (plane-cost p5) 30)
+ (unused p6)
+ (goalsize p6 medium)
+ (= (spray-varnish-cost p6) 10)
+ (= (glaze-cost p6) 15)
+ (= (grind-cost p6) 30)
+ (= (plane-cost p6) 20)
+ (unused p7)
+ (goalsize p7 large)
+ (= (spray-varnish-cost p7) 15)
+ (= (glaze-cost p7) 20)
+ (= (grind-cost p7) 45)
+ (= (plane-cost p7) 30)
+ (unused p8)
+ (goalsize p8 large)
+ (= (spray-varnish-cost p8) 15)
+ (= (glaze-cost p8) 20)
+ (= (grind-cost p8) 45)
+ (= (plane-cost p8) 30)
+ (available p9)
+ (colour p9 white)
+ (wood p9 cherry)
+ (surface-condition p9 smooth)
+ (treatment p9 colourfragments)
+ (goalsize p9 large)
+ (= (spray-varnish-cost p9) 15)
+ (= (glaze-cost p9) 20)
+ (= (grind-cost p9) 45)
+ (= (plane-cost p9) 30)
+ (unused p10)
+ (goalsize p10 small)
+ (= (spray-varnish-cost p10) 5)
+ (= (glaze-cost p10) 10)
+ (= (grind-cost p10) 15)
+ (= (plane-cost p10) 10)
+ (unused p11)
+ (goalsize p11 medium)
+ (= (spray-varnish-cost p11) 10)
+ (= (glaze-cost p11) 15)
+ (= (grind-cost p11) 30)
+ (= (plane-cost p11) 20)
+ (unused p12)
+ (goalsize p12 small)
+ (= (spray-varnish-cost p12) 5)
+ (= (glaze-cost p12) 10)
+ (= (grind-cost p12) 15)
+ (= (plane-cost p12) 10)
+ (unused p13)
+ (goalsize p13 small)
+ (= (spray-varnish-cost p13) 5)
+ (= (glaze-cost p13) 10)
+ (= (grind-cost p13) 15)
+ (= (plane-cost p13) 10)
+ (unused p14)
+ (goalsize p14 large)
+ (= (spray-varnish-cost p14) 15)
+ (= (glaze-cost p14) 20)
+ (= (grind-cost p14) 45)
+ (= (plane-cost p14) 30)
+ (unused p15)
+ (goalsize p15 small)
+ (= (spray-varnish-cost p15) 5)
+ (= (glaze-cost p15) 10)
+ (= (grind-cost p15) 15)
+ (= (plane-cost p15) 10)
+ (unused p16)
+ (goalsize p16 small)
+ (= (spray-varnish-cost p16) 5)
+ (= (glaze-cost p16) 10)
+ (= (grind-cost p16) 15)
+ (= (plane-cost p16) 10)
+ (unused p17)
+ (goalsize p17 large)
+ (= (spray-varnish-cost p17) 15)
+ (= (glaze-cost p17) 20)
+ (= (grind-cost p17) 45)
+ (= (plane-cost p17) 30)
+ (unused p18)
+ (goalsize p18 medium)
+ (= (spray-varnish-cost p18) 10)
+ (= (glaze-cost p18) 15)
+ (= (grind-cost p18) 30)
+ (= (plane-cost p18) 20)
+ (unused p19)
+ (goalsize p19 small)
+ (= (spray-varnish-cost p19) 5)
+ (= (glaze-cost p19) 10)
+ (= (grind-cost p19) 15)
+ (= (plane-cost p19) 10)
+ (available p20)
+ (colour p20 blue)
+ (wood p20 pine)
+ (surface-condition p20 verysmooth)
+ (treatment p20 glazed)
+ (goalsize p20 large)
+ (= (spray-varnish-cost p20) 15)
+ (= (glaze-cost p20) 20)
+ (= (grind-cost p20) 45)
+ (= (plane-cost p20) 30)
+ (unused p21)
+ (goalsize p21 large)
+ (= (spray-varnish-cost p21) 15)
+ (= (glaze-cost p21) 20)
+ (= (grind-cost p21) 45)
+ (= (plane-cost p21) 30)
+ (unused p22)
+ (goalsize p22 medium)
+ (= (spray-varnish-cost p22) 10)
+ (= (glaze-cost p22) 15)
+ (= (grind-cost p22) 30)
+ (= (plane-cost p22) 20)
+ (unused p23)
+ (goalsize p23 large)
+ (= (spray-varnish-cost p23) 15)
+ (= (glaze-cost p23) 20)
+ (= (grind-cost p23) 45)
+ (= (plane-cost p23) 30)
+ (boardsize b0 s7)
+ (wood b0 cherry)
+ (surface-condition b0 rough)
+ (available b0)
+ (boardsize b1 s7)
+ (wood b1 cherry)
+ (surface-condition b1 rough)
+ (available b1)
+ (boardsize b2 s0)
+ (wood b2 cherry)
+ (surface-condition b2 smooth)
+ (available b2)
+ (boardsize b3 s9)
+ (wood b3 mahogany)
+ (surface-condition b3 rough)
+ (available b3)
+ (boardsize b4 s0)
+ (wood b4 mahogany)
+ (surface-condition b4 rough)
+ (available b4)
+ (boardsize b5 s6)
+ (wood b5 oak)
+ (surface-condition b5 rough)
+ (available b5)
+ (boardsize b6 s1)
+ (wood b6 oak)
+ (surface-condition b6 rough)
+ (available b6)
+ (boardsize b7 s5)
+ (wood b7 pine)
+ (surface-condition b7 rough)
+ (available b7)
+ (boardsize b8 s6)
+ (wood b8 teak)
+ (surface-condition b8 rough)
+ (available b8)
+ (boardsize b9 s4)
+ (wood b9 beech)
+ (surface-condition b9 rough)
+ (available b9)
+ )
+ (:goal
+ (and
+ (available p0)
+ (colour p0 mauve)
+ (wood p0 oak)
+ (surface-condition p0 smooth)
+ (treatment p0 glazed)
+ (available p1)
+ (wood p1 oak)
+ (treatment p1 varnished)
+ (available p2)
+ (colour p2 red)
+ (treatment p2 varnished)
+ (available p3)
+ (wood p3 oak)
+ (treatment p3 varnished)
+ (available p4)
+ (colour p4 green)
+ (wood p4 mahogany)
+ (available p5)
+ (wood p5 mahogany)
+ (surface-condition p5 verysmooth)
+ (available p6)
+ (colour p6 blue)
+ (wood p6 cherry)
+ (available p7)
+ (colour p7 white)
+ (surface-condition p7 verysmooth)
+ (available p8)
+ (colour p8 green)
+ (wood p8 teak)
+ (surface-condition p8 smooth)
+ (treatment p8 varnished)
+ (available p9)
+ (colour p9 mauve)
+ (wood p9 cherry)
+ (surface-condition p9 smooth)
+ (treatment p9 glazed)
+ (available p10)
+ (colour p10 blue)
+ (surface-condition p10 smooth)
+ (available p11)
+ (colour p11 natural)
+ (treatment p11 varnished)
+ (available p12)
+ (wood p12 cherry)
+ (surface-condition p12 verysmooth)
+ (available p13)
+ (colour p13 white)
+ (surface-condition p13 smooth)
+ (treatment p13 varnished)
+ (available p14)
+ (colour p14 mauve)
+ (surface-condition p14 verysmooth)
+ (treatment p14 varnished)
+ (available p15)
+ (surface-condition p15 verysmooth)
+ (treatment p15 glazed)
+ (available p16)
+ (surface-condition p16 smooth)
+ (treatment p16 varnished)
+ (available p17)
+ (colour p17 black)
+ (wood p17 teak)
+ (surface-condition p17 verysmooth)
+ (treatment p17 varnished)
+ (available p18)
+ (colour p18 mauve)
+ (wood p18 cherry)
+ (treatment p18 glazed)
+ (available p19)
+ (surface-condition p19 verysmooth)
+ (treatment p19 glazed)
+ (available p20)
+ (colour p20 red)
+ (wood p20 pine)
+ (surface-condition p20 smooth)
+ (treatment p20 varnished)
+ (available p21)
+ (colour p21 natural)
+ (surface-condition p21 verysmooth)
+ (available p22)
+ (colour p22 natural)
+ (wood p22 mahogany)
+ (surface-condition p22 smooth)
+ (treatment p22 glazed)
+ (available p23)
+ (colour p23 green)
+ (wood p23 cherry)
+ (surface-condition p23 smooth)
+ (treatment p23 glazed)
+ )
+ )
+ (:metric minimize (total-cost))
+)
diff --git a/data/woodworking-sat08-strips/p29.pddl b/data/woodworking-sat08-strips/p29.pddl
new file mode 100644
index 00000000..f5f6f99f
--- /dev/null
+++ b/data/woodworking-sat08-strips/p29.pddl
@@ -0,0 +1,393 @@
+; woodworking task with 27 parts and 100% wood
+; Machines:
+; 1 grinder
+; 1 glazer
+; 1 immersion-varnisher
+; 1 planer
+; 1 highspeed-saw
+; 1 spray-varnisher
+; 1 saw
+; random seed: 484690
+
+(define (problem wood-prob)
+ (:domain woodworking)
+ (:objects
+ grinder0 - grinder
+ glazer0 - glazer
+ immersion-varnisher0 - immersion-varnisher
+ planer0 - planer
+ highspeed-saw0 - highspeed-saw
+ spray-varnisher0 - spray-varnisher
+ saw0 - saw
+ white green blue black mauve red - acolour
+ beech teak walnut mahogany pine oak cherry - awood
+ p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 p16 p17 p18 p19 p20 p21 p22 p23 p24 p25 p26 - part
+ b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 - board
+ s0 s1 s2 s3 s4 s5 s6 s7 s8 - aboardsize
+ )
+ (:init
+ (grind-treatment-change varnished colourfragments)
+ (grind-treatment-change glazed untreated)
+ (grind-treatment-change untreated untreated)
+ (grind-treatment-change colourfragments untreated)
+ (is-smooth smooth)
+ (is-smooth verysmooth)
+ (= (total-cost) 0)
+ (boardsize-successor s0 s1)
+ (boardsize-successor s1 s2)
+ (boardsize-successor s2 s3)
+ (boardsize-successor s3 s4)
+ (boardsize-successor s4 s5)
+ (boardsize-successor s5 s6)
+ (boardsize-successor s6 s7)
+ (boardsize-successor s7 s8)
+ (has-colour glazer0 blue)
+ (has-colour glazer0 natural)
+ (has-colour glazer0 mauve)
+ (has-colour glazer0 green)
+ (has-colour glazer0 black)
+ (has-colour glazer0 white)
+ (has-colour immersion-varnisher0 blue)
+ (has-colour immersion-varnisher0 natural)
+ (has-colour immersion-varnisher0 mauve)
+ (has-colour immersion-varnisher0 green)
+ (has-colour immersion-varnisher0 white)
+ (has-colour immersion-varnisher0 red)
+ (empty highspeed-saw0)
+ (has-colour spray-varnisher0 blue)
+ (has-colour spray-varnisher0 natural)
+ (has-colour spray-varnisher0 mauve)
+ (has-colour spray-varnisher0 green)
+ (has-colour spray-varnisher0 white)
+ (has-colour spray-varnisher0 red)
+ (unused p0)
+ (goalsize p0 small)
+ (= (spray-varnish-cost p0) 5)
+ (= (glaze-cost p0) 10)
+ (= (grind-cost p0) 15)
+ (= (plane-cost p0) 10)
+ (available p1)
+ (colour p1 green)
+ (wood p1 oak)
+ (surface-condition p1 smooth)
+ (treatment p1 varnished)
+ (goalsize p1 large)
+ (= (spray-varnish-cost p1) 15)
+ (= (glaze-cost p1) 20)
+ (= (grind-cost p1) 45)
+ (= (plane-cost p1) 30)
+ (unused p2)
+ (goalsize p2 medium)
+ (= (spray-varnish-cost p2) 10)
+ (= (glaze-cost p2) 15)
+ (= (grind-cost p2) 30)
+ (= (plane-cost p2) 20)
+ (unused p3)
+ (goalsize p3 small)
+ (= (spray-varnish-cost p3) 5)
+ (= (glaze-cost p3) 10)
+ (= (grind-cost p3) 15)
+ (= (plane-cost p3) 10)
+ (unused p4)
+ (goalsize p4 small)
+ (= (spray-varnish-cost p4) 5)
+ (= (glaze-cost p4) 10)
+ (= (grind-cost p4) 15)
+ (= (plane-cost p4) 10)
+ (unused p5)
+ (goalsize p5 medium)
+ (= (spray-varnish-cost p5) 10)
+ (= (glaze-cost p5) 15)
+ (= (grind-cost p5) 30)
+ (= (plane-cost p5) 20)
+ (available p6)
+ (colour p6 white)
+ (wood p6 beech)
+ (surface-condition p6 rough)
+ (treatment p6 colourfragments)
+ (goalsize p6 large)
+ (= (spray-varnish-cost p6) 15)
+ (= (glaze-cost p6) 20)
+ (= (grind-cost p6) 45)
+ (= (plane-cost p6) 30)
+ (available p7)
+ (colour p7 natural)
+ (wood p7 oak)
+ (surface-condition p7 verysmooth)
+ (treatment p7 colourfragments)
+ (goalsize p7 medium)
+ (= (spray-varnish-cost p7) 10)
+ (= (glaze-cost p7) 15)
+ (= (grind-cost p7) 30)
+ (= (plane-cost p7) 20)
+ (unused p8)
+ (goalsize p8 medium)
+ (= (spray-varnish-cost p8) 10)
+ (= (glaze-cost p8) 15)
+ (= (grind-cost p8) 30)
+ (= (plane-cost p8) 20)
+ (unused p9)
+ (goalsize p9 small)
+ (= (spray-varnish-cost p9) 5)
+ (= (glaze-cost p9) 10)
+ (= (grind-cost p9) 15)
+ (= (plane-cost p9) 10)
+ (unused p10)
+ (goalsize p10 medium)
+ (= (spray-varnish-cost p10) 10)
+ (= (glaze-cost p10) 15)
+ (= (grind-cost p10) 30)
+ (= (plane-cost p10) 20)
+ (unused p11)
+ (goalsize p11 small)
+ (= (spray-varnish-cost p11) 5)
+ (= (glaze-cost p11) 10)
+ (= (grind-cost p11) 15)
+ (= (plane-cost p11) 10)
+ (unused p12)
+ (goalsize p12 small)
+ (= (spray-varnish-cost p12) 5)
+ (= (glaze-cost p12) 10)
+ (= (grind-cost p12) 15)
+ (= (plane-cost p12) 10)
+ (available p13)
+ (colour p13 black)
+ (wood p13 walnut)
+ (surface-condition p13 smooth)
+ (treatment p13 glazed)
+ (goalsize p13 large)
+ (= (spray-varnish-cost p13) 15)
+ (= (glaze-cost p13) 20)
+ (= (grind-cost p13) 45)
+ (= (plane-cost p13) 30)
+ (unused p14)
+ (goalsize p14 medium)
+ (= (spray-varnish-cost p14) 10)
+ (= (glaze-cost p14) 15)
+ (= (grind-cost p14) 30)
+ (= (plane-cost p14) 20)
+ (unused p15)
+ (goalsize p15 small)
+ (= (spray-varnish-cost p15) 5)
+ (= (glaze-cost p15) 10)
+ (= (grind-cost p15) 15)
+ (= (plane-cost p15) 10)
+ (unused p16)
+ (goalsize p16 large)
+ (= (spray-varnish-cost p16) 15)
+ (= (glaze-cost p16) 20)
+ (= (grind-cost p16) 45)
+ (= (plane-cost p16) 30)
+ (unused p17)
+ (goalsize p17 small)
+ (= (spray-varnish-cost p17) 5)
+ (= (glaze-cost p17) 10)
+ (= (grind-cost p17) 15)
+ (= (plane-cost p17) 10)
+ (unused p18)
+ (goalsize p18 small)
+ (= (spray-varnish-cost p18) 5)
+ (= (glaze-cost p18) 10)
+ (= (grind-cost p18) 15)
+ (= (plane-cost p18) 10)
+ (unused p19)
+ (goalsize p19 large)
+ (= (spray-varnish-cost p19) 15)
+ (= (glaze-cost p19) 20)
+ (= (grind-cost p19) 45)
+ (= (plane-cost p19) 30)
+ (available p20)
+ (colour p20 mauve)
+ (wood p20 walnut)
+ (surface-condition p20 smooth)
+ (treatment p20 glazed)
+ (goalsize p20 medium)
+ (= (spray-varnish-cost p20) 10)
+ (= (glaze-cost p20) 15)
+ (= (grind-cost p20) 30)
+ (= (plane-cost p20) 20)
+ (unused p21)
+ (goalsize p21 small)
+ (= (spray-varnish-cost p21) 5)
+ (= (glaze-cost p21) 10)
+ (= (grind-cost p21) 15)
+ (= (plane-cost p21) 10)
+ (unused p22)
+ (goalsize p22 small)
+ (= (spray-varnish-cost p22) 5)
+ (= (glaze-cost p22) 10)
+ (= (grind-cost p22) 15)
+ (= (plane-cost p22) 10)
+ (unused p23)
+ (goalsize p23 medium)
+ (= (spray-varnish-cost p23) 10)
+ (= (glaze-cost p23) 15)
+ (= (grind-cost p23) 30)
+ (= (plane-cost p23) 20)
+ (unused p24)
+ (goalsize p24 medium)
+ (= (spray-varnish-cost p24) 10)
+ (= (glaze-cost p24) 15)
+ (= (grind-cost p24) 30)
+ (= (plane-cost p24) 20)
+ (unused p25)
+ (goalsize p25 small)
+ (= (spray-varnish-cost p25) 5)
+ (= (glaze-cost p25) 10)
+ (= (grind-cost p25) 15)
+ (= (plane-cost p25) 10)
+ (unused p26)
+ (goalsize p26 medium)
+ (= (spray-varnish-cost p26) 10)
+ (= (glaze-cost p26) 15)
+ (= (grind-cost p26) 30)
+ (= (plane-cost p26) 20)
+ (boardsize b0 s4)
+ (wood b0 cherry)
+ (surface-condition b0 rough)
+ (available b0)
+ (boardsize b1 s2)
+ (wood b1 cherry)
+ (surface-condition b1 rough)
+ (available b1)
+ (boardsize b2 s4)
+ (wood b2 mahogany)
+ (surface-condition b2 rough)
+ (available b2)
+ (boardsize b3 s2)
+ (wood b3 mahogany)
+ (surface-condition b3 rough)
+ (available b3)
+ (boardsize b4 s5)
+ (wood b4 oak)
+ (surface-condition b4 rough)
+ (available b4)
+ (boardsize b5 s4)
+ (wood b5 oak)
+ (surface-condition b5 rough)
+ (available b5)
+ (boardsize b6 s2)
+ (wood b6 pine)
+ (surface-condition b6 smooth)
+ (available b6)
+ (boardsize b7 s2)
+ (wood b7 walnut)
+ (surface-condition b7 rough)
+ (available b7)
+ (boardsize b8 s8)
+ (wood b8 teak)
+ (surface-condition b8 rough)
+ (available b8)
+ (boardsize b9 s1)
+ (wood b9 beech)
+ (surface-condition b9 rough)
+ (available b9)
+ )
+ (:goal
+ (and
+ (available p0)
+ (wood p0 walnut)
+ (treatment p0 varnished)
+ (available p1)
+ (colour p1 white)
+ (surface-condition p1 verysmooth)
+ (treatment p1 glazed)
+ (available p2)
+ (colour p2 white)
+ (wood p2 oak)
+ (treatment p2 varnished)
+ (available p3)
+ (colour p3 blue)
+ (wood p3 walnut)
+ (surface-condition p3 smooth)
+ (available p4)
+ (colour p4 natural)
+ (wood p4 mahogany)
+ (available p5)
+ (colour p5 blue)
+ (treatment p5 varnished)
+ (available p6)
+ (wood p6 beech)
+ (surface-condition p6 smooth)
+ (available p7)
+ (colour p7 blue)
+ (treatment p7 glazed)
+ (available p8)
+ (colour p8 green)
+ (surface-condition p8 verysmooth)
+ (treatment p8 varnished)
+ (available p9)
+ (colour p9 natural)
+ (wood p9 beech)
+ (surface-condition p9 verysmooth)
+ (available p10)
+ (colour p10 natural)
+ (surface-condition p10 smooth)
+ (treatment p10 varnished)
+ (available p11)
+ (colour p11 natural)
+ (wood p11 cherry)
+ (surface-condition p11 verysmooth)
+ (treatment p11 glazed)
+ (available p12)
+ (colour p12 mauve)
+ (surface-condition p12 smooth)
+ (available p13)
+ (colour p13 blue)
+ (treatment p13 varnished)
+ (available p14)
+ (wood p14 teak)
+ (surface-condition p14 smooth)
+ (treatment p14 glazed)
+ (available p15)
+ (colour p15 green)
+ (treatment p15 glazed)
+ (available p16)
+ (colour p16 blue)
+ (wood p16 teak)
+ (surface-condition p16 smooth)
+ (treatment p16 varnished)
+ (available p17)
+ (colour p17 black)
+ (wood p17 pine)
+ (treatment p17 glazed)
+ (available p18)
+ (colour p18 natural)
+ (wood p18 oak)
+ (surface-condition p18 verysmooth)
+ (treatment p18 varnished)
+ (available p19)
+ (colour p19 mauve)
+ (wood p19 teak)
+ (surface-condition p19 smooth)
+ (treatment p19 varnished)
+ (available p20)
+ (surface-condition p20 smooth)
+ (treatment p20 varnished)
+ (available p21)
+ (colour p21 natural)
+ (wood p21 oak)
+ (surface-condition p21 verysmooth)
+ (treatment p21 glazed)
+ (available p22)
+ (wood p22 cherry)
+ (surface-condition p22 smooth)
+ (available p23)
+ (wood p23 cherry)
+ (surface-condition p23 smooth)
+ (treatment p23 glazed)
+ (available p24)
+ (colour p24 white)
+ (surface-condition p24 smooth)
+ (available p25)
+ (colour p25 red)
+ (surface-condition p25 verysmooth)
+ (treatment p25 varnished)
+ (available p26)
+ (colour p26 white)
+ (wood p26 oak)
+ (surface-condition p26 smooth)
+ )
+ )
+ (:metric minimize (total-cost))
+)
diff --git a/data/woodworking-sat08-strips/p30.pddl b/data/woodworking-sat08-strips/p30.pddl
new file mode 100644
index 00000000..c456155a
--- /dev/null
+++ b/data/woodworking-sat08-strips/p30.pddl
@@ -0,0 +1,415 @@
+; woodworking task with 30 parts and 100% wood
+; Machines:
+; 1 grinder
+; 1 glazer
+; 1 immersion-varnisher
+; 1 planer
+; 1 highspeed-saw
+; 1 spray-varnisher
+; 1 saw
+; random seed: 473295
+
+(define (problem wood-prob)
+ (:domain woodworking)
+ (:objects
+ grinder0 - grinder
+ glazer0 - glazer
+ immersion-varnisher0 - immersion-varnisher
+ planer0 - planer
+ highspeed-saw0 - highspeed-saw
+ spray-varnisher0 - spray-varnisher
+ saw0 - saw
+ black red blue green mauve white - acolour
+ walnut mahogany pine beech teak oak cherry - awood
+ p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 p16 p17 p18 p19 p20 p21 p22 p23 p24 p25 p26 p27 p28 p29 - part
+ b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 - board
+ s0 s1 s2 s3 s4 s5 s6 s7 s8 - aboardsize
+ )
+ (:init
+ (grind-treatment-change varnished colourfragments)
+ (grind-treatment-change glazed untreated)
+ (grind-treatment-change untreated untreated)
+ (grind-treatment-change colourfragments untreated)
+ (is-smooth smooth)
+ (is-smooth verysmooth)
+ (= (total-cost) 0)
+ (boardsize-successor s0 s1)
+ (boardsize-successor s1 s2)
+ (boardsize-successor s2 s3)
+ (boardsize-successor s3 s4)
+ (boardsize-successor s4 s5)
+ (boardsize-successor s5 s6)
+ (boardsize-successor s6 s7)
+ (boardsize-successor s7 s8)
+ (has-colour glazer0 blue)
+ (has-colour glazer0 natural)
+ (has-colour glazer0 mauve)
+ (has-colour glazer0 black)
+ (has-colour glazer0 green)
+ (has-colour glazer0 white)
+ (has-colour glazer0 red)
+ (has-colour immersion-varnisher0 blue)
+ (has-colour immersion-varnisher0 natural)
+ (has-colour immersion-varnisher0 mauve)
+ (has-colour immersion-varnisher0 green)
+ (has-colour immersion-varnisher0 black)
+ (has-colour immersion-varnisher0 white)
+ (has-colour immersion-varnisher0 red)
+ (empty highspeed-saw0)
+ (has-colour spray-varnisher0 blue)
+ (has-colour spray-varnisher0 natural)
+ (has-colour spray-varnisher0 mauve)
+ (has-colour spray-varnisher0 green)
+ (has-colour spray-varnisher0 black)
+ (has-colour spray-varnisher0 white)
+ (has-colour spray-varnisher0 red)
+ (unused p0)
+ (goalsize p0 small)
+ (= (spray-varnish-cost p0) 5)
+ (= (glaze-cost p0) 10)
+ (= (grind-cost p0) 15)
+ (= (plane-cost p0) 10)
+ (unused p1)
+ (goalsize p1 small)
+ (= (spray-varnish-cost p1) 5)
+ (= (glaze-cost p1) 10)
+ (= (grind-cost p1) 15)
+ (= (plane-cost p1) 10)
+ (unused p2)
+ (goalsize p2 medium)
+ (= (spray-varnish-cost p2) 10)
+ (= (glaze-cost p2) 15)
+ (= (grind-cost p2) 30)
+ (= (plane-cost p2) 20)
+ (unused p3)
+ (goalsize p3 small)
+ (= (spray-varnish-cost p3) 5)
+ (= (glaze-cost p3) 10)
+ (= (grind-cost p3) 15)
+ (= (plane-cost p3) 10)
+ (unused p4)
+ (goalsize p4 small)
+ (= (spray-varnish-cost p4) 5)
+ (= (glaze-cost p4) 10)
+ (= (grind-cost p4) 15)
+ (= (plane-cost p4) 10)
+ (available p5)
+ (colour p5 mauve)
+ (wood p5 teak)
+ (surface-condition p5 rough)
+ (treatment p5 varnished)
+ (goalsize p5 medium)
+ (= (spray-varnish-cost p5) 10)
+ (= (glaze-cost p5) 15)
+ (= (grind-cost p5) 30)
+ (= (plane-cost p5) 20)
+ (available p6)
+ (colour p6 mauve)
+ (wood p6 cherry)
+ (surface-condition p6 rough)
+ (treatment p6 colourfragments)
+ (goalsize p6 large)
+ (= (spray-varnish-cost p6) 15)
+ (= (glaze-cost p6) 20)
+ (= (grind-cost p6) 45)
+ (= (plane-cost p6) 30)
+ (unused p7)
+ (goalsize p7 small)
+ (= (spray-varnish-cost p7) 5)
+ (= (glaze-cost p7) 10)
+ (= (grind-cost p7) 15)
+ (= (plane-cost p7) 10)
+ (unused p8)
+ (goalsize p8 medium)
+ (= (spray-varnish-cost p8) 10)
+ (= (glaze-cost p8) 15)
+ (= (grind-cost p8) 30)
+ (= (plane-cost p8) 20)
+ (unused p9)
+ (goalsize p9 medium)
+ (= (spray-varnish-cost p9) 10)
+ (= (glaze-cost p9) 15)
+ (= (grind-cost p9) 30)
+ (= (plane-cost p9) 20)
+ (unused p10)
+ (goalsize p10 large)
+ (= (spray-varnish-cost p10) 15)
+ (= (glaze-cost p10) 20)
+ (= (grind-cost p10) 45)
+ (= (plane-cost p10) 30)
+ (unused p11)
+ (goalsize p11 medium)
+ (= (spray-varnish-cost p11) 10)
+ (= (glaze-cost p11) 15)
+ (= (grind-cost p11) 30)
+ (= (plane-cost p11) 20)
+ (unused p12)
+ (goalsize p12 small)
+ (= (spray-varnish-cost p12) 5)
+ (= (glaze-cost p12) 10)
+ (= (grind-cost p12) 15)
+ (= (plane-cost p12) 10)
+ (unused p13)
+ (goalsize p13 large)
+ (= (spray-varnish-cost p13) 15)
+ (= (glaze-cost p13) 20)
+ (= (grind-cost p13) 45)
+ (= (plane-cost p13) 30)
+ (available p14)
+ (colour p14 blue)
+ (wood p14 pine)
+ (surface-condition p14 smooth)
+ (treatment p14 colourfragments)
+ (goalsize p14 medium)
+ (= (spray-varnish-cost p14) 10)
+ (= (glaze-cost p14) 15)
+ (= (grind-cost p14) 30)
+ (= (plane-cost p14) 20)
+ (unused p15)
+ (goalsize p15 medium)
+ (= (spray-varnish-cost p15) 10)
+ (= (glaze-cost p15) 15)
+ (= (grind-cost p15) 30)
+ (= (plane-cost p15) 20)
+ (unused p16)
+ (goalsize p16 medium)
+ (= (spray-varnish-cost p16) 10)
+ (= (glaze-cost p16) 15)
+ (= (grind-cost p16) 30)
+ (= (plane-cost p16) 20)
+ (available p17)
+ (colour p17 natural)
+ (wood p17 oak)
+ (surface-condition p17 verysmooth)
+ (treatment p17 colourfragments)
+ (goalsize p17 large)
+ (= (spray-varnish-cost p17) 15)
+ (= (glaze-cost p17) 20)
+ (= (grind-cost p17) 45)
+ (= (plane-cost p17) 30)
+ (unused p18)
+ (goalsize p18 large)
+ (= (spray-varnish-cost p18) 15)
+ (= (glaze-cost p18) 20)
+ (= (grind-cost p18) 45)
+ (= (plane-cost p18) 30)
+ (unused p19)
+ (goalsize p19 medium)
+ (= (spray-varnish-cost p19) 10)
+ (= (glaze-cost p19) 15)
+ (= (grind-cost p19) 30)
+ (= (plane-cost p19) 20)
+ (unused p20)
+ (goalsize p20 large)
+ (= (spray-varnish-cost p20) 15)
+ (= (glaze-cost p20) 20)
+ (= (grind-cost p20) 45)
+ (= (plane-cost p20) 30)
+ (unused p21)
+ (goalsize p21 medium)
+ (= (spray-varnish-cost p21) 10)
+ (= (glaze-cost p21) 15)
+ (= (grind-cost p21) 30)
+ (= (plane-cost p21) 20)
+ (unused p22)
+ (goalsize p22 small)
+ (= (spray-varnish-cost p22) 5)
+ (= (glaze-cost p22) 10)
+ (= (grind-cost p22) 15)
+ (= (plane-cost p22) 10)
+ (unused p23)
+ (goalsize p23 large)
+ (= (spray-varnish-cost p23) 15)
+ (= (glaze-cost p23) 20)
+ (= (grind-cost p23) 45)
+ (= (plane-cost p23) 30)
+ (unused p24)
+ (goalsize p24 medium)
+ (= (spray-varnish-cost p24) 10)
+ (= (glaze-cost p24) 15)
+ (= (grind-cost p24) 30)
+ (= (plane-cost p24) 20)
+ (unused p25)
+ (goalsize p25 medium)
+ (= (spray-varnish-cost p25) 10)
+ (= (glaze-cost p25) 15)
+ (= (grind-cost p25) 30)
+ (= (plane-cost p25) 20)
+ (unused p26)
+ (goalsize p26 large)
+ (= (spray-varnish-cost p26) 15)
+ (= (glaze-cost p26) 20)
+ (= (grind-cost p26) 45)
+ (= (plane-cost p26) 30)
+ (unused p27)
+ (goalsize p27 medium)
+ (= (spray-varnish-cost p27) 10)
+ (= (glaze-cost p27) 15)
+ (= (grind-cost p27) 30)
+ (= (plane-cost p27) 20)
+ (unused p28)
+ (goalsize p28 medium)
+ (= (spray-varnish-cost p28) 10)
+ (= (glaze-cost p28) 15)
+ (= (grind-cost p28) 30)
+ (= (plane-cost p28) 20)
+ (unused p29)
+ (goalsize p29 medium)
+ (= (spray-varnish-cost p29) 10)
+ (= (glaze-cost p29) 15)
+ (= (grind-cost p29) 30)
+ (= (plane-cost p29) 20)
+ (boardsize b0 s5)
+ (wood b0 cherry)
+ (surface-condition b0 smooth)
+ (available b0)
+ (boardsize b1 s2)
+ (wood b1 mahogany)
+ (surface-condition b1 rough)
+ (available b1)
+ (boardsize b2 s8)
+ (wood b2 oak)
+ (surface-condition b2 rough)
+ (available b2)
+ (boardsize b3 s2)
+ (wood b3 oak)
+ (surface-condition b3 rough)
+ (available b3)
+ (boardsize b4 s7)
+ (wood b4 pine)
+ (surface-condition b4 rough)
+ (available b4)
+ (boardsize b5 s2)
+ (wood b5 pine)
+ (surface-condition b5 rough)
+ (available b5)
+ (boardsize b6 s6)
+ (wood b6 walnut)
+ (surface-condition b6 smooth)
+ (available b6)
+ (boardsize b7 s7)
+ (wood b7 teak)
+ (surface-condition b7 smooth)
+ (available b7)
+ (boardsize b8 s5)
+ (wood b8 teak)
+ (surface-condition b8 smooth)
+ (available b8)
+ (boardsize b9 s7)
+ (wood b9 beech)
+ (surface-condition b9 rough)
+ (available b9)
+ )
+ (:goal
+ (and
+ (available p0)
+ (wood p0 pine)
+ (surface-condition p0 smooth)
+ (treatment p0 varnished)
+ (available p1)
+ (surface-condition p1 smooth)
+ (treatment p1 glazed)
+ (available p2)
+ (colour p2 black)
+ (treatment p2 glazed)
+ (available p3)
+ (colour p3 mauve)
+ (wood p3 oak)
+ (treatment p3 varnished)
+ (available p4)
+ (surface-condition p4 verysmooth)
+ (treatment p4 varnished)
+ (available p5)
+ (colour p5 blue)
+ (wood p5 teak)
+ (surface-condition p5 verysmooth)
+ (treatment p5 varnished)
+ (available p6)
+ (colour p6 white)
+ (treatment p6 glazed)
+ (available p7)
+ (colour p7 red)
+ (treatment p7 varnished)
+ (available p8)
+ (colour p8 mauve)
+ (surface-condition p8 verysmooth)
+ (treatment p8 varnished)
+ (available p9)
+ (colour p9 blue)
+ (wood p9 oak)
+ (surface-condition p9 smooth)
+ (available p10)
+ (wood p10 teak)
+ (surface-condition p10 verysmooth)
+ (available p11)
+ (wood p11 cherry)
+ (surface-condition p11 smooth)
+ (available p12)
+ (colour p12 green)
+ (wood p12 oak)
+ (treatment p12 glazed)
+ (available p13)
+ (colour p13 red)
+ (wood p13 beech)
+ (treatment p13 glazed)
+ (available p14)
+ (colour p14 green)
+ (treatment p14 varnished)
+ (available p15)
+ (wood p15 pine)
+ (surface-condition p15 smooth)
+ (treatment p15 varnished)
+ (available p16)
+ (colour p16 natural)
+ (surface-condition p16 smooth)
+ (available p17)
+ (colour p17 blue)
+ (surface-condition p17 verysmooth)
+ (available p18)
+ (colour p18 white)
+ (wood p18 oak)
+ (treatment p18 varnished)
+ (available p19)
+ (colour p19 blue)
+ (wood p19 teak)
+ (surface-condition p19 smooth)
+ (treatment p19 varnished)
+ (available p20)
+ (wood p20 walnut)
+ (surface-condition p20 smooth)
+ (available p21)
+ (colour p21 natural)
+ (wood p21 beech)
+ (available p22)
+ (colour p22 black)
+ (wood p22 pine)
+ (surface-condition p22 verysmooth)
+ (treatment p22 varnished)
+ (available p23)
+ (colour p23 blue)
+ (surface-condition p23 smooth)
+ (treatment p23 varnished)
+ (available p24)
+ (colour p24 red)
+ (surface-condition p24 verysmooth)
+ (available p25)
+ (surface-condition p25 verysmooth)
+ (treatment p25 varnished)
+ (available p26)
+ (colour p26 mauve)
+ (wood p26 teak)
+ (treatment p26 glazed)
+ (available p27)
+ (surface-condition p27 verysmooth)
+ (treatment p27 varnished)
+ (available p28)
+ (wood p28 beech)
+ (treatment p28 glazed)
+ (available p29)
+ (colour p29 white)
+ (wood p29 teak)
+ (surface-condition p29 verysmooth)
+ )
+ )
+ (:metric minimize (total-cost))
+)
diff --git a/docs/kovacs-draft-2011.pdf b/docs/kovacs-draft-2011.pdf
new file mode 100644
index 00000000..c3766780
Binary files /dev/null and b/docs/kovacs-draft-2011.pdf differ
diff --git a/docs/kovacs-pddl-3.1-2011.pdf b/docs/kovacs-pddl-3.1-2011.pdf
new file mode 100644
index 00000000..4779e1a4
Binary files /dev/null and b/docs/kovacs-pddl-3.1-2011.pdf differ
diff --git a/docs/main.tex b/docs/main.tex
new file mode 100644
index 00000000..76a74bdb
--- /dev/null
+++ b/docs/main.tex
@@ -0,0 +1,248 @@
+\documentclass[]{article}
+\usepackage[a4paper, margin=0.5in]{geometry}
+\usepackage{amsmath}
+\usepackage{syntax}
+\usepackage[T1]{fontenc}
+\setlength{\grammarparsep}{2pt plus 1pt minus 1pt} % increase separation between rules
+\setlength{\grammarindent}{20em} % increase separation between LHS/RHS
+
+\title{Loki - Implemented PDDL Grammar Definition}
+\author{Dominik Drexler}
+\date{\today}
+
+\newcommand{\plus}{\textsuperscript{+}}
+\newcommand{\typing}{\textsuperscript{:typing}~}
+\newcommand{\fluents}{\textsuperscript{:fluents}~}
+\newcommand{\constraints}{\textsuperscript{:constraints}~}
+\newcommand{\negativepreconditions}{\textsuperscript{:negative-preconditions}~}
+\newcommand{\disjunctivepreconditions}{\textsuperscript{:disjunctive-preconditions}~}
+\newcommand{\existentialpreconditions}{\textsuperscript{:existential-preconditions}~}
+\newcommand{\universalpreconditions}{\textsuperscript{:universal-preconditions}~}
+\newcommand{\conditionaleffects}{\textsuperscript{:conditional-effects}~}
+
+\begin{document}
+\maketitle
+
+\section{Domain}
+
+% https://tex.stackexchange.com/questions/24886/which-package-can-be-used-to-write-bnf-grammars
+\begin{grammar}
+ ::= 0..9
+
+ ::= a..z | A..Z
+
+ ::= | | - | _
+
+ ::= *
+
+ ::= ?
+
+ ::= digit\plus . digit* %% TODO int or float
+
+ ::= |
+
+
+ ::= | ( either \plus ) | ( fluent )
+
+ ::= ( )
+
+ ::= x*
+
+ ::= x\plus -
+
+
+ ::=
+
+ ::= ( )
+
+
+
+ ::=
+
+ ::=
+
+ ::= ( )
+
+ ::= x*
+
+ ::=\typing{} x\plus -
+
+
+ ::= ( t* )
+
+ ::=
+
+ ::= ( not )
+
+ ::= |
+
+
+ ::= :strip | :typing
+
+ ::= ( :types )
+
+ ::= ( :constants )
+
+ ::= ( :predicates * )
+
+ ::= ( :functions )
+
+ ::=\constraints ( :constraints )
+
+ ::= ( define ( domain )\newline
+ [] \newline
+ [] \newline
+ [] \newline
+ [] \newline
+ [] \newline
+ [*] )
+
+\end{grammar}
+
+\section{Actions}
+
+\begin{grammar}
+ ::= ( t* )
+
+ ::=
+
+ ::= ( not )
+
+ ::= |
+
+
+ ::= *
+
+ ::= +
+
+ ::= |
+
+ ::= -
+
+ ::= /
+
+ ::= | |
+
+
+ ::= >
+
+ ::= \textless
+
+ ::= =
+
+ ::= >=
+
+ ::= \textgreater=
+
+ ::= | \newline
+ | | \newline
+ |
+
+
+ ::=
+
+ ::= ( )
+
+ ::= ( - )
+
+ ::= | ( * )
+
+ ::= | | |
+
+ % Preconditions
+ ::=
+
+ ::=\negativepreconditions{}
+
+ ::= ( and * )
+
+ ::=\disjunctivepreconditions{} ( or * )
+
+ ::=\disjunctivepreconditions{} ( not * )
+
+ ::=\disjunctivepreconditions{} ( imply )
+
+ ::=\existentialpreconditions{} ( exists )
+
+ ::=\universalpreconditions{} ( forall )
+
+ ::=\fluents{} ( )
+
+ ::= | | | | | | | |
+
+ ::= name
+
+ ::=
+
+ ::= ( and * )
+
+ ::= ( forall )
+
+ ::= ( preference )
+
+ ::= | | |
+
+
+ % Effects
+ ::= assign
+
+ ::= scale-up
+
+ ::= scale-down
+
+ ::= increase
+
+ ::= decrease
+
+ ::= | | \newline
+ | |
+
+ ::=
+
+ ::=\fluents ( )
+
+ ::= |
+
+ ::=\conditionaleffects{} ( forall ( * ) )
+
+ ::=\conditionaleffects{} ( when )
+
+ ::=\conditionaleffects{} |
+
+ ::= | | ( and * )
+\end{grammar}
+
+\section{Problem}
+
+\begin{grammar}
+ ::= ( and * )
+
+ ::= (forall ( ) )
+
+ ::= ( at end )
+
+ ::= ( always )
+
+ ::= ( sometime )
+
+ ::= ( within )
+
+ ::= ( at-most-once )
+
+ ::= ( sometime-after )
+
+ ::= ( sometime-before )
+
+ ::= ( always-within )
+
+ ::= ( hold-during )
+
+ ::= ( hold-after )
+\end{grammar}
+
+\nocite{mcdermott-et-al-1998}
+
+\bibliographystyle{plain}
+\bibliography{refs}
+
+\end{document}
\ No newline at end of file
diff --git a/docs/pddl-bnf.pdf b/docs/pddl-bnf.pdf
new file mode 100644
index 00000000..d6d9c405
Binary files /dev/null and b/docs/pddl-bnf.pdf differ
diff --git a/docs/refs.bib b/docs/refs.bib
new file mode 100644
index 00000000..3081ad33
--- /dev/null
+++ b/docs/refs.bib
@@ -0,0 +1,6 @@
+@inproceedings{mcdermott-et-al-1998,
+ title={PDDL-the planning domain definition language},
+ author={Drew McDermott and Malik Ghallab and Adele E. Howe and Craig A. Knoblock and Ashwin Ram and Manuela M. Veloso and Daniel S. Weld and David E. Wilkins},
+ year={1998},
+ url={https://api.semanticscholar.org/CorpusID:59656859}
+}
\ No newline at end of file
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
new file mode 100644
index 00000000..528f1a20
--- /dev/null
+++ b/examples/CMakeLists.txt
@@ -0,0 +1,19 @@
+add_executable(multiple_problems "multiple_problems.cpp")
+target_link_libraries(multiple_problems parsers)
+
+add_executable(position_cache "position_cache.cpp")
+target_link_libraries(position_cache parsers)
+
+add_executable(single_problem "single_problem.cpp")
+target_link_libraries(single_problem parsers)
+
+add_executable(undefined_behavior "undefined_behavior.cpp")
+target_link_libraries(undefined_behavior parsers)
+
+
+add_custom_target(example_domain ALL
+ COMMAND ${CMAKE_COMMAND} -E copy "${PROJECT_SOURCE_DIR}/data/gripper/domain.pddl" "${CMAKE_BINARY_DIR}/data/gripper/domain.pddl")
+add_custom_target(example_problem_0 ALL
+ COMMAND ${CMAKE_COMMAND} -E copy "${PROJECT_SOURCE_DIR}/data/gripper/p-2-0.pddl" "${CMAKE_BINARY_DIR}/data/gripper/p-2-0.pddl")
+add_custom_target(example_problem_1 ALL
+ COMMAND ${CMAKE_COMMAND} -E copy "${PROJECT_SOURCE_DIR}/data/gripper/p-2-1.pddl" "${CMAKE_BINARY_DIR}/data/gripper/p-2-1.pddl")
\ No newline at end of file
diff --git a/examples/multiple_problems.cpp b/examples/multiple_problems.cpp
new file mode 100644
index 00000000..3b80f272
--- /dev/null
+++ b/examples/multiple_problems.cpp
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2023 Dominik Drexler
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "../include/loki/domain/parser.hpp"
+#include "../include/loki/problem/parser.hpp"
+
+#include
+
+
+int main() {
+ // Parse the domain
+ auto domain_parser = loki::DomainParser("data/gripper/domain.pddl");
+ const auto domain = domain_parser.get_domain();
+ std::cout << *domain << std::endl;
+
+ // Parse first problem
+ const auto problem_parser = loki::ProblemParser("data/gripper/p-2-0.pddl", domain_parser);
+ const auto problem1 = problem_parser.get_problem();
+ std::cout << *problem1 << std::endl;
+
+ // Parse second problem where the constants are reordered
+ const auto problem_parser2 = loki::ProblemParser("data/gripper/p-2-1.pddl", domain_parser);
+ const auto problem2 = problem_parser2.get_problem();
+ std::cout << *problem2 << std::endl;
+
+ /* Both problems are structurally equivalent */
+ assert(problem1 == problem2);
+
+ /* Note: since the PDDL objects are shared over the whole class of problems,
+ the idexing scheme is most likely fragmented per problem.
+ (In this specific case, it is not fragmented because both problems are structurally equivalent) */
+
+
+ return 0;
+}
diff --git a/examples/position_cache.cpp b/examples/position_cache.cpp
new file mode 100644
index 00000000..aac7b1df
--- /dev/null
+++ b/examples/position_cache.cpp
@@ -0,0 +1,84 @@
+/*
+ * Copyright (C) 2023 Dominik Drexler
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see