SharpNeat 4.1.0

dotnet add package SharpNeat --version 4.1.0
NuGet\Install-Package SharpNeat -Version 4.1.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.1.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add SharpNeat --version 4.1.0
#r "nuget: SharpNeat, 4.1.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.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.

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. 
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
4.1.0 184 1/6/2024
4.0.0 751 1/1/2023

* 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.