Package de.learnlib.algorithm.adt.adt
Interface ADTNode<S,I,O>
-
- Type Parameters:
S
- (hypothesis) state typeI
- input alphabet typeO
- output alphabet type
- All Superinterfaces:
FiniteRepresentation
,Graph<ADTNode<S,I,O>,ADTNode<S,I,O>>
,IndefiniteGraph<ADTNode<S,I,O>,ADTNode<S,I,O>>
,IndefiniteSimpleGraph<ADTNode<S,I,O>>
,Iterable<ADTNode<S,I,O>>
,RecursiveADSNode<S,I,O,ADTNode<S,I,O>>
,SimpleGraph<ADTNode<S,I,O>>
- All Known Implementing Classes:
ADTLeafNode
,ADTResetNode
,ADTSymbolNode
public interface ADTNode<S,I,O> extends RecursiveADSNode<S,I,O,ADTNode<S,I,O>>
The ADT equivalent ofADSNode
. In contrast to regular adaptive distinguishing sequences, an ADT node may also represent a reset node that semantically separates multiple ADSs.
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static class
ADTNode.NodeType
Utility enum to distinguish the 3 possible types of ADT nodes.-
Nested classes/interfaces inherited from interface net.automatalib.graph.Graph
Graph.IntAbstraction<E extends Object>
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default Collection<ADTNode<S,I,O>>
getNodes()
ADTNode.NodeType
getNodeType()
Returns the node type of the current node.default VisualizationHelper<ADTNode<S,I,O>,ADTNode<S,I,O>>
getVisualizationHelper()
default boolean
isLeaf()
ADTNode<S,I,O>
sift(SymbolQueryOracle<I,O> oracle, Word<I> prefix)
Utility method, that sifts a given word throughthis
ADTNode.-
Methods inherited from interface net.automatalib.graph.Graph
getAdjacentNodes, getOutgoingEdgesIterator
-
Methods inherited from interface net.automatalib.graph.IndefiniteGraph
getAdjacentNodesIterator, getEdgesBetween
-
Methods inherited from interface net.automatalib.graph.IndefiniteSimpleGraph
createDynamicNodeMapping, createStaticNodeMapping, isConnected
-
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Methods inherited from interface net.automatalib.graph.ads.RecursiveADSNode
getChildren, getHypothesisState, getNodesForRoot, getOutgoingEdges, getParent, getSymbol, getTarget, setHypothesisState, setParent, setSymbol
-
Methods inherited from interface net.automatalib.graph.SimpleGraph
iterator, nodeIDs, size
-
-
-
-
Method Detail
-
sift
ADTNode<S,I,O> sift(SymbolQueryOracle<I,O> oracle, Word<I> prefix)
Utility method, that sifts a given word throughthis
ADTNode. Ifthis
node is a- symbol node, the symbol is applied to the system under learning and the corresponding child node (based on the observed output) is returned. If no matching child node is found, a new leaf node is returned instead
- reset node, the system under learning is reset and the provided prefix is reapplied to the system
- leaf node, an exception is thrown
- Parameters:
oracle
- the oracle used to query the system under learningprefix
- the prefix to be re-applied after encountering a reset node- Returns:
- the corresponding child node
- Throws:
UnsupportedOperationException
- when invoked on a leaf node (seegetNodeType()
).
-
getNodes
default Collection<ADTNode<S,I,O>> getNodes()
- Specified by:
getNodes
in interfaceSimpleGraph<S>
-
getVisualizationHelper
default VisualizationHelper<ADTNode<S,I,O>,ADTNode<S,I,O>> getVisualizationHelper()
- Specified by:
getVisualizationHelper
in interfaceGraph<S,I>
- Specified by:
getVisualizationHelper
in interfaceRecursiveADSNode<S,I,O,ADTNode<S,I,O>>
- Specified by:
getVisualizationHelper
in interfaceSimpleGraph<S>
-
isLeaf
default boolean isLeaf()
-
getNodeType
ADTNode.NodeType getNodeType()
Returns the node type of the current node.- Returns:
- the node type
-
-