public class TTTLearnerMealy<I,O> extends BaseTTTLearner<net.automatalib.automata.transout.MealyMachine<?,I,?,O>,I,net.automatalib.words.Word<O>> implements LearningAlgorithm.MealyLearner<I,O>
BaseTTTLearner.BuilderDefaults, BaseTTTLearner.Splitter<I,D>
LearningAlgorithm.DFALearner<I>, LearningAlgorithm.MealyLearner<I,O>
alphabet, analyzer, blockList, dtree, hypothesis, openTransitions, oracle
Constructor and Description |
---|
TTTLearnerMealy(net.automatalib.words.Alphabet<I> alphabet,
MembershipOracle<I,net.automatalib.words.Word<O>> oracle,
AcexAnalyzer analyzer) |
Modifier and Type | Method and Description |
---|---|
protected net.automatalib.words.Word<O> |
computeHypothesisOutput(TTTState<I,net.automatalib.words.Word<O>> state,
net.automatalib.words.Word<I> suffix) |
protected TTTTransition<I,net.automatalib.words.Word<O>> |
createTransition(TTTState<I,net.automatalib.words.Word<O>> state,
I sym) |
protected OutInconsPrefixTransformAcex<I,net.automatalib.words.Word<O>> |
deriveAcex(OutputInconsistency<I,net.automatalib.words.Word<O>> outIncons) |
protected OutputInconsistency<I,net.automatalib.words.Word<O>> |
findOutputInconsistency() |
net.automatalib.graphs.dot.GraphDOTHelper<TTTState<I,net.automatalib.words.Word<O>>,TTTHypothesis.TTTEdge<I,net.automatalib.words.Word<O>>> |
getHypothesisDOTHelper() |
net.automatalib.automata.transout.MealyMachine<?,I,?,O> |
getHypothesisModel()
Returns the current hypothesis model.
|
protected net.automatalib.words.Word<O> |
predictSuccOutcome(TTTTransition<I,net.automatalib.words.Word<O>> trans,
DTNode<I,net.automatalib.words.Word<O>> succSeparator) |
boolean |
refineHypothesis(DefaultQuery<I,net.automatalib.words.Word<O>> ceQuery)
Triggers a refinement of the model by providing a counterexample.
|
protected net.automatalib.words.Word<O> |
succEffect(net.automatalib.words.Word<O> effect) |
addEventListener, allNodesFinal, closeTransitions, createMap, declareFinal, dtGraphView, finalizeAny, getAnySuccessor, getAnySuccessor, getAnyTarget, getDeterministicState, getDiscriminationTree, getHypothesisDS, getNondetSuccessors, getNondetSuccessors, getStateTransition, initializeState, link, makeTree, query, query, refineHypothesisSingle, removeEventListener, split, startLearning
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
startLearning
public TTTLearnerMealy(net.automatalib.words.Alphabet<I> alphabet, MembershipOracle<I,net.automatalib.words.Word<O>> oracle, AcexAnalyzer analyzer)
public net.automatalib.automata.transout.MealyMachine<?,I,?,O> 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.transout.MealyMachine<?,I,?,O>,I,net.automatalib.words.Word<O>>
protected TTTTransition<I,net.automatalib.words.Word<O>> createTransition(TTTState<I,net.automatalib.words.Word<O>> state, I sym)
createTransition
in class BaseTTTLearner<net.automatalib.automata.transout.MealyMachine<?,I,?,O>,I,net.automatalib.words.Word<O>>
protected net.automatalib.words.Word<O> predictSuccOutcome(TTTTransition<I,net.automatalib.words.Word<O>> trans, DTNode<I,net.automatalib.words.Word<O>> succSeparator)
predictSuccOutcome
in class BaseTTTLearner<net.automatalib.automata.transout.MealyMachine<?,I,?,O>,I,net.automatalib.words.Word<O>>
protected net.automatalib.words.Word<O> computeHypothesisOutput(TTTState<I,net.automatalib.words.Word<O>> state, net.automatalib.words.Word<I> suffix)
computeHypothesisOutput
in class BaseTTTLearner<net.automatalib.automata.transout.MealyMachine<?,I,?,O>,I,net.automatalib.words.Word<O>>
public net.automatalib.graphs.dot.GraphDOTHelper<TTTState<I,net.automatalib.words.Word<O>>,TTTHypothesis.TTTEdge<I,net.automatalib.words.Word<O>>> getHypothesisDOTHelper()
getHypothesisDOTHelper
in class BaseTTTLearner<net.automatalib.automata.transout.MealyMachine<?,I,?,O>,I,net.automatalib.words.Word<O>>
protected net.automatalib.words.Word<O> succEffect(net.automatalib.words.Word<O> effect)
succEffect
in class BaseTTTLearner<net.automatalib.automata.transout.MealyMachine<?,I,?,O>,I,net.automatalib.words.Word<O>>
public boolean refineHypothesis(DefaultQuery<I,net.automatalib.words.Word<O>> ceQuery)
LearningAlgorithm
LearningAlgorithm.startLearning()
should be illegal.refineHypothesis
in interface LearningAlgorithm<net.automatalib.automata.transout.MealyMachine<?,I,?,O>,I,net.automatalib.words.Word<O>>
refineHypothesis
in class BaseTTTLearner<net.automatalib.automata.transout.MealyMachine<?,I,?,O>,I,net.automatalib.words.Word<O>>
ceQuery
- the query which exposes diverging behavior, as posed to the real SUL
(i.e. with the SULs output).protected OutInconsPrefixTransformAcex<I,net.automatalib.words.Word<O>> deriveAcex(OutputInconsistency<I,net.automatalib.words.Word<O>> outIncons)
deriveAcex
in class BaseTTTLearner<net.automatalib.automata.transout.MealyMachine<?,I,?,O>,I,net.automatalib.words.Word<O>>
protected OutputInconsistency<I,net.automatalib.words.Word<O>> findOutputInconsistency()
findOutputInconsistency
in class BaseTTTLearner<net.automatalib.automata.transout.MealyMachine<?,I,?,O>,I,net.automatalib.words.Word<O>>
Copyright © 2016. All rights reserved.