SharpNeat 4.0.0

.NET 7.0
dotnet add package SharpNeat --version 4.0.0
NuGet\Install-Package SharpNeat -Version 4.0.0
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="SharpNeat" Version="4.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add SharpNeat --version 4.0.0
#r "nuget: SharpNeat, 4.0.0"
#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.
// 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
.NET net7.0 net7.0-android net7.0-ios net7.0-maccatalyst net7.0-macos net7.0-tvos net7.0-windows
Compatible target framework(s)
Additional computed target framework(s)
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
4.0.0 457 1/1/2023

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.