I - input symbol typepublic class KearnsVaziraniDFA<I> extends Object implements LearningAlgorithm.DFALearner<I>, SupportsGrowingAlphabet<I>, ResumableLearner<de.learnlib.algorithms.kv.dfa.KearnsVaziraniDFAState<I>>
| Modifier and Type | Class and Description |
|---|---|
protected class |
KearnsVaziraniDFA.KVAbstractCounterexample |
LearningAlgorithm.DFALearner<I>, LearningAlgorithm.MealyLearner<I,O>| Modifier and Type | Field and Description |
|---|---|
protected BinaryDTree<I,StateInfo<I,Boolean>> |
discriminationTree |
protected List<StateInfo<I,Boolean>> |
stateInfos |
| Constructor and Description |
|---|
KearnsVaziraniDFA(net.automatalib.words.Alphabet<I> alphabet,
MembershipOracle<I,Boolean> oracle,
boolean repeatedCounterexampleEvaluation,
AcexAnalyzer counterexampleAnalyzer)
Constructor.
|
| Modifier and Type | Method and Description |
|---|---|
void |
addAlphabetSymbol(I symbol) |
net.automatalib.automata.fsa.DFA<?,I> |
getHypothesisModel()
Returns the current hypothesis model.
|
boolean |
refineHypothesis(DefaultQuery<I,Boolean> ceQuery)
Triggers a refinement of the model by providing a counterexample.
|
void |
resume(de.learnlib.algorithms.kv.dfa.KearnsVaziraniDFAState<I> state)
Does not get the learner to continue learning.
|
void |
startLearning()
Starts the model inference process, creating an initial hypothesis in the provided model object.
|
de.learnlib.algorithms.kv.dfa.KearnsVaziraniDFAState<I> |
suspend()
Expose the serializable learner state object.
|
protected BinaryDTree<I,StateInfo<I,Boolean>> discriminationTree
public KearnsVaziraniDFA(net.automatalib.words.Alphabet<I> alphabet, MembershipOracle<I,Boolean> oracle, boolean repeatedCounterexampleEvaluation, AcexAnalyzer counterexampleAnalyzer)
alphabet - the learning alphabetoracle - the membership oraclepublic void startLearning()
LearningAlgorithmstartLearning in interface LearningAlgorithm<net.automatalib.automata.fsa.DFA<?,I>,I,Boolean>public boolean refineHypothesis(DefaultQuery<I,Boolean> ceQuery)
LearningAlgorithmLearningAlgorithm.startLearning() should be illegal.refineHypothesis in interface LearningAlgorithm<net.automatalib.automata.fsa.DFA<?,I>,I,Boolean>ceQuery - the query which exposes diverging behavior, as posed to the real SUL (i.e. with the SULs output).public net.automatalib.automata.fsa.DFA<?,I> getHypothesisModel()
LearningAlgorithm
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().
getHypothesisModel in interface LearningAlgorithm<net.automatalib.automata.fsa.DFA<?,I>,I,Boolean>public void addAlphabetSymbol(I symbol)
addAlphabetSymbol in interface SupportsGrowingAlphabet<I>public de.learnlib.algorithms.kv.dfa.KearnsVaziraniDFAState<I> suspend()
ResumableLearnerDoes not stop a running learning process. Since most data structures that are used during learning are mutable, use this method inside of a learning loop with care.
suspend in interface ResumableLearner<de.learnlib.algorithms.kv.dfa.KearnsVaziraniDFAState<I>>public void resume(de.learnlib.algorithms.kv.dfa.KearnsVaziraniDFAState<I> state)
ResumableLearnerresume in interface ResumableLearner<de.learnlib.algorithms.kv.dfa.KearnsVaziraniDFAState<I>>state - The learner state.Copyright © 2018. All rights reserved.