I
- input symbol typeO
- output symbol typepublic class DynamicIncrementalMealyTreeBuilder<I,O> extends AbstractIncrementalMealyTreeBuilder<net.automatalib.incremental.mealy.tree.dynamic.Node<I,O>,I,O>
IncrementalMealyTreeBuilder
, which stores the successor information of each
tree-node in a dynamically allocated Map
.
In a dense tree-structure this may result in higher memory consumption than the regular tree. However, if only sparse information are stored, the overall consumption may be lower. Also, allows to skip the initial alphabet definition as symbol information can be stored dynamically and may us
AbstractIncrementalMealyTreeBuilder.GraphView, AbstractIncrementalMealyTreeBuilder.TransitionSystemView
AbstractIncrementalMealyBuilder.AbstractGraphView<I,O,N,E>
root
Constructor and Description |
---|
DynamicIncrementalMealyTreeBuilder() |
Modifier and Type | Method and Description |
---|---|
void |
addAlphabetSymbol(I symbol)
Notifies the data structure that a new symbol should be added to the alphabet.
|
protected net.automatalib.incremental.mealy.tree.dynamic.Node<I,O> |
createNode() |
protected Edge<net.automatalib.incremental.mealy.tree.dynamic.Node<I,O>,O> |
getEdge(net.automatalib.incremental.mealy.tree.dynamic.Node<I,O> node,
I symbol) |
protected Collection<AnnotatedEdge<net.automatalib.incremental.mealy.tree.dynamic.Node<I,O>,I,O>> |
getOutgoingEdges(net.automatalib.incremental.mealy.tree.dynamic.Node<I,O> node) |
protected net.automatalib.incremental.mealy.tree.dynamic.Node<I,O> |
insertNode(net.automatalib.incremental.mealy.tree.dynamic.Node<I,O> parent,
I symbols,
O output) |
asGraph, asTransitionSystem, findSeparatingWord, insert, lookup
hasDefinitiveInformation, lookup
public void addAlphabetSymbol(I symbol) throws GrowingAlphabetNotSupportedException
SupportsGrowingAlphabet
GrowingAlphabet
) to handle
potentially shared state across multiple instances. If the needed requirements are not met, a GrowingAlphabetNotSupportedException
can be thrown.symbol
- the symbol to add to the alphabet.GrowingAlphabetNotSupportedException
- if the data structure was not properly initialized (e.g. with a GrowingAlphabet
).protected Edge<net.automatalib.incremental.mealy.tree.dynamic.Node<I,O>,O> getEdge(net.automatalib.incremental.mealy.tree.dynamic.Node<I,O> node, I symbol)
protected net.automatalib.incremental.mealy.tree.dynamic.Node<I,O> createNode()
createNode
in class AbstractIncrementalMealyTreeBuilder<net.automatalib.incremental.mealy.tree.dynamic.Node<I,O>,I,O>
protected net.automatalib.incremental.mealy.tree.dynamic.Node<I,O> insertNode(net.automatalib.incremental.mealy.tree.dynamic.Node<I,O> parent, I symbols, O output)
insertNode
in class AbstractIncrementalMealyTreeBuilder<net.automatalib.incremental.mealy.tree.dynamic.Node<I,O>,I,O>
protected Collection<AnnotatedEdge<net.automatalib.incremental.mealy.tree.dynamic.Node<I,O>,I,O>> getOutgoingEdges(net.automatalib.incremental.mealy.tree.dynamic.Node<I,O> node)
getOutgoingEdges
in class AbstractIncrementalMealyTreeBuilder<net.automatalib.incremental.mealy.tree.dynamic.Node<I,O>,I,O>
Copyright © 2019. All rights reserved.