Class ExplicitAAARLearnerMoore<L extends LearningAlgorithm.MooreLearner<CI,O> & SupportsGrowingAlphabet<CI>,AI,CI,O>
- java.lang.Object
-
- de.learnlib.algorithm.aaar.AbstractAAARLearner<L,AM,CM,AI,CI,D>
-
- de.learnlib.algorithm.aaar.explicit.AbstractExplicitAAARLearner<L,MooreMachine<?,AI,?,O>,MooreMachine<?,CI,?,O>,AI,CI,Word<O>>
-
- de.learnlib.algorithm.aaar.explicit.ExplicitAAARLearnerMoore<L,AI,CI,O>
-
- Type Parameters:
L
- learner typeAI
- abstract input symbol typeCI
- concrete input symbol typeO
- output symbol type
- All Implemented Interfaces:
LearningAlgorithm<MooreMachine<?,AI,?,O>,CI,Word<O>>
public class ExplicitAAARLearnerMoore<L extends LearningAlgorithm.MooreLearner<CI,O> & SupportsGrowingAlphabet<CI>,AI,CI,O> extends AbstractExplicitAAARLearner<L,MooreMachine<?,AI,?,O>,MooreMachine<?,CI,?,O>,AI,CI,Word<O>>
ALearningAlgorithm.MooreLearner
-specific refinement ofAbstractExplicitAAARLearner
.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface de.learnlib.algorithm.LearningAlgorithm
LearningAlgorithm.DFALearner<I>, LearningAlgorithm.MealyLearner<I,O>, LearningAlgorithm.MooreLearner<I,O>, LearningAlgorithm.NFALearner<I>
-
-
Constructor Summary
Constructors Constructor Description ExplicitAAARLearnerMoore(LearnerConstructor<L,CI,Word<O>> learnerConstructor, MembershipOracle<CI,Word<O>> oracle, ExplicitInitialAbstraction<AI,CI> explicitInitialAbstraction, Function<AI,AI> incrementor)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description MooreMachine<?,AI,?,O>
getHypothesisModel()
Returns the current hypothesis model.MooreMachine<?,CI,?,O>
getTranslatingHypothesisModel()
Returns a model of the current internal hypothesis model (cf.-
Methods inherited from class de.learnlib.algorithm.aaar.explicit.AbstractExplicitAAARLearner
getAbstractionTrees, getInitialAbstracts, getInitialRepresentatives, getLearnerAlphabet, getTreeForRepresentative
-
Methods inherited from class de.learnlib.algorithm.aaar.AbstractAAARLearner
copyAbstract, getAbstractAlphabet, getLearner, getLearnerHypothesisModel, refineHypothesis, startLearning
-
-
-
-
Constructor Detail
-
ExplicitAAARLearnerMoore
public ExplicitAAARLearnerMoore(LearnerConstructor<L,CI,Word<O>> learnerConstructor, MembershipOracle<CI,Word<O>> oracle, ExplicitInitialAbstraction<AI,CI> explicitInitialAbstraction, Function<AI,AI> incrementor)
Constructor.- Parameters:
learnerConstructor
- the provider for constructing the internal (concrete) learneroracle
- the (concrete) membership oracleexplicitInitialAbstraction
- the initial mapping between concrete and abstract input symbolsincrementor
- the function for creating new abstract input symbols given concrete one. This function only receives input symbols from the provided explicitInitialAbstraction
-
-
Method Detail
-
getHypothesisModel
public MooreMachine<?,AI,?,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()
.- Returns:
- the current hypothesis model.
-
getTranslatingHypothesisModel
public MooreMachine<?,CI,?,O> getTranslatingHypothesisModel()
Description copied from class:AbstractAAARLearner
Returns a model of the current internal hypothesis model (cf.AbstractAAARLearner.getLearnerHypothesisModel()
) that automatically transforms (concrete) input symbols to abstract ones and uses their representatives to actually perform transitions. This allows the returned model to handle (concrete) input symbols that have not yet been added to the hypothesis by previous abstraction refinements. Note that this model requires theMembershipOracle
passed to the constructor of this learner to still function in order to determine the abstract input symbols.- Specified by:
getTranslatingHypothesisModel
in classAbstractAAARLearner<L extends LearningAlgorithm.MooreLearner<CI,O> & SupportsGrowingAlphabet<CI>,MooreMachine<?,AI,?,O>,MooreMachine<?,CI,?,O>,AI,CI,Word<O>>
- Returns:
- the (concrete) hypothesis model that automatically transforms input symbols
-
-