Class AbstractExplicitAAARLearner<L extends LearningAlgorithm<CM,CI,D> & SupportsGrowingAlphabet<CI>,AM,CM,AI,CI,D>
- java.lang.Object
-
- de.learnlib.algorithm.aaar.AbstractAAARLearner<L,AM,CM,AI,CI,D>
-
- de.learnlib.algorithm.aaar.explicit.AbstractExplicitAAARLearner<L,AM,CM,AI,CI,D>
-
- Type Parameters:
L
- learner typeAM
- abstract model typeCM
- concrete model typeAI
- abstract input symbol typeCI
- concrete input symbol typeD
- output domain type
- All Implemented Interfaces:
LearningAlgorithm<AM,CI,D>
- Direct Known Subclasses:
ExplicitAAARLearnerDFA
,ExplicitAAARLearnerMealy
,ExplicitAAARLearnerMoore
public abstract class AbstractExplicitAAARLearner<L extends LearningAlgorithm<CM,CI,D> & SupportsGrowingAlphabet<CI>,AM,CM,AI,CI,D> extends AbstractAAARLearner<L,AM,CM,AI,CI,D>
An "explicit" refinement of theAbstractAAARLearner
. This implementation requires a prior partition of (all) concrete input symbols into abstract symbol classes. Concrete input symbols are only distinguished within their initially provided abstract class (using multipleExplicitAbstractionTree
s). This may improve performance because the individual discrimination trees may be smaller than a globally shared one (cf.AbstractGenericAAARLearner
). This class requires anExplicitInitialAbstraction
to provide information about the initial partitioning and anincrementor
to increment the initially specified abstract symbols.
-
-
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 AbstractExplicitAAARLearner(LearnerConstructor<L,CI,D> learnerConstructor, MembershipOracle<CI,D> oracle, ExplicitInitialAbstraction<AI,CI> explicitInitialAbstraction, Function<AI,AI> incrementor)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Map<AI,ExplicitAbstractionTree<AI,CI,D>>
getAbstractionTrees()
protected Collection<AI>
getInitialAbstracts()
protected Collection<CI>
getInitialRepresentatives()
Alphabet<CI>
getLearnerAlphabet()
Returns the (concrete) alphabet of the current (concrete) internal hypothesis model (cf.protected AbstractAbstractionTree<AI,CI,D>
getTreeForRepresentative(CI ci)
-
Methods inherited from class de.learnlib.algorithm.aaar.AbstractAAARLearner
copyAbstract, getAbstractAlphabet, getLearner, getLearnerHypothesisModel, getTranslatingHypothesisModel, refineHypothesis, startLearning
-
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.LearningAlgorithm
getHypothesisModel
-
-
-
-
Constructor Detail
-
AbstractExplicitAAARLearner
public AbstractExplicitAAARLearner(LearnerConstructor<L,CI,D> learnerConstructor, MembershipOracle<CI,D> 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
-
getLearnerAlphabet
public Alphabet<CI> getLearnerAlphabet()
Description copied from class:AbstractAAARLearner
Returns the (concrete) alphabet of the current (concrete) internal hypothesis model (cf.AbstractAAARLearner.getLearnerHypothesisModel()
).- Specified by:
getLearnerAlphabet
in classAbstractAAARLearner<L extends LearningAlgorithm<CM,CI,D> & SupportsGrowingAlphabet<CI>,AM,CM,AI,CI,D>
- Returns:
- the (concrete) alphabet of the current (concrete) internal hypothesis model
-
getTreeForRepresentative
protected AbstractAbstractionTree<AI,CI,D> getTreeForRepresentative(CI ci)
- Specified by:
getTreeForRepresentative
in classAbstractAAARLearner<L extends LearningAlgorithm<CM,CI,D> & SupportsGrowingAlphabet<CI>,AM,CM,AI,CI,D>
-
getInitialAbstracts
protected Collection<AI> getInitialAbstracts()
- Specified by:
getInitialAbstracts
in classAbstractAAARLearner<L extends LearningAlgorithm<CM,CI,D> & SupportsGrowingAlphabet<CI>,AM,CM,AI,CI,D>
-
getInitialRepresentatives
protected Collection<CI> getInitialRepresentatives()
- Specified by:
getInitialRepresentatives
in classAbstractAAARLearner<L extends LearningAlgorithm<CM,CI,D> & SupportsGrowingAlphabet<CI>,AM,CM,AI,CI,D>
-
-