Temukan perkiraan argmax hanya dengan menggunakan perkiraan kueri maks

10

Pertimbangkan masalah berikut.

Ada n nilai yang tidak diketahui v1,,vnR . Tugasnya adalah menemukan indeks yang terbesar hanya menggunakan kueri dari formulir berikut. Kueri ditentukan oleh himpunan S{1,,n} dan jawaban yang sesuai adalah maxiSvi . Tujuannya adalah menggunakan pertanyaan sesedikit mungkin.

Masalah ini mudah: Kita dapat menggunakan pencarian biner untuk menemukan argmax dengan kueri . yaitu Membangun pohon biner lengkap dengan daun sesuai dengan indeks. Mulai dari akar dan berjalan ke daun sebagai berikut. Di setiap node, kueri nilai maksimum di subtree kanan dan kiri dan kemudian pindah ke anak di samping dengan jawaban yang lebih besar. Setelah mencapai daun, output indeksnya.O(logn)n

Versi berisik berikut dari masalah ini telah muncul dalam penelitian saya.

Ada nilai yang tidak diketahui . Ini dapat diakses dengan kueri di mana set ditentukan dan sampel dari dikembalikan. Tujuannya adalah untuk mengidentifikasi i { 1 , , n } sedemikian rupa sehingga E [ v i ] max i v i - 1 menggunakan pertanyaan sesedikit mungkin. (Harapannya lebih dari pilihan i v 1 , , v n S { 1 , , n } N ( maks i S v i , 1 )nv1,,vnS{1,,n}N(maxiSvi,1)i{1,,n}E[vi]maxivi1i, yang bergantung pada koin algoritme dan jawaban kueri berisik.)

Misalkan kita mencoba menyelesaikan ini menggunakan strategi pencarian biner yang sama seperti sebelumnya (tetapi dengan jawaban yang berisik). Cukup mudah untuk menunjukkan bahwa ini mencapai dan ini ketat dalam kasus terburuk. Kita dapat mengurangi kesalahan ke 1 yang diinginkan dengan mengulangi setiap permintaan O ( log 2 n ) kali dan menggunakan rata-rata (yang menurunkan varians). Ini memberikan algoritma menggunakan kueri O ( log 3 n ) .E[vsaya]makssayavsaya-HAI(catatann)1HAI(catatan2n)HAI(catatan3n)

Apakah ada algoritma yang lebih baik? Saya menduga bahwa query sudah cukup. Dan saya percaya saya bisa membuktikan batas bawah Ω ( log 2 n ) . Juga, masalahnya menjadi mudah - yaitu ˜ O ( log n ) permintaan melalui pencarian biner - dengan janji bahwa ada Ω ( 1 ) kesenjangan antara nilai terbesar dan nilai terbesar kedua. Jika ini membantu, Anda dapat mengasumsikan semua nilai berada di antara 0 dan O ( log n ) .HAI(catatan2n)Ω(catatan2n)HAI~(catatann)Ω(1)0HAI(catatann)

Thomas
sumber
Bagaimana dengan pencarian biner yang pada setiap level menghasilkan O (log n) pasangan kueri (satu untuk maks sisi kiri, satu untuk maks sisi kanan) dan mencatat siapa yang menang. Kemudian, setelah putaran O (log n) algoritma menghasilkan secara rekursif pada sisi yang "memenangkan" waktu terbanyak. Perhitungan singkat di kepala saya tampaknya menunjukkan bahwa ini bekerja dengan probabilty dalam pengaturan di mana satu input adalah 2 dan semua orang lain yang 0 ... i mungkin cara off sekalipun. 1-1/nc20
daniello
@daniello Itu berfungsi ketika ada kesenjangan antara nilai terbesar dan kedua terbesar. Namun, kasus umum tampaknya lebih sulit.
Thomas
catatan untuk diri sendiri: bacalah seluruh pertanyaan sebelum berkomentar
daniello

Jawaban:

1

Komentar yang diperluas dari satu atau dua ide menuju batas bawah. Misalkan , katakan (meskipun pilihan terbaik mungkin berbeda), dan biarkan { v 1 , ... , v n } = { 1B=Θ(catatann). Pertimbangkan untuk menggambar input dengan memilih permutasi nilai-nilai ini secara seragam secara acak.{v1,...,vn}={1nB,...,n-1nB,B}

Idenya adalah bahwa jika kita memperbaiki indeks semua nilai kecuali untuk nilai dan n - 1B, maka kita harus dapat menunjukkan perbedaan dalam probabilitas algoritma untuk memilih satu dibandingkan yang lain sangat kecil: Jarak variasi antara hasil permintaan algoritma sangat kecil mengingat distribusi 50-50 pada penugasan ini nilai ke dua indeks yang tersedia dan hasil dari setiap urutan kueri.n-1nB

Argumen ini berlaku untuk setiap pasangan nilai yang berdekatan, jadi kami mendapatkan rantai kendala pada probabilitas algoritma memilih nilai tertinggi, tertinggi kedua, ... Ini memberikan batas atas pada nilai yang diharapkan dari algoritma, jadi kami menetapkan batas atas ke dan melihat berapa jumlah kueri yang harus.B-1

catatann(catatann)2

Bn

Maaf ini setengah matang, tapi semoga bermanfaat!

usul
sumber
Aku belum terlalu memikirkan batas bawah, karena aku berharap untuk batas atas. :) berlaku bahkan dalam kasus tanpa suara. Saya pikir kita harus dapat membuktikan Ω (Ω(catatann)Ω(catatan2n)
Ω(catatan2n)