Module de.learnlib.algorithm.aaar
Class AbstractGenericAAARLearner<L extends LearningAlgorithm<CM,CI,D> & net.automatalib.alphabet.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.generic.AbstractGenericAAARLearner<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:
GenericAAARLearnerDFA
,GenericAAARLearnerMealy
,GenericAAARLearnerMoore
public abstract class AbstractGenericAAARLearner<L extends LearningAlgorithm<CM,CI,D> & net.automatalib.alphabet.SupportsGrowingAlphabet<CI>,AM,CM,AI,CI,D> extends AbstractAAARLearner<L,AM,CM,AI,CI,D>
A "generic" refinement of theAbstractAAARLearner
. This implementation uses a singleGenericAbstractionTree
for transforming concrete input symbols to abstract ones. This may be useful if no prior knowledge about abstract symbol classes is available (cf.AbstractExplicitAAARLearner
). This implementation only requires a single concrete input symbol to start in the inference process and a rather genericabstractor
to create new abstract input 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 AbstractGenericAAARLearner(LearnerConstructor<L,CI,D> learnerConstructor, MembershipOracle<CI,D> oracle, CI initialConcrete, Function<CI,AI> abstractor)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description GenericAbstractionTree<AI,CI,D>
getAbstractionTree()
protected Collection<AI>
getInitialAbstracts()
protected Collection<CI>
getInitialRepresentatives()
net.automatalib.alphabet.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
-
AbstractGenericAAARLearner
public AbstractGenericAAARLearner(LearnerConstructor<L,CI,D> learnerConstructor, MembershipOracle<CI,D> oracle, CI initialConcrete, Function<CI,AI> abstractor)
Constructor.- Parameters:
learnerConstructor
- the provider for constructing the internal (concrete) learneroracle
- the (concrete) membership oracleinitialConcrete
- the initial (concrete) input symbol used for starting the learning processabstractor
- the function for creating new abstract input symbols given concrete one. This function only receives input symbols from the provided (concrete) counterexamples
-
-
Method Detail
-
getLearnerAlphabet
public net.automatalib.alphabet.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> & net.automatalib.alphabet.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> & net.automatalib.alphabet.SupportsGrowingAlphabet<CI>,AM,CM,AI,CI,D>
-
getInitialAbstracts
protected Collection<AI> getInitialAbstracts()
- Specified by:
getInitialAbstracts
in classAbstractAAARLearner<L extends LearningAlgorithm<CM,CI,D> & net.automatalib.alphabet.SupportsGrowingAlphabet<CI>,AM,CM,AI,CI,D>
-
getInitialRepresentatives
protected Collection<CI> getInitialRepresentatives()
- Specified by:
getInitialRepresentatives
in classAbstractAAARLearner<L extends LearningAlgorithm<CM,CI,D> & net.automatalib.alphabet.SupportsGrowingAlphabet<CI>,AM,CM,AI,CI,D>
-
getAbstractionTree
public GenericAbstractionTree<AI,CI,D> getAbstractionTree()
-
-