SharpNeat 4.1.0
dotnet add package SharpNeat --version 4.1.0
NuGet\Install-Package SharpNeat -Version 4.1.0
<PackageReference Include="SharpNeat" Version="4.1.0" />
paket add SharpNeat --version 4.1.0
#r "nuget: SharpNeat, 4.1.0"
// Install SharpNeat as a Cake Addin #addin nuget:?package=SharpNeat&version=4.1.0 // Install SharpNeat as a Cake Tool #tool nuget:?package=SharpNeat&version=4.1.0
SharpNEAT - Evolution of Neural Networks
NEAT is an evolutionary algorithm devised by Kenneth O. Stanley.
SharpNEAT is a complete implementation of NEAT written in C# and targeting .NET 8.
What is SharpNEAT?
SharpNEAT provides an implementation of an Evolutionary Algorithm (EA) with the specific goal of evolving a population of neural networks towards solving some goal problem task (known as as the Objective function).
The EA uses the evolutionary mechanisms of mutation, recombination, and selection, to search for a neural network that 'solves' a given problem task, with each neural net being assigned a fitness score that represents the quality of the solution it represents.
Some example problem tasks:
- 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 (the set of network nodes and how they are connected) and connection weights. This is distinct from algorithms such as backpropagation that attempt to find good connection weights for a given structure.
SharpNEAT is a framework, or 'kit of parts', 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, e.g. an alternative genetic coding or entirely new evolutionary algorithm could be used alongside the other parts/classes provided by SharpNEAT. 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 / encoding) and 'evolutionary algorithm' (mutations, recombination, selection strategy, etc.).
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.
More Info / Links
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. |
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
* Upgrade from .NET 7 to .NET 8; this provides some general performance improvements, particularly in the quality of the machine code produced by the JIT compiler.
* Some core classes updated to make use of generic math[s] (search for uses of IBinaryFloatingPointIeee754<T>).
* Upgraded Redzen dependency from 14.0 to 15.0, to make use of new generic math functions.