Encontrar el par más cercano entre dos conjuntos de puntos en el hipercubo

11

Dados dos subconjuntos del hipercubo dimensional (es decir, M , N { 0 , 1 } d ), estoy buscando un algoritmo que recupere los puntos m M , n N st la distancia de Hamming (o L 1 - distancia en el hipercubo) d H ( m , n ) es mínima. El ingenuo algoritmo que verifica cada par necesita | M | | N | ddM,N{0,1}dmM,nNL1dH(m,n)|M||N|d tiempo, ¿hay algún resultado mejor conocido?

Por simplicidad, podemos suponer que .|M|=|N|=d

HdM
fuente
hmmm ¿Hay más motivación / aplicación? sospecha que hay un análogo multidimensional de este algoritmo euclidiano / plano, pero wikipedia no cita nada y no ha oído hablar de él en otro lugar ... podría ayudar a buscar un algoritmo para vectores n-dim. El comienzo del artículo parece afirmar que se puede resolver en para dimensiones superiores d > 2 pero no da ninguna cita. tal vez en algún lugar de los árbitros? O(nlogn)d>2
vzn 01 de
1
El argumento de dividir y conquistar se basa en un límite de embalaje. En dimensiones superiores, esto introduce un factor en la recurrencia, pero la dependencia de n sigue siendo la misma. Entonces, si no le importan los términos exponenciales en d , puede usar este enfoque. Si quieres algo exacto, es poco probable que puedas hacerlo mejor. 2dnd
Suresh Venkat
1
Esto parece poco probable. Piense en n + m cadenas aleatorias en el hipercubo. De alguna manera, la distancia de hamming de cada par es aproximadamente d / 2, y debe verificar todos los pares para encontrar el par más cercano.
Sariel Har-Peled
@Sariel Har-Peled: Como escribió Suresh, el problema puede resolverse en el tiempo O (n log n) (donde n = max {| M |, | N |}) para cualquier constante d. Por lo tanto, "tienes que verificar todos los pares para encontrar el par más cercano" no me parece correcto.
Tsuyoshi Ito

Respuestas:

6

Me acabo de dar cuenta de que estás pidiendo el caso de que . Entonces puedes hacer multiplicación de matrices, ¿verdad? Comentario M es una matriz fila X , N como una matriz de la columna Y , niega las entradas de Y , y calcular la matriz Z = X Y . Claramente, la z i , j es la distancia de Hamming entre el punto i de M y el punto j de N|M|=|N|=dMXNYYZ=XYzi,jiMjN. De acuerdo con los últimos avances, esto tiene un tiempo de ejecución (pero tengo un manuscrito de 50,000 páginas que muestra cómo hacer esta multiplicación de matriz en tiempo O ( d 2.3726999999 ) por un algoritmo realmente simple).O(d2.3727)O(d2.3726999999)

Puede obtener un efecto similar si las matrices no son cuadrados. Creo que Uri Zwick tiene un artículo sobre la multiplicación rápida de matrices en este caso.

En cierto sentido, esto no es demasiado interesante: queremos evitar el término . Las mejoras en el término d son como meh, meh ...O(|M||N|)d

Sariel Har-Peled
fuente
Gran hallazgo. En otra nota, un colega mío encontró este documento: toc.cse.iitk.ac.in/articles/v008a014/v008a014.pdf y solo ahora me doy cuenta de que fue (también) escrito por usted. La página 17+ es particularmente interesante ..
HdM
Si. Parece familiar, pero tenga en cuenta que esto es una aproximación. Suresh pidió el resultado exacto ...
Sariel Har-Peled