Class GenericAAARLearnerDFA<L extends LearningAlgorithm.DFALearner<CI> & net.automatalib.alphabet.SupportsGrowingAlphabet<CI>,​AI,​CI>

  • Type Parameters:
    L - learner type
    AI - abstract input symbol type
    CI - concrete input symbol type
    All Implemented Interfaces:
    LearningAlgorithm<net.automatalib.automaton.fsa.DFA<?,​AI>,​CI,​Boolean>

    public class GenericAAARLearnerDFA<L extends LearningAlgorithm.DFALearner<CI> & net.automatalib.alphabet.SupportsGrowingAlphabet<CI>,​AI,​CI>
    extends AbstractGenericAAARLearner<L,​net.automatalib.automaton.fsa.DFA<?,​AI>,​net.automatalib.automaton.fsa.DFA<?,​CI>,​AI,​CI,​Boolean>
    A DFA-specific refinement of AbstractGenericAAARLearner.
    • Constructor Detail

      • GenericAAARLearnerDFA

        public GenericAAARLearnerDFA​(LearnerConstructor<L,​CI,​Boolean> learnerConstructor,
                                     MembershipOracle<CI,​Boolean> oracle,
                                     CI initialConcrete,
                                     Function<CI,​AI> abstractor)
        Constructor.
        Parameters:
        learnerConstructor - the provider for constructing the internal (concrete) learner
        oracle - the (concrete) membership oracle
        initialConcrete - the initial (concrete) input symbol used for starting the learning process
        abstractor - the function for creating new abstract input symbols given concrete one. This function only receives input symbols from the provided (concrete) counterexamples
    • Method Detail

      • getHypothesisModel

        public net.automatalib.automaton.fsa.DFA<?,​AI> 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 should not be modified by external code (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 net.automatalib.automaton.fsa.DFA<?,​CI> 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 the MembershipOracle passed to the constructor of this learner to still function in order to determine the abstract input symbols.
        Specified by:
        getTranslatingHypothesisModel in class AbstractAAARLearner<L extends LearningAlgorithm.DFALearner<CI> & net.automatalib.alphabet.SupportsGrowingAlphabet<CI>,​net.automatalib.automaton.fsa.DFA<?,​AI>,​net.automatalib.automaton.fsa.DFA<?,​CI>,​AI,​CI,​Boolean>
        Returns:
        the (concrete) hypothesis model that automatically transforms input symbols