jaga.pj.circuits.experiment
Class KISSFSMExperiment

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

public class KISSFSMExperiment
extends java.lang.Object
implements ConfigurableSequentialCircuitExperiment

See Also:
Serialized Form

Constructor Summary
KISSFSMExperiment(double tSetup, java.io.File kissFile, java.lang.String resetStateName, java.lang.String[][] resetInputs, int[] permEdgeLines)
          Creates new KISSFSMExperiment
KISSFSMExperiment(double tSetup, java.io.File kissFile, java.lang.String resetStateName, java.lang.String[][] resetInputs, int[] permEdgeLines, boolean generateClock)
           
 
Method Summary
 java.util.Hashtable buildStateTable(java.io.File kissFile)
           
 SampleData[] generateInput()
          generates an array of inputs suitable for this experiment using default input sample separation.
 SampleData[] generateInput(int inputSampleSeparation)
          generates an array of inputs suitable for this experiment.
 java.lang.Object get(java.lang.Object p)
           
 double getFitness(SampleData[] in, SampleData[] out)
          returns a fitness associated to a given input/output pair for this experiment.
 int getNumOfInputs()
           
 int getNumOfOutputs()
           
 int[] getStateEnterPos()
           
 MealyFSMNode[] getStateGraphNodes()
           
 int rndStatePos()
           
 void set(java.lang.Object rndSeed)
           
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

KISSFSMExperiment

public KISSFSMExperiment(double tSetup,
                         java.io.File kissFile,
                         java.lang.String resetStateName,
                         java.lang.String[][] resetInputs,
                         int[] permEdgeLines,
                         boolean generateClock)
                  throws java.io.IOException

KISSFSMExperiment

public KISSFSMExperiment(double tSetup,
                         java.io.File kissFile,
                         java.lang.String resetStateName,
                         java.lang.String[][] resetInputs,
                         int[] permEdgeLines)
                  throws java.io.IOException
Creates new KISSFSMExperiment
Method Detail

buildStateTable

public java.util.Hashtable buildStateTable(java.io.File kissFile)
                                    throws java.io.IOException

set

public void set(java.lang.Object rndSeed)
Specified by:
set in interface ConfigurableExperiment

get

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

getFitness

public double getFitness(SampleData[] in,
                         SampleData[] out)
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
Parameters:
in - array of inputs
out - array of outputs

generateInput

public SampleData[] generateInput()
generates an array of inputs suitable for this experiment using default input sample separation.
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.

getNumOfInputs

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

getNumOfOutputs

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

toString

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

getStateEnterPos

public int[] getStateEnterPos()
Specified by:
getStateEnterPos in interface SequentialCircuitExperiment
Returns:
Array of positions in last test pattern generated of when the tested FSM - if perfect - would enter each state. So State N is entered at input data position rv[ N ]

rndStatePos

public int rndStatePos()
Specified by:
rndStatePos in interface SequentialCircuitExperiment

getStateGraphNodes

public MealyFSMNode[] getStateGraphNodes()
Specified by:
getStateGraphNodes in interface SequentialCircuitExperiment
Returns:
Array of Mealy Finite State Machine Nodes. The nth node in the array represents the state for which the nth int in the array returned by getStateEnterPos() represents the position in the TP at which this state is entered.