Доказательство Адлеманом того, что содержится в показывает, что если существует случайный алгоритм для задачи, который выполняется во времени на входах размера , то также существует детерминированный алгоритм для задачи который запускается за время на входах размера [алгоритм запускает рандомизированный алгоритм на независимых строках случайности. Должна быть случайность для повторного алгоритма, который хорош для всехn Θ ( t ( n ) ⋅ n ) n Θ ( n ) 2 nвозможные входы. Детерминированный алгоритм является неоднородным - он может вести себя по-разному для разных входных размеров. Таким образом, аргумент Адлемана показывает, что - если не заботиться об однородности - рандомизация может только ускорить алгоритмы с коэффициентом, линейным по размеру входных данных.
На каких конкретных примерах рандомизация ускоряет вычисления (насколько нам известно)?
Одним из примеров является проверка полиномиальной идентичности. Здесь вход представляет собой арифметическую схему n-размера, вычисляющую многочлен m-вариации над полем, и задача состоит в том, чтобы выяснить, является ли многочлен тождественно нулевым. Рандомизированный алгоритм может оценивать полином по случайной точке, в то время как лучший детерминированный алгоритм, который мы знаем (и, возможно, лучший из существующих), оценивает полином по многим точкам.
Другим примером является минимальное остовное дерево, где лучшим рандомизированным алгоритмом Каргера-Кляйна-Тарьяна является линейное время (а вероятность ошибки экспоненциально мала!), В то время как лучший детерминированный алгоритм Шазеля выполняется во времени ( - обратная функция Аккермана, поэтому ускорение рандомизации действительно мало). Интересно, что Петти и Рамачандран доказали, что если существует неравномерный детерминированный линейный алгоритм времени для минимального остовного дерева, то также существует единый детерминированный линейный алгоритм времени.
Какие еще примеры? Какие примеры вы знаете, где ускорение рандомизации велико, но это возможно только потому, что мы еще не нашли достаточно эффективных детерминированных алгоритмов?