Schätzen eines Perzentils zwischen verteilten Knoten, ohne Werte preiszugeben


23

Ich habe ein ziemlich einzigartiges Problem zu lösen und hoffe, dass mir jemand hier einen Einblick geben kann, wie ich es am besten angehen kann.


Problem: Angenommen, eine Liste von N Nummern wird von einer Gruppe von Teilnehmern so geteilt, dass kein einzelner Teilnehmer tatsächlich eine der von ihnen geteilten Nummern kennt. Alle Teilnehmer kennen N (die Größe der Nummernliste) und die Summe aller Nummern auf der Liste, aber nicht mehr a priori.

Durch die Zusammenarbeit ist es möglich, zwei geteilte Zahlen a und b so zu vergleichen, dass die Teilnehmer erfahren, ob die Aussage "a <b" wahr ist, aber nicht mehr. Dies ist jedoch äußerst kostspielig (lesen Sie: Es kann viele Sekunden, vielleicht sogar Minuten dauern, bis ein einzelner Vergleich abgeschlossen ist). Weitere Informationen dazu, wie so etwas möglich ist, finden Sie am Ende dieses Beitrags.

Am Ende des Tages möchten die Parteien ausgeben, welche Indizes in der Liste den "Top-K-Prozent" (die K%, die am größten ist) der geteilten Nummern in der Liste entsprechen. Dies kann natürlich durch Sortieren oder unter Verwendung eines Auswahlalgorithmus "top K" erfolgen. Diese neigen jedoch dazu, sehr viele Vergleiche anzustellen, was vermieden werden sollte. (Dies sind entweder O (n log n) oder O (n) mit ziemlich großen versteckten Konstanten.)

Eine andere Alternative ist das "Erraten" einer Zahl X, für die (1-K)% kleiner als X und K% größer sind. Dann können Sie jedes Element mit X vergleichen und sehen, wie viele größer und wie viele kleiner sind. Wenn Ihre Vermutung falsch war, überarbeiten Sie sie mit einer binären Suche, bis Sie eine korrekte Lösung gefunden haben. Dies erfordert weitaus weniger Vergleiche, wenn Ihre Vermutung gut ist.

Also, meine Frage ist,

Was ist der beste Weg, um X "vorherzusagen", wenn man nur N und die Summe annimmt?

Dies hängt natürlich von der zugrunde liegenden Verteilung ab. Für verschiedene Anwendungsfälle ist die zugrunde liegende Verteilung wahrscheinlich unterschiedlich, sie ist jedoch bekannt. Daher bin ich an guten Lösungen für alle gängigen (normale, einheitliche, exponentielle, möglicherweise einige andere) interessiert. Ich würde auch gerne Vorschläge dazu hören, wie die "binärartige" Suche am besten durchgeführt werden kann, um die Anzahl der Schritte zu minimieren, wenn eine Annahme über die zugrunde liegende Verteilung getroffen wird.


ANHANG: Jeder Wert in der Liste wird unter den Teilnehmern unter Verwendung des geheimen Freigabeschemas von Shamir geteilt. Angenommen , es gibt M Teilnehmer und die Liste wird dann die Länge N, die i-te Nummer auf der Liste durch ein Polynom dargestellt wird vom Grad M-1 über ein endliches Feld F. Der konstante Term von f i die Zahl die geteilt, alle anderen Koeffizienten werden gleichmäßig zufällig aus F. der j-ten Teilnehmers Anteile werden dann gewählt , f i ( j ) , 1 i Nfichfichfich(j)1ichN. Bei diesem Anteil hat der Teilnehmer keine informationstheoretischen Informationen über die Anzahl; In der Tat kann keine richtige Teilmenge der Teilnehmer Wissen kombinieren, um Informationen über die gemeinsam genutzten Nummern zu erhalten. Mithilfe einer ausgeklügelten sicheren Mehrparteien-Berechnungstechnik kann jedoch festgestellt werden, ob ein gemeinsamer Wert kleiner als der andere ist, ohne dass weitere Informationen preisgegeben werden. Diese Technik beinhaltet, dass alle Teilnehmer zusammenarbeiten, weshalb es so kostspielig ist und so selten wie möglich durchgeführt werden sollte.


MMNNein<b

1
Da diese Frage eher algorithmisch als statistisch zu sein scheint (eine diesbezügliche Aufforderung zur Klärung wurde nicht beantwortet) und die Statistik-Community keine brauchbare Antwort angeboten hat, lassen Sie uns zu TCS migrieren, um festzustellen, ob dort Interesse besteht.
Whuber

6
Die eigentliche Frage scheint einfach die folgende zu sein: "Wenn wir die Verteilung kennen, wie können wir diese Informationen beim Entwurf eines vergleichsbasierten Auswahlalgorithmus nutzen ? Der Algorithmus sollte so wenige Vergleiche wie möglich verwenden (in Erwartung; die konstanten Faktoren) Angelegenheit)." Habe ich das richtig verstanden?
Jukka Suomela

2
Haben Sie über das Problem der Millionäre in Yao nachgedacht ? Es ermöglicht einen sicheren Vergleich mit viel weniger Berechnungen.
MS Dousti

3
(k,n) nk(n,n)k<<n
Massimo Cafaro

Antworten:


1

Sie scheinen zwei verwandte Fragen zu stellen:

  1. "Welche Indizes in der Liste entsprechen den oberen"
  2. "Schätzen eines Perzentils", "eine Zahl X, für die ... K% größer sind"

Diese erfordern möglicherweise eine sehr unterschiedliche Anzahl paarweiser Vergleiche.

Ein weiterer Aspekt, der erhebliche Auswirkungen haben kann, ist die Weitergabe von Informationen. Jeder kennt die Zahl, die er erhalten hat, kennt die Summe und die Ja / Nein-Ergebnisse der Vergleiche, an denen er teilgenommen hat. Sie sagen jedoch auch, dass „die Parteien ausgeben möchten, welche Indizes in der Liste den höchsten entsprechen“, so schlagen Sie vor dass einige Informationen über die Indizes geteilt werden. Je nachdem, was genau geteilt wird, erhalten Sie möglicherweise wieder sehr unterschiedliche Lösungen.


Entschuldigung, ich muss nicht klar genug gewesen sein. Niemand kennt eine einzelne Nummer auf der Liste; Stattdessen haben sie jeweils eine Liste von N "Teilen von Zahlen" (unter Verwendung von Shamirs geheimem Freigabeschema, wenn Sie mit den Konzepten von Teilen einer Zahl nicht vertraut sind). Die einzige a priori Information, die jeder einzelne Teilnehmer hat, ist N und die Summe aller Zahlen in der Liste. Sie haben jeweils ein bisschen Information über jede Nummer, aber nicht genug Information, um zu wissen, was diese Nummer ist.

In Bezug auf die beiden verwandten Fragen impliziert die zweite Frage eine effiziente Lösung für die erste. Wenn ich X mit wenigen Vergleichen finden kann (was ich tun kann, wenn ich eine einigermaßen gute anfängliche Vermutung anstellen kann), dann finde ich die Indizes aller Werte, die größer als X sind, mit nur N mehr Vergleichen (diese Vergleiche sind auch billiger, da Wenn Sie X anstelle eines Anteils von X kennen, reduzieren Sie die Kosten für einen Vergleich um etwa ein Drittel.) Allzweckalgorithmen zum Ermitteln der Top-K verwenden in der Regel weitaus mehr Vergleiche für große Listengrößen, vorausgesetzt, Sie können X mit ~ log ( X) Vergleiche

Vielen Dank für die Kommentarantworten und den Anhang zur ursprünglichen Frage. Jetzt sieht das Problem anders aus.
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.