Algoritma untuk mengejar target yang bergerak


20

Misalkan kita memiliki kotak hitam yang dapat kita query dan reset. Ketika kita mereset , keadaan dari diatur ke elemen yang dipilih secara acak dari himpunan mana diperbaiki dan dikenal untuk diberikan . Untuk permintaan , elemen (tebakan) dari disediakan, dan nilai yang dikembalikan adalah . Selain itu, keadaan dari diatur ke nilai , di mana dipilih secara seragam secara acak darifffSf

{0,1,...,n1}
nffx
{0,1,...,n1}
(fSx)modnfSffS=fS±kk
{0,1,2,...,n/2((fSx)modn)}

Dengan membuat tebakan acak seragam dengan setiap kueri, orang akan berharap harus membuat n tebakan sebelum mendapatkan fS=x , dengan varian n2n (dinyatakan tanpa bukti).

Dapatkah suatu algoritma dirancang untuk melakukan yang lebih baik (yaitu, membuat lebih sedikit tebakan, mungkin dengan lebih sedikit variasi dalam jumlah tebakan)? Seberapa jauh lebih baik yang bisa dilakukannya (yaitu, apa algoritma yang optimal, dan apa kinerjanya)?

Solusi yang efisien untuk masalah ini bisa memiliki implikasi penghematan biaya yang penting untuk menembak kelinci (terbatas pada melompat di trek melingkar) di ruangan gelap.


Saya tidak yakin apakah menembak kelinci adalah ilmu komputer.
Dave Clarke

6
@DaveClarke Tetapi jika Anda bisa menembak kelinci, Anda telah memecahkan masalah penghentian untuk kelinci.
Patrick87

@DaveClarke Tidak ada yang menembak satelit ke ruang angkasa, tetapi perhitungan posisi satelit adalah. Pertanyaan ini tidak sepenuhnya berbeda dengan cryptanalysis.
Gilles 'SO- berhenti bersikap jahat'

Jawaban:


13

Pertama-tama, saya akan menganggap itu dengan

Selain itu, status dari f diatur ke nilai f ' S = f S ± k , di mana k dipilih seragam secara acak dari { 0 , 1 , 2 , . . . , n / 2 - ( ( f S - x )fSffS=fS±kk

{0,1,2,...,n/2((fSx)modn)}

maksudmu sebenarnya

Selain itu, negara dari f diatur ke nilai f ' S = f S + kfSf , di mana k dipilih secara seragam secara acak dari { - | nfS=fS+kmodnk

{-|n2-((fS-x)modn)|,...,-1,0,1,2,...,|n2-((fS-x)modn)|}

fS{0,...,n-1}fS±k

fS-x=±1modn-(n/2±1)(n/2±1)fS-xmodn=n/2

Kami dibiarkan menemukan prosedur untuk kehilangan semakin dalam setiap tembakan. Saya mengusulkan "pencarian biner" sederhana. (Saya akan dengan mudah menghilangkan pembulatan.) Ini menghasilkan kira-kira sebagai berikut:

  1. (fS-xmodn){14n,...,34n}.
  2. fS14nfS{(fS-14n)modn,...,fS,...,(fS+14n)modn}
  3. fS-n/2modn1/2fS{fS-18n,...,fS,...,fS+18n}1/2fS-xmodn=fS-fS+n/2modn{12n-14n,...,12n+14n}

2=HAI(1)HAI(catatann)

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.