FlashPlanner 1.1.4
See the version list below for details.
dotnet add package FlashPlanner --version 1.1.4
NuGet\Install-Package FlashPlanner -Version 1.1.4
<PackageReference Include="FlashPlanner" Version="1.1.4" />
<PackageVersion Include="FlashPlanner" Version="1.1.4" />
<PackageReference Include="FlashPlanner" />
paket add FlashPlanner --version 1.1.4
#r "nuget: FlashPlanner, 1.1.4"
#:package FlashPlanner@1.1.4
#addin nuget:?package=FlashPlanner&version=1.1.4
#tool nuget:?package=FlashPlanner&version=1.1.4
<p align="center"> <img src="https://github.com/kris701/FlashPlanner/assets/22596587/d3f387a6-e0b5-4118-9801-c125a4e64100" width="200" height="200" /> </p>
Flash Planner
This is a project that contains a simple planner, operating on a grounded representation. You can either use the planner as the C# code or use the CLI interface to get plans. The planner expects a grounded representation of a PDDL domain+problem, that can be obtained from the Translator.
The following is an example of how to use the CLI interface:
dotnet run -- --domain domain.pddl --problem p01.pddl --search "greedy(hGoal())"
The available search engines are:
beam
: Beam Searchgreedy
: Greedy Best First Searchgreedy_underaprox
: Greedy Best First Search with Under-Approximation Refinement (UAR)greedy_prefered
: Greedy Best First Search with Preferred Operators (PO)greedy_defered
: Greedy Best First Search with Deferred Heuristic Evaluation (DHE)greedy_bb
: Black box Greedy Best First Searchgreedy_bb_focused
: Black box Greedy Best First Search with Focused Macros.
Do note that the black box planners only support the hGoal heuristic.
The available heuristics are:
hConstant(n)
: Returns a given constant all the timehDepth()
: Simply returns a cost that is 1 lower than its parenthFF()
: Returns a cost based on a solution to the relaxed planning graph for the problemhAdd()
: Retuns the sum of actions needed to achive every goal facthMax()
: Returns the highest amount of actions needed to achive a goal fact.hGoal()
: Returns the amount of goals that are achived in the given state, i.e.h = allGoals - achivedGoals
hPath()
: Returns the cost of the current branch being evaluatedhWeighted(h,w)
: Takes one of the previously given heuristics, and weights its result from a constant.hColMax(h)
: Takes a set of other heuristics and returns the highest value from any of the heuristics.hColSum(h)
: Same as the previous one, but takes the sum of all the heuristics.
There is also a set of aliases, that can be used as a single value to setup both the search and the translator. The options are:
fast()
: Normal translator configuration with Greedy Best First search and the heuristic hFF.
This project is also available as a package on the NuGet Package Manager.
Examples
To find a plan using the Greedy Best First Search engine:
var decl = new PDDLDecl(...);
var translator = new PDDLToSASTranslator(true);
var sas = translator.Translate(decl);
using (var greedyBFS = new GreedyBFS(sas, new hFF(decl)))
{
var plan = greedyBFS.Solve();
}
Supported PDDL Requirements
Here is the set of requirements that the planner supports.
- STRIPS (
:strips
) - Typing (
:typing
) - Disjunctive Preconditions (
:disjunctive-preconditions
) - Equality (
:equality
) - Quantified Preconditions (
:quantified-preconditions
)- Existential Preconditions (
:existential-preconditions
) - Universal Preconditions (
:universal-preconditions
)
- Existential Preconditions (
- Conditional Effects (
:conditional-effects
) - Domain Axioms (
:domain-axioms
)- Subgoals Through Axioms (
:subgoals-through-axioms
) - Expression Evaluation (
:expression-evaluation
)
- Subgoals Through Axioms (
- ADL (
:adl
) - Fluents (
:fluents
) - Durative Actions (
:durative-actions
)- Durative Inequalities (
:durative-inequalities
) - Continuous Effects (
:continuous-effects
)
- Durative Inequalities (
- Negative Preconditions (
:negative-preconditions
) - Derived Predicates (
:derived-predicates
) - Timed Initial Literals (
:timed-initial-literals
) - Action Expansions (
:action-expansions
) - Foreach Expansions (
:forach-expansions
) - DAG Expansions (
:dag-expansions
) - Safety Constraints (
:safety-constraints
) - Open World (
:open-world
) - True Negation (
:true-negation
) - UCPOP (
:ucpop
) - Constraints (
:constraints
) - Preferences (
:preferences
)
Performance
Here are some simple coverage benchmarks to get an idea of the performance of this planner. It is compared against Fast Downward. Both are run with greedy best first search with hFF. Benchmarks are only run on the first 20 problems. The planners have a time limit of 60 seconds and a memory limit of 4GB.
Domain | Problems | Fast Downward | Flash Planner |
---|---|---|---|
blocks | 20 | 20 | 20 |
depot | 20 | 15 | 10 |
gripper | 20 | 20 | 20 |
logistics00 | 20 | 20 | 20 |
satellite | 20 | 20 | 17 |
miconic | 20 | 20 | 20 |
mystery | 20 | 12 | 6 |
rovers | 20 | 20 | 14 |
tpp | 20 | 20 | 13 |
zenotravel | 20 | 20 | 15 |
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.6.3)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
1.2.21 | 141 | 6/14/2024 |
1.2.20 | 137 | 6/13/2024 |
1.2.19 | 145 | 6/13/2024 |
1.2.18 | 134 | 6/13/2024 |
1.2.17 | 122 | 6/12/2024 |
1.2.16 | 123 | 6/12/2024 |
1.2.15 | 133 | 6/12/2024 |
1.2.14 | 114 | 6/11/2024 |
1.2.13 | 126 | 6/10/2024 |
1.2.12 | 130 | 6/9/2024 |
1.2.11 | 137 | 6/9/2024 |
1.2.10 | 138 | 6/9/2024 |
1.2.9 | 127 | 6/9/2024 |
1.2.8 | 124 | 6/9/2024 |
1.2.7 | 125 | 6/9/2024 |
1.2.6 | 126 | 6/8/2024 |
1.2.5 | 117 | 6/8/2024 |
1.2.4 | 132 | 6/7/2024 |
1.2.3 | 123 | 6/7/2024 |
1.2.2 | 120 | 6/7/2024 |
1.2.1 | 123 | 6/7/2024 |
1.2.0 | 129 | 6/6/2024 |
1.1.15 | 120 | 6/6/2024 |
1.1.14 | 114 | 6/6/2024 |
1.1.13 | 138 | 5/30/2024 |
1.1.12 | 138 | 5/30/2024 |
1.1.11 | 131 | 5/29/2024 |
1.1.10 | 141 | 5/28/2024 |
1.1.9 | 117 | 5/28/2024 |
1.1.8 | 121 | 5/28/2024 |
1.1.7 | 136 | 5/28/2024 |
1.1.6 | 145 | 5/24/2024 |
1.1.5 | 157 | 5/24/2024 |
1.1.4 | 144 | 5/24/2024 |
1.1.3 | 138 | 5/24/2024 |
1.1.2 | 142 | 5/24/2024 |
1.1.1 | 136 | 5/23/2024 |
1.1.0 | 132 | 5/23/2024 |
1.0.21 | 134 | 5/23/2024 |
1.0.20 | 131 | 5/14/2024 |
1.0.19 | 118 | 5/14/2024 |
1.0.18 | 99 | 5/14/2024 |
1.0.17 | 103 | 5/14/2024 |
1.0.16 | 108 | 5/13/2024 |
1.0.15 | 111 | 5/13/2024 |
1.0.14 | 134 | 5/13/2024 |
1.0.13 | 99 | 5/13/2024 |
1.0.12 | 128 | 5/11/2024 |
1.0.11 | 128 | 5/11/2024 |
1.0.10 | 115 | 5/11/2024 |
1.0.9 | 127 | 5/11/2024 |
1.0.8 | 126 | 5/11/2024 |
1.0.7 | 140 | 5/10/2024 |
1.0.6 | 121 | 5/10/2024 |
1.0.5 | 109 | 5/10/2024 |
1.0.4 | 127 | 5/10/2024 |
1.0.3 | 122 | 5/10/2024 |
1.0.2 | 123 | 5/9/2024 |
1.0.1 | 117 | 5/9/2024 |