Теорема : Каждый детерминистический алгоритм для этой задачи исследует Ω (log 2 n) областей памяти в худшем случаеcase.
Доказательство (полностью переписано в более формальном стиле):
Пусть k> 0 будет нечетным целым числом и пусть n = k 2 .Мы описываем противника, который заставляет (log 2 (k + 1)) 2 = Ω (log 2 n) зондов.
Weназвать максимальные подпоследовательности идентичных элементов групп .Возможные входы противника состоят из k длины-k сегментов x 1 x 2 … x k .Для каждого сегмента x j существует целое число b j ∈ [0, k], такое что x j состоит из b j копии j - 1, за которыми следуют k - b j копии j.Каждая группа перекрывает не более двух сегментов, а каждый сегмент перекрывает не более двух групп.
Group boundaries
| | | | |
0 0 1 1 1 2 2 3 3
| | | |
Segment boundaries
Везде, где наблюдается увеличение в два раза, мы принимаем двойную границу по соглашению.
Group boundaries
| || | |
0 0 0 2 2 2 2 3 3
Заявка : Расположение границы группы j th (1 ≤ j ≤ k) однозначно определяется сегментом x j .
Доказательство : Это сразу после ((j - 1) k + b j ) th ячейка памяти и x j однозначно определяет b j .//
Мы говорим, что алгоритм наблюдал границу группы j th в случае, если результаты его исследований x j однозначно определяютх J .По соглашению, начало и конец ввода всегда соблюдаются.Алгоритм может однозначно определить местоположение границы группы, не наблюдая ее.
Group boundaries
| X | | |
0 0 ? 1 2 2 3 3 3
| | | |
Segment boundaries
При заданном только 0 0? Алгоритм не может точно сказать, является ли?0 или 1. В контексте, однако,?должно быть 1, так как в противном случае было бы три нечетных группы, и граница группы в X может быть выведена.Эти выводы могут быть проблематичными для противника, но оказывается, что они могут быть сделаны только после того, как граница группы "не имеет значения".
Заявка : В любой данный моментВо время выполнения алгоритма рассмотрите множество групповых границ, которые он наблюдал.Ровно одна последовательная пара находится на нечетном расстоянии, и между ними лежит нечетная группа.
Доказательство : любая другая пара подряд ограничивает только четные группы.//
Определяем подпоследовательность нечетной длины, ограниченную специальной последовательной парой, как соответствующую подпоследовательность .
Заявка : НетГраница группы внутри соответствующей подпоследовательности определяется однозначно.Если существует хотя бы одна такая граница, то идентичность нечетной группы не определяется однозначно.
Доказательство : без потери общности предположим, что каждая ячейка памяти не находится всоответствующая подпоследовательность была исследована, и каждый сегмент, содержащийся в соответствующей подпоследовательности, имеет ровно одно местоположение, которое не было исследовано.Предположим, что граница группы j th (назовите ее B) лежит внутри соответствующей подпоследовательности.По гипотезе, зонды к x j определяют местоположение B вплоть до двух последовательных возможностей.Мы называем одну на нечетном расстоянии от левой наблюдаемой границы нечетной слева , а другую нечетную справа .Для обеих возможностей мы работаем слева направо и фиксируем расположение каждой оставшейся внутренней границы группы так, чтобы группа слева была четной.(Мы можем сделать это, потому что у каждого из них также есть две последовательные возможности.) Если B находится нечетно слева, то группа слева является уникальной нечетной группой.Если B имеет нечетное право, то последняя группа в соответствующей подпоследовательности является уникальной нечетной группой.Оба являются допустимыми входными данными, поэтому алгоритм однозначно не определил ни местоположение B, ни нечетную группу.//
Пример:
Observed group boundaries; relevant subsequence marked by […]
[ ] |
0 0 Y 1 1 Z 2 3 3
| | | |
Segment boundaries
Possibility #1: Y=0, Z=2
Possibility #2: Y=1, Z=2
Possibility #3: Y=1, Z=1
КакКак следствие этого утверждения, алгоритм независимо от того, как он работает , должен сузить соответствующую подпоследовательность до одной группы.Поэтому по определению должен соблюдать некоторые групповые границы.Перед злоумышленником теперь стоит простая задача - сохранить как можно больше возможностей.
В любой заданной точке во время выполнения алгоритма злоумышленник внутренне поддерживает одну возможность для каждой ячейки памяти вне соответствующей подпоследовательности.В начале, соответствующая подпоследовательность - это весь вход, поэтому никаких начальных обязательств нет.Всякий раз, когда алгоритм обнаруживает незафиксированное местоположение x j , злоумышленник должен зафиксировать одно из двух значений: j - 1 или j.Если он может не допустить наблюдения границы j th , он выбирает значение, которое оставляет как минимум половину оставшихся возможностей (относительно наблюдения).В противном случае он выбирает так, чтобы сохранить как минимум половину групп в соответствующем интервале, и фиксирует значения для остальных.
Таким образом, злоумышленник заставляет алгоритм наблюдать как минимум log 2 (k + 1) групповых границ, и при наблюдении j th групповой границы алгоритм вынужден создавать как минимум log 2 (k + 1) зондов.
Расширения:
Этот результат прямо распространяется на рандомизированных алгоритмов путем рандомизации ввода, заменяя «в лучшем случае пополам» (с точки зрения алгоритма)зрения) с "в лучшем случае вдвое меньшим в ожидании" и применением стандартных неравенств концентрации.
Это также распространяется на случай, когда ни одна группа не может быть больше, чем s копий;в этом случае нижняя граница составляет Ом (log n log s) .