Augmentation of pattern matching with divergence histograms
First Claim
1. A device comprising:
- a processor;
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 identifies whether the data blocks of the training data set match a pattern of the pattern matching algorithm;
determining points of divergence between the data blocks of the training data set and the pattern;
counting a number of times that each of a plurality of positions in the pattern is determined to be a point of divergence between the data blocks of the training data set and the pattern;
determining a position in the pattern with a highest count of a number of times that the position in the pattern is determined to be the point of divergence between the data blocks of the training data set and the pattern;
receiving an incoming data block;
comparing 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;
determining a mismatch between the incoming data block and the pattern 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; and
processing an additional incoming data block without applying the incoming data block to the pattern matching algorithm when the mismatch is determined.
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.
26 Citations
20 Claims
-
1. A device comprising:
-
a processor; 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 identifies whether the data blocks of the training data set match a pattern of the pattern matching algorithm; determining points of divergence between the data blocks of the training data set and the pattern; counting a number of times that each of a plurality of positions in the pattern is determined to be a point of divergence between the data blocks of the training data set and the pattern; determining a position in the pattern with a highest count of a number of times that the position in the pattern is determined to be the point of divergence between the data blocks of the training data set and the pattern; receiving an incoming data block; comparing 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; determining a mismatch between the incoming data block and the pattern 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; and processing an additional incoming data block without applying the incoming data block to the pattern matching algorithm when the mismatch is determined. - 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 identifies whether the data blocks of the training data set match a pattern of the pattern matching algorithm; determining, by the processor, points of divergence between the data blocks of the training data set and the pattern; counting, by the processor, a number of times that each of a plurality of positions in the pattern is determined to be a point of divergence between the data blocks of the training data set and the pattern; determining, by the processor, a position in the pattern with a highest count of a number of times that the position in the pattern is determined to be the point of divergence between the data blocks of the training data set and the pattern; receiving, by the processor, an incoming data block; comparing, by the processor, 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; determining, by the processor, a mismatch between the incoming data block and the pattern 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; and processing, by the processor, an additional incoming data block without applying the incoming data block to the pattern matching algorithm when the mismatch is determined. - 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 identifies whether the data blocks of the training data set match a pattern of the pattern matching algorithm; determining points of divergence between the data blocks of the training data set and the pattern; counting a number of times that each of a plurality of positions in the pattern is determined to be a point of divergence between the data blocks of the training data set and the pattern; determining a position in the pattern with a highest count of a number of times that the position in the pattern is determined to be the point of divergence between the data blocks of the training data set and the pattern; receiving an incoming data block; comparing 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; determining a mismatch between the incoming data block and the pattern 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; and processing an additional incoming data block without applying the incoming data block to the pattern matching algorithm when the mismatch is determined.
-
Specification