M - model typeI - input symbol typeD - output domain typepublic interface LearningAlgorithm<M,I,D>
Actively inferring models (such as DFAs or Mealy machines) consists of the construction of an initial hypothesis,
which is subsequently refined using counterexamples (see EquivalenceOracle).
| Modifier and Type | Interface and Description |
|---|---|
static interface |
LearningAlgorithm.DFALearner<I> |
static interface |
LearningAlgorithm.MealyLearner<I,O> |
| Modifier and Type | Method and Description |
|---|---|
M |
getHypothesisModel()
Returns the current hypothesis model.
|
boolean |
refineHypothesis(DefaultQuery<I,D> ceQuery)
Triggers a refinement of the model by providing a counterexample.
|
void |
startLearning()
Starts the model inference process, creating an initial hypothesis in the provided model object.
|
void startLearning()
boolean refineHypothesis(DefaultQuery<I,D> ceQuery)
startLearning() should be illegal.ceQuery - the query which exposes diverging behavior, as posed to the real SUL (i.e. with the SULs output).true if the counterexample triggered a refinement of the hypothesis, false otherwise
(i.e., it was no counterexample).M getHypothesisModel()
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 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 startLearning().
Copyright © 2020. All rights reserved.