Class LLambdaAdapterDFA<I>
- java.lang.Object
-
- de.learnlib.algorithm.lambda.lstar.LLambdaDFA<I>
-
- de.learnlib.algorithm.procedural.adapter.dfa.LLambdaAdapterDFA<I>
-
- Type Parameters:
I
- input symbol type
- All Implemented Interfaces:
AccessSequenceTransformer<I>
,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
public class LLambdaAdapterDFA<I> extends LLambdaDFA<I> implements AccessSequenceTransformer<I>
Adapter for usingLLambdaDFA
as a procedural learner.
-
-
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 LLambdaAdapterDFA(net.automatalib.alphabet.Alphabet<I> alphabet, MembershipOracle<I,Boolean> oracle)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected List<net.automatalib.word.Word<I>>
getShortPrefixes(List<D> rowData)
boolean
refineHypothesis(DefaultQuery<I,D> counterexample)
Triggers a refinement of the model by providing a counterexample.void
resume(LLambdaState<I,D> state)
Resume the datastructure from a previously suspended point in time.void
startLearning()
Starts the model inference process, creating an initial hypothesis in the provided model object.LLambdaState<I,D>
suspend()
Expose the state object.net.automatalib.word.Word<I>
transformAccessSequence(net.automatalib.word.Word<I> word)
-
Methods inherited from class de.learnlib.algorithm.lambda.lstar.LLambdaDFA
addAlphabetSymbol, getHypothesisModel, rowForState, size
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface de.learnlib.AccessSequenceTransformer
isAccessSequence, longestASPrefix
-
Methods inherited from interface de.learnlib.algorithm.LearningAlgorithm
refineHypothesis, startLearning
-
-
-
-
Constructor Detail
-
LLambdaAdapterDFA
public LLambdaAdapterDFA(net.automatalib.alphabet.Alphabet<I> alphabet, MembershipOracle<I,Boolean> oracle)
-
-
Method Detail
-
transformAccessSequence
public net.automatalib.word.Word<I> transformAccessSequence(net.automatalib.word.Word<I> word)
- Specified by:
transformAccessSequence
in interfaceAccessSequenceTransformer<I>
-
startLearning
public void startLearning()
Description copied from interface:LearningAlgorithm
Starts 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:
startLearning
in interfaceLearningAlgorithm<M extends net.automatalib.automaton.concept.SuffixOutput<I,D>,I,D>
-
refineHypothesis
public boolean refineHypothesis(DefaultQuery<I,D> counterexample)
Description copied from interface:LearningAlgorithm
Triggers 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:
refineHypothesis
in 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:
true
if the counterexample triggered a refinement of the hypothesis,false
otherwise (i.e., it was no counterexample).
-
suspend
public LLambdaState<I,D> suspend()
Description copied from interface:Resumable
Expose the state object.
-
resume
public void resume(LLambdaState<I,D> state)
Description copied from interface:Resumable
Resume the datastructure from a previously suspended point in time.
-
-