I have data that looks like this:
011100111110100111
111111111111110010
111100001111000011
1D lanes of streams of data. Each row signifies the presence of a thing at that time with a 1 or a 0. Things tend to exist in consecutive chunks across the stream. The vertical order of the rows doesn't matter, patterns can occur between any set of rows.
I am seeking patterns where dimensions coincide at two or more indices, both at the start of '1' group's, and also where any '1' groups overlap across all rows/dimensions.
Pattern can be offset with nearby adjacent indices, if it's proportion is maintained.
D = Dimension/Row N = Index in stream
(( D1(N), D25(N+4), D900(N-1) ), ( 3, 67, 90, 3000 ))
D1(3), D25(7), D900(2)
D1(67), D25(71), D900(66)
D1(90), D25(94), D900(89)
D1(3000), D25(3004), D900(2999)
An example of a pattern match that migh occur at multiple places. Dimension01 at N, Dimension25 at index N + 4, Dimension900 at index N -1 occur at indices 3, 67, 90 and 3000.
The returned patterns:
- Are ordered by the number of matching indices or by the number of dimensions in the pattern.
- Match at least two dimensions at at least two points
How can I go about this?