Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/d9w/CartesianGeneticProgramming.jl
Cartesian Genetic Programming for Julia
https://github.com/d9w/CartesianGeneticProgramming.jl
Last synced: 3 months ago
JSON representation
Cartesian Genetic Programming for Julia
- Host: GitHub
- URL: https://github.com/d9w/CartesianGeneticProgramming.jl
- Owner: d9w
- License: other
- Created: 2017-08-09T13:47:55.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2022-02-01T14:48:25.000Z (almost 3 years ago)
- Last Synced: 2024-07-21T07:04:44.498Z (4 months ago)
- Language: Julia
- Size: 859 KB
- Stars: 71
- Watchers: 6
- Forks: 25
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-sciml - d9w/CartesianGeneticProgramming.jl: Cartesian Genetic Programming for Julia
README
# CartesianGeneticProgramming.jl
[![Build Status](https://travis-ci.org/d9w/CartesianGeneticProgramming.jl.svg?branch=master)](https://travis-ci.org/d9w/CartesianGeneticProgramming.jl) [![Coverage Status](https://coveralls.io/repos/d9w/CartesianGeneticProgramming.jl/badge.svg?branch=master)](https://coveralls.io/r/d9w/CartesianGeneticProgramming.jl?branch=master) [![codecov](https://codecov.io/gh/d9w/CartesianGeneticProgramming.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/d9w/CartesianGeneticProgramming.jl)
[Cartesian Genetic Programming](http://www.cartesiangp.com/) in
[Julia](http://julialang.org/). Based on the
[Cambrian.jl](https://github.com/d9w/Cambrian.jl) framework.## Installation
CartesianGeneticProgramming.jl can be installed through the Julia package manager
```julia
pkg> add CartesianGeneticProgramming.jl
```## Examples
Examples of usage are provided in `scripts`. To run any of these examples, do
```bash
$ julia scripts/gym.jl
```This will create and populate `gens` and `logs` folders, which store CGP
individuals and evolutionary logs, respectively.Note that these examples have only been tested on Linux and have additional
dependencies which must be installed, like `PyCall` or
`ArcadeLearningEnvironment`.## Tests
`CGP.jl` comes with tests which can offer examples of detailed usage of the
different genetic operators and CGP extensions. To run all tests, use```julia
pkg> test CartesianGeneticProgramming
```## Configuration
Configuration is handled by `src/config.jl`. Configurable options are read in
through YAML files (an example being `cfg/test.yaml`). All possible node
functions are defined in `src/functions.jl` and are populated in the
configuration files.## Mixed-Type CGP
This repository is now intended only for floating point inputs and therefore no
longer implements Mixed-Type CGP. The commit reference for the results in [1] is
[096e843](https://github.com/d9w/CartesianGeneticProgramming.jl/commit/096e84316c0c265e17ea75de7b5fcaa6427fa5dc),
however this requires Julia 0.6 and may no longer function. MTCGP is currently
being rewritten at https://github.com/d9w/MTCGP.jl. This is done to separate
heavy image processing package dependencies which are not necessary for base
CGP.[1] Wilson, Dennis G., et al. "Evolving simple programs for playing Atari
games." Proceedings of the Genetic and Evolutionary Computation Conference. ACM,
2018.