de.ls5.jlearn.splittercreators
Class KearnsStyleDFASplitterCreator

java.lang.Object
  extended by de.ls5.jlearn.splittercreators.KearnsStyleDFASplitterCreator
All Implemented Interfaces:
SplitterCreator
Direct Known Subclasses:
RivestStyleDFASplitterCreator

public class KearnsStyleDFASplitterCreator
extends Object
implements SplitterCreator

Author:
fh

Field Summary
protected  Automaton hyp
           
 
Constructor Summary
KearnsStyleDFASplitterCreator()
           
KearnsStyleDFASplitterCreator(Oracle oracle)
           
 
Method Summary
 boolean applyGlobally()
          Indicates that a set of suffixes is ought to be applied globally (to all states or components - or whatever data structure is used).
 List<State> applyToStates()
          Return a list of states from the hypothesis which are identified to be affected by splitters formely having been created using the createSplitters-method.
 List<Word> createSplitters(Word counterexample, Word output, Oracle o, Automaton hypothesis)
          Determine splitters that reveal diverging behavior between the learner's hypothesis and the target system.
protected  Word getValidPrefix(Word ce, Word co)
           
protected  Word getValidPrefix(Word ce, Word co, int lower, int upper, int[] flags)
           
 void setOracle(Oracle o)
          allows to set the oracle explicitly.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

hyp

protected Automaton hyp
Constructor Detail

KearnsStyleDFASplitterCreator

public KearnsStyleDFASplitterCreator()

KearnsStyleDFASplitterCreator

public KearnsStyleDFASplitterCreator(Oracle oracle)
Method Detail

setOracle

public void setOracle(Oracle o)
Description copied from interface: SplitterCreator
allows to set the oracle explicitly. It is expected that when the oracle is set explicitly, this will override the oracle that is set by the learning algorithm. This is useful to count the queries used by the splittercreator seperately.

Specified by:
setOracle in interface SplitterCreator

createSplitters

public List<Word> createSplitters(Word counterexample,
                                  Word output,
                                  Oracle o,
                                  Automaton hypothesis)
Description copied from interface: SplitterCreator
Determine splitters that reveal diverging behavior between the learner's hypothesis and the target system. Those splitters are used by the learning algorithm to split states which formerly have been considered to be one state.

Specified by:
createSplitters in interface SplitterCreator
Parameters:
counterexample - counterexample provided by the equivalence oracle
output - output of the target system in reaction to the target system
o - connector to the target system
hypothesis - current hypothesis of the learner
Returns:
list of sequences of input symbols revealing divering behavior

getValidPrefix

protected Word getValidPrefix(Word ce,
                              Word co)
                       throws LearningException
Throws:
LearningException

getValidPrefix

protected Word getValidPrefix(Word ce,
                              Word co,
                              int lower,
                              int upper,
                              int[] flags)
                       throws LearningException
Throws:
LearningException

applyToStates

public List<State> applyToStates()
Description copied from interface: SplitterCreator
Return a list of states from the hypothesis which are identified to be affected by splitters formely having been created using the createSplitters-method.

Specified by:
applyToStates in interface SplitterCreator
Returns:
list of states

applyGlobally

public boolean applyGlobally()
Description copied from interface: SplitterCreator
Indicates that a set of suffixes is ought to be applied globally (to all states or components - or whatever data structure is used). In case applyGlobally() is false, applyToStates() may be considered.

Specified by:
applyGlobally in interface SplitterCreator
Returns:
true if suffixes should be applied globally


Copyright © 2011. All Rights Reserved.