Class ExtensibleLStarMealy<I,O>
- java.lang.Object
-
- de.learnlib.algorithm.lstar.AbstractLStar<A,I,D>
-
- de.learnlib.algorithm.lstar.AbstractAutomatonLStar<A,I,D,S,T,SP,TP,AI>
-
- de.learnlib.algorithm.lstar.AbstractExtensibleAutomatonLStar<MealyMachine<?,I,?,O>,I,Word<O>,Integer,CompactTransition<O>,Void,O,CompactMealy<I,O>>
-
- de.learnlib.algorithm.lstar.mealy.ExtensibleLStarMealy<I,O>
-
- All Implemented Interfaces:
GlobalSuffixLearner<MealyMachine<?,I,?,O>,I,Word<O>>
,GlobalSuffixLearner.GlobalSuffixLearnerMealy<I,O>
,LearningAlgorithm<MealyMachine<?,I,?,O>,I,Word<O>>
,LearningAlgorithm.MealyLearner<I,O>
,ObservationTableFeature<I,Word<O>>
,OTLearner<MealyMachine<?,I,?,O>,I,Word<O>>
,OTLearner.OTLearnerMealy<I,O>
,Resumable<AutomatonLStarState<I,Word<O>,CompactMealy<I,O>,Integer>>
,SupportsGrowingAlphabet<I>
- Direct Known Subclasses:
LStarBaseAdapterMealy
,MalerPnueliMealy
,RivestSchapireMealy
public class ExtensibleLStarMealy<I,O> extends AbstractExtensibleAutomatonLStar<MealyMachine<?,I,?,O>,I,Word<O>,Integer,CompactTransition<O>,Void,O,CompactMealy<I,O>> implements OTLearner.OTLearnerMealy<I,O>, GlobalSuffixLearner.GlobalSuffixLearnerMealy<I,O>
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class de.learnlib.algorithm.lstar.AbstractExtensibleAutomatonLStar
AbstractExtensibleAutomatonLStar.BuilderDefaults
-
Nested classes/interfaces inherited from interface de.learnlib.algorithm.GlobalSuffixLearner
GlobalSuffixLearner.GlobalSuffixLearnerDFA<I>, GlobalSuffixLearner.GlobalSuffixLearnerMealy<I,O>
-
Nested classes/interfaces inherited from interface de.learnlib.algorithm.LearningAlgorithm
LearningAlgorithm.DFALearner<I>, LearningAlgorithm.MealyLearner<I,O>, LearningAlgorithm.MooreLearner<I,O>, LearningAlgorithm.NFALearner<I>
-
Nested classes/interfaces inherited from interface de.learnlib.datastructure.observationtable.OTLearner
OTLearner.OTLearnerDFA<I>, OTLearner.OTLearnerMealy<I,O>, OTLearner.OTLearnerMoore<I,O>
-
-
Field Summary
-
Fields inherited from class de.learnlib.algorithm.lstar.AbstractExtensibleAutomatonLStar
cexHandler, closingStrategy, initialPrefixes, initialSuffixes
-
Fields inherited from class de.learnlib.algorithm.lstar.AbstractAutomatonLStar
internalHyp, stateInfos
-
Fields inherited from class de.learnlib.algorithm.lstar.AbstractLStar
alphabet, oracle, table
-
-
Constructor Summary
Constructors Constructor Description ExtensibleLStarMealy(Alphabet<I> alphabet, MembershipOracle<I,Word<O>> oracle, List<Word<I>> initialSuffixes, ObservationTableCEXHandler<? super I,? super Word<O>> cexHandler, ClosingStrategy<? super I,? super Word<O>> closingStrategy)
ExtensibleLStarMealy(Alphabet<I> alphabet, MembershipOracle<I,Word<O>> oracle, List<Word<I>> initialPrefixes, List<Word<I>> initialSuffixes, ObservationTableCEXHandler<? super I,? super Word<O>> cexHandler, ClosingStrategy<? super I,? super Word<O>> closingStrategy)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addAlphabetSymbol(I symbol)
MealyMachine<?,I,?,O>
getHypothesisModel()
Returns the current hypothesis model.protected SuffixOutput<I,Word<O>>
hypothesisOutput()
protected Void
stateProperty(ObservationTable<I,Word<O>> table, Row<I> stateRow)
Derives a state property from the corresponding row.protected O
transitionProperty(ObservationTable<I,Word<O>> table, Row<I> stateRow, int inputIdx)
Derives a transition property from the corresponding transition.protected void
updateInternalHypothesis()
Performs the L*-style hypothesis construction.protected void
updateOutputs()
-
Methods inherited from class de.learnlib.algorithm.lstar.AbstractExtensibleAutomatonLStar
initialPrefixes, initialSuffixes, refineHypothesisInternal, selectClosingRows
-
Methods inherited from class de.learnlib.algorithm.lstar.AbstractAutomatonLStar
createState, doRefineHypothesis, resume, setTransition, startLearning, suspend
-
Methods inherited from class de.learnlib.algorithm.lstar.AbstractLStar
addGlobalSuffixes, analyzeInconsistency, completeConsistentTable, getGlobalSuffixes, getObservationTable, incorporateCounterExample, refineHypothesis
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface de.learnlib.algorithm.GlobalSuffixLearner
addGlobalSuffixes, getGlobalSuffixes
-
Methods inherited from interface de.learnlib.algorithm.LearningAlgorithm
refineHypothesis, startLearning
-
Methods inherited from interface de.learnlib.datastructure.observationtable.ObservationTableFeature
getObservationTable
-
-
-
-
Method Detail
-
getHypothesisModel
public MealyMachine<?,I,?,O> getHypothesisModel()
Description copied from interface:LearningAlgorithm
Returns the current hypothesis model.N.B.: By the contract of this interface, the model returned by this method may not be modified (i.e., M generally should refer to an immutable interface), and its validity is retained only until the next invocation of
LearningAlgorithm.refineHypothesis(DefaultQuery)
. If older hypotheses have to be maintained, a copy of the returned model must be made.Please note that it should be illegal to invoke this method before an initial invocation of
LearningAlgorithm.startLearning()
.- Specified by:
getHypothesisModel
in interfaceLearningAlgorithm<MealyMachine<?,I,?,O>,I,Word<O>>
- Returns:
- the current hypothesis model.
-
updateInternalHypothesis
protected void updateInternalHypothesis()
Description copied from class:AbstractAutomatonLStar
Performs the L*-style hypothesis construction. For creating states and transitions, theAbstractAutomatonLStar.stateProperty(ObservationTable, Row)
andAbstractAutomatonLStar.transitionProperty(ObservationTable, Row, int)
methods are used to derive the respective properties.- Overrides:
updateInternalHypothesis
in classAbstractAutomatonLStar<MealyMachine<?,I,?,O>,I,Word<O>,Integer,CompactTransition<O>,Void,O,CompactMealy<I,O>>
-
stateProperty
protected Void stateProperty(ObservationTable<I,Word<O>> table, Row<I> stateRow)
Description copied from class:AbstractAutomatonLStar
Derives a state property from the corresponding row.- Specified by:
stateProperty
in classAbstractAutomatonLStar<MealyMachine<?,I,?,O>,I,Word<O>,Integer,CompactTransition<O>,Void,O,CompactMealy<I,O>>
- Parameters:
table
- the current observation tablestateRow
- the row for which the state is created- Returns:
- the state property of the corresponding state
-
transitionProperty
protected O transitionProperty(ObservationTable<I,Word<O>> table, Row<I> stateRow, int inputIdx)
Description copied from class:AbstractAutomatonLStar
Derives a transition property from the corresponding transition.N.B.: Not the transition row is passed to this method, but the row for the outgoing state. The transition row can be retrieved using
Row.getSuccessor(int)
.- Specified by:
transitionProperty
in classAbstractAutomatonLStar<MealyMachine<?,I,?,O>,I,Word<O>,Integer,CompactTransition<O>,Void,O,CompactMealy<I,O>>
stateRow
- the row for the source stateinputIdx
- the index of the input symbol to consider- Returns:
- the transition property of the corresponding transition
-
addAlphabetSymbol
public void addAlphabetSymbol(I symbol)
- Specified by:
addAlphabetSymbol
in interfaceSupportsGrowingAlphabet<I>
- Overrides:
addAlphabetSymbol
in classAbstractAutomatonLStar<MealyMachine<?,I,?,O>,I,Word<O>,Integer,CompactTransition<O>,Void,O,CompactMealy<I,O>>
-
updateOutputs
protected void updateOutputs()
-
hypothesisOutput
protected SuffixOutput<I,Word<O>> hypothesisOutput()
- Specified by:
hypothesisOutput
in classAbstractLStar<MealyMachine<?,I,?,O>,I,Word<O>>
-
-