A - automaton type, must be a subclass of MutableDeterministicI - input symbol typeD - output domain typeSP - state property typeTP - transition property typepublic abstract class AbstractAutomatonLStar<A,I,D,S,T,SP,TP,AI extends net.automatalib.automata.MutableDeterministic<S,I,T,SP,TP> & net.automatalib.automata.GrowableAlphabetAutomaton<I>> extends AbstractLStar<A,I,D> implements ResumableLearner<AutomatonLStarState<I,D,AI,S>>
MutableDeterministic automata.
This class provides the L*-style hypothesis construction. Implementing classes solely have to specify how state and transition properties should be derived.
OTLearner.OTLearnerDFA<I>, OTLearner.OTLearnerMealy<I,O>GlobalSuffixLearner.GlobalSuffixLearnerDFA<I>, GlobalSuffixLearner.GlobalSuffixLearnerMealy<I,O>LearningAlgorithm.DFALearner<I>, LearningAlgorithm.MealyLearner<I,O>| Modifier and Type | Field and Description |
|---|---|
protected AI |
internalHyp |
protected List<de.learnlib.algorithms.lstar.AbstractAutomatonLStar.StateInfo<S,I>> |
stateInfos |
alphabet, oracle, table| Modifier | Constructor and Description |
|---|---|
protected |
AbstractAutomatonLStar(net.automatalib.words.Alphabet<I> alphabet,
MembershipOracle<I,D> oracle,
AI internalHyp)
Constructor.
|
| Modifier and Type | Method and Description |
|---|---|
void |
addAlphabetSymbol(I symbol) |
protected S |
createState(boolean initial,
Row<I> row) |
protected void |
doRefineHypothesis(DefaultQuery<I,D> ceQuery) |
protected abstract A |
exposeInternalHypothesis() |
A |
getHypothesisModel() |
protected void |
refineHypothesisInternal(DefaultQuery<I,D> ceQuery) |
void |
resume(AutomatonLStarState<I,D,AI,S> state) |
protected void |
setTransition(S from,
I input,
S to,
Row<I> fromRow,
int inputIdx) |
void |
startLearning() |
protected abstract SP |
stateProperty(ObservationTable<I,D> table,
Row<I> stateRow)
Derives a state property from the corresponding row.
|
AutomatonLStarState<I,D,AI,S> |
suspend() |
protected abstract TP |
transitionProperty(ObservationTable<I,D> table,
Row<I> stateRow,
int inputIdx)
Derives a transition property from the corresponding transition.
|
protected void |
updateInternalHypothesis()
Performs the L*-style hypothesis construction.
|
addGlobalSuffixes, analyzeInconsistency, completeConsistentTable, getGlobalSuffixes, getObservationTable, hypothesisOutput, incorporateCounterExample, initialPrefixes, initialSuffixes, refineHypothesis, selectClosingRowsprotected AI extends net.automatalib.automata.MutableDeterministic<S,I,T,SP,TP> & net.automatalib.automata.GrowableAlphabetAutomaton<I> internalHyp
protected AbstractAutomatonLStar(net.automatalib.words.Alphabet<I> alphabet, MembershipOracle<I,D> oracle, AI internalHyp)
alphabet - the learning alphabetoracle - the learning oraclepublic A getHypothesisModel()
getHypothesisModel in interface LearningAlgorithm<A,I,D>protected abstract A exposeInternalHypothesis()
public final void startLearning()
startLearning in interface LearningAlgorithm<A,I,D>startLearning in class AbstractLStar<A,I,D>protected void updateInternalHypothesis()
stateProperty(ObservationTable, Row) and transitionProperty(ObservationTable, Row, int) methods are
used to derive the respective properties.protected abstract SP stateProperty(ObservationTable<I,D> table, Row<I> stateRow)
table - the current observation tablestateRow - the row for which the state is createdprotected abstract TP transitionProperty(ObservationTable<I,D> table, Row<I> stateRow, int inputIdx)
N.B.: Not the transition row is passed to this method, but the row for the outgoing state. The transition row can
be retrieved using Row.getSuccessor(int).
stateRow - the row for the source stateinputIdx - the index of the input symbol to considerprotected final void doRefineHypothesis(DefaultQuery<I,D> ceQuery)
doRefineHypothesis in class AbstractLStar<A,I,D>protected void refineHypothesisInternal(DefaultQuery<I,D> ceQuery)
public void addAlphabetSymbol(I symbol)
addAlphabetSymbol in interface SupportsGrowingAlphabet<I>addAlphabetSymbol in class AbstractLStar<A,I,D>public AutomatonLStarState<I,D,AI,S> suspend()
Copyright © 2018. All rights reserved.