astar-search
1.0.2
dotnet add package astar-search --version 1.0.2
NuGet\Install-Package astar-search -Version 1.0.2
<PackageReference Include="astar-search" Version="1.0.2" />
paket add astar-search --version 1.0.2
#r "nuget: astar-search, 1.0.2"
// Install astar-search as a Cake Addin
#addin nuget:?package=astar-search&version=1.0.2
// Install astar-search as a Cake Tool
#tool nuget:?package=astar-search&version=1.0.2
astar-search
A* Search algorithm in F#.
An implementation of the classic algorithm, as described here: https://en.wikipedia.org/wiki/A*_search_algorithm.
However, in contrast to the pseudo-code shown in that article, this version is implemented in a purely functional and immutable way, as is more idiomatic for F#.
The core code is in the src/AStar.fs/AStar module. The algorithm requires callers submit a start point, goal point, and three functions: a gscore calculator, fscore calculator and a method that returns the neighbours of a given point. In this way, the algorithm is generalisable to any type of point or graph structure - the only constraint on the generic point type is that it be comparable.
samples/Program.fs contains a console application demonstrating use of the algorithm, finding a path through a two dimensional grid.
This project can be used from nuget: https://www.nuget.org/packages/astar-search/1.0.2
Enjoy!
Changes from 1.0.1
The core algorithm wasn't using tail recursion, which could cause stack overflows over large problem spaces. This has been fixed.
Product | Versions |
---|---|
.NET | net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows net7.0 net7.0-android net7.0-ios net7.0-maccatalyst net7.0-macos net7.0-tvos net7.0-windows |
.NET Core | netcoreapp2.0 netcoreapp2.1 netcoreapp2.2 netcoreapp3.0 netcoreapp3.1 |
.NET Standard | netstandard2.0 netstandard2.1 |
.NET Framework | net461 net462 net463 net47 net471 net472 net48 net481 |
MonoAndroid | monoandroid |
MonoMac | monomac |
MonoTouch | monotouch |
Tizen | tizen40 tizen60 |
Xamarin.iOS | xamarinios |
Xamarin.Mac | xamarinmac |
Xamarin.TVOS | xamarintvos |
Xamarin.WatchOS | xamarinwatchos |
-
.NETStandard 2.0
- FSharp.Core (>= 4.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.