MetaActionGenerators 1.0.2
See the version list below for details.
dotnet add package MetaActionGenerators --version 1.0.2
NuGet\Install-Package MetaActionGenerators -Version 1.0.2
<PackageReference Include="MetaActionGenerators" Version="1.0.2" />
<PackageVersion Include="MetaActionGenerators" Version="1.0.2" />
<PackageReference Include="MetaActionGenerators" />
paket add MetaActionGenerators --version 1.0.2
#r "nuget: MetaActionGenerators, 1.0.2"
#:package MetaActionGenerators@1.0.2
#addin nuget:?package=MetaActionGenerators&version=1.0.2
#tool nuget:?package=MetaActionGenerators&version=1.0.2
<p align="center"> <img src="https://github.com/kris701/MetaActionGenerators/assets/22596587/1e293720-ce6e-4db6-a8f1-ecbe115362ce" width="200" height="200" /> </p>
Meta Action Generators
This is a project that is a collection of several different meta action generators.
Some of the generators have some dependencies they need to work, however they are all described in their respective section.
You can either use the NuGet Package to generate meta actions, or use dotnet run
on the CLI project.
Generators
Here is a short description of all the different generators that this project includes.
All the examples are based on the blocksworld
domain.
All the generates put a $
as a prefix for the candidates to make it clear its a meta action.
Stripped Meta Actions
This is simply meta actions that consists of taking all actions in the original domain and removing their preconditions.
An example of a meta action from this generator can be seen below:
(:action $putdown
:parameters (?ob)
:precondition ()
:effect (and
(clear ?ob)
(arm-empty)
(on-table ?ob)
(not (holding ?ob))
)
)
Predicate Meta Actions
These are meta actions that consists of a single predicate in the effects, with no preconditions. There is a "true" and a "false" version of all the predicates.
An example of a meta action from this generator can be seen below:
(:action $clear
:parameters (?ob)
:precondition ()
:effect (and
(clear ?ob)
)
)
Flip Meta Actions
These are meta actions that flip the value of a single predicate, i.e. the precondition requires a predicate to be true, and the effect sets it to false.
(:action $clear
:parameters (?ob)
:precondition (and
(not (clear ?ob))
)
:effect (and
(clear ?ob)
)
)
PDDLSharp Macro Reduction Meta Actions
These are meta actions that are based on reductions from the paper Can I Really Do That? Verification of Meta-Operators via Stackelberg Planning. The macros are generated by PDDLSharp, so they are usually very long and complex.
An example of a meta action from this generator can be seen below:
(:action $unstack-stack-pickup-stack
:parameters (?b2 - object ?b4 - object ?b1 - object)
:precondition (and
(arm-empty)
(clear ?b4)
(clear ?b1)
(on-table ?b1)
)
:effect (and
(not (clear ?b4))
(not (on-table ?b1))
(on ?b1 ?b2)
)
)
Precondition Permutation Reduction Meta Actions
This one is also based on reducing actions, however it just tries to reduce primitive actions. It makes a meta action candidate for each possible reduction permutation for normal actions, in an attempt to find some reduced precondition that makes the meta action more useful.
An example of a meta action from this generator can be seen below:
(:action unstack
:parameters (?ob ?underob)
:precondition (and
(on ?ob ?underob)
(arm-empty)
)
:effect (and
(holding ?ob)
(clear ?underob)
(not (on ?ob ?underob))
(not (clear ?ob))
(not (arm-empty))
)
)
CPDDL Mutex Meta Actions
These are meta actions that is based on Predicate meta actions, however it will force all the candidates to uphold mutex groups in the domain. This generator used CPDDL to find lifted mutex groups, and then fixes the predicate meta actions that violate the groups.
An example of a meta action from this generator can be seen below:
(:action $meta_clear_0
:parameters (?x - object)
:precondition (and
(holding ?x)
(not (arm-empty))
(not (on-table ?x))
)
:effect (and
(clear ?x)
(not (holding ?x))
(arm-empty)
(on-table ?x)
)
)
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- PDDLSharp (>= 1.5.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.