Une structure de données pour les requêtes minimales sur les produits scalaires


19

Considérez équipé du produit scalaire standard et vecteurs: . Nous voulons construire une structure de données qui autorise les requêtes au format suivant: étant donné output . Est-il possible d'aller au-delà du temps de requête O (nm) trivial ? Par exemple, si n = 2 , alors il est immédiat d'obtenir O (\ log ^ 2 m) .R nRn,,mm v 1 , v 2 ,..., v mv1,v2,,vm x R n xRnmin ix, v iminix,vi O ( n m )O(nm) n=2n=2O( connecte 2 m)O(log2m)

La seule chose que je peux trouver est la suivante. C'est une conséquence immédiate du lemme de Johnson-Lindenstrauss que pour chaque ε > 0ε>0 et une distribution D sur R nRn il y a un mappage linéaire f : R nR O ( log m )f:RnRO(logm) (qui peut être évalué en O ( n log m )O(nlogm) temps) de telle sorte que P r x D [iX , v i- ε ( x + v i) 2f ( x ) , f ( v i ) x , v i+ ε ( x + v i) 2 ]1 - εPrxD[ix,viε(x+vi)2f(x),f(vi)x,vi+ε(x+vi)2]1ε . Donc, dans le temps O ( ( n + m ) log m )O((n+m)logm) nous pouvons calculerquelque chose qui est en quelque sorte proche de min ix , v iminix,vi pour la plupart des Xx (au moins si les normes X x et V ivi sont petites).

UPD La limite susmentionnée peut être quelque peu affinée au temps de requête O ( n + m )O(n+m) si nous utilisons un hachage sensible à la localité. Plus précisément, nous choisissons k : = O ( 1ε 2 )k:=O(1ε2) des vecteurs gaussiens indépendants r 1 , r 2 , , r kr1,r2,,rk . Ensuite, nous mappons R nRn à { 0 , 1 } k{0,1}k comme suit: v ( r 1 , v 0 , r 2 , v 0 , ... , r k , v 0 )v(r1,v0,r2,v0,,rk,v0) . On peut alors estimer l'angle entre deux vecteurs au sein d'une erreur additive εε en calculant 11 -distance dans l'image de cette cartographie. Ainsi, nous pouvons estimer les produits scalaires au sein d'une erreur additiveε x v iεxvien temps O ( 1ε 2 )O(1ε2) .



Je ne sais pas si cela fonctionne ou aide, mais votre problème (après avoir changé le signe de v_i pour convertir en maximisation) semble lié aux diagrammes de Voronoi. Il peut être possible de modifier les algorithmes pour les diagrammes de Voronoi à ce problème, mais même si c'est possible, il ne sera probablement utile que pour les petits n.
Tsuyoshi Ito

Je ne sais pas si c'est la même observation ... Tout peut être normalisé en un vecteur unitaire et ne change pas le résultat, on peut tout faire dans un n-cube unitaire centré à l'origine. Trouvez quelle région du cube minimise le produit scalaire avec pour chaque (chaque région doit être un polytope). Je n'ai pas de limite sur le nombre de polytopes. S'il est inférieur à exponentiel en , vous avez quelque chose de mieux que en effectuant une requête de localisation de point à n dimensions. x v i i n m O ( n m )xviinmO(nm)
Chao Xu

de quel paramètre vous souciez-vous le plus? habituellement, si vous voulez devenir sublinéaire en m, vous allez commencer à obtenir une exponentielle en n.
Suresh Venkat

@Suresh Eh bien, ce serait bien de comprendre les différents compromis possibles. La version approximative est également intéressante.
ilyaraz

Note rapide: pour le cas n = 2, la recherche binaire sur la coque convexe donne le temps de requête . O ( log n )O(logn)
Geoffrey Irving

Réponses:


16

Considérez le cas spécial où vous voulez simplement déterminer si votre vecteur de requête est orthogonal à un vecteur de votre collection prétraité. (Autrement dit, vous voulez déterminer si , où les vecteurs en discussion ont des coefficients non négatifs.) Ce cas est déjà très intéressant.min ix , v i = 0minix,vi=0

Supposons que vous puissiez répondre aux requêtes en temps pour un certain , avec prétraitement (le les degrés du polynôme ne devraient pas dépendre de ou ou ).n O ( 1 ) m 1 - δ δ > 0 m O ( 1 ) n O ( 1 ) m n δnO(1)m1δδ>0mO(1)nO(1)mnδ

Dans l'article "Un nouvel algorithme pour une satisfaction optimale des contraintes 2 et ses implications", j'ai observé qu'une telle structure de données vous permettrait en fait de résoudre CNF-SAT en temps pour un certain , où est le nombre de variables. Cela réfuterait la "forte hypothèse exponentielle temporelle" selon laquelle k-SAT nécessite essentiellement temps pour non borné .2 α v α < 1 v 2 n k2αvα<1v2nk

Pour voir pourquoi, supposons que le temps de prétraitement est limité par . Considérons une formule CNF avec variables et clauses. Nous divisons l'ensemble de variables en deux parties et de taille et , respectivement. Répertoriez toutes les affectations possibles aux variables dans les parties (obtention des affectations et , respectivement). Associez chacune de ces affectations partielles à un vecteur à bits où si(nm)c(nm)cFFvvnnP1P1P2P2v(11/(2c))v(11/(2c))v/(2c)v/(2c)2v(11/(2c))2v(11/(2c))2v/(2c)2v/(2c)AiAinnwiwiwi[j]=1wi[j]=1jjLa clause de n'est pas satisfaite par . Nous avons donc deux listes de vecteurs de bits exponentiellement nombreux.FFAiAi

Notez que est satisfiable si il existe un vecteur d'une affectation sur et un vecteur d'une affectation sur tel que .FFw1w1P1P1w2w2P2P2w1,w2=0w1,w2=0

Soit maintenant , et prétraitez la structure de données supposée avec tous les vecteurs de la partie . Cela prend temps, par hypothèse. Exécutez l'algorithme de requête sur tous les vecteurs à partir des affectations de la pièce . Par hypothèse, cela prend . Soit .m=2v/(2c)m=2v/(2c)P2P2n2v/2n2v/2P12v(11/(2c))nO(1)m1δ=nO(1)2vδv/(2c)α=1δ/(2c)

Il est peut-être possible d'obtenir un prétraitement efficace et un temps de requête avec les techniques existantes. Les algorithmes CNF-SAT les plus connus ne l'excluent pas. (Ils obtiennent quelque chose comme .) Mais pour calculer est légèrement plus fort - dans cette configuration, ce serait comme résoudre MAX CNF-SAT.nO(1)m11/(loglogm)2nn/lognminix,vi


Impressionnant! Mais cela n'exclut pas les structures de données approximatives ainsi que les temps de requête comme , ce qui serait également très intéressant. O(mpoly(logn))
ilyaraz

Soit dit en passant, ne pouvons-nous pas dire quelque chose comme "s'il y avait même une structure de données approximative avec un temps de requête rapide, alors MAX-SAT serait approximable".
ilyaraz

Pourquoi l'équivalence énoncée au premier paragraphe est-elle valable? Je pense que le produit intérieur peut être négatif en général.
Tsuyoshi Ito

ilyaraz: Oui, même des structures de données approximatives impliqueraient approximativement MAX-SAT. Tsuyoshi: Merci pour votre perspicacité
Ryan Williams

6

Voici une idée de la réponse exacte à laquelle je pense que Chao Xu pourrait faire allusion. Observons tout d'abord que nous pourrions aussi bien normaliser , comme le souligne Chao. Considérons maintenant l'hyperplan normal à la direction . Le but est de trouver le point le plus proche de cet hyperplan. Par dualité, cela correspond à une requête de tir de rayon dans un arrangement d'hyperplans pour trouver le plan le plus proche "au-dessus" du point de requête. Étant donné que cela peut être prétraité, la principale complexité est l'emplacement du point, et donc votre problème a maintenant été réduit à la complexité de la localisation du point dans une disposition d'hyperplans. En utilisant des boutures, cela peut être fait en temps dans l' espace .xhxO(logn)nd


1
J'aurais dû mentionner que je suis également intéressé par un temps de prétraitement raisonnable qui n'est pas le cas ici si une dimension est plus grande.
ilyaraz
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.