Trovare la coppia più vicina tra due serie di punti sull'ipercubo


11

Date due sottogruppi della ipercubo dimensionale (ad esempio, ), Cerco un algoritmo che recupera i punti ° la Hamming la distanza (o -distanza ) è minima. L'algoritmo ingenuo che controlla solo ogni coppia necessita di time, si conoscono risultati migliori?dM,N{0,1}dmM,nNL1dH(m,n)|M||N|d

Per semplicità possiamo supporre che .|M|=|N|=d


hmmm. c'è più motivazione / applicazione? sospetto che esista un analogo multidimensionale di questo algoritmo euclideo / planare ma Wikipedia non cita nulla e non ne ha mai sentito parlare altrove ... potrebbe aiutare a cercare un algoritmo per vettori n-dim. l'inizio dell'articolo sembra affermare che può essere risolto in per dimensioni superiori ma non fornisce alcuna citazione. forse da qualche parte negli arbitri? O(nlogn)d>2
vzn,

1
L'argomento divisione e conquista si basa su un limite di imballaggio. In dimensioni superiori, ciò introduce un fattore nella ricorrenza, ma la dipendenza da rimane la stessa. Quindi se non ti dispiace termini esponenziali in , puoi usare questo approccio. Se vuoi qualcosa di esatto, è improbabile che tu possa fare di meglio. 2dnd
Suresh Venkat,


1
Questo sembra improbabile. Pensa a n + m stringhe casuali sull'ipercubo. In qualche modo la distanza di martellamento di ciascuna coppia è all'incirca d / 2, e devi controllare tutte le coppie per trovare la coppia più vicina.
Sariel Har-Peled,

@Sariel Har-Peled: come ha scritto Suresh, il problema può essere risolto nel tempo O (n log n) (dove n = max {| M |, | N |}) per qualsiasi costante d. Pertanto, "devi controllare tutte le coppie per trovare la coppia più vicina" non mi sembra corretto.
Tsuyoshi Ito,

Risposte:


6

Ho appena capito che stai chiedendo il caso che . Quindi puoi fare la moltiplicazione di matrici, giusto? Scrivi è una matrice di righe , come una matrice di colonne , annulla le voci di e calcola la matrice . Chiaramente, il è la distanza di Hamming tra esimo punto e esimo punto di . Secondo le ultime scoperte questo ha tempo di esecuzione (ma ho un manoscritto di 50.000 pagine che mostra come eseguire questa moltiplicazione di matrice in|M|=|N|=dMXNYYZ=XYzi,jiMjNO(d2.3727)O(d2.3726999999) tempo da un algoritmo davvero semplice).

Puoi ottenere un effetto simile se le matrici non sono quadrati. Penso che Uri Zwick abbia un articolo sulla moltiplicazione rapida delle matrici in questo caso.

In un certo senso, questo non è troppo interessante: vogliamo evitare il termine . I miglioramenti nel termine d sono tipo di meh, meh ...O(|M||N|)d


Grande scoperta. In un'altra nota, un mio collega ha trovato questo documento: toc.cse.iitk.ac.in/articles/v008a014/v008a014.pdf e solo ora mi rendo conto che è stato (anche) scritto da te. La pagina 17+ è particolarmente interessante ..
HdM,

Sì. Sembra familiare - ma nota che questa è approssimazione - Suresh ha chiesto il risultato esatto ...
Sariel Har-Peled

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.