public class ExtensibleLStarMealy<I,O> extends AbstractExtensibleAutomatonLStar<net.automatalib.automata.transout.MealyMachine<?,I,?,O>,I,net.automatalib.words.Word<O>,Integer,net.automatalib.automata.transout.impl.compact.CompactMealyTransition<O>,Void,O,net.automatalib.automata.transout.impl.compact.CompactMealy<I,O>> implements OTLearner.OTLearnerMealy<I,O>
AbstractExtensibleAutomatonLStar.BuilderDefaults
OTLearner.OTLearnerDFA<I>, OTLearner.OTLearnerMealy<I,O>
LearningAlgorithm.DFALearner<I>, LearningAlgorithm.MealyLearner<I,O>
GlobalSuffixLearner.GlobalSuffixLearnerDFA<I>, GlobalSuffixLearner.GlobalSuffixLearnerMealy<I,O>
cexHandler, closingStrategy, initialPrefixes, initialSuffixes
internalHyp, stateInfos
alphabet, oracle, table
Constructor and Description |
---|
ExtensibleLStarMealy(net.automatalib.words.Alphabet<I> alphabet,
MembershipOracle<I,net.automatalib.words.Word<O>> oracle,
List<net.automatalib.words.Word<I>> initialPrefixes,
List<net.automatalib.words.Word<I>> initialSuffixes,
ObservationTableCEXHandler<? super I,? super net.automatalib.words.Word<O>> cexHandler,
ClosingStrategy<? super I,? super net.automatalib.words.Word<O>> closingStrategy) |
ExtensibleLStarMealy(net.automatalib.words.Alphabet<I> alphabet,
MembershipOracle<I,net.automatalib.words.Word<O>> oracle,
List<net.automatalib.words.Word<I>> initialSuffixes,
ObservationTableCEXHandler<? super I,? super net.automatalib.words.Word<O>> cexHandler,
ClosingStrategy<? super I,? super net.automatalib.words.Word<O>> closingStrategy) |
Modifier and Type | Method and Description |
---|---|
protected net.automatalib.automata.transout.MealyMachine<?,I,?,O> |
exposeInternalHypothesis() |
net.automatalib.automata.transout.impl.compact.CompactMealy<I,O> |
getHypothesisModel()
Returns the current hypothesis model.
|
protected net.automatalib.automata.concepts.SuffixOutput<I,net.automatalib.words.Word<O>> |
hypothesisOutput() |
protected List<net.automatalib.words.Word<I>> |
initialSuffixes()
Returns the list of initial suffixes which are used to initialize the table.
|
protected Void |
stateProperty(ObservationTable<I,net.automatalib.words.Word<O>> table,
Row<I> stateRow)
Derives a state property from the corresponding row.
|
protected O |
transitionProperty(ObservationTable<I,net.automatalib.words.Word<O>> table,
Row<I> stateRow,
int inputIdx)
Derives a transition property from the corresponding transition.
|
protected void |
updateInternalHypothesis()
Performs the L*-style hypothesis construction.
|
protected void |
updateOutputs() |
initialPrefixes, refineHypothesisInternal, selectClosingRows
addAlphabetSymbol, createState, doRefineHypothesis, resume, setTransition, startLearning, suspend
addGlobalSuffixes, analyzeInconsistency, completeConsistentTable, getGlobalSuffixes, getObservationTable, incorporateCounterExample, refineHypothesis
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
refineHypothesis, startLearning
getObservationTable
public ExtensibleLStarMealy(net.automatalib.words.Alphabet<I> alphabet, MembershipOracle<I,net.automatalib.words.Word<O>> oracle, List<net.automatalib.words.Word<I>> initialSuffixes, ObservationTableCEXHandler<? super I,? super net.automatalib.words.Word<O>> cexHandler, ClosingStrategy<? super I,? super net.automatalib.words.Word<O>> closingStrategy)
public ExtensibleLStarMealy(net.automatalib.words.Alphabet<I> alphabet, MembershipOracle<I,net.automatalib.words.Word<O>> oracle, List<net.automatalib.words.Word<I>> initialPrefixes, List<net.automatalib.words.Word<I>> initialSuffixes, ObservationTableCEXHandler<? super I,? super net.automatalib.words.Word<O>> cexHandler, ClosingStrategy<? super I,? super net.automatalib.words.Word<O>> closingStrategy)
protected List<net.automatalib.words.Word<I>> initialSuffixes()
AbstractLStar
initialSuffixes
in class AbstractExtensibleAutomatonLStar<net.automatalib.automata.transout.MealyMachine<?,I,?,O>,I,net.automatalib.words.Word<O>,Integer,net.automatalib.automata.transout.impl.compact.CompactMealyTransition<O>,Void,O,net.automatalib.automata.transout.impl.compact.CompactMealy<I,O>>
public net.automatalib.automata.transout.impl.compact.CompactMealy<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>>
getHypothesisModel
in class AbstractAutomatonLStar<net.automatalib.automata.transout.MealyMachine<?,I,?,O>,I,net.automatalib.words.Word<O>,Integer,net.automatalib.automata.transout.impl.compact.CompactMealyTransition<O>,Void,O,net.automatalib.automata.transout.impl.compact.CompactMealy<I,O>>
protected net.automatalib.automata.transout.MealyMachine<?,I,?,O> exposeInternalHypothesis()
exposeInternalHypothesis
in class AbstractAutomatonLStar<net.automatalib.automata.transout.MealyMachine<?,I,?,O>,I,net.automatalib.words.Word<O>,Integer,net.automatalib.automata.transout.impl.compact.CompactMealyTransition<O>,Void,O,net.automatalib.automata.transout.impl.compact.CompactMealy<I,O>>
protected void updateInternalHypothesis()
AbstractAutomatonLStar
AbstractAutomatonLStar.stateProperty(ObservationTable, Row)
and AbstractAutomatonLStar.transitionProperty(ObservationTable, Row, int)
methods are
used to derive the respective properties.updateInternalHypothesis
in class AbstractAutomatonLStar<net.automatalib.automata.transout.MealyMachine<?,I,?,O>,I,net.automatalib.words.Word<O>,Integer,net.automatalib.automata.transout.impl.compact.CompactMealyTransition<O>,Void,O,net.automatalib.automata.transout.impl.compact.CompactMealy<I,O>>
protected Void stateProperty(ObservationTable<I,net.automatalib.words.Word<O>> table, Row<I> stateRow)
AbstractAutomatonLStar
stateProperty
in class AbstractAutomatonLStar<net.automatalib.automata.transout.MealyMachine<?,I,?,O>,I,net.automatalib.words.Word<O>,Integer,net.automatalib.automata.transout.impl.compact.CompactMealyTransition<O>,Void,O,net.automatalib.automata.transout.impl.compact.CompactMealy<I,O>>
table
- the current observation tablestateRow
- the row for which the state is createdprotected O transitionProperty(ObservationTable<I,net.automatalib.words.Word<O>> table, Row<I> stateRow, int inputIdx)
AbstractAutomatonLStar
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)
.
transitionProperty
in class AbstractAutomatonLStar<net.automatalib.automata.transout.MealyMachine<?,I,?,O>,I,net.automatalib.words.Word<O>,Integer,net.automatalib.automata.transout.impl.compact.CompactMealyTransition<O>,Void,O,net.automatalib.automata.transout.impl.compact.CompactMealy<I,O>>
stateRow
- the row for the source stateinputIdx
- the index of the input symbol to considerprotected void updateOutputs()
protected net.automatalib.automata.concepts.SuffixOutput<I,net.automatalib.words.Word<O>> hypothesisOutput()
hypothesisOutput
in class AbstractLStar<net.automatalib.automata.transout.MealyMachine<?,I,?,O>,I,net.automatalib.words.Word<O>>
Copyright © 2018. All rights reserved.