Алгоритм преследования движущейся цели


20

Предположим, что у нас есть черный ящик который мы можем запросить и сбросить. Когда мы сбрасываем , состояние для устанавливается произвольно выбранному элементу из набора где фиксировано и известно для данного . Для запроса предоставляется элемент (предположение) из , а возвращаемое значение равно . Кроме того, состояние для устанавливается равным значению , где выбирается случайным образом изе е С е { 0 , 1 , . , , , П - 1 } п е е х { 0 , 1 , . , , , n - 1 } ( f S - x )fffSf

{0,1,...,n1}
nffx
{0,1,...,n1}
е S е е ' S = F S ± к к { 0 , 1 , 2 , . , , , n / 2 - ( ( f S - x )(fSx)modnfSffS=fS±kk
{0,1,2,,,,,N/2-((еS-Икс)модификацияN)}

Делая равномерно случайные догадки с каждым запросом, можно было бы ожидать сделать N догадок, прежде чем получить еSзнак равноИкс с дисперсией N2-N (заявлено без доказательства).

Может ли алгоритм быть спроектирован так, чтобы он работал лучше (т. Е. Создавал меньше догадок, возможно, с меньшим разбросом в количестве догадок)? Насколько лучше это сделать (т. Е. Каков оптимальный алгоритм и какова его производительность)?

Эффективное решение этой проблемы может иметь важные последствия для экономии при стрельбе по кролику (ограниченному прыжками по круговой дорожке) в темной комнате.


Я не уверен, является ли отстрел кроликов информатикой.
Дейв Кларк

6
@DaveClarke Но если вы можете стрелять в кроликов, вы решили проблему остановки для кроликов.
Patrick87

@DaveClarke Никто не снимает спутники в космос, но вычисление положения спутника таково. Этот вопрос мало чем отличается от криптоанализа.
Жиль "ТАК - перестань быть злым"

Ответы:


13

Прежде всего, я предполагаю, что

Кроме того, состояние для устанавливается равным значению , где выбирается случайным образом равномерно изеSееS'знак равноеS±КК

{0,1,2,,,,,N/2-((еS-Икс)модификацияN)}

вы на самом деле имеете в виду

Кроме того, состояние для устанавливается равным значению , где выбирается случайным образом изеSееS'знак равноеS+КмодификацияNК

{-|N2-((еS-Икс)модификацияN)|,...,-1,0,1,2,...,|N2-((еS-Икс)модификацияN)|}

В противном случае не совсем ясно, что всегда выполняется и как именно ведет себя.еS{0,,,,,N-1}еS±К

Используя это, проблема в основном сводится к тому, чтобы «пропустить как можно больше». Заметьте, что чем ближе мы стреляем в кролика, тем больше хмеля он делает; в крайнем случае мы имеем . Это приводит к равномерному переходу между и , что в основном снова полностью рандомизирует положение кролика. С другой стороны, если мы пропустим настолько сильно, насколько это возможно - из-за смещения , кролик фактически не двигается вообще (!), И черный ящик фактически обновляет нас на этот факт. Поэтому мы можем просто развернуться и пристрелить кролика.еS-Иксзнак равно±1модификацияN-(N/2±1)(N/2±1)еS-ИксмодификацияNзнак равноN/2

Нам остается найти процедуру пропуска в каждом кадре. Я предлагаю простой «бинарный поиск». (Я удобно опущу округление.) Это происходит примерно следующим образом:

  1. Сброс и стрельба в произвольном положении, пока вы не получите из черного ящика ответЭто требует постоянного количества шагов в ожидании.(еS-ИксмодификацияN){14N,,,,,34N},
  2. Теперь мы знаем, что кролик в прошлом положении и что он не двигался более чем на шагов в любом направлении. Это в основном вдвое уменьшает наше пространство поиска на следующей итерации, поскольку кролик должен находиться в позицииеS14NеS'{(еS-14N)модификацияN,,,,,еS,,,,,(еS+14N)модификацияN}
  3. Recurse: стрелять в позиции . С вероятностью позиция на которую кролик прыгнул на 1 и 2, лежит в диапазоне . В этом случае мы вдвое сократили пространство поиска. С вероятностью , кролик не прыгнул в этом диапазоне, но так как мы знаем, что , у нас есть те же предположения, что и на шаге (2) и поэтому ничего не теряешь.еS-N/2модификацияN1/2еS'{еS-18N,,,,,еS,,,,,еS+18N}1/2еS'-ИксмодификацияNзнак равноеS'-еS+N/2модификацияN{12N-14N,,,,,12N+14N}

Каждый шаг требует ожидаемого времени для успешного завершения и делит пополам пространство поиска, что дает общее ожидаемое количество шагов.2знак равноО(1)О(журналN)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.