FlashPlanner 1.0.2

There is a newer version of this package available.
See the version list below for details.
dotnet add package FlashPlanner --version 1.0.2
                    
NuGet\Install-Package FlashPlanner -Version 1.0.2
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="FlashPlanner" Version="1.0.2" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="FlashPlanner" Version="1.0.2" />
                    
Directory.Packages.props
<PackageReference Include="FlashPlanner" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add FlashPlanner --version 1.0.2
                    
#r "nuget: FlashPlanner, 1.0.2"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package FlashPlanner@1.0.2
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=FlashPlanner&version=1.0.2
                    
Install as a Cake Addin
#tool nuget:?package=FlashPlanner&version=1.0.2
                    
Install as a Cake Tool

<p align="center"> <img src="https://github.com/kris701/FlashPlanner/assets/22596587/d3f387a6-e0b5-4118-9801-c125a4e64100" width="200" height="200" /> </p>

Build and Publish Nuget Nuget GitHub last commit (branch) GitHub commit activity (branch) Static Badge Static Badge Static Badge

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 Classical_BestFirst --heuristic hWeighted(hFF(),10)

This project is also available as a package on the NuGet Package Manager.

Classical Planners

These planners is able to find solutions for SMALL problems. The planners are:

For these planners, there is a set of heuristics as well.

  • hConstant: Returns a given constant all the time
  • hDepth: Simply returns a cost that is 1 lower than its parent
  • hFF: Returns a cost based on a solution to the relaxed planning graph for the problem
  • hAdd: Retuns the sum of actions needed to achive every goal fact
  • hMax: 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 evaluated
  • hWeighted: Takes one of the previously given heuristics, and weights its result from a constant.

There are also a set of "collection heuristics" that runs on a set of heuristics:

  • hColMax: Gets the highest heuristic value from a set of heuristics
  • hColSom: Gets the sum of the heuristic values from a set of heuristics

Again do note, that these planners are very inefficient, and will run out of memory with larger problems.

Examples

To find a plan using the Greedy Best First Search engine:

PDDLDecl decl = new PDDLDecl(...);
ITranslator translator = new PDDLToSASTranslator(true);
SASDecl sas = translator.Translate(decl);
using (var greedyBFS = new GreedyBFS(sas, new hFF(decl)))
{
   var plan = greedyBFS.Solve();
}

Black Box Planners

This is a type of planners where the heuristic gets seriously limited, by not allowing it to know any structural knowledge of the domain.

The current planners are:

This also only support the hGoal heuristic

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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