SharpNeat 4.0.0
See the version list below for details.
dotnet add package SharpNeat --version 4.0.0
NuGet\Install-Package SharpNeat -Version 4.0.0
<PackageReference Include="SharpNeat" Version="4.0.0" />
paket add SharpNeat --version 4.0.0
#r "nuget: SharpNeat, 4.0.0"
// Install SharpNeat as a Cake Addin #addin nuget:?package=SharpNeat&version=4.0.0 // Install SharpNeat as a Cake Tool #tool nuget:?package=SharpNeat&version=4.0.0
SharpNEAT - Evolution of Neural Networks
NEAT is NeuroEvolution of Augmenting Topologies; an evolutionary algorithm devised by Kenneth O. Stanley.
SharpNEAT is a complete implementation of NEAT written in C# and targeting .NET [Core] 7.
From the SharpNEAT FAQ...
1. What is SharpNEAT
In a nutshell, SharpNEAT provides an implementation of an Evolutionary Algorithm (EA) with the specific goal of evolving neural networks. The EA uses the evolutionary mechanisms of mutation, recombination, and selection to search for neural networks with behaviour that satisfies some formally defined problem. Example problems might be:
- How to control the limbs of a simple biped or quadruped to make it walk.
- How to control a rocket to maintain vertical flight.
- Finding a network that implements some desired digital logic, such as a multiplexer.
A notable point is that NEAT and SharpNEAT search both neural network structure (network nodes and connectivity) and connection weights (inter-node connection strength). This is distinct from algorithms such as back-propogation that generally attempt to discover good connection weights for a given structure.
SharpNEAT is a framework that facilitates research into evolutionary computation and specifically evolution of neural networks. The framework provides a number of example problem tasks that demonstrate how it can be used to produce a complete working EA.
This project aims to be modular, and therefore an alternative genetic coding or entire new evolutionary algorithm could be used alongside the wider framework. The provision for such modular experimentation was a major design goal of SharpNEAT, and is facilitated by abstractions made in SharpNEAT's architecture around key concepts such as genome (genetic representation and coding) and evolutionary algorithm (mutations, recombination, selection strategy).
Motivation for the development of SharpNEAT derives from a broader interest in biological evolution, and curiosity around the limits of neuro-evolution, in terms of the of problems and level of problem complexity it can produce satisfactory solutions for.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. 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. |
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Major rewrite/refactor performed over a period of about 6 years (between 2017 and 2022).
Target platform is now .NET [Core] 7. Previously SharpNEAT was a .NET Framework project, with some core parts later targeting .NET Standard. All code in this project now targets .NET 7.
Significant performance improvements, through use of Span{T}, ArrayPool, Vector{T}, and general improvements, e.g. to reduce memory allocations and Garbage Collection overhead.
Improved / cleaner API, code structure, and just generally provides a good foundation for future NEAT research.