Deterministic finite automata (DFA) graph compression
First Claim
1. A computer implemented method for generating a deterministic finite automata-based graph comprising:
- storing a graph of expressions in memory, the graph including a plurality of nodes interconnected by arcs; and
pruning the arcs in a manner allowing the plurality of nodes to be interconnected solely by one or more valid arcs, where a current valid arc interconnects a current node to a next node, the current valid arc representing a character match in an expression of a character associated with the current node.
7 Assignments
0 Petitions
Accused Products
Abstract
An apparatus, and corresponding method, for generating a graph used in performing a search for a match of at least one expression in an input stream is presented. The graph includes a number of interconnected nodes connected solely by valid arcs. A valid arc of a current node represents a character match in an expression of a character associated with the current node. Arcs which are not valid may be pruned. Non-valid arcs may include arcs which point back to a designated node(s), or arcs that point to the same next node as the designated node(s) for the same character. Typically, the majority of arcs associated with a node are non-valid. Therefore, pruning the non-valid arcs may greatly reduce graph storage requirements.
-
Citations
21 Claims
-
1. A computer implemented method for generating a deterministic finite automata-based graph comprising:
-
storing a graph of expressions in memory, the graph including a plurality of nodes interconnected by arcs; and pruning the arcs in a manner allowing the plurality of nodes to be interconnected solely by one or more valid arcs, where a current valid arc interconnects a current node to a next node, the current valid arc representing a character match in an expression of a character associated with the current node. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. An apparatus comprising:
-
a memory unit configured to store a graph of expressions including a plurality of nodes interconnected by arcs; and a processor configured to prune the arcs in a manner allowing the plurality of nodes to be interconnected solely by one or more valid arcs, where a current valid arc interconnects a current node to a next node, the current valid arc representing a character match in an expression of a character associated with the current node. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. An apparatus comprising:
-
means for storing a graph of expressions including a plurality of nodes interconnected by arcs; means for pruning the arcs in a manner allowing the plurality of nodes to be interconnected solely by one or more valid arcs, where a current valid arc interconnects a current node to a next node, the current valid arc representing a character match in an expression of a character associated with the current node; and means for traversing the graph.
-
Specification