jaga.pj.circuits.experiment
Class MultiplierExperiment

java.lang.Object
  |
  +--jaga.pj.circuits.experiment.MultiplierExperiment
All Implemented Interfaces:
ConfigurableExperiment, ConfigurableRandomInputExperiment, Experiment, java.io.Serializable

public class MultiplierExperiment
extends java.lang.Object
implements ConfigurableRandomInputExperiment

This is to be used to evolve Multipliers of two n bit wide inputs and a 2n bit wide output.

See Also:
Serialized Form

Constructor Summary
MultiplierExperiment(int width)
           
MultiplierExperiment(int width, double tSetup)
           
MultiplierExperiment(int width, double tSetup, FitnessFunction fitnessFunction, TestPatternGenerator tpg)
          Creates new AndExperiment
 
Method Summary
 SampleData[] generateInput()
          Generate input using default parameters
 SampleData[] generateInput(int inputSampleSeparation)
          generates an array of inputs suitable for this experiment.
 SampleData[] generateInput(int inputSampleSeparation, int inputDataLength)
          Generate input suitable for testing this experiment using custom parameters
 java.lang.Object get(java.lang.Object param)
           
 double getFitness(SampleData[] in, SampleData[] out)
          returns a fitness associated to a given input/output pair for this experiment.
 int getNumOfInputs()
           
 int getNumOfOutputs()
           
 void set(java.lang.Object param)
          Sets random seed for inputs generation to param where param instanceof Long
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

MultiplierExperiment

public MultiplierExperiment(int width,
                            double tSetup,
                            FitnessFunction fitnessFunction,
                            TestPatternGenerator tpg)
Creates new AndExperiment

MultiplierExperiment

public MultiplierExperiment(int width,
                            double tSetup)

MultiplierExperiment

public MultiplierExperiment(int width)
Method Detail

getNumOfInputs

public int getNumOfInputs()
Specified by:
getNumOfInputs in interface Experiment

getNumOfOutputs

public int getNumOfOutputs()
Specified by:
getNumOfOutputs in interface Experiment

generateInput

public SampleData[] generateInput()
Generate input using default parameters
Specified by:
generateInput in interface Experiment

generateInput

public SampleData[] generateInput(int inputSampleSeparation)
generates an array of inputs suitable for this experiment.
Specified by:
generateInput in interface Experiment
Parameters:
inputSampleSeparation - relative frequency of input to output samples. If this is n, then n outputs will be sampled for every change in inputs.

generateInput

public SampleData[] generateInput(int inputSampleSeparation,
                                  int inputDataLength)
Generate input suitable for testing this experiment using custom parameters
Parameters:
inputDataLength - how long the input data should be
inputSampleSeparation - how often the input samples should change in time. Greater value -> less often

getFitness

public double getFitness(SampleData[] in,
                         SampleData[] out)
Description copied from interface: Experiment
returns a fitness associated to a given input/output pair for this experiment. The fitness is a double and is in adjusted fitness format. From 0 to 1, 1 being perfectly fit.
Specified by:
getFitness in interface Experiment
Following copied from interface: jaga.experiment.Experiment
Parameters:
in - array of inputs
out - array of outputs

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

set

public void set(java.lang.Object param)
Sets random seed for inputs generation to param where param instanceof Long
Specified by:
set in interface ConfigurableExperiment

get

public java.lang.Object get(java.lang.Object param)
Specified by:
get in interface ConfigurableExperiment