Yalnızca yaklaşık maksimum sorguları kullanarak yaklaşık bir argmax bulun


10

Aşağıdaki sorunu düşünün.

nv1,,vnRS{1,,n}maxiSvi

Bu sorun kolaydır: sorguları ile argmax'ı bulmak için ikili aramayı kullanabiliriz . Yani indekslere karşılık gelen yapraklı tam bir ikili ağaç oluşturun . Kökten başlayın ve aşağıdaki gibi bir yaprağa doğru yürüyün. Her bir düğümde, sağ ve sol alt ağaçlardaki maksimum değeri sorgulayın ve daha sonra daha büyük cevabın bulunduğu taraftaki alt öğeye geçin. Bir yaprağa ulaştıktan sonra dizinini çıktılar.O(logn)n

Bu sorunun aşağıdaki gürültülü versiyonu araştırmamda ortaya çıktı.

Orada bilinmeyen değerler . Bunlara, bir set dizisi belirtildiği ve bir örnek döndürülen . Amaç tespit etmektir öyle ki mümkün olduğunca az sorgular gibi kullanarak. (Beklenti, hem algoritmanın paralarına hem de gürültülü sorgu cevaplarına bağlı olan seçiminin üzerindedir .)nv1,,vnS{1,,n}N(maxiSvi,1)i{1,,n}E[vi]maxivi1i

Bunu, önceki ile aynı ikili arama stratejisini kullanarak çözmeye çalıştığımızı varsayalım (ancak gürültülü yanıtlarla). Bunun ve bunun en kötü durumda sıkı olduğunu göstermek oldukça kolaydır . Her sorgu kez tekrarlanarak ve ortalamayı (varyansı düşürür) kullanarak hatayı istenen azaltabiliriz . Bu, sorgularını kullanan bir algoritma verir .E[vi]maxiviO(logn)1O(log2n)O(log3n)

Daha iyi bir algoritma var mı? sorgularının yeterli olduğuna inanıyorum . Ve bir alt sınırı kanıtlayabileceğime inanıyorum . Ayrıca, en büyük değer ile en büyük ikinci değer arasında bir boşluğu olduğu vaadiyle sorun - yani ikili arama yoluyla sorguları - kolaylaşır . Eğer yardımcı olursa, tüm değerlerin ile arasında olduğunu varsayabilirsiniz .O(log2n)Ω(log2n)O~(logn)Ω(1)0O(logn)


Her düzeyde O (log n) sorgu çiftleri (biri sol taraf için maksimum, biri sağ taraf için maksimum) yapan ve kazananları kaydeden ikili bir arama hakkında. Daha sonra, O (log n) yuvarlandıktan sonra algoritma, en çok "kazanan" tarafta özyinelemeli olarak ilerler. Kafamdaki kısa bir hesaplama, bir girişin ve diğerlerinin olduğu ayarda olasılık ile çalıştığını gösteriyor gibi görünüyordu . 11/nc20
daniello

@daniello En büyük ve en büyük ikinci değerler arasında bir boşluk olduğunda çalışır. Genel dava daha zor gibi görünüyor.
Thomas

kendine not: yorum yapmadan önce tüm soruyu okuyun
daniello

Yanıtlar:


1

Bir ya da iki fikrin alt sınıra doğru genişletilmiş yorumu Let demek, (iyi seçim farklı olabilir), ve izin . Bu değerlerin bir permütasyonunu rastgele olarak eşit olarak seçerek girişi çizmeyi düşünün.B=Θ(logn){v1,,vn}={1nB,,n1nB,B}

Fikir, ve değerleri dışındaki tüm değerlerin indekslerini , algoritmanın birini diğerine karşı seçme olasılığındaki farkı gösterebilmemiz gerekir. very small: Bu değerlerin kullanılabilir iki endekse atanmasıyla ilgili herhangi bir sorgu dizisinin sonuçları ve herhangi bir sorgu dizisinin sonuçları göz önüne alındığında, algoritma sorgularının sonuçları arasındaki varyasyon mesafesi çok küçüktür.Bn1nB

Bu argüman her bitişik değer çifti için geçerlidir, bu yüzden algoritmanın en yüksek, ikinci en yüksek, ... değerleri seçmesi olasılığı üzerinde bir kısıtlama zinciri alırız. Bu, algoritmanın beklenen değeri üzerinde bir üst sınır verir, bu nedenle bu üst sınırı ayarladık ve sorgu sayısının ne olduğunu görüyoruz.B1

Ben geliştirmek olamazdı henüz yukarıdaki yaklaşımla, ama olsun düşünüyorum Eğer gerçeği kaldıraç eğer sorguları Aynı anda birden fazla adımlarla yardım yapamam söyledi. Yani, en yüksek değeri farklı bir dizine taşıdığımızda bir sorgu değişirse, başka bir değeri farklı bir dizine taşıdığımızda o zaman değişmez.logn(logn)2

Farklılık gizliliği bu adımlardan biri için yararlı olabilir, örneğin yalnızca en yüksek iki değerin yerini değiştirdiğimiz durumu düşünürsek, bu sorgunun "hassasiyeti" sadece ve sonra gelişmiş olur kompozisyon yararlı olabilir.Bn

Üzgünüm bu yarı pişmiş, ama umarım faydalı olabilir!


Bir üst sınır umduğum için aslında alt sınırları çok fazla düşünmedim. :) gürültüsüz durumda bile geçerlidir. Sanırım bir alt sınırı kanıtlayabilmeliyiz . Ω(logn)Ω(log2n)
Thomas

TAMAM. Bir alt sınırı bir kroki var , ama biraz karmaşık. Ω(log2n)
Thomas
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.