de.ls5.jlearn.interfaces
Interface SplitterCreator

All Known Implementing Classes:
HowarStyleSplitterCreator, KearnsStyleDFASplitterCreator, KearnsStyleSplitterCreator, MalerStyleSplitterCreator, RivestAllSuffixesSplitterCreator, RivestStyleDFASplitterCreator, RivestStyleSplitterCreator, ShahbazStyleSplitterCreator, SplitterCreatorAllSuffixes

public interface SplitterCreator

Encapsulates a strategy to handle counterexamples, e.g., to determine a suffix which identifies states in the hypothesis which should be split. In literature there are several strategies, the most simple one is just to consider every single suffix of the counterexample.

Author:
merten

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 oracle, Automaton hypothesis)
          Determine splitters that reveal diverging behavior between the learner's hypothesis and the target system.
 void setOracle(Oracle o)
          allows to set the oracle explicitly.
 

Method Detail

createSplitters

List<Word> createSplitters(Word counterexample,
                           Word output,
                           Oracle oracle,
                           Automaton hypothesis)
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.

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

applyToStates

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.

Returns:
list of states

applyGlobally

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). In case applyGlobally() is false, applyToStates() may be considered.

Returns:
true if suffixes should be applied globally

setOracle

void setOracle(Oracle o)
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.



Copyright © 2011. All Rights Reserved.