Considera equipaggiato con il prodotto dot standard e vettori lì: . Vogliamo costruire una struttura di dati che consenta query del seguente formato: dato output . È possibile andare oltre il banale tempo di query O (nm) ? Ad esempio, se n = 2 , è immediato ottenere O (\ log ^ 2 m) .R nRn ⟨⋅,⋅⟩⟨⋅,⋅⟩mm v 1 , v 2 ,..., v mv1,v2,…,vm x∈ R n x∈Rnmin i ⟨x, v i ⟩mini⟨x,vi⟩ O ( n m )O(nm) n=2n=2O( login 2 m)O(log2m)
L'unica cosa che mi viene in mente è la seguente. È una conseguenza immediata del lemma di Johnson-Lindenstrauss che per ogni ε > 0ε>0 e una distribuzione DD su R nRn esiste una mappatura lineare f : R n → R O ( log m )f:Rn→RO(logm) (che può essere valutato in tempo O ( n log m )O(nlogm) ) in modo tale che P r x ∼ D [ ∀ i⟨ X , v i ⟩ - ε ( ‖ x ‖ + ‖ v i ‖ ) 2 ≤ ⟨ f ( x ) , f ( v i ) ⟩ ≤ ⟨ x , v i ⟩ + ε ( ‖ x ‖ + ‖ v i ‖ ) 2 ] ≥ 1 - εPrx∼D[∀i⟨x,vi⟩−ε(∥x∥+∥vi∥)2≤⟨f(x),f(vi)⟩≤⟨x,vi⟩+ε(∥x∥+∥vi∥)2]≥1−ε . Quindi, nel tempo O ( ( n + m ) log m )O((n+m)logm) possiamo calcolarequalcosa che è in un certo senso vicino a min i ⟨ x , v i ⟩mini⟨x,vi⟩ per la maggior parte delle Xx (almeno se le norme ‖ X ‖∥x∥ e ‖ V i ‖∥vi∥ sono piccole).
UPD Il limite sopra menzionato può essere in qualche modo affilato al tempo di query O ( n + m )O(n+m) se utilizziamo l'hash sensibile alla località. Più precisamente, scegliamo k : = O ( 1ε 2 )k:=O(1ε2) vettori gaussiani indipendenti r 1 , r 2 , … , r kr1,r2,…,rk . Quindi R nRn su { 0 , 1 } k{0,1}k come segue: v↦(⟨r1,v⟩≥0,⟨r2,v⟩≥0,…,⟨rk,v⟩≥0)v↦(⟨r1,v⟩≥0,⟨r2,v⟩≥0,…,⟨rk,v⟩≥0) . Quindi possiamo stimare l'angolo tra due vettori all'interno di un errore additivo εε calcolando ℓ1ℓ1 nell'immagine di questa mappatura. Pertanto, possiamo stimare i prodotti a punti all'interno di un errore additivoε‖x‖‖vi‖ε∥x∥∥vi∥nel tempo O(1ε2)O(1ε2) .