public class TransducerGraph
extends java.lang.Object
implements java.lang.Cloneable
Modifier and Type | Class and Description |
---|---|
static class |
TransducerGraph.Arc<NODE,IN,OUT>
An arc in a finite state transducer.
|
static interface |
TransducerGraph.ArcProcessor |
static interface |
TransducerGraph.GraphProcessor |
static class |
TransducerGraph.InputSplittingProcessor |
static interface |
TransducerGraph.NodeProcessor |
static class |
TransducerGraph.NodeProcessorWrappingArcProcessor |
static class |
TransducerGraph.NormalizingGraphProcessor |
static class |
TransducerGraph.ObjectToSetNodeProcessor |
static class |
TransducerGraph.OutputCombiningProcessor |
static class |
TransducerGraph.SetToStringNodeProcessor |
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
EPSILON_INPUT |
Constructor and Description |
---|
TransducerGraph() |
TransducerGraph(java.util.Set<TransducerGraph.Arc> newArcs)
Uses the Arcs newArcs.
|
TransducerGraph(java.util.Set<TransducerGraph.Arc> newArcs,
java.lang.Object startNode,
java.util.Set endNodes,
TransducerGraph.ArcProcessor arcProcessor,
TransducerGraph.NodeProcessor nodeProcessor) |
TransducerGraph(TransducerGraph other) |
TransducerGraph(TransducerGraph other,
TransducerGraph.ArcProcessor arcProcessor) |
TransducerGraph(TransducerGraph other,
TransducerGraph.NodeProcessor nodeProcessor) |
Modifier and Type | Method and Description |
---|---|
boolean |
addArc(java.lang.Object source,
java.lang.Object target,
java.lang.Object input,
java.lang.Object output) |
protected boolean |
addArc(TransducerGraph.Arc a) |
static void |
addOnePathToGraph(java.util.List path,
double count,
int markovOrder,
TransducerGraph graph) |
java.lang.String |
asDOTString() |
boolean |
canAddArc(java.lang.Object source,
java.lang.Object target,
java.lang.Object input,
java.lang.Object output) |
TransducerGraph |
clone() |
static <T> TransducerGraph |
createGraphFromPaths(ClassicCounter<java.util.List<T>> pathCounter,
int markovOrder) |
static TransducerGraph |
createGraphFromPaths(java.util.List paths,
int markovOrder)
If markovOrder is zero, we always transition back to the start state
If markovOrder is negative, we assume that it is infinite
|
static TransducerGraph |
createRandomGraph(int numPaths,
int pathLengthMean,
double pathLengthVariance,
int numInputs,
java.util.List<java.util.List<java.lang.String>> pathList)
For testing only.
|
static java.util.List |
createRandomPaths(int numPaths,
int pathLengthMean,
double pathLengthVariance,
int numInputs) |
void |
depthFirstSearch(boolean forward,
java.lang.StringBuilder b) |
TransducerGraph.Arc |
getArc(java.lang.Object source,
java.lang.Object target)
Slow implementation.
|
TransducerGraph.Arc |
getArcBySourceAndInput(java.lang.Object node,
java.lang.Object input)
Can only be one because automaton is deterministic.
|
java.util.Set<TransducerGraph.Arc> |
getArcs() |
java.util.Set<TransducerGraph.Arc> |
getArcsByInput(java.lang.Object node)
Returns a Set of type TransducerGraph.Arc.
|
java.util.Set<TransducerGraph.Arc> |
getArcsBySource(java.lang.Object node)
Returns a Set of type TransducerGraph.Arc.
|
java.util.Set<TransducerGraph.Arc> |
getArcsByTarget(java.lang.Object node)
Returns a Set of type TransducerGraph.Arc.
|
java.util.Set<TransducerGraph.Arc> |
getArcsByTargetAndInput(java.lang.Object node,
java.lang.Object input)
Returns a Set of type TransducerGraph.Arc.
|
java.util.Set |
getEndNodes() |
java.util.Set |
getInputs() |
java.util.Set |
getNodes()
Just does union of keysets of maps.
|
double |
getOutputOfPathInGraph(java.util.List path)
For testing only.
|
java.util.List<java.lang.Double> |
getPathOutputs(java.util.List<java.util.List<java.lang.String>> pathList)
For testing only.
|
java.lang.Object |
getStartNode() |
double |
inFlow(java.lang.Object node) |
static void |
main(java.lang.String[] args)
For testing only.
|
double |
outFlow(java.lang.Object node) |
boolean |
removeArc(TransducerGraph.Arc a) |
java.util.List |
sampleUniformPathFromGraph()
for testing only.
|
void |
setDeterminism(boolean checkDeterminism) |
void |
setEndNode(java.lang.Object o) |
void |
setStartNode(java.lang.Object o) |
static boolean |
testGraphPaths(TransducerGraph sourceGraph,
TransducerGraph testGraph,
int numPaths) |
java.lang.String |
toString() |
public static final java.lang.String EPSILON_INPUT
public TransducerGraph()
public TransducerGraph(TransducerGraph other)
public TransducerGraph(TransducerGraph other, TransducerGraph.ArcProcessor arcProcessor)
public TransducerGraph(TransducerGraph other, TransducerGraph.NodeProcessor nodeProcessor)
public TransducerGraph(java.util.Set<TransducerGraph.Arc> newArcs, java.lang.Object startNode, java.util.Set endNodes, TransducerGraph.ArcProcessor arcProcessor, TransducerGraph.NodeProcessor nodeProcessor)
public TransducerGraph(java.util.Set<TransducerGraph.Arc> newArcs)
public void setDeterminism(boolean checkDeterminism)
public TransducerGraph clone() throws java.lang.CloneNotSupportedException
clone
in class java.lang.Object
java.lang.CloneNotSupportedException
public java.util.Set<TransducerGraph.Arc> getArcs()
public java.util.Set getNodes()
public java.util.Set getInputs()
public void setStartNode(java.lang.Object o)
public void setEndNode(java.lang.Object o)
public java.lang.Object getStartNode()
public java.util.Set getEndNodes()
public java.util.Set<TransducerGraph.Arc> getArcsByInput(java.lang.Object node)
public java.util.Set<TransducerGraph.Arc> getArcsBySource(java.lang.Object node)
public java.util.Set<TransducerGraph.Arc> getArcsByTarget(java.lang.Object node)
public TransducerGraph.Arc getArcBySourceAndInput(java.lang.Object node, java.lang.Object input)
public java.util.Set<TransducerGraph.Arc> getArcsByTargetAndInput(java.lang.Object node, java.lang.Object input)
public TransducerGraph.Arc getArc(java.lang.Object source, java.lang.Object target)
public boolean addArc(java.lang.Object source, java.lang.Object target, java.lang.Object input, java.lang.Object output)
protected boolean addArc(TransducerGraph.Arc a)
public boolean removeArc(TransducerGraph.Arc a)
public boolean canAddArc(java.lang.Object source, java.lang.Object target, java.lang.Object input, java.lang.Object output)
public java.lang.String toString()
toString
in class java.lang.Object
public java.lang.String asDOTString()
public double inFlow(java.lang.Object node)
public double outFlow(java.lang.Object node)
public double getOutputOfPathInGraph(java.util.List path)
public java.util.List sampleUniformPathFromGraph()
public java.util.List<java.lang.Double> getPathOutputs(java.util.List<java.util.List<java.lang.String>> pathList)
public static boolean testGraphPaths(TransducerGraph sourceGraph, TransducerGraph testGraph, int numPaths)
public static TransducerGraph createGraphFromPaths(java.util.List paths, int markovOrder)
public static <T> TransducerGraph createGraphFromPaths(ClassicCounter<java.util.List<T>> pathCounter, int markovOrder)
public static void addOnePathToGraph(java.util.List path, double count, int markovOrder, TransducerGraph graph)
public static TransducerGraph createRandomGraph(int numPaths, int pathLengthMean, double pathLengthVariance, int numInputs, java.util.List<java.util.List<java.lang.String>> pathList)
public static java.util.List createRandomPaths(int numPaths, int pathLengthMean, double pathLengthVariance, int numInputs)
public void depthFirstSearch(boolean forward, java.lang.StringBuilder b)
public static void main(java.lang.String[] args)