Class AdaptiveMealyTreeBuilder<I,O>
- java.lang.Object
-
- net.automatalib.incremental.mealy.tree.AdaptiveMealyTreeBuilder<I,O>
-
- All Implemented Interfaces:
SupportsGrowingAlphabet<I>
,InputAlphabetHolder<I>
,IncrementalConstruction<MealyMachine<?,I,?,O>,I>
,AdaptiveMealyBuilder<I,O>
,MealyBuilder<I,O>
public class AdaptiveMealyTreeBuilder<I,O> extends Object implements AdaptiveMealyBuilder<I,O>
-
-
Constructor Summary
Constructors Constructor Description AdaptiveMealyTreeBuilder(Alphabet<I> inputAlphabet)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addAlphabetSymbol(I symbol)
Notifies the data structure that a new symbol should be added to the alphabet.Graph<net.automatalib.incremental.mealy.tree.Node<O>,?>
asGraph()
Retrieves a graph view of the current state of the construction.MealyTransitionSystem<?,I,?,O>
asTransitionSystem()
Retrieves a transition system view of the current state of the construction.@Nullable Word<I>
findSeparatingWord(MealyMachine<?,I,?,O> target, Collection<? extends I> inputs, boolean omitUndefined)
Checks the current state of the construction against a given target model, and returns a word exposing a difference if there is one.Alphabet<I>
getInputAlphabet()
@Nullable Word<I>
getOldestInput()
Returns the oldest, non-overridden input that has been introduced and persisted.boolean
insert(Word<? extends I> input, Word<? extends O> outputWord)
Incorporates a pair of input/output words into the stored information.boolean
lookup(Word<? extends I> word, List<? super O> output)
Retrieves the output word for the given input word.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface net.automatalib.incremental.IncrementalConstruction
asGraph, findSeparatingWord
-
Methods inherited from interface net.automatalib.incremental.mealy.MealyBuilder
asTransitionSystem, hasDefinitiveInformation, lookup, lookup
-
Methods inherited from interface net.automatalib.alphabet.SupportsGrowingAlphabet
addAlphabetSymbol
-
-
-
-
Method Detail
-
insert
public boolean insert(Word<? extends I> input, Word<? extends O> outputWord)
Description copied from interface:AdaptiveMealyBuilder
Incorporates a pair of input/output words into the stored information.- Specified by:
insert
in interfaceAdaptiveMealyBuilder<I,O>
- Parameters:
input
- the input wordoutputWord
- the corresponding output word- Returns:
true
if the inserted output word has overridden existing information,false
otherwise.
-
getOldestInput
public @Nullable Word<I> getOldestInput()
Description copied from interface:AdaptiveMealyBuilder
Returns the oldest, non-overridden input that has been introduced and persisted.- Specified by:
getOldestInput
in interfaceAdaptiveMealyBuilder<I,O>
- Returns:
- the
Word
representing the oldest stored input,null
if the cache is empty.
-
addAlphabetSymbol
public void addAlphabetSymbol(I symbol)
Description copied from interface:SupportsGrowingAlphabet
Notifies the data structure that a new symbol should be added to the alphabet. Behavior depends on the implementation:- After adding a new symbol, the symbol-related data may either be initialized with default values or undefined.
- Duplicate symbols may: (1) be handled accordingly, (2) be ignored or (3) result in an error.
GrowingAlphabet
) to handle potentially shared state across multiple instances. If the needed requirements are not met, aGrowingAlphabetNotSupportedException
can be thrown.- Specified by:
addAlphabetSymbol
in interfaceSupportsGrowingAlphabet<I>
- Parameters:
symbol
- the symbol to add to the alphabet.
-
getInputAlphabet
public Alphabet<I> getInputAlphabet()
- Specified by:
getInputAlphabet
in interfaceInputAlphabetHolder<I>
-
asGraph
public Graph<net.automatalib.incremental.mealy.tree.Node<O>,?> asGraph()
Description copied from interface:IncrementalConstruction
Retrieves a graph view of the current state of the construction. The graph model should be backed by the construction, i.e., subsequent changes will be reflected in the graph model.- Specified by:
asGraph
in interfaceIncrementalConstruction<I,O>
- Returns:
- a graph view on the current state of the construction
-
lookup
public boolean lookup(Word<? extends I> word, List<? super O> output)
Description copied from interface:MealyBuilder
Retrieves the output word for the given input word. If no definitive information for the input word exists, the output for the longest known prefix will be returned.- Specified by:
lookup
in interfaceMealyBuilder<N,I>
- Parameters:
word
- the input wordoutput
- a consumer for constructing the output word- Returns:
true
if the information contained was complete (in this case,word.length() == output.size()
will hold),false
otherwise.
-
findSeparatingWord
public @Nullable Word<I> findSeparatingWord(MealyMachine<?,I,?,O> target, Collection<? extends I> inputs, boolean omitUndefined)
Description copied from interface:IncrementalConstruction
Checks the current state of the construction against a given target model, and returns a word exposing a difference if there is one.- Specified by:
findSeparatingWord
in interfaceIncrementalConstruction<N,I>
- Parameters:
target
- the target automaton modelinputs
- the set of input symbols to consideromitUndefined
- if this is set totrue
, then undefined transitions in thetarget
model will be interpreted as "unspecified/don't know" and omitted in the equivalence test. Otherwise, they will be interpreted in the usual manner (e.g., non-accepting sink in case of DFAs).- Returns:
- a separating word, or
null
if no difference could be found.
-
asTransitionSystem
public MealyTransitionSystem<?,I,?,O> asTransitionSystem()
Description copied from interface:IncrementalConstruction
Retrieves a transition system view of the current state of the construction. The transition system model should be backed by the construction, i.e., subsequent changes will be reflected in the transition system.- Specified by:
asTransitionSystem
in interfaceIncrementalConstruction<N,I>
- Specified by:
asTransitionSystem
in interfaceMealyBuilder<N,I>
- Returns:
- a transition system view on the current state of the construction
-
-