Değerleri açığa çıkarmadan dağıtılmış düğümler arasında bir yüzdelik tahmini


23

Çözmem gereken oldukça benzersiz bir problemim var ve burada birinin nasıl en iyi şekilde mücadele edebileceği konusunda bana biraz fikir verebileceğini umuyorum.


Sorun: N sayısının bir listesinin, hiçbir katılımcının paylaştığı sayıları bilmeyeceği şekilde, bir dizi katılımcı arasında paylaşıldığını varsayalım. Tüm katılımcılar N (sayı listesinin boyutu) ve listedeki tüm sayıların toplamını bilir, fakat daha önce hiçbir şey ifade etmez.

Birlikte çalışarak, a ve b paylaşılan iki sayısının, katılımcıların "a <b" ifadesinin doğru olup olmadığını öğreneceklerini, başka bir şey olmadığını öğrenebilecekleri şekilde karşılaştırmak mümkündür. Ancak, bu yapılması çok pahalı bir şeydir (okuma: tek bir karşılaştırmayı tamamlamak için birkaç saniye, hatta belki de dakikalar sürebilir). Böyle bir şeyin nasıl mümkün olabileceği hakkında daha fazla bilgi için bu yazının sonuna bakın.

Günün sonunda, taraflar listedeki hangi endekslerin "yüzde üst K" (en büyük yüzde K) listesindeki paylaşılan sayılara karşılık geldiğini göstermek ister. Elbette bu, sıralama yaparak veya "üst K" seçim algoritmasını kullanarak yapılabilir. Bununla birlikte, bunlar kaçınılması gereken çok sayıda kıyaslama kullanma eğilimindedir. (Bunlar oldukça büyük gizli sabitleri olan O (n log n) veya O (n) 'dir.)

Diğer bir alternatif, (1-K)% 'in X'ten daha küçük ve% K'nin daha büyük olduğu bir X sayısında "tahmin etmektir". Sonra, her bir elemanı X ile karşılaştırabilir ve kaç tanesinin daha büyük ve kaç tanesinin küçük olduğunu görebilirsiniz. Tahmininiz yanlışsa, doğru bir çözüm elde edene kadar ikili arama gibi bir şey kullanarak düzeltin. Bu, tahmininiz iyi ise, çok daha az karşılaştırma gerektirir.

Yani benim sorum

Yalnızca N ve toplamı göz önüne alındığında, X'i "tahmin etmenin" en iyi yolu nedir?

Elbette bu, altta yatan dağılıma bağlı olacaktır. Farklı kullanım durumları için altta yatan dağılım muhtemelen farklı olacaktır ancak bilinecektir, bu yüzden tüm yaygın olanlar için iyi çözümler ile ilgileniyorum (normal, tek tip, üstel, belki de birkaçı). Ayrıca, altta yatan dağıtımla ilgili bir varsayım verilen adım sayısını en aza indirmek için "ikili benzeri" aramanın en iyi nasıl yapılacağına ilişkin önerileri duymayı çok isterim.


EK: Listedeki her değer, Shamir'in gizli paylaşım şemasını kullanarak katılımcılar arasında paylaşılmaktadır. Varsayalım M katılımcı ve listenin i-inci sayı polinom ile temsil edilir, sonra uzunluk N'ye ait F sabit terimi sonlu bir alan üzerinde derecesi M-1 olan sayıdır paylaşılan, diğer tüm katsayılar F'den rasgele seçilmektedir. J-inci katılımcının hisseleri ,f i f i ( j ) 1 i Nfbenfbenfben(j)1benN-. Bu pay göz önüne alındığında, katılımcının sayı hakkında bilgisi yoktur (bilgi teorik anlamda); Aslında, uygun bir katılımcı alt grubu, paylaşılan sayılar hakkında herhangi bir bilgi edinmek için bilgiyi birleştiremez. Bununla birlikte, sofistike bir güvenli çok partili hesaplama tekniği kullanarak, daha fazla bilgi açığa çıkmadan paylaşılan bir değerin diğerinden daha düşük olup olmadığını belirlemek mümkündür. Bu teknik işbirliği yapan tüm katılımcıları kapsar, bu yüzden mümkün olan en az sayıda yapılması ve yapılması çok maliyetlidir.


Kulağa ilginç geliyor, ancak henüz süreci tam olarak anlamadım. Özellikle ikinci paragrafı açıklayabilir misiniz? Kaç katılımcı ? Mi den daha büyük, daha az ya da ona eşit , N ? Her katılımcı bir miktar alt grup biliyor mu? Açıkçası hepsi olamaz sadece bilmek N ardından bir bakıma hakkında böyle bilgilerini toplar herhangi bir soru veya işbirliği tesis sormak için bir yolu yoktur çünkü ve toplamı bir < b . Sorulabilecek soru türleriyle ilgili kısıtlamalar var mı? Düzenlemenizi sabırsızlıkla bekliyorum. MMMN-N-bir<b

1
Bu soru istatistikten daha algoritmik göründüğü için (bu konudaki açıklama talebi cevap vermedi) ve istatistik topluluğunun uygun bir cevap sunmadığı için, burada ilgi duyup duymadığını görmek için TCS'ye geçelim.
whuber

6
Asıl soru basitçe şöyle görünüyor: "Dağılımı biliyorsak, karşılaştırma tabanlı bir seçim algoritması tasarımında bu bilgiden nasıl faydalanabiliriz ? Algoritma mümkün olduğu kadar az karşılaştırma kullanmalıdır (beklenti içinde; sabit faktörler; ) matter." Bunu doğru anladın mı?
Jukka Suomela

2
Yao'nun Milyonerlerin Sorununu düşündün mü ? Çok daha az hesaplama ile güvenli bir karşılaştırma sağlar .
MS Dousti

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

Yanıtlar:


1

İki ilgili soru soruyorsun:

  1. “Listedeki hangi endeksler üste denk geliyor”
  2. “Yüzdelik tahmini”, “X sayısı…% K daha büyük”

Bunlar, çok sayıda farklı ikili karşılaştırmalar gerektirebilir.

Önemli etkiye sahip olabilecek diğer bir husus, hangi bilgilerin paylaşıldığıdır. Herkes aldığı numarayı biliyor, toplamı ve içinde yer aldığı karşılaştırmaların evet / hayır sonuçlarını biliyor. Ancak, “taraflar listedeki hangi endekslerin en üste karşılık geldiğini göstermek istediğini” diyorsunuz. endekslerle ilgili bazı bilgilerin paylaşılacağını Tam olarak neyin paylaşıldığına bağlı olarak, yine çok farklı çözümler alabilirsiniz.


Üzgünüm, yeterince açık olmamalıydım. Listede hiç kimse tek bir numara bilmiyor; bunun yerine, her birinin N "sayı payı" nın bir listesi vardır (eğer bir sayıdaki payların kavramlarına aşina değilseniz, Shamir'in Gizli Paylaşım şemasını kullanarak). Bu nedenle, herhangi bir katılımcının sahip olduğu priori bilgi sadece N ve listedeki tüm sayıların toplamıdır. Her biri, her bir numara hakkında biraz bilgi sahibidir, ancak bu numaraların ne olduğunu bilecek kadar bilgi yoktur.

İlişkili iki soruya gelince, ikinci soru birincisine etkili bir çözüm anlamına gelir. Eğer birkaç karşılaştırmayı kullanarak X'i bulabilirsem (eğer oldukça iyi bir başlangıç ​​tahminde bulunabilirsem bunu yapabilirim), o zaman N'den daha fazla karşılaştırma kullanarak tüm değerlerin indekslerini X'den daha büyük buluyorum (bu karşılaştırmalar daha ucuz, çünkü X payına sahip olmak yerine X'i bilmek, karşılaştırmanın maliyetini yaklaşık 1/3 oranında düşürür.) Top K'yı bulmak için genel amaçlı algoritmalar, tipik olarak ~ log (x) kullanarak X bulabildiğimi varsayarak, büyük liste boyutları için çok daha fazla karşılaştırma kullanır. X) karşılaştırmalar

Yorum cevapları ve orjinal sorunun ekleri için teşekkürler. Şimdi sorun farklı görünüyor.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.