Eine Datenstruktur für minimale Skalarproduktabfragen

19

Man betrachte das mit dem Standardpunktprodukt und Vektoren ausgestattet ist: . Wir wollen eine Datenstruktur aufzubauen , die Abfragen aus folgendem Format ermöglicht: Da Ausgang . Ist es möglich, die triviale -Abfragezeit zu überschreiten? Wenn zum Beispiel , ist es unmittelbar, zu erhalten .Rn,mv1,v2,,vmxRnminix,viO(nm)n=2O(log2m)

Das Einzige, was ich mir einfallen lassen kann, ist das Folgende. Es ist eine unmittelbare Konsequenz von Johnson-Lindenstrauss-Lemma, dass für jedes und eine Verteilung auf eine lineare Abbildung (die in ausgewertet werden kann ), so dass . Also können wir in der Zeit O ((n + m) \ log m) berechnenε>0DRnf:RnRO(logm)O(nlogm)PrxD[ix,viε(x+vi)2f(x),f(vi)x,vi+ε(x+vi)2]1εO((n+m)logm)etwas , das in gewisser Weise nahe an minix,vi für die meisten x (zumindest wenn die Normen x und vi klein sind).

UPD Die oben genannte Grenze kann zur Abfragezeit O (n + m) etwas geschärft werden, O(n+m)wenn wir ortsabhängiges Hashing verwenden. Genauer gesagt wählen wir k:=O(1ε2) unabhängige Gaußsche Vektoren r1,r2,,rk . Dann bilden wir Rn zu {0,1}k , wie folgt: v(r1,v0,r2,v0,,rk,v0) . Dann können wir den Winkel zwischen zwei Vektoren innerhalb eines additiven Fehlers \ varepsilon abschätzen,ε indem wir den 1 im Bild dieser Abbildung berechnen . Somit können wir Punktprodukte innerhalb eines additiven Fehlers schätzenεxviin O(1ε2) Zeit.


Ilyaraz
quelle
Ich bin nicht sicher, ob dies funktioniert oder hilft, aber Ihr Problem (nach dem Umschalten des Vorzeichens von v_i, um es in die Maximierung umzuwandeln) hängt mit Voronoi-Diagrammen zusammen. Möglicherweise können Algorithmen für Voronoi-Diagramme an dieses Problem angepasst werden, aber selbst wenn dies möglich ist, ist dies wahrscheinlich nur für kleine n nützlich.
Tsuyoshi Ito
Ich weiß nicht, ob dies die gleiche Beobachtung ist ... All kann zu einem Einheitsvektor normalisiert werden und ändert das Ergebnis nicht. Wir können alles in einem Einheits-n-Würfel tun, der im Ursprung zentriert ist. Finden Sie heraus, welche Region des Würfels das Skalarprodukt mit für jedes minimiert (jede Region muss ein Polytop sein). Ich bin nicht an die Anzahl der Polytope gebunden. Wenn es in weniger als exponentiell ist , haben Sie etwas Besseres als indem Sie eine n-dimensionale Punktortsabfrage durchführen. xviinmO(nm)
Chao Xu
Welchen Parameter interessieren Sie mehr? Wenn Sie in m sublinear werden wollen, werden Sie in der Regel in n exponentiell.
Suresh Venkat
@ Suresh Nun, es wäre schön, verschiedene mögliche Kompromisse zu verstehen. Die ungefähre Version ist auch interessant.
Ilyaraz
Kurzer Hinweis: Für den Fall n = 2 ergibt die binäre Suche in der konvexen Hülle die Abfragezeit . O(logn)
Geoffrey Irving

Antworten:

16

Betrachten Sie den Sonderfall, in dem Sie nur feststellen möchten, ob Ihr Abfragevektor zu einem Vektor in Ihrer vorverarbeiteten Sammlung orthogonal ist. (Das heißt, Sie möchten bestimmen, ob , wobei die diskutierten Vektoren nicht negative Koeffizienten haben.) Dieser Fall ist bereits sehr interessant.minix,vi=0

Angenommen, Sie können Abfragen in Zeit für einige beantworten , wobei Vorverarbeitung (die Polynomgrade sollten nicht von oder oder abhängen ).nO(1)m1δδ>0mO(1)nO(1)mnδ

In dem Papier „Ein neuer Algorithmus für die optimale 2-Constraint und ihre Auswirkungen“, bemerkte ich , dass eine solche Datenstruktur würden Sie tatsächlich erlauben in CNF-SAT zu lösen Zeit für einige , Dabei ist die Anzahl der Variablen. Dies würde die "Strong Exponential Time Hypothese" widerlegen, dass k-SAT im Wesentlichen Zeit für unbegrenztes .2αvα<1v2nk

Angenommen, die Vorverarbeitungszeit ist durch begrenzt, um zu sehen, warum . Betrachten Sie eine CNF-Formel mit Variablen und Klauseln. Wir teilen den Variablensatz in zwei Teile und der Größe bzw. . Listen Sie alle möglichen Zuordnungen zu den Variablen in den Teilen auf (erhalten Sie jeweils und Zuordnungen). Ordnen jede dieser Teilzuweisungen einem Bit-Vektor wobei wenn(nm)cFvnP1P2v(11/(2c))v/(2c)2v(11/(2c))2v/(2c)Ainwiwi[j]=1jDie Klausel von wird von nicht erfüllt . Wir haben also zwei Listen mit exponentiell vielen Bitvektoren.FAi

Beachten Sie, dass erfüllt ist, wenn es einen Vektor aus einer Zuweisung auf und einen Vektor aus einer Zuweisung auf so dass .Fw1P1w2P2w1,w2=0

Nun sei und verarbeite die angenommene Datenstruktur mit allen Vektoren aus Teil . Dies dauert nach Annahme. Führen Sie den Abfragealgorithmus für alle Vektoren aus Zuweisungen in Teil . Unter der Annahme, dass dies . Sei .m=2v/(2c)P2n2v/2P12v(11/(2c))nO(1)m1δ=nO(1)2vδv/(2c)α=1δ/(2c)

Vielleicht ist es möglich , eine effiziente Vorverarbeitung und erhalten Abfragezeit mit bestehenden Techniken. Die bekanntesten CNF-SAT-Algorithmen schließen dies nicht aus. (Sie erhalten so etwas wie .) Aber um zu berechnen etwas stärker - in diesem Setup wäre es wie das Lösen von MAX CNF-SAT.nO(1)m11/(loglogm)2nn/lognminix,vi

Ryan Williams
quelle
Genial! Aber es schließt ungefähre Datenstrukturen und Abfragezeiten wie , was ebenfalls sehr interessant wäre. O(mpoly(logn))
Ilyaraz
Können wir übrigens nicht so etwas sagen wie "Wenn es überhaupt eine ungefähre Datenstruktur mit schneller Abfragezeit gäbe, dann wäre MAX-SAT annähernd".
Ilyaraz
Warum gilt die im ersten Absatz angegebene Gleichwertigkeit? Ich denke, dass das innere Produkt im Allgemeinen negativ sein kann.
Tsuyoshi Ito
ilyaraz: Ja, selbst ungefähre Datenstrukturen würden ungefähr MAX-SAT implizieren. Tsuyoshi: Vielen Dank für Ihren Einblick
Ryan Williams
6

Hier ist eine Idee für die genaue Antwort, auf die Chao Xu anspielen könnte. Beachten Sie zunächst, dass wir genauso gut normalisieren können , wie Chao betont. Betrachten Sie nun die Hyperebene senkrecht zur Richtung . Ziel ist es, den Punkt zu finden, der dieser Hyperebene am nächsten liegt. Aus Gründen der Dualität entspricht dies einer Strahlenschießabfrage in einer Anordnung von Hyperebenen, um die nächstgelegene Ebene "über" dem Abfragepunkt zu finden. Da dies vorverarbeitet werden kann, ist die Hauptkomplexität die Punktlokalisierung. Daher wurde Ihr Problem auf die Komplexität der Punktlokalisierung in einer Anordnung von Hyperebenen reduziert. Mit Stecklingen kann dies in Zeit im Raum erfolgen.xhxO(logn)nd

Suresh Venkat
quelle
1
Ich hätte erwähnen sollen, dass ich auch an einer angemessenen Vorverarbeitungszeit interessiert bin, was hier nicht der Fall ist, wenn eine Dimension groß ist.
Ilyaraz