Simultaneous search for several binary patterns in a stream with finite-state automaton
The task under consideration in this paper is to search for binary subsequencies in a data stream. The article offers the finite automaton able to search for a set of binary vectors simultaneously performing only two operations per every bit or even byte of the data stream. Increasing the number of searched vectors causes a slower increase in memory usage compared to overall vectors' length growth and complexity does not increase at all. The automaton is described by the transition and output tables. Estimates for the size of the automaton's tables are given. Known approaches to the problem are discussed. There is a possibility to generalize the automaton building algorithm to search for partially defined boolean patterns, but the amount of required memory may be greater than the estimate found in the paper