Class ExtensibleLStarMealy<I,O>
- java.lang.Object
-
- de.learnlib.algorithm.lstar.AbstractLStar<A,I,D>
-
- de.learnlib.algorithm.lstar.AbstractAutomatonLStar<A,I,D,S,T,SP,TP,AI>
-
- de.learnlib.algorithm.lstar.AbstractExtensibleAutomatonLStar<net.automatalib.automaton.transducer.MealyMachine<?,I,?,O>,I,net.automatalib.word.Word<O>,Integer,net.automatalib.automaton.impl.CompactTransition<O>,Void,O,net.automatalib.automaton.transducer.impl.CompactMealy<I,O>>
-
- de.learnlib.algorithm.lstar.mealy.ExtensibleLStarMealy<I,O>
-
- Type Parameters:
I- input symbol typeO- output symbol type
- All Implemented Interfaces:
GlobalSuffixLearner<net.automatalib.automaton.transducer.MealyMachine<?,I,?,O>,I,net.automatalib.word.Word<O>>,GlobalSuffixLearner.GlobalSuffixLearnerMealy<I,O>,LearningAlgorithm<net.automatalib.automaton.transducer.MealyMachine<?,I,?,O>,I,net.automatalib.word.Word<O>>,LearningAlgorithm.MealyLearner<I,O>,ObservationTableFeature<I,net.automatalib.word.Word<O>>,OTLearner<net.automatalib.automaton.transducer.MealyMachine<?,I,?,O>,I,net.automatalib.word.Word<O>>,OTLearner.OTLearnerMealy<I,O>,Resumable<AutomatonLStarState<I,net.automatalib.word.Word<O>,net.automatalib.automaton.transducer.impl.CompactMealy<I,O>,Integer>>,net.automatalib.alphabet.SupportsGrowingAlphabet<I>
- Direct Known Subclasses:
MalerPnueliMealy,RivestSchapireMealy
public class ExtensibleLStarMealy<I,O> extends AbstractExtensibleAutomatonLStar<net.automatalib.automaton.transducer.MealyMachine<?,I,?,O>,I,net.automatalib.word.Word<O>,Integer,net.automatalib.automaton.impl.CompactTransition<O>,Void,O,net.automatalib.automaton.transducer.impl.CompactMealy<I,O>> implements OTLearner.OTLearnerMealy<I,O>, GlobalSuffixLearner.GlobalSuffixLearnerMealy<I,O>
AMealyMachine-based specialization of the extensible L* learner.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class de.learnlib.algorithm.lstar.AbstractExtensibleAutomatonLStar
AbstractExtensibleAutomatonLStar.BuilderDefaults
-
Nested classes/interfaces inherited from interface de.learnlib.algorithm.GlobalSuffixLearner
GlobalSuffixLearner.GlobalSuffixLearnerDFA<I extends Object>, GlobalSuffixLearner.GlobalSuffixLearnerMealy<I extends Object,O extends Object>
-
Nested classes/interfaces inherited from interface de.learnlib.algorithm.LearningAlgorithm
LearningAlgorithm.DFALearner<I extends Object>, LearningAlgorithm.MealyLearner<I extends Object,O extends Object>, LearningAlgorithm.MooreLearner<I extends Object,O extends Object>, LearningAlgorithm.NFALearner<I extends Object>
-
Nested classes/interfaces inherited from interface de.learnlib.datastructure.observationtable.OTLearner
OTLearner.OTLearnerDFA<I extends Object>, OTLearner.OTLearnerMealy<I extends Object,O extends Object>, OTLearner.OTLearnerMoore<I extends Object,O extends Object>
-
-
Field Summary
-
Fields inherited from class de.learnlib.algorithm.lstar.AbstractExtensibleAutomatonLStar
cexHandler, closingStrategy, initialPrefixes, initialSuffixes
-
Fields inherited from class de.learnlib.algorithm.lstar.AbstractAutomatonLStar
internalHyp, stateInfos
-
Fields inherited from class de.learnlib.algorithm.lstar.AbstractLStar
alphabet, oracle, table
-
-
Constructor Summary
Constructors Constructor Description ExtensibleLStarMealy(net.automatalib.alphabet.Alphabet<I> alphabet, MembershipOracle<I,net.automatalib.word.Word<O>> oracle, List<net.automatalib.word.Word<I>> initialSuffixes, ObservationTableCEXHandler<? super I,? super net.automatalib.word.Word<O>> cexHandler, ClosingStrategy<? super I,? super net.automatalib.word.Word<O>> closingStrategy)ExtensibleLStarMealy(net.automatalib.alphabet.Alphabet<I> alphabet, MembershipOracle<I,net.automatalib.word.Word<O>> oracle, List<net.automatalib.word.Word<I>> initialPrefixes, List<net.automatalib.word.Word<I>> initialSuffixes, ObservationTableCEXHandler<? super I,? super net.automatalib.word.Word<O>> cexHandler, ClosingStrategy<? super I,? super net.automatalib.word.Word<O>> closingStrategy)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddAlphabetSymbol(I symbol)net.automatalib.automaton.transducer.MealyMachine<?,I,?,O>getHypothesisModel()protected net.automatalib.automaton.concept.SuffixOutput<I,net.automatalib.word.Word<O>>hypothesisOutput()protected VoidstateProperty(ObservationTable<I,net.automatalib.word.Word<O>> table, Row<I> stateRow)Derives a state property from the corresponding row.protected OtransitionProperty(ObservationTable<I,net.automatalib.word.Word<O>> table, Row<I> stateRow, int inputIdx)Derives a transition property from the corresponding transition.protected voidupdateInternalHypothesis()Performs the L*-style hypothesis construction.protected voidupdateOutputs()-
Methods inherited from class de.learnlib.algorithm.lstar.AbstractExtensibleAutomatonLStar
initialPrefixes, initialSuffixes, refineHypothesisInternal, selectClosingRows
-
Methods inherited from class de.learnlib.algorithm.lstar.AbstractAutomatonLStar
createState, doRefineHypothesis, resume, setTransition, startLearning, suspend
-
Methods inherited from class de.learnlib.algorithm.lstar.AbstractLStar
addGlobalSuffixes, analyzeInconsistency, completeConsistentTable, getGlobalSuffixes, getObservationTable, incorporateCounterExample, refineHypothesis
-
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.GlobalSuffixLearner
addGlobalSuffixes, getGlobalSuffixes
-
Methods inherited from interface de.learnlib.algorithm.LearningAlgorithm
refineHypothesis, startLearning
-
Methods inherited from interface de.learnlib.datastructure.observationtable.ObservationTableFeature
getObservationTable
-
-
-
-
Constructor Detail
-
ExtensibleLStarMealy
public ExtensibleLStarMealy(net.automatalib.alphabet.Alphabet<I> alphabet, MembershipOracle<I,net.automatalib.word.Word<O>> oracle, List<net.automatalib.word.Word<I>> initialSuffixes, ObservationTableCEXHandler<? super I,? super net.automatalib.word.Word<O>> cexHandler, ClosingStrategy<? super I,? super net.automatalib.word.Word<O>> closingStrategy)
-
ExtensibleLStarMealy
public ExtensibleLStarMealy(net.automatalib.alphabet.Alphabet<I> alphabet, MembershipOracle<I,net.automatalib.word.Word<O>> oracle, List<net.automatalib.word.Word<I>> initialPrefixes, List<net.automatalib.word.Word<I>> initialSuffixes, ObservationTableCEXHandler<? super I,? super net.automatalib.word.Word<O>> cexHandler, ClosingStrategy<? super I,? super net.automatalib.word.Word<O>> closingStrategy)
-
-
Method Detail
-
getHypothesisModel
public net.automatalib.automaton.transducer.MealyMachine<?,I,?,O> getHypothesisModel()
- Specified by:
getHypothesisModelin interfaceLearningAlgorithm<net.automatalib.automaton.transducer.MealyMachine<?,I,?,O>,I,net.automatalib.word.Word<O>>
-
updateInternalHypothesis
protected void updateInternalHypothesis()
Description copied from class:AbstractAutomatonLStarPerforms the L*-style hypothesis construction. For creating states and transitions, theAbstractAutomatonLStar.stateProperty(ObservationTable, Row)andAbstractAutomatonLStar.transitionProperty(ObservationTable, Row, int)methods are used to derive the respective properties.
-
stateProperty
protected Void stateProperty(ObservationTable<I,net.automatalib.word.Word<O>> table, Row<I> stateRow)
Description copied from class:AbstractAutomatonLStarDerives a state property from the corresponding row.- Specified by:
statePropertyin classAbstractAutomatonLStar<net.automatalib.automaton.transducer.MealyMachine<?,I,?,O>,I,net.automatalib.word.Word<O>,Integer,net.automatalib.automaton.impl.CompactTransition<O>,Void,O,net.automatalib.automaton.transducer.impl.CompactMealy<I,O>>- Parameters:
table- the current observation tablestateRow- the row for which the state is created- Returns:
- the state property of the corresponding state
-
transitionProperty
protected O transitionProperty(ObservationTable<I,net.automatalib.word.Word<O>> table, Row<I> stateRow, int inputIdx)
Description copied from class:AbstractAutomatonLStarDerives a transition property from the corresponding transition.Note that 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).- Specified by:
transitionPropertyin classAbstractAutomatonLStar<net.automatalib.automaton.transducer.MealyMachine<?,I,?,O>,I,net.automatalib.word.Word<O>,Integer,net.automatalib.automaton.impl.CompactTransition<O>,Void,O,net.automatalib.automaton.transducer.impl.CompactMealy<I,O>>- Parameters:
table- the observation tablestateRow- the row for the source stateinputIdx- the index of the input symbol to consider- Returns:
- the transition property of the corresponding transition
-
addAlphabetSymbol
public void addAlphabetSymbol(I symbol)
- Specified by:
addAlphabetSymbolin interfacenet.automatalib.alphabet.SupportsGrowingAlphabet<I>- Overrides:
addAlphabetSymbolin classAbstractAutomatonLStar<net.automatalib.automaton.transducer.MealyMachine<?,I,?,O>,I,net.automatalib.word.Word<O>,Integer,net.automatalib.automaton.impl.CompactTransition<O>,Void,O,net.automatalib.automaton.transducer.impl.CompactMealy<I,O>>
-
updateOutputs
protected void updateOutputs()
-
hypothesisOutput
protected net.automatalib.automaton.concept.SuffixOutput<I,net.automatalib.word.Word<O>> hypothesisOutput()
- Specified by:
hypothesisOutputin classAbstractLStar<net.automatalib.automaton.transducer.MealyMachine<?,I,?,O>,I,net.automatalib.word.Word<O>>
-
-