C# 클래스 SharpNeat.Domains.BoxesVisualDiscrimination.BoxesVisualDiscriminationExperiment

Boxes Visual Discrimination Task, as described in: 'A Hypercube-Based Encoding for Evolving Large-Scale Neural Networks', Kenneth O. Stanley, David B. D'Ambrosio, and Jason Gauci (2009) http://eplex.cs.ucf.edu/publications/2009/stanley.alife09.html The task involves a visual field of 11x11 binary pixels (on/off, black/white). The field contains two boxes, one small and one large box that has an edge length 3x that of the smaller box. The goal is to identify the center pixel of the larger box. A single evaluation consists of 75 test cases with the two boxes randomly positioned. The root mean squared distance between selected and target pixels is scaled and translated to a range of 0-100, where 0 = no better than an agent randomly selecting pixels and 100 = perfect. In addition to this the range of output values is scaled to 0-10 and added to the final score, this encourages solutions with a wide output range between the highest activation (the selected pixel) and the lowest activation (this encourages prominent/clear selection). The problem domain view allows the performance of the best genome to be observed. The view also allows the HyperNEAT genome to be decoded using a range of visual field pixel resolutions beyond the 11x11 resolution that genomes are trained with. The ability to do this is a feature of HyperNEAT - the evolved genomes are Compositional Pattern Producing Networks (CPPNs). A CPPN defines the connection strength between nodes positioned in some euclidean space and therefore we can use a CPPN to produce neural networks with more nodes by increasing the number and density of nodes.
상속: IGuiNeatExperiment
파일 보기 프로젝트 열기: colgreen/sharpneat 1 사용 예제들

공개 메소드들

메소드 설명
BoxesVisualDiscriminationExperiment ( ) : System

Default constructor.

CreateDomainView ( ) : AbstractDomainView

Create a System.Windows.Forms derived object for displaying output for a domain (e.g. show best genome's output/performance/behaviour in the domain).

CreateEvolutionAlgorithm ( ) : NeatEvolutionAlgorithm

Create and return a NeatEvolutionAlgorithm object ready for running the NEAT algorithm/search. Various sub-parts of the algorithm are also constructed and connected up. Uses the experiments default population size defined in the experiment's config XML.

CreateEvolutionAlgorithm ( IGenomeFactory genomeFactory, List genomeList ) : NeatEvolutionAlgorithm

Create and return a NeatEvolutionAlgorithm object ready for running the NEAT algorithm/search. Various sub-parts of the algorithm are also constructed and connected up. This overload accepts a pre-built genome population and their associated/parent genome factory.

CreateEvolutionAlgorithm ( int populationSize ) : NeatEvolutionAlgorithm

Create and return a NeatEvolutionAlgorithm object ready for running the NEAT algorithm/search. Various sub-parts of the algorithm are also constructed and connected up. This overload accepts a population size parameter that specifies how many genomes to create in an initial randomly generated population.

CreateGenomeDecoder ( ) : IBlackBox>.IGenomeDecoder

Create a genome decoder for the experiment.

CreateGenomeDecoder ( int visualFieldResolution, bool lengthCppnInput ) : IBlackBox>.IGenomeDecoder

Creates a genome decoder. We split this code into a separate method so that it can be re-used by the problem domain visualization code (it needs to decode genomes to phenomes in order to create a visualization).

CreateGenomeFactory ( ) : IGenomeFactory

Create a genome factory for the experiment.

CreateGenomeView ( ) : AbstractGenomeView

Create a System.Windows.Forms derived object for displaying genomes.

Initialize ( string name, XmlElement xmlConfig ) : void

Initialize the experiment with some optional XML configuration data.

LoadPopulation ( XmlReader xr ) : List

Load a population of genomes from an XmlReader and returns the genomes in a new list. The genome factory for the genomes can be obtained from any one of the genomes.

SavePopulation ( XmlWriter xw, IList genomeList ) : void

Save a population of genomes to an XmlWriter.

비공개 메소드들

메소드 설명
GetCppnActivationFunctionLibrary ( ) : IActivationFunctionLibrary

메소드 상세

BoxesVisualDiscriminationExperiment() 공개 메소드

Default constructor.
public BoxesVisualDiscriminationExperiment ( ) : System
리턴 System

CreateDomainView() 공개 메소드

Create a System.Windows.Forms derived object for displaying output for a domain (e.g. show best genome's output/performance/behaviour in the domain).
public CreateDomainView ( ) : AbstractDomainView
리턴 AbstractDomainView

CreateEvolutionAlgorithm() 공개 메소드

Create and return a NeatEvolutionAlgorithm object ready for running the NEAT algorithm/search. Various sub-parts of the algorithm are also constructed and connected up. Uses the experiments default population size defined in the experiment's config XML.
public CreateEvolutionAlgorithm ( ) : NeatEvolutionAlgorithm
리턴 NeatEvolutionAlgorithm

CreateEvolutionAlgorithm() 공개 메소드

Create and return a NeatEvolutionAlgorithm object ready for running the NEAT algorithm/search. Various sub-parts of the algorithm are also constructed and connected up. This overload accepts a pre-built genome population and their associated/parent genome factory.
public CreateEvolutionAlgorithm ( IGenomeFactory genomeFactory, List genomeList ) : NeatEvolutionAlgorithm
genomeFactory IGenomeFactory
genomeList List
리턴 NeatEvolutionAlgorithm

CreateEvolutionAlgorithm() 공개 메소드

Create and return a NeatEvolutionAlgorithm object ready for running the NEAT algorithm/search. Various sub-parts of the algorithm are also constructed and connected up. This overload accepts a population size parameter that specifies how many genomes to create in an initial randomly generated population.
public CreateEvolutionAlgorithm ( int populationSize ) : NeatEvolutionAlgorithm
populationSize int
리턴 NeatEvolutionAlgorithm

CreateGenomeDecoder() 공개 메소드

Create a genome decoder for the experiment.
public CreateGenomeDecoder ( ) : IBlackBox>.IGenomeDecoder
리턴 IBlackBox>.IGenomeDecoder

CreateGenomeDecoder() 공개 메소드

Creates a genome decoder. We split this code into a separate method so that it can be re-used by the problem domain visualization code (it needs to decode genomes to phenomes in order to create a visualization).
public CreateGenomeDecoder ( int visualFieldResolution, bool lengthCppnInput ) : IBlackBox>.IGenomeDecoder
visualFieldResolution int The visual field's pixel resolution, e.g. 11 means 11x11 pixels.
lengthCppnInput bool Indicates if the CPPNs being decoded have an extra input for specifying connection length.
리턴 IBlackBox>.IGenomeDecoder

CreateGenomeFactory() 공개 메소드

Create a genome factory for the experiment.
public CreateGenomeFactory ( ) : IGenomeFactory
리턴 IGenomeFactory

CreateGenomeView() 공개 메소드

Create a System.Windows.Forms derived object for displaying genomes.
public CreateGenomeView ( ) : AbstractGenomeView
리턴 AbstractGenomeView

Initialize() 공개 메소드

Initialize the experiment with some optional XML configuration data.
public Initialize ( string name, XmlElement xmlConfig ) : void
name string
xmlConfig System.Xml.XmlElement
리턴 void

LoadPopulation() 공개 메소드

Load a population of genomes from an XmlReader and returns the genomes in a new list. The genome factory for the genomes can be obtained from any one of the genomes.
public LoadPopulation ( XmlReader xr ) : List
xr System.Xml.XmlReader
리턴 List

SavePopulation() 공개 메소드

Save a population of genomes to an XmlWriter.
public SavePopulation ( XmlWriter xw, IList genomeList ) : void
xw System.Xml.XmlWriter
genomeList IList
리턴 void