El problema es fácil de explicar: tenemos dos grandes matrices (valores enteros de 32 bits) y tenemos que encontrar todas las secuencias comunes por encima de un número dado de posición consecutiva (n).¿Qué algoritmo usar para obtener la coincidencia de cadena más larga en dos grandes matrices?
Por ejemplo, si n = 3 y matrices para comparar son:
a = [1, 3, 5, 7, 3, 2, 7, 4, 6, 7, 2, 1, 0, 4, 6]
b = [2, 5, 7, 3, 2, 3, 4, 5, 6, 3, 2, 7, 4, 6, 0]
El algoritmh debería volver, dos matrices:
r0 = [5, 7, 3, 2]
r1 = [3, 2, 7, 4, 6]
(o mejor, sus posiciones relativas a primera matriz y la cantidad de bytes consecutivos coincidentes).
Creo que un buen punto para comenzar es el Longest Common Substring Algorithm, pero quizás alguien conozca un algoritmo que se adapte mejor o más exactamente a mi problema.
Creo que esto pertenece a [Math.stackexchange] (http://math.stackexchange.com/) – genesis
Este es un problema de investigación abierto, a menudo estudiado en el contexto de la coincidencia/alineación de secuencias de ADN. Es posible que tenga un poco de suerte investigando cómo la gente está haciendo esto con el ADN, o incluso encontrar algunas bibliotecas disponibles. –
@Mark: ¿Cómo es este un problema de investigación abierto? –