- java.lang.Object
-
- de.learnlib.algorithm.lambda.lstar.LLambdaDFA<I>
-
- All Implemented Interfaces:
LearningAlgorithm<net.automatalib.automaton.fsa.DFA<?,I>,I,Boolean>,LearningAlgorithm.DFALearner<I>,Resumable<LLambdaState<I,Boolean>>,net.automatalib.alphabet.SupportsGrowingAlphabet<I>,net.automatalib.automaton.concept.FiniteRepresentation
- Direct Known Subclasses:
LLambdaAdapterDFA
public class LLambdaDFA<I> extends Object implements LearningAlgorithm.DFALearner<I>
-
-
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 LLambdaDFA(net.automatalib.alphabet.Alphabet<I> sigma, MembershipOracle<I,Boolean> mqo)LLambdaDFA(net.automatalib.alphabet.Alphabet<I> sigma, MembershipOracle<I,Boolean> mqs, MembershipOracle<I,Boolean> ceqs)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddAlphabetSymbol(I symbol)net.automatalib.automaton.fsa.DFA<?,I>getHypothesisModel()Returns the current hypothesis model.protected List<net.automatalib.word.Word<I>>getShortPrefixes(List<D> rowData)booleanrefineHypothesis(DefaultQuery<I,D> counterexample)Triggers a refinement of the model by providing a counterexample.voidresume(LLambdaState<I,D> state)Resume the datastructure from a previously suspended point in time.protected List<Boolean>rowForState(net.automatalib.word.Word<I> input)intsize()voidstartLearning()Starts the model inference process, creating an initial hypothesis in the provided model object.LLambdaState<I,D>suspend()Expose the state object.-
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
refineHypothesis, startLearning
-
-
-
-
Constructor Detail
-
LLambdaDFA
public LLambdaDFA(net.automatalib.alphabet.Alphabet<I> sigma, MembershipOracle<I,Boolean> mqo)
-
LLambdaDFA
public LLambdaDFA(net.automatalib.alphabet.Alphabet<I> sigma, MembershipOracle<I,Boolean> mqs, MembershipOracle<I,Boolean> ceqs)
-
-
Method Detail
-
size
public int size()
- Specified by:
sizein interfacenet.automatalib.automaton.concept.FiniteRepresentation
-
getHypothesisModel
public net.automatalib.automaton.fsa.DFA<?,I> getHypothesisModel()
Description copied from interface:LearningAlgorithmReturns 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().- Specified by:
getHypothesisModelin interfaceLearningAlgorithm<net.automatalib.automaton.fsa.DFA<?,I>,I,Boolean>- Returns:
- the current hypothesis model.
-
addAlphabetSymbol
public void addAlphabetSymbol(I symbol)
- Specified by:
addAlphabetSymbolin interfacenet.automatalib.alphabet.SupportsGrowingAlphabet<I>
-
startLearning
public void startLearning()
Description copied from interface:LearningAlgorithmStarts the model inference process, creating an initial hypothesis in the provided model object. Please note that it should be illegal to invoke this method twice.- Specified by:
startLearningin interfaceLearningAlgorithm<M extends net.automatalib.automaton.concept.SuffixOutput<I,D>,I,D>
-
refineHypothesis
public boolean refineHypothesis(DefaultQuery<I,D> counterexample)
Description copied from interface:LearningAlgorithmTriggers a refinement of the model by providing a counterexample. A counterexample is a query which exposes different behavior of the real SUL compared to the hypothesis. Please note that invoking this method before an initial invocation ofLearningAlgorithm.startLearning()should be illegal.- Specified by:
refineHypothesisin interfaceLearningAlgorithm<M extends net.automatalib.automaton.concept.SuffixOutput<I,D>,I,D>- Parameters:
counterexample- the query which exposes diverging behavior, as posed to the real SUL (i.e. with the SULs output).- Returns:
trueif the counterexample triggered a refinement of the hypothesis,falseotherwise (i.e., it was no counterexample).
-
suspend
public LLambdaState<I,D> suspend()
Description copied from interface:ResumableExpose the state object.
-
resume
public void resume(LLambdaState<I,D> state)
Description copied from interface:ResumableResume the datastructure from a previously suspended point in time.
-
-