Ho già l'algoritmo per produrre gli hash sensibili alla località, ma come dovrei utilizzarli per sfruttare le loro caratteristiche (ad esempio, elementi simili hanno un hash vicino (con la distanza di hamming))?Come eseguire il bucket degli hash sensibili alla località?
Nel codice MATLAB ho scoperto che creano semplicemente una matrice di distanza tra gli hash dei punti da cercare e gli hash dei punti nel database, per semplificare il codice, facendo riferimento a un metodo Charikar per un buon risultato implementazione del metodo di ricerca.
Ho provato a cercarlo, ma non sono sicuro di come applicare al mio caso nessuno dei metodi che ho trovato (come il metodo multi-probe). Nessuna di queste tecniche sembra facilmente inseribile se hai già gli hash. C'è qualche semplice codice di esempio per questo? O qualche suggerimento?
Questo è il link alla pagina con il codice MATLAB sto parlando: http://www.eecs.berkeley.edu/~kulis/klsh/klsh.htm
Facendo qualche ricerca sull'argomento sono arrivato a un algoritmo, che consiste essenzialmente nella creazione di tabelle per ogni bit (in questo caso) e dividere tutti gli elementi tra quelli che hanno quel bit impostato e quelli che non lo hanno . Fallo per tutti i bit.Quindi, durante la ricerca, visiti la tabella giusta per ogni bit della query e in questo modo prendi tutti gli elementi per calcolare la distanza con la query (una volta cancellati i duplicati). – user823699
Tutto ciò prendendo in considerazione un'ottimizzazione ovvia, ovvero parlando di bit, sono 0 o 1, quindi non è necessario elencarli entrambi (cioè, se si elencano quelli che hanno il bit impostato, significa che tutti gli altri no). – user823699
Se i tuoi commenti rispondono alla tua stessa domanda, potresti postarli come risposta e accettarli (cosa che puoi fare, penso, dopo due giorni)? In questo modo le altre persone possono vedere il problema è risolto più facilmente ... –