Class FSAUtils


  • public final class FSAUtils
    extends Object
    Other FSA-related utilities not directly associated with the class hierarchy.
    • Constructor Detail

      • FSAUtils

        public FSAUtils()
    • Method Detail

      • toDot

        public static String toDot​(FSA fsa,
                                   int node)
        Returns the right-language reachable from a given FSA node, formatted as an input for the graphviz package (expressed in the dot language).
        Parameters:
        fsa - The automaton to visualize.
        node - Starting node (subgraph will be visualized unless it's the automaton's root node).
        Returns:
        Returns the dot language description of the automaton.
      • toDot

        public static void toDot​(Writer w,
                                 FSA fsa,
                                 int node)
                          throws IOException
        Saves the right-language reachable from a given FSA node, formatted as an input for the graphviz package (expressed in the dot language), to the given writer.
        Parameters:
        w - The writer to write dot language description of the automaton.
        fsa - The automaton to visualize.
        node - Starting node (subgraph will be visualized unless it's the automaton's root node).
        Throws:
        IOException - Rethrown if an I/O exception occurs.
      • calculateFanOuts

        public static TreeMap<Integer,​Integer> calculateFanOuts​(FSA fsa,
                                                                      int root)
        Calculate fan-out ratio (how many nodes have a given number of outgoing arcs).
        Parameters:
        fsa - The automaton to calculate fanout for.
        root - The starting node for calculations.
        Returns:
        The returned map contains keys for the number of outgoing arcs and an associated value being the number of nodes with that arc number.
      • rightLanguageForAllStates

        public static com.carrotsearch.hppc.IntIntHashMap rightLanguageForAllStates​(FSA fsa)
        Calculate the size of "right language" for each state in an FSA. The right language is the number of sequences encoded from a given node in the automaton.
        Parameters:
        fsa - The automaton to calculate right language for.
        Returns:
        Returns a map with node identifiers as keys and their right language counts as associated values.