Class IncrementalMealyTreeBuilder<I,O>
- java.lang.Object
-
- net.automatalib.incremental.mealy.tree.IncrementalMealyTreeBuilder<I,O>
-
- Type Parameters:
I
- input symbol classO
- output symbol class
- All Implemented Interfaces:
SupportsGrowingAlphabet<I>
,InputAlphabetHolder<I>
,IncrementalConstruction<MealyMachine<?,I,?,O>,I>
,IncrementalMealyBuilder<I,O>
,MealyBuilder<I,O>
public class IncrementalMealyTreeBuilder<I,O> extends Object implements IncrementalMealyBuilder<I,O>
Incrementally builds a tree with transition outputs from a set of input and corresponding output words.
-
-
Constructor Summary
Constructors Constructor Description IncrementalMealyTreeBuilder(Alphabet<I> inputAlphabet)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addAlphabetSymbol(I symbol)
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()
void
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 void insert(Word<? extends I> input, Word<? extends O> outputWord)
Description copied from interface:IncrementalMealyBuilder
Incorporates a pair of input/output words into the stored information.- Specified by:
insert
in interfaceIncrementalMealyBuilder<I,O>
- Parameters:
input
- the input wordoutputWord
- the corresponding output word
-
addAlphabetSymbol
public void addAlphabetSymbol(I symbol)
- Specified by:
addAlphabetSymbol
in interfaceSupportsGrowingAlphabet<I>
-
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
-
-