Code Monkey home page Code Monkey logo

novelty-prog-sys's Introduction

Program Synthesis with Novelty Search

Installation

This repository is adapted from the PonyGE2 repository, which can be seen in src/PonyGE2. Important installation instructions can be found in the README there regarding general setup, and a link to the original repository is included as well. In the original repository there is a detailed wiki documenting how much of the GE algorithm works.

The python version used when running experiments was 3.5.2. Make sure to install the requirements in the requirements.txt file in both the src folder and the PonyGE2 folder.

Adding Novelty

Novelty experiments can be run by adjusting the novelty parameters in src/PonyGE2/parameters/progsys.txt.

Important parameters include:
SELECTION - Use "lexicase_and_novelty" to run a combination of novelty search and lexicase selection.
NOVELTY_SELECTION_ALG - choices are 'knob', to use a static knob; 'exp' to use an exponentially decaying knob, and 'adapt' to use an adaptive knob based on number of duplicates in population.
NOVELTY_FACTOR - when run with the NOVELTY_SELECTION_ALG set to 'knob', this will set the static knob value. If set to zero, don't use any novelty selection, if set to 1 use pure novelty selection.
NOVELTY_ALGORITHM - Choose one of five different novelty algorithms to use when novelty search is chosen. Valid options include 'genotype', 'phenotype', 'ast', 'derivation', and 'output'.
NOVELTY_BY_GEN: - Use the knob on a per generation basis, or on a per individual basis.

Notes

Novelty search may not work for all problem choices located in src/PonyGE2/grammars/progsys as some modifications have been made to the grammars. However, it should definitely work for Median, Smallest, String Lengths Backwards, Number IO, Negative To Zero, Vectors Summed, and Small or Large.

novelty-prog-sys's People

Contributors

hembergerik avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.