Finden Sie einen ungefähren Argmax, indem Sie nur ungefähre maximale Abfragen verwenden


10

Betrachten Sie das folgende Problem.

nv1,,vnRS{1,,n}maxiSvi

Dieses Problem ist einfach: Wir können die binäre Suche verwenden, um den Argmax mit -Abfragen zu finden . dh Erstellen Sie einen vollständigen Binärbaum mit Blättern, die den Indizes entsprechen. Beginnen Sie an der Wurzel und gehen Sie wie folgt zu einem Blatt hinunter. Fragen Sie an jedem Knoten den Maximalwert in den rechten und linken Teilbäumen ab und wechseln Sie dann zu dem untergeordneten Element mit der größeren Antwort. Wenn Sie ein Blatt erreicht haben, geben Sie dessen Index aus.O(logn)n

Die folgende verrauschte Version dieses Problems ist in meiner Forschung aufgetaucht.

Es gibt unbekannte Werte . Auf diese kann mit Abfragen zugegriffen werden, in denen eine Menge angegeben und ein Beispiel aus zurückgegeben wird. Das Ziel ist es, so zu identifizieren dass mit so wenig Abfragen wie möglich. (Die Erwartung liegt über der Wahl von , was sowohl von den Münzen des Algorithmus als auch von den verrauschten Abfrageantworten abhängt.)nv1,,vnS{1,,n}N(maxiSvi,1)i{1,,n}E[vi]maxivi1i

Angenommen, wir versuchen, dies mit derselben binären Suchstrategie wie zuvor zu lösen (jedoch mit verrauschten Antworten). Es ist ziemlich einfach zu zeigen, dass dies und dass dies im schlimmsten Fall eng ist. Wir können den Fehler auf die gewünschte reduzieren, indem wir jede Abfrage Mal wiederholen und den Durchschnitt verwenden (der die Varianz verringert ). Dies ergibt einen Algorithmus, der Abfragen verwendet.E[vi]maxiviO(logn)1O(log2n)O(log3n)

Gibt es einen besseren Algorithmus? Ich vermute, dass Abfragen ausreichen. Und ich glaube, ich kann eine Untergrenze von beweisen . Außerdem wird das Problem einfach - dh -Anfragen über die binäre Suche - unter dem Versprechen, dass zwischen dem größten Wert und dem zweitgrößten Wert eine -Lücke besteht. Wenn es hilft, können Sie davon ausgehen, dass alle Werte zwischen und .O(log2n)Ω(log2n)O~(logn)Ω(1)0O(logn)


Was ist mit einer binären Suche, bei der auf jeder Ebene O (log n) Abfragepaare (eines für das Maximum der linken Seite, eines für das Maximum der rechten Seite) erstellt werden und aufgezeichnet wird, wer gewinnt? Nach O (log n) -Runden fährt der Algorithmus dann rekursiv auf der Seite fort, die am häufigsten "gewonnen" hat. Eine kurze Berechnung in meinem Kopf schien darauf hinzudeuten, dass dies mit der Wahrscheinlichkeit in der Einstellung funktionierte, in der ein Eingang und alle anderen ... ich könnte jedoch weit davon entfernt sein. 11/nc20
Daniello

@daniello Das funktioniert, wenn zwischen dem größten und dem zweitgrößten Wert eine Lücke besteht. Der allgemeine Fall scheint jedoch schwieriger zu sein.
Thomas

Notiz an
mich

Antworten:


1

Erweiterter Kommentar einer oder zweier Ideen zu einer Untergrenze. Sagen wir (obwohl die beste Wahl unterschiedlich sein kann) und lassen Sie . Ziehen Sie in Betracht, die Eingabe zu zeichnen, indem Sie eine Permutation dieser Werte gleichmäßig zufällig auswählen.B=Θ(logn){v1,,vn}={1nB,,n1nB,B}

Die Idee sollte sein, dass wir, wenn wir die Indizes aller Werte mit Ausnahme der Werte und festlegen, in der Lage sein sollten, den Unterschied in der Wahrscheinlichkeit des Algorithmus zu zeigen, einen gegenüber dem anderen auszuwählen sehr klein: Der Variationsabstand zwischen den Ergebnissen der Abfragen der Algorithmen ist angesichts der 50-50-Verteilung bei der Zuordnung dieser Werte zu den beiden verfügbaren Indizes und den Ergebnissen einer beliebigen Folge von Abfragen sehr gering.Bn1nB

Dieses Argument gilt für jedes Paar benachbarter Werte, sodass wir eine Reihe von Einschränkungen für die Wahrscheinlichkeit erhalten, mit der der Algorithmus die höchsten, zweithöchsten ... Werte auswählt. Dies ergibt eine obere auf dem erwarteten Wert des Algorithmus gebunden, so dass wir das obere gebunden zu setzen und sehen , was die Anzahl der Abfragen sein.B1

Ich konnte mit dem obigen Ansatz noch nicht verbessern , aber ich denke, Sie erhalten möglicherweise wenn Sie die Tatsache nutzen können, dass Abfragen nicht bei mehreren Schritten gleichzeitig helfen können. Wenn sich eine Abfrage ändert, wenn wir den höchsten Wert in einen anderen Index verschieben, ändert sich dies eines Tages nicht, wenn wir einen anderen Wert in einen anderen Index verschieben.logn(logn)2

Der differenzielle Datenschutz kann für einen dieser Schritte hilfreich sein. Wenn wir beispielsweise nur an den Fall denken, in dem wir die Position der beiden höchsten Werte vertauschen, ist die "Empfindlichkeit" dieser Abfrage nur und wird dann erweitert Komposition könnte hilfreich sein.Bn

Tut mir leid, das ist halbgebacken, aber ich hoffe, es kann nützlich sein!


Ich habe eigentlich nicht viel über Untergrenzen nachgedacht, da ich auf eine Obergrenze hoffe. :) gilt auch im geräuschlosen Fall. Ich denke, wir sollten in der Lage sein, eine Untergrenze von zu beweisen . Ω(logn)Ω(log2n)
Thomas

OKAY. Ich habe eine Skizze einer Untergrenze von , aber sie ist etwas kompliziert. Ω(log2n)
Thomas
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.