Rn⟨⋅,⋅⟩mv1,v2,…,vmx∈Rnmin i ⟨ x , v i ⟩ mini⟨x,vi⟩O ( n m )O(nm) n = 2 n=2O ( conecto 2 m )O(log2m)
Lo único que se me ocurre es lo siguiente. Es una consecuencia inmediata del lema de Johnson-Lindenstrauss que por cada y una distribución \ mathcal {D} en \ mathbb {R} ^ n hay un mapeo lineal f \ colon \ mathbb {R} ^ n \ to \ mathbb {R} ^ {O (\ log m)} (que puede evaluarse en tiempo O (n \ log m) ) de modo que \ mathrm {Pr} _ {x \ sim \ mathcal {D}} \ left [ \ forall i \ quad \ langle x, v_i \ rangle - \ varepsilon (\ | x \ | + \ | v_i \ |) ^ 2 \ leq \ langle f (x), f (v_i) \ rangle \ leq \ langle x , v_i \ rangle + \ varepsilon (\ | x \ | + \ | v_i \ |) ^ 2 \ right] \ geq 1 - \ varepsilon . Entonces, en el tiempo O ((n + m) \ log m) podemos calcularε > 0 ε>0D DR nRn f : R n → R O ( log m )f:Rn→RO(logm)O ( n log m ) O(nlogm)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 - ε O ( ( nPrx∼D[∀i⟨x,vi⟩−ε(∥x∥+∥vi∥)2≤⟨f(x),f(vi)⟩≤⟨x,vi⟩+ε(∥x∥+∥vi∥)2]≥1−ε+ m ) log m )O((n+m)logm)algo que en cierto sentido está cerca de min i ⟨ x , v i ⟩mini⟨x,vi⟩ para la mayoría de las Xx '(al menos si las normas ‖ X ‖∥x∥ y ‖ V i ‖∥vi∥ son pequeñas).
UPD El límite mencionado anteriormente se puede agudizar un poco al tiempo de consulta O ( n + m )O ( n + m ) si usamos hashing local. Más precisamente, elegimos k : = O ( 1ε 2 )k : = O ( 1ε2) vectores gaussianos independientes r 1 , r 2 , … , r kr1, r2, ... , rk . Luego asignamos R nRnorte a { 0 , 1 } k{ 0 , 1 }k siguiente manera: v ↦ ( ⟨ r 1 , v ⟩ ≥ 0 , ⟨ r 2 , v ⟩ ≥ 0 , ... , ⟨ r k , v ⟩ ≥ 0 )v ↦ ( ⟨ r1,v⟩≥0,⟨r2,v⟩≥0,…,⟨rk,v⟩≥0) . Luego podemos estimar el ángulo entre dos vectores dentro de un error aditivo εε calculando ℓ 1ℓ1 -distancia en la imagen de este mapeo. Por lo tanto, podemos estimar productos puntuales dentro de un error aditivoε ‖ x ‖ ‖ v i ‖ε∥x∥∥vi∥en O ( 1ε 2 )O(1ε2) tiempo.
Respuestas:
Considere el caso especial en el que solo desea determinar si su vector de consulta es ortogonal a algún vector en su colección preprocesada. (Es decir, desea determinar si , donde los vectores en discusión tienen coeficientes no negativos). Este caso ya es muy interesante.mini⟨x,vi⟩=0mini⟨x,vi⟩=0
Suponga que puede responder consultas en tiempo durante algún , con preprocesamiento (el Los grados del polinomio no deberían depender de o o ).nO(1)m1−δnO(1)m1−δ δ>0δ>0 mO(1)nO(1)mO(1)nO(1) mm nn δδ
En el documento "Un nuevo algoritmo para la satisfacción óptima de 2 restricciones y sus implicaciones", observé que dicha estructura de datos realmente le permitiría resolver CNF-SAT en por algún tiempo , donde es el número de variables. Esto refutaría la "hipótesis del tiempo exponencial fuerte" que k-SAT requiere esencialmente tiempo para ilimitado .2αv2αv α<1α<1 vv 2n2n kk
Para ver por qué, suponga que el tiempo de preprocesamiento está limitado por . Considere una fórmula CNF con variables y cláusulas. Dividimos el conjunto de variables en dos partes y de tamaño y , respectivamente. Enumere todas las asignaciones posibles a las variables en las partes (obteniendo y asignaciones, respectivamente). Asociar cada una de estas asignaciones parciales con una( n m ) c F v n P 1 P 2 v ( 1 - 1 / ( 2 c ) ) v / ( 2 c ) 2 v ( 1 - 1 / ( 2 c ) ) 2 v / ( 2 c ) A i norte(nm)c F v n P1 P2 v(1−1/(2c)) v/(2c) 2v(1−1/(2c)) 2v/(2c) Ai n vector de bits w i donde w i [ jwi ] = 1 si lacláusula j ésima de F no es satisfecha por A i . Entonces tenemos dos listas de exponencialmente muchos vectores de bits.wi[j]=1 j F Ai
Tenga en cuenta que F es si y sólo si satisfiable existe un vector w 1 de una misión en P 1 y un vector w 2 de una misión en P 2 de tal manera que ⟨ w 1 , w 2 ⟩ = 0 .F w1 P1 w2 P2 ⟨w1,w2⟩=0
Ahora dejemos que m = 2 v / ( 2 c ) , y preprocese la estructura de datos supuesta con todos los vectores de la parte P 2 . Esto toma n 2 v / 2 tiempo, por supuesto. Ejecute el algoritmo de consulta en todos los vectores desde las asignaciones de la parte P 1 . Suponiendo que esto toma 2 v ( 1 - 1 / ( 2 c ) ) ⋅ n O ( 1 ) m 1 - δ = nm=2v/(2c) P2 n2v/2 P1 O ( 1 ) 2 v - δ v / ( 2 c ) . Seaα=1-δ / (2c).2v(1−1/(2c))⋅nO(1)m1−δ=nO(1)2v−δv/(2c) α=1−δ/(2c)
Quizás sea posible obtener un preprocesamiento eficiente y n O ( 1 ) m 1 - 1 / ( log log m ) tiempo de consulta con las técnicas existentes. Los algoritmos CNF-SAT más conocidos no lo descartan. (Consiguen algo así como 2 n - n / log n ). Pero para calcular min i ⟨ x , v i ⟩ es ligeramente más fuerte - en esta configuración, sería como resolver MAX CNF-SAT.nO(1)m1−1/(loglogm) 2n−n/logn mini⟨x,vi⟩
fuente
Aquí hay una idea para la respuesta exacta, que sospecho que Chao Xu podría estar aludiendo. En primer lugar, observe que también podríamos normalizar x , como señala Chao. Ahora considere el hiperplano h normal a la dirección x . El objetivo es encontrar el punto más cercano a este hiperplano. Por dualidad, esto corresponde a una consulta de disparo de rayos en una disposición de hiperplanos para encontrar el plano más cercano "encima" del punto de consulta. Como esto puede ser preprocesado, la complejidad principal es la ubicación del punto, por lo que su problema ahora se ha reducido a la complejidad de hacer la ubicación del punto en una disposición de hiperplanos. Usando esquejes, esto se puede hacer en tiempo O ( log n ) en n dx h x O(logn) nd espacio.
fuente