Polinom Zamanında Ortalama Tahmini


20

Let bir fonksiyonu olabilir Bu ortalama tahmin etmek istiyorum. anlamındadır: .f E [ f ( n ) ] = 2 - nx { 0 , 1 } n f ( x )f:{0,1}n(2-n,1]fE[f(n)]=2-nΣx{0,1}nf(x)

NOTE: In the OP, the range of f was [0,1]. I changed this a bit for technical reasons. (This should simplify the problem; if not, forget it!)

Let (randomize) tahmin algoritması olabilir. kara kutu erişimi olduğunu varsayın . Bunu .E f E fEEfEf

İki koşul vardır:

1) Tahmincinin çalışma süresi: Tüm ve tümü , nin çalışma süresi ile sınırlanacak şekilde tek bir polinom vardır. .n f E f ( 1 n ) p ( n )p()nfEf(1n)p(n)E[f(n)]

2) Tahmincinin güven ile hassasiyeti :δ Tek bir polinom , öyle ki tüm ve tüm için olasılıkla en az .n f 1q()nfδ1q(n)<Ef(1n)E[f(n)]<q(n)δ

NOTE: The confidence δ was not in the OP. The parameter δ is in (0,1), and may depend on n. For instance, it may be 1-1/2^n.

Bu tahminciler var mı?

Arka Plan ve Motivasyon

Başlangıçta motivasyonumdan bahsetmedim çünkü çok fazla arka plan bilgisi gerektiriyor. Her neyse, meraklılar için kısaca açıklıyorum: Bu tür tahmincilere duyulan ihtiyaç, aşağıdaki makalede tanımlandığı gibi "Yetenek Kanıtı" bağlamında ortaya çıkıyor:

Mihir Bellare, Oded Goldreich. Hesaplamalı Yeteneklerin Kanıtlanması , 1992. Yayınlanmamış Makale.

Özellikle, sayfa 5'in altında, yazarlar bu tür tahmin edicilerin varlığını dolaylı olarak varsaydılar (Kesinlikten söz edilmez ve çalışma süresi tam olarak tanımlanmamıştır; ancak bağlam her şeyi açıkça tanımlar.)

İlk denemem " Örnekleyici Örneği --- Örneklemeye Hesaplı Bir Bakış Açısı " okumaktı . Çok benzer bir problemle ilgilidir, ancak tanımlanan hata olasılığı toplanırken, bizimki çarpımsaldır. (Makaleyi tam olarak okumadım, belki bir yerde ihtiyacım olan şeyden bahsediyor.)

EDIT (Tsuyoshi'nin isteğine göre): Aslında, "Hesapsal Yetenek Kanıtı" tanımı, (beklenen) çalışma süresi olan bir "bilgi çıkarıcısının" varlığını gerektirir . bilmediğimizden , tahmin etmek istiyoruz; ancak bu çalışma süresini önemli ölçüde değiştirmemelidir: polinom faktörüne değiştirmelidir. Kesinlik koşulu bu gereksinimi yakalamaya çalışır. E[f(n)]p(n)E[f(n)]E[f(n)]


Hassaslık durumunu anlayamıyorum. E algoritmasının her zaman 1 çıktısını ne engeller? Şunu mu demek istedin 1 / q (n) <(Gerçek değer) / (Tahmini değer) <q (n)?
Tsuyoshi Ito

O P (N) = Q (n) = O (1) ve önemsiz algoritması gibi görünüyor çıkışları "1" çalışması gerektiğini. Çalışma süresi p ( n ) ile sınırlanan O (1) 'dir.Ef(1n) . Ve hassasiyeti <= 1'dir, q'dan (n) küçüktür. p(n)E[f(n)]
Robin Kothari

@Tsuyoshi & Robin: Üzgünüm dostlar, hassasiyette bir koşulu kaçırdım. Şimdi kontrol et!
MS Dousti

Ayrıca, tahmin edicinin randomize olduğunu düşünüyorum (aksi takdirde imkansız görünüyor). Durum böyle mi? Ayrıca, eğer öyleyse, çalışma süresi koşulu ve hassas durum tam olarak ne gerektirir?
Tsuyoshi Ito

1
Sanırım soruyu net olarak anlamıyorum. Neden chernoff sınırına sahip saf bir örnekleyici iyi bir tahminci değil?
Sylvain Peyronnet

Yanıtlar:


15

DÜZENLEME: Bu, f'nin yalnızca 0 veya 1 çıktısı olduğu sorunun sürümünü çözer.

Belki soruyu yanlış anladım, ama bu çok zor görünmüyor.

Tahmin etmek yerine, ortalama, 1'lerin sayısını tahmin etmeyi düşünelim ve bu k sayısını diyelim. Let . Yani ortalama k / N. Bunu O zamanındaki (N polilog (N) / k) bir polinom çarpım faktörü içinde tahmin etmek istersiniz.N=2n

Bence bu, herhangi bir sabit çarpma faktörü içinde de yapılabilir. Örneğin, çıkış Yani 2 çarpanı içinde bu tahmin etmek istiyorum diyelim algoritmanın k / 2 ve 2k arasında olacaktır.k

Uygun çalışma süresine sahip bir algoritma çizeceğim. İlk önce k'nın N / 2 ve N arasında olup olmadığını kontrol edin. Bu kolaydır, sadece birkaç rastgele değer örnekleyin ve yarım 1'den fazla alırsanız, bu aralıktadır. 2 yaklaşımınız var. Değilse, N / 4 ve N / 2 arasında olup olmadığını kontrol edin. Ve bunun gibi. Aralığı her daha küçük yaptığınızda, k'nin bu aralıkta olup olmadığını tahmin etmek daha maliyetlidir. Ancak maliyet, aralığın ne kadar küçük olduğu ile ters orantılıdır.

Örneğin, k'nin ile 2 N / 2 q arasında olup olmadığını kontrol ediyorsanız , O ( 2 q ) sorguları yapmanız gerekir . Her neyse, bu prosedürü yeterince kez tekrarladıktan sonra, k'nin bulunduğu aralığı almalısınız. Diyelim ki k, N / 2 q ve 2 N / 2 q arasındadır . O zaman k yaklaşık olarak N / 2 q olur . Yani 2 qN/2q2N/2qO(2q)N/2q2N/2qN/2q2qk / N ile ilgilidir. Bu adımda O (k / N) sorgularını harcayacağız. Ancak bu adıma geçmek için q başka adım gerekiyordu, ancak bu sadece ekstra bir polilog (N) faktörü. Böylece toplam çalışma süresi 2-yakl. İçin O (N polilog (N) / k) 'dir.

(Aslında her adımda iyi bir hassasiyet elde etmek için hata amplifikasyonu yapmak gerekir. Ama bu sadece ekstra bir polilog faktörü.)


Bunu birkaç aşamalı süreçte düşünmemin nedeni, süreci bir tahmin ve kontrol önceliği olarak vurgulamasıdır. Birisi söyleseydim arasındadır N / 2 q ve 2 n / 2 q sonra bağlı söz zamanında, bu gerçeği bilerek bunu daha da iyi hassasiyet tahmin olabilir. Bu yüzden k için bir tahminde bulunma adımını ortadan kaldırmalıyız . Bu, o türdeki tüm olası aralıklarda ikili arama yapılarak yapılır.kN/2q2n/2qk

Boole olmayan çıktılar için bu işi yapmak için, 1'lerin sayısını saymak yerine, görülen değerleri toplayın. Bunun titizlikle çalıştığını göstermek için bir referans bulmaya çalışacağım.


(1) f işlevi tümleşik olmayan değerler alabileceğinden, muhtemelen 1s yerine değerler toplamını kullanmak istersiniz. (2) Adım adım tahmin etmek zorunda mıyız? Bunu tek bir aşamada yapabileceğimizi tahmin ediyorum, toplam sabit bir polinomu aşana kadar tekrarlayın. Ayrıca soruya yaptığım yoruma bakın.
Tsuyoshi Ito

Oh, aralığın [0,1] olduğunu fark etmedim. Bunun {0,1} olduğunu düşündüm. Ama sanırım aynı prosedür işe yarıyor. Belki bir problemi diğerine indirgeyebiliriz, çünkü çıktının ikili sunumunun belirli bir pozisyonundaki 1s sayısını yeterli hassasiyetle "sayabiliriz". Hakkında (2), işleminizin eşdeğer olduğunu düşünüyorum. Bu şekilde düşünüyorum, çünkü tahmin ve kontrol süreci gibi geliyor, yani k berbat bir tahmin verildiğinde, daha iyi bir tahmin alın. Bunu cevabıma ekleyeceğim.
Robin Kothari

İki algoritmanın aslında aynı olduğunu kabul ediyorum. Ayrıca, [0,1] ve {0,1} için olduğu gibi, algoritmanız muhtemelen, integral olmayan bir f (x) değerinin her değerlendirmesini bir bozuk para (1 wp f (x) ve 0 wp) ile değiştirdikten sonra belirtildiği gibi çalışır. 1-f (x)).
Tsuyoshi Ito

@Robin: Cevabınız için teşekkürler. Benim için de bir şey belirsiz: Dediniz ki: "Sadece birkaç rastgele değer örnekleyin ve yarım 1'den fazla alırsanız, o zaman bu aralıktadır." Bunun nicelendirilmesi gerektiğine inanıyorum: Kaç numune hangi hassasiyetle sonuçlanır? (
OP'yi

@Sadeq: Bu bir chernoff sınırı. k'nin n / 2 olmasını bekliyorsanız (örneğin, adil bir madeni para), n (1 + eps) / 2'den fazla ve benzer şekilde alt sınır için görmek için bir kuyruk sınırını hızlı bir şekilde yazabilirsiniz.
Suresh Venkat

3

f1,f2,f{0,1}nki=1kfiMMM=polylog(n)M/k

kμE(f)klowkhighμ1δi=1klowfi<Mi=1khighfi>Mfiklow<k<khigh1δM/k

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.