Recherche de la paire la plus proche entre deux ensembles de points sur l'hypercube

11

Étant donné deux sous-ensembles de l' hypercube à dimensions (c'est-à-dire ), je cherche un algorithme qui récupère les points st le hamming la distance (ou la distance sur l'hypercube) est minimale. L'algorithme naïf qui vérifie juste chaque paire a besoin de time, existe-t-il un meilleur résultat connu?M,N{0,1}mM,nNL1H(m,n)|M||N|

Pour simplifier, nous pouvons supposer que .|M|=|N|=

HdM
la source
hmmm. y a-t-il plus de motivation / application? soupçonne qu'il existe un analogue multidimensionnel de cet algorithme euclidien / planaire mais wikipedia ne cite rien et n'en a entendu parler nulle part ailleurs ... cela pourrait aider à rechercher un algorithme pour les vecteurs n-dim. le début de l'article semble affirmer qu'il peut être résolu en pour des dimensions supérieures mais ne donne aucune citation. peut-être quelque part dans les refs? O(nlogn)d>2
vzn
1
L'argument diviser pour régner repose sur une limite d'emballage. Dans les dimensions supérieures, cela introduit un facteur dans la récurrence, mais la dépendance vis-à-vis de reste la même. Donc, si cela ne vous dérange pas les termes exponentiels en , vous pouvez utiliser cette approche. Si vous voulez quelque chose d'exact, il est peu probable que vous puissiez faire mieux. n d2n
Suresh Venkat
1
Cela semble peu probable. Pensez à n + m chaînes aléatoires sur l'hypercube. D'une certaine manière, la distance de brouillage de chaque paire est à peu près d / 2, et vous devez vérifier toutes les paires pour trouver la paire la plus proche.
Sariel Har-Peled
@Sariel Har-Peled: Comme l'a écrit Suresh, le problème peut être résolu dans le temps O (n log n) (où n = max {| M |, | N |}) pour toute constante d. Par conséquent, "vous devez vérifier toutes les paires pour trouver la paire la plus proche" ne me semble pas correct.
Tsuyoshi Ito

Réponses:

6

Je viens de réaliser que vous demandez le cas où . Ensuite, vous pouvez faire une multiplication matricielle, non? Écrire est une matrice de lignes , comme matrice de colonnes , annuler les entrées de et calculer la matrice . De toute évidence, le est la distance de Hamming entre le ème point de et de la j ème point de N . Selon les dernières percées, cela a un temps de fonctionnement O ( d 2.3727 )M X N Y Y Z = X Y z i , j i M|M|=|N|=MXNOuiOuiZ=XOuizje,jjeMjNO(2,3727)(mais j'ai un manuscrit de 50 000 pages qui montre comment faire cette multiplication matricielle en temps par un algorithme vraiment simple).O(2.3726999999)

Vous pouvez obtenir un effet similaire si les matrices ne sont pas des carrés. Je pense qu'Uri Zwick a un article sur la multiplication matricielle rapide dans ce cas.

Dans un certain sens, ce n'est pas trop intéressant - nous voulons éviter le terme . Les améliorations du terme d sont un peu meh, meh ...O(|M||N|)

Sariel Har-Peled
la source
Super trouvaille. Sur une autre note, un de mes collègues a trouvé ce document: toc.cse.iitk.ac.in/articles/v008a014/v008a014.pdf et seulement maintenant je me rends compte qu'il a été (également) écrit par vous. La page 17+ est particulièrement intéressante.
HdM
Oui. Semble familier - mais notez qu'il s'agit d'une approximation - Suresh a demandé le résultat exact ...
Sariel Har-Peled
-3

comme dans les commentaires, ce problème est généralement étroitement lié au même problème dans un espace de Hilbert et les algorithmes sont presque applicables. un exemple de ceci peut être trouvé dans cet article par Arya et al [1] p29 où les auteurs comparent leur algorithme de voisin de l'espace de Hilbert en utilisant le cube booléen et la norme . leur algorithme fonctionne sur n'importe quelle métrique L m Minkowski. comme vous le signalez (mais wikipedia ne semble pas faire beaucoup d'autres références), la métrique de distance de Hamming est équivalente à la métrique d'espace L 1 Minkowski ou "métrique taxicab" sur les coordonnées binaires. leur algorithme prend O ( d n log n )LLmL1O(nJournaln)temps de prétraitement ( dimensions ) et temps de "requête" logarithmique (par point). voir aussi [2]

[1] Un algorithme optimal pour la recherche approximative du plus proche voisin dans des dimensions fixes Arya et al, 30pp

[2] Recherche des voisins les plus proches efficaces sur l'hyper-cube, avec des applications au clustering moléculaire Cazals

vzn
la source
1
Ω()