All Projects → Rober-t → apxr_run

Rober-t / apxr_run

Licence: Apache-2.0 license
A topology and parameter evolving universal learning network.

Programming Languages

erlang
1774 projects

Projects that are alternatives of or similar to apxr run

Flappylearning
Program learning to play Flappy Bird by machine learning (Neuroevolution)
Stars: ✭ 3,889 (+27678.57%)
Mutual labels:  neuroevolution
Cephalopods
Evolving squids through neuroevolution
Stars: ✭ 122 (+771.43%)
Mutual labels:  neuroevolution
Neural Network P5
Deprecated! See:
Stars: ✭ 218 (+1457.14%)
Mutual labels:  neuroevolution
Neat Python
Python implementation of the NEAT neuroevolution algorithm
Stars: ✭ 895 (+6292.86%)
Mutual labels:  neuroevolution
Darwin
Evolutionary Algorithms Framework
Stars: ✭ 72 (+414.29%)
Mutual labels:  neuroevolution
Evolutionsimulator
Evolution Simulator with Box2D
Stars: ✭ 143 (+921.43%)
Mutual labels:  neuroevolution
NEATEST
NEATEST: Evolving Neural Networks Through Augmenting Topologies with Evolution Strategy Training
Stars: ✭ 13 (-7.14%)
Mutual labels:  neuroevolution
Dino-AI
An AI to teach Google Chrome's dinosaur to jump obstacles.
Stars: ✭ 15 (+7.14%)
Mutual labels:  evolutionary-algorithm
Exnn
An Elixir Evolutive Neural Network framework à la G.Sher
Stars: ✭ 93 (+564.29%)
Mutual labels:  neuroevolution
Aimandshoot
A neuroevolution game experiment.
Stars: ✭ 201 (+1335.71%)
Mutual labels:  neuroevolution
Evolutionary Algorithm
Evolutionary Algorithm using Python, 莫烦Python 中文AI教学
Stars: ✭ 881 (+6192.86%)
Mutual labels:  neuroevolution
Radiate
Radiate is a parallel genetic programming engine capable of evolving solutions to many problems as well as training learning algorithms.
Stars: ✭ 65 (+364.29%)
Mutual labels:  neuroevolution
Awesome Deep Neuroevolution
A collection of Deep Neuroevolution resources or evolutionary algorithms applying in Deep Learning (constantly updating)
Stars: ✭ 150 (+971.43%)
Mutual labels:  neuroevolution
Factor Network
A simple factor network implementation written by JavaScript
Stars: ✭ 530 (+3685.71%)
Mutual labels:  neuroevolution
rustneat
Rust Neat - NeuroEvolution of Augmenting Topologies
Stars: ✭ 63 (+350%)
Mutual labels:  neuroevolution
Sharpneat
SharpNEAT - Evolution of Neural Networks. A C# .NET Framework.
Stars: ✭ 273 (+1850%)
Mutual labels:  neuroevolution
Machine Learning Flappy Bird
Machine Learning for Flappy Bird using Neural Network and Genetic Algorithm
Stars: ✭ 1,683 (+11921.43%)
Mutual labels:  neuroevolution
housing-model
Agent-based model of the UK housing market.
Stars: ✭ 29 (+107.14%)
Mutual labels:  agent-based-simulation
evolvable
An evolutionary computation framework
Stars: ✭ 43 (+207.14%)
Mutual labels:  evolutionary-algorithm
Sparse Evolutionary Artificial Neural Networks
Always sparse. Never dense. But never say never. A repository for the Adaptive Sparse Connectivity concept and its algorithmic instantiation, i.e. Sparse Evolutionary Training, to boost Deep Learning scalability on various aspects (e.g. memory and computational time efficiency, representation and generalization power).
Stars: ✭ 182 (+1200%)
Mutual labels:  neuroevolution

apxr_run

A topology and parameter evolving universal learning network originally created by Gene Sher.


Requirements

More information on installing Erlang/OTP & Rebar3 can be found here.


Introduction

apxr_run is a distributed topology and weight evolving artificial neural network originally created by Gene Sher. Significant changes are a deeper integration of the OTP application structure, replacement of the single scape process with a quad tree, converting the sensor -> scape and actuator -> scape processes to be asynchronous, dropping Mnesia in favour of RocksDB and initial work to integrate with Elixir.


How to:

1. Build

$ rebar3 compile

2. Run Dialyzer (Erlang static analysis tool)

$ rebar3 dialyzer

3. Run Eunit (Unit tests)

$ rebar3 do eunit, cover --verbose

4. Run Xref (Cross reference analysis)

$ rebar3 xref

5. Run

$ rebar3 shell
1> experiment_mgr:run().

6. Generate release

$ rebar3 release -d -p priv/lib/elixir/ebin/

7. Run release

$ _build/default/rel/apxr_run/bin/apxr_run console

8. Observe

1> observer:start().

or

1> observer_cli:start().

9. Conduct an experiment

The experiment_mgr process composes experiments by performing N evolutionary runs, and then produces statistical data and chart ready files of the various evolutionary dynamics and averages.

All these files can be found under the /experiments directory.


Configuration

Every application of the system needs a corresponding configuration file. The /config directory contains a number of examples that can be used to get started.

Remember, we do not need to force the system to use any one particular approach. We can set it in the constraints to use all available functionality and the system will evolve it all.


Benchmarks

Three benchmarks are included:

  • Double pole balancing without damping
  • Double pole balancing with damping
  • Discrete T-maze

See the /doc/examples/benchmarks.md for more information.


Applications

Two applications are included:

  • Flatland
  • FX

See the /doc/examples/applications.md for more information.


Documentation

Developers

The most useful resource for developers working on this project will be the inline documentation.

General

For a more general introduction, see the /docs directory for a quick introduction to neuroevolution and related topics.

For a more thorough introduction, the book "Handbook of Neuroevolution Through Erlang" by Gene Sher is highly recommended. Indeed, much of the content in the Docs section is taken from this book as is the majority of the inline documentation found in the source code. So, credit for the good stuff goes to him.


Conventions & rules

Inaka's erlang_guidelines should be used as the basis for things that may be used as a reason to reject a PR.


Related publications

  1. Handbook of Neuroevolution Through Erlang by Gene Sher.
  2. Agent-Based Modeling Using Erlang by Gene Sher.

Copyright (C) 2018 - 2019 ApproximateReality - [email protected]

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].