Augmentation of pattern matching with divergence histograms
First Claim
1. A device comprising:
- a processor; and
a non-transitory computer-readable medium storing instructions which, when executed by the processor, cause the processor to perform operations, the operations comprising;
applying data blocks of a training data set to a pattern matching algorithm, wherein the pattern matching algorithm is a multi-pattern pattern matching algorithm that is associated with a plurality of patterns, wherein the pattern matching algorithm identifies whether the data blocks of the training data set match at least one pattern of the plurality of patterns of the pattern matching algorithm;
determining points of divergence between the data blocks of the training data set and each of the plurality of patterns;
counting a number of times that each of a plurality of positions in the each of the plurality of patterns is determined to be a point of divergence between the data blocks of the training data set and the each of the plurality of patterns;
determining a position in the each of the plurality of patterns with a highest count of a number of times that the position in the each of the plurality of patterns is determined to be the point of divergence between the data blocks of the training data set and the each of the plurality of patterns;
receiving an incoming data block;
comparing a data value at the position in the at least one pattern with the highest count to a data value at a corresponding position in the incoming data block; and
determining a mismatch between the incoming data block and the at least one pattern when the data value at the position in the at least one pattern and the data value at the corresponding position in the incoming data block are different.
1 Assignment
0 Petitions
Accused Products
Abstract
A processor may apply data blocks of a training data set to a pattern matching algorithm to identify whether the data blocks match a pattern, determine points of divergence between the data blocks and the pattern, count a number of times that each of a plurality of positions in the pattern is determined to be a point of divergence, and determine a position with a highest count of a number of times that the position is determined to be a point of divergence. The processor may further receive an incoming data block, compare a data value at the position in the pattern with the highest count to a data value at a corresponding position in the incoming data block, and determine a mismatch when the data value at the position in the pattern and the data value at the corresponding position in the incoming data block are different.
-
Citations
20 Claims
-
1. A device comprising:
-
a processor; and a non-transitory computer-readable medium storing instructions which, when executed by the processor, cause the processor to perform operations, the operations comprising; applying data blocks of a training data set to a pattern matching algorithm, wherein the pattern matching algorithm is a multi-pattern pattern matching algorithm that is associated with a plurality of patterns, wherein the pattern matching algorithm identifies whether the data blocks of the training data set match at least one pattern of the plurality of patterns of the pattern matching algorithm; determining points of divergence between the data blocks of the training data set and each of the plurality of patterns; counting a number of times that each of a plurality of positions in the each of the plurality of patterns is determined to be a point of divergence between the data blocks of the training data set and the each of the plurality of patterns; determining a position in the each of the plurality of patterns with a highest count of a number of times that the position in the each of the plurality of patterns is determined to be the point of divergence between the data blocks of the training data set and the each of the plurality of patterns; receiving an incoming data block; comparing a data value at the position in the at least one pattern with the highest count to a data value at a corresponding position in the incoming data block; and determining a mismatch between the incoming data block and the at least one pattern when the data value at the position in the at least one pattern and the data value at the corresponding position in the incoming data block are different. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A method comprising:
-
applying, by a processor, data blocks of a training data set to a pattern matching algorithm, wherein the pattern matching algorithm is a multi-pattern pattern matching algorithm that is associated with a plurality of patterns, wherein the pattern matching algorithm identifies whether the data blocks of the training data set match at least one pattern of the plurality of patterns of the pattern matching algorithm; determining, by the processor, points of divergence between the data blocks of the training data set and each of the plurality of patterns; counting, by the processor, a number of times that each of a plurality of positions in the each of the plurality of patterns is determined to be a point of divergence between the data blocks of the training data set and the each of the plurality of patterns; determining, by the processor, a position in the each of the plurality of patterns with a highest count of a number of times that the position in the each of the plurality of patterns is determined to be the point of divergence between the data blocks of the training data set and the each of the plurality of patterns; receiving, by the processor, an incoming data block; comparing, by the processor, a data value at the position in the at least one pattern with the highest count to a data value at a corresponding position in the incoming data block; and determining, by the processor, a mismatch between the incoming data block and the at least one pattern when the data value at the position in the at least one pattern and the data value at the corresponding position in the incoming data block are different. - View Dependent Claims (17, 18, 19)
-
-
20. A non-transitory computer-readable storage medium storing instructions which, when executed by a processor, cause the processor to perform operations, the operations comprising:
-
applying data blocks of a training data set to a pattern matching algorithm, wherein the pattern matching algorithm is a multi-pattern pattern matching algorithm that is associated with a plurality of patterns, wherein the pattern matching algorithm identifies whether the data blocks of the training data set match at least one pattern of the plurality of patterns of the pattern matching algorithm; determining points of divergence between the data blocks of the training data set and each of the plurality of patterns; counting a number of times that each of a plurality of positions in the each of the plurality of patterns is determined to be a point of divergence between the data blocks of the training data set and the each of the plurality of patterns; determining a position in the each of the plurality of patterns with a highest count of a number of times that the position in the each of the plurality of patterns is determined to be the point of divergence between the data blocks of the training data set and the each of the plurality of patterns; receiving an incoming data block; comparing a data value at the position in the at least one pattern with the highest count to a data value at a corresponding position in the incoming data block; and determining a mismatch between the incoming data block and the at least one pattern when the data value at the position in the at least one pattern and the data value at the corresponding position in the incoming data block are different.
-
Specification