Рандомизированный алгоритм
Часть серии о |
Вероятностный структуры данных |
---|
Случайные деревья |
Связанный |
— Рандомизированный алгоритм это алгоритм , который использует определенную степень случайности как часть своей логики или процедуры. Алгоритм обычно использует равномерно случайные биты в качестве вспомогательных входных данных для управления своим поведением в надежде достичь хорошей производительности в «среднем случае» среди всех возможных вариантов случайного выбора, определяемых случайными битами; таким образом, либо время работы, либо результат (или и то, и другое) являются случайными величинами.
Существует различие между алгоритмами, которые используют случайные входные данные, так что они всегда завершаются правильным ответом, но где ожидаемое время работы конечно ( алгоритмы Лас-Вегаса , например Quicksort [1] ) и алгоритмы, которые могут дать неправильный результат ( алгоритмы Монте-Карло , например алгоритм Монте-Карло для MFAS задачи [2] ) или не может дать результат, сигнализируя об ошибке или не завершая работу. В некоторых случаях вероятностные алгоритмы являются единственным практическим средством решения проблемы. [3]
В обычной практике рандомизированные алгоритмы аппроксимируются с использованием генератора псевдослучайных чисел вместо истинного источника случайных битов; такая реализация может отклоняться от ожидаемого теоретического поведения и математических гарантий, которые могут зависеть от существования идеального истинного генератора случайных чисел.
Мотивация
[ редактировать ]В качестве мотивирующего примера рассмотрим задачу поиска « a » в массиве из n элементов.
Входные данные : массив из n ≥2 элементов, половина из которых — « a », а другая половина — « b ».
Выходные данные : Найдите букву « a в массиве ».
Мы даем две версии алгоритма: один алгоритм Лас-Вегаса и один алгоритм Монте-Карло .
Алгоритм Лас-Вегаса:
findingA_LV(array A, n)
begin
repeat
Randomly select one element out of n elements.
until 'a' is found
end
Этот алгоритм успешен с вероятностью 1. Число итераций варьируется и может быть сколь угодно большим, но ожидаемое количество итераций равно
Поскольку оно постоянно, ожидаемое время выполнения многих вызовов равно . (См. обозначение Big Theta )
Алгоритм Монте-Карло:
findingA_MC(array A, n, k)
begin
i := 0
repeat
Randomly select one element out of n elements.
i := i + 1
until i = k or 'a' is found
end
Если « а » найдено, алгоритм успешен, в противном случае алгоритм терпит неудачу. После k итераций вероятность найти « a » равна:
Этот алгоритм не гарантирует успеха, но время выполнения ограничено. Количество итераций всегда меньше или равно k. Принимая k постоянным, время выполнения (ожидаемое и абсолютное) равно .
Рандомизированные алгоритмы особенно полезны при столкновении со злонамеренным «противником» или злоумышленником , который намеренно пытается ввести в алгоритм неправильные входные данные (см. сложность наихудшего случая и конкурентный анализ (онлайн-алгоритм) ), например, в дилемме узника . Именно по этой причине случайность повсеместно распространена в криптографии . В криптографических приложениях нельзя использовать псевдослучайные числа, поскольку злоумышленник может их предсказать, что делает алгоритм эффективно детерминированным. либо источник действительно случайных чисел, либо криптографически безопасный генератор псевдослучайных чисел Следовательно, требуется . Другая область, которой присуща случайность, — это квантовые вычисления .
В приведенном выше примере алгоритм Лас-Вегаса всегда выдает правильный ответ, но время его работы является случайной величиной. Алгоритм Монте-Карло (связанный с методом Монте-Карло для моделирования) гарантированно завершается за промежуток времени, который может быть ограничен функцией входного размера и его параметром k , но допускает небольшую вероятность ошибки . Обратите внимание, что любой алгоритм Лас-Вегаса можно преобразовать в алгоритм Монте-Карло (с помощью неравенства Маркова ), заставив его выдать произвольный, возможно, неправильный ответ, если он не сможет завершиться в течение заданного времени. И наоборот, если существует эффективная процедура проверки правильности ответа, то алгоритм Монте-Карло можно преобразовать в алгоритм Лас-Вегаса, повторно запуская алгоритм Монте-Карло до тех пор, пока не будет получен правильный ответ.
Вычислительная сложность
[ редактировать ]Теория сложности вычислений моделирует рандомизированные алгоритмы как вероятностные машины Тьюринга . и алгоритмы Лас-Вегаса Монте -Карло Рассмотрены несколько классов сложности , а также изучены . Самый базовый класс рандомизированной сложности — это RP , который представляет собой класс задач решения , для которых существует эффективный (полиномиальный по времени) рандомизированный алгоритм (или вероятностная машина Тьюринга), который распознает НЕТ-экземпляры с абсолютной уверенностью и распознает ДА-экземпляры с вероятностью. не менее 1/2. Классом дополнения для RP является co-RP. Классы задач, имеющие (возможно, непрерывные) алгоритмы с полиномиальным средним временем работы, выходные данные которых всегда верны, называются ZPP .
Класс задач, для которых как ДА, так и НЕТ-экземпляры могут быть идентифицированы с некоторой ошибкой, называется BPP . Этот класс действует как рандомизированный эквивалент P , т.е. BPP представляет класс эффективных рандомизированных алгоритмов.
Ранняя история
[ редактировать ]Сортировка
[ редактировать ]Быстрая сортировка была открыта Тони Хоаром в 1959 году и впоследствии опубликована в 1961 году. [4] В том же году Хоар опубликовал алгоритм быстрого выбора , [5] который находит медианный элемент списка за линейное ожидаемое время. До 1973 года оставалось открытым вопрос, существует ли детерминированный алгоритм с линейным временем. [6]
Теория чисел
[ редактировать ]В 1917 году Генри Кэборн Поклингтон представил рандомизированный алгоритм, известный как алгоритм Поклингтона, для эффективного поиска квадратных корней по модулю простых чисел. [7] В 1970 году Элвин Берлекамп представил рандомизированный алгоритм для эффективного вычисления корней многочлена над конечным полем. [8] В 1977 году Роберт М. Соловей и Фолькер Штрассен с полиномиальным временем открыли рандомизированный тест на простоту (т. е. определение простоты числа). Вскоре после этого Майкл О. Рабин продемонстрировал, что тест Миллера на простоту 1976 года также можно превратить в рандомизированный алгоритм с полиномиальным временем. В то время не было известно доказуемо полиномиальных детерминированных алгоритмов для проверки простоты.
Структуры данных
[ редактировать ]Одной из первых рандомизированных структур данных является хеш-таблица , которая была введена в 1953 году Хансом Петером Луном из IBM . [9] Хэш-таблица Луна использовала цепочки для разрешения коллизий, а также была одним из первых приложений связанных списков . [9] Впоследствии, в 1954 году, Джин Амдал , Элейн М. МакГроу , Натаниэль Рочестер и Артур Сэмюэл из IBM Research представили линейное зондирование , [9] хотя у Андрея Ершова независимо в 1957 году была такая же идея. [9] В 1962 году Дональд Кнут выполнил первый правильный анализ линейного зондирования. [9] хотя меморандум, содержащий его анализ, был опубликован гораздо позже. [10] Первый опубликованный анализ был сделан Конхеймом и Вайсом в 1966 году. [11]
Ранние работы над хеш-таблицами либо предполагали доступ к полностью случайной хэш-функции, либо предполагали, что сами ключи были случайными. [9] В 1979 году Картер и Вегман представили универсальные хэш-функции . [12] который, как они показали, можно использовать для реализации связанных хеш-таблиц с постоянным ожидаемым временем каждой операции.
Ранние работы над рандомизированными структурами данных также выходили за рамки хеш-таблиц. В 1970 году Бертон Ховард Блум представил структуру данных приблизительного членства, известную как фильтр Блума . [13] В 1989 году Раймунд Зайдель и Сесилия Р. Арагон представили рандомизированное сбалансированное дерево поиска, известное как Treap . [14] В том же году Уильям Пью представил еще одно рандомизированное дерево поиска, известное как список пропуска . [15]
Неявное использование в комбинаторике
[ редактировать ]До популяризации рандомизированных алгоритмов в информатике Пол Эрдеш популяризировал использование рандомизированных конструкций в качестве математического метода установления существования математических объектов. Этот метод стал известен как вероятностный метод . [16] Эрдеш впервые применил вероятностный метод в 1947 году, когда он использовал простую рандомизированную конструкцию, чтобы установить существование графов Рамсея. [17] В 1959 году он, как известно, использовал гораздо более сложный рандомизированный алгоритм, чтобы установить существование графов с большим обхватом и хроматическим числом. [18] [16]
Примеры
[ редактировать ]Быстрая сортировка
[ редактировать ]Быстрая сортировка — это знакомый и широко используемый алгоритм, в котором может быть полезна случайность. Многие детерминированные версии этого алгоритма требуют O ( n 2 ) время сортировать n чисел для некоторого четко определенного класса вырожденных входных данных (например, уже отсортированного массива) с конкретным классом входных данных, которые генерируют это поведение, определенным протоколом для сводного выбора. Однако, если алгоритм выбирает основные элементы равномерно и случайным образом, он имеет доказуемо высокую вероятность завершения за время O ( n log n ) независимо от характеристик входных данных.
Рандомизированные дополнительные конструкции в геометрии
[ редактировать ]В вычислительной геометрии стандартным методом построения структуры, такой как выпуклая оболочка или триангуляция Делоне, является случайная перестановка входных точек, а затем вставка их одна за другой в существующую структуру. Рандомизация гарантирует, что ожидаемое количество изменений в структуре, вызванных вставкой, будет небольшим, и поэтому ожидаемое время работы алгоритма может быть ограничено сверху. Этот метод известен как рандомизированное поэтапное построение . [19]
Минимальный разрез
[ редактировать ]Входные данные : график G ( V , E )
Выходные данные : разрез разделяющий вершины на L и R , с минимальным количеством ребер между L и R. ,
Напомним, что сжатие двух узлов, u и v , в (мульти)графе дает новый узел u ' с ребрами, которые являются объединением ребер, инцидентных либо u, либо v , за исключением любого ребра, соединяющего u . и в . приведен пример сжатия вершин A и B. На рисунке 1 После сжатия полученный граф может иметь параллельные ребра, но не содержать самоциклов.
Каргера [20] основной алгоритм:
begin i = 1 repeat repeat Take a random edge (u,v) ∈ E in G replace u and v with the contraction u' until only 2 nodes remain obtain the corresponding cut result Ci i = i + 1 until i = m output the minimum cut among C1, C2, ..., Cm. end
При каждом выполнении внешнего цикла алгоритм повторяет внутренний цикл до тех пор, пока не останется всего 2 узла, будет получен соответствующий разрез. Время выполнения одного выполнения составляет , а n обозначает количество вершин. После m раз выполнения внешнего цикла мы выводим минимальное сокращение среди всех результатов. Рисунок 2 дает пример одного выполнения алгоритма. После выполнения получаем отрез 3 размера.
Лемма 1. — Пусть k минимальный размер выреза, и пусть C = { e 1 , e 2 , ..., e k } — минимальный размер выреза. Если во время итерации i ни одно ребро e ∈ C не выбрано для сжатия, то C i = C .
Если G несвязен, то G можно разбить на L и R без ребер между ними. Таким образом, минимальный разрез в несвязном графе равен 0. Теперь предположим, что G связен. Пусть V = L ∪ R — разбиение V , индуцированное C : C = { { u , v } ∈ E : u ∈ L , v ∈ R } (корректно определенное, поскольку G связно). Рассмотрим ребро { u , v } графа C . Изначально u , v — различные вершины. Пока мы выбираем преимущество , u и v не сливаются. Таким образом, в конце алгоритма мы имеем два составных узла, покрывающих весь граф: один состоит из вершин , а другой — из вершин R. L Как и на рисунке 2, размер минимального разреза равен 1 и C = {( A , B )}. Если мы не выберем ( A , B ) для сокращения, мы сможем получить минимальный разрез.
Лемма 2. — Если G мультиграф с p вершинами, минимальный разрез которого имеет размер k , то G имеет не менее pk /2 ребер.
Поскольку минимальный разрез равен k , каждая вершина v должна удовлетворять степени ( v ) ≥ k . Следовательно, сумма степени не меньше pk . Но известно, что сумма степеней вершин равна 2| Э |. Лемма следующая.
Анализ алгоритма
[ редактировать ]Вероятность того, что алгоритм увенчается успехом, равна 1 — вероятность того, что все попытки потерпят неудачу. В силу независимости вероятность того, что все попытки потерпят неудачу, равна
По лемме 1 вероятность того, что C i = C, — это вероятность того, что ни одно ребро C не будет выбрано во время итерации i . Рассмотрим внутренний цикл и пусть G j обозначает граф после j стягиваний ребер, где j ∈ {0, 1, …, n − 3} . G j имеет n − j вершин. Используем цепное правило условных возможностей . Вероятность того, что ребро, выбранное на итерации j, не входит в C , учитывая, что ни одно ребро C не было выбрано ранее, равна . Обратите внимание, что G j по-прежнему имеет минимальный разрез размера k , поэтому по лемме 2 он все еще имеет по крайней мере края.
Таким образом, .
Таким образом, согласно цепному правилу, вероятность найти минимальный разрез C равна
Отмена дает . Таким образом, вероятность успеха алгоритма равна как минимум . Для , это эквивалентно . Алгоритм находит минимальный разрез с вероятностью , во времени .
Дерандомизация
[ редактировать ]Случайность можно рассматривать как ресурс, подобный пространству и времени. Дерандомизация — это процесс удаления случайности (или использования ее как можно меньше). На данный момент это не известно [ на момент? ] если все алгоритмы можно дерандомизировать без значительного увеличения времени их работы. Например, при вычислительной сложности неизвестно, является ли P = BPP , т. е. мы не знаем, можем ли мы взять произвольный рандомизированный алгоритм, который работает за полиномиальное время с небольшой вероятностью ошибки, и дерандомизировать его для работы за полиномиальное время без использования случайности. .
Существуют конкретные методы, которые можно использовать для дерандомизации определенных рандомизированных алгоритмов:
- метод условных вероятностей и его обобщение, пессимистические оценки
- теория несоответствия (которая используется для дерандомизации геометрических алгоритмов)
- использование ограниченной независимости случайных величин, используемых алгоритмом, например попарной независимости, используемой в универсальном хешировании
- использование графов-расширителей (или диспергаторов в целом) для усиления ограниченного количества начальной случайности (последний подход также называется генерацией псевдослучайных битов из случайного источника и ведет к соответствующей теме псевдослучайности)
- изменение рандомизированного алгоритма для использования хеш-функции в качестве источника случайности для задач алгоритма, а затем дерандомизация алгоритма путем перебора всех возможных параметров (начальных чисел) хеш-функции. Этот метод обычно используется для исчерпывающего поиска в выборочном пространстве и придания алгоритму детерминированности (например, алгоритмы на рандомизированных графах).
Где случайность помогает
[ редактировать ]Когда модель вычислений ограничена машинами Тьюринга , в настоящее время остается открытым вопрос, позволяет ли способность делать случайный выбор решать некоторые проблемы за полиномиальное время, которые не могут быть решены за полиномиальное время без этой способности; это вопрос о том, = P = BPP. Однако в других контекстах существуют конкретные примеры проблем, когда рандомизация приводит к значительным улучшениям.
- На основе исходного мотивирующего примера: дана экспоненциально длинная строка из 2 к символов, половина а и половина b, машина с произвольным доступом требует 2 к -1 поиск в худшем случае для нахождения индекса a ; если разрешено делать случайный выбор, эта проблема может быть решена за ожидаемое полиномиальное количество поисков.
- Естественный способ выполнения численных вычислений во встроенных системах или киберфизических системах — получить результат, который с высокой вероятностью приближается к правильному (или «вероятно приблизительно правильное вычисление» (PACC)). Сложную проблему, связанную с оценкой потери расхождения между аппроксимированным и правильным вычислением, можно эффективно решить, прибегнув к рандомизации. [21]
- При сложности связи равенство двух строк можно проверить с некоторой надежностью, используя биты связи по рандомизированному протоколу. Любой детерминированный протокол требует бит, если защищаешься от сильного противника. [22]
- Объем выпуклого тела можно оценить с помощью рандомизированного алгоритма с произвольной точностью за полиномиальное время. [23] Барань и Фюреди показали, что ни один детерминированный алгоритм не может сделать то же самое. [24] Это верно безоговорочно, т.е. без опоры на какие-либо предположения теории сложности, предполагая, что к выпуклому телу можно обращаться только как к черному ящику.
- Более теоретико-сложным примером места, где случайность может помочь, является класс IP . IP состоит из всех языков, которые могут быть приняты (с высокой вероятностью) в результате полиномиально длительного взаимодействия между всемогущим доказывающим и верификатором, реализующим алгоритм BPP. IP = PSPACE . [25] Однако если требуется, чтобы верификатор был детерминированным, тогда IP = NP .
- В сети химических реакций (конечный набор реакций типа A+B → 2C + D, действующих на конечное число молекул) способность когда-либо достичь заданного целевого состояния из начального состояния разрешима, даже приближаясь к вероятности когда-либо достижение заданного целевого состояния (с использованием стандартной вероятности, основанной на концентрации, для которой реакция произойдет следующей) неразрешимо. Точнее, ограниченную машину Тьюринга можно смоделировать со сколь угодно высокой вероятностью правильной работы в любое время, только если используется сеть случайных химических реакций. В случае простой недетерминированной сети химических реакций (следующей может произойти любая возможная реакция) вычислительная мощность ограничивается примитивными рекурсивными функциями . [26]
См. также
[ редактировать ]- Примерный алгоритм подсчета
- Алгоритм Атлантик-Сити
- Богосорт
- Эскиз счета-минуты
- Гиперлоглог
- Алгоритм Каргера
- алгоритм Лас-Вегаса
- Алгоритм Монте-Карло
- Принцип отложенного решения
- Вероятностный анализ алгоритмов
- Вероятностная дорожная карта
- Рандомизированные алгоритмы как игры с нулевой суммой
Примечания
[ редактировать ]- ^ Хоар, ЦАР (июль 1961 г.). «Алгоритм 64: Быстрая сортировка». Коммун. АКМ . 4 (7): 321–. дои : 10.1145/366622.366644 . ISSN 0001-0782 .
- ^ Куделич, Роберт (01 апреля 2016 г.). «Рандомизированный алгоритм Монте-Карло для решения задачи набора дуг с минимальной обратной связью». Прикладные мягкие вычисления . 41 : 235–246. дои : 10.1016/j.asoc.2015.12.018 .
- ^ «При проверке простоты очень больших чисел, выбранных наугад, вероятность наткнуться на значение, которое обманет тест Ферма , меньше, чем вероятность того, что космическое излучение заставит компьютер совершить ошибку при выполнении «правильного» алгоритма. Если считать алгоритм неадекватным по первой причине, но не по второй, это иллюстрирует разницу между математикой и инженерией». Хэл Абельсон и Джеральд Дж. Сассман (1996). Структура и интерпретация компьютерных программ . MIT Press , раздел 1.2 .
- ^ Хоар, ЦАР (июль 1961 г.). «Алгоритм 64: Быстрая сортировка» . Коммуникации АКМ . 4 (7): 321. дои : 10.1145/366622.366644 . ISSN 0001-0782 .
- ^ Хоар, ЦАР (июль 1961 г.). «Алгоритм 65: найти» . Коммуникации АКМ . 4 (7): 321–322. дои : 10.1145/366622.366647 . ISSN 0001-0782 .
- ^ Блюм, Мануэль; Флойд, Роберт В.; Пратт, Воган; Ривест, Рональд Л.; Тарьян, Роберт Э. (август 1973 г.). «Сроки отбора» . Журнал компьютерных и системных наук . 7 (4): 448–461. дои : 10.1016/S0022-0000(73)80033-9 .
- ^ Уильямс, ХК ; Шалит, Дж. О. (1994), «Факторизация целых чисел до появления компьютеров», Гаучи, Уолтер (редактор), «Математика вычислений 1943–1993: полвека вычислительной математики»; Статьи симпозиума по численному анализу и минисимпозиума по вычислительной теории чисел, состоявшихся в Ванкувере, Британская Колумбия, 9–13 августа 1993 г. , Proceedings of Symposium in Applied Mathematics, vol. 48, амер. Математика. Soc., Провиденс, Род-Айленд, стр. 481–531, doi : 10.1090/psapm/048/1314885 , ISBN. 978-0-8218-0291-5 , МР 1314885 ; см. стр. 504: «Возможно, Поклингтон также заслуживает похвалы как изобретатель рандомизированного алгоритма».
- ^ Берлекамп, ER (1971). «Факторизация полиномов по большим конечным полям» . Материалы второго симпозиума ACM по символическим и алгебраическим манипуляциям - SYMSAC '71 . Лос-Анджелес, Калифорния, США: ACM Press. п. 223. дои : 10.1145/800204.806290 . ISBN 9781450377867 . S2CID 6464612 .
- ^ Jump up to: а б с д и ж Кнут, Дональд Э. (1998). Искусство компьютерного программирования, том 3: (2-е изд.) Сортировка и поиск . США: Addison Wesley Longman Publishing Co., Inc., стр. 536–549. ISBN 978-0-201-89685-5 .
- ^ Кнут, Дональд (1963), Заметки об «открытой» адресации , заархивировано из оригинала 3 марта 2016 г.
- ^ Конхейм, Алан Г.; Вайс, Бенджамин (ноябрь 1966 г.). «Дисциплина занятости и ее приложения» . SIAM Journal по прикладной математике . 14 (6): 1266–1274. дои : 10.1137/0114101 . ISSN 0036-1399 .
- ^ Картер, Дж. Лоуренс; Вегман, Марк Н. (1 апреля 1979 г.). «Универсальные классы хэш-функций» . Журнал компьютерных и системных наук . 18 (2): 143–154. дои : 10.1016/0022-0000(79)90044-8 . ISSN 0022-0000 .
- ^ Блум, Бертон Х. (июль 1970 г.). «Компромисс пространства и времени при хэш-кодировании с допустимыми ошибками» . Коммуникации АКМ . 13 (7): 422–426. дои : 10.1145/362686.362692 . ISSN 0001-0782 . S2CID 7931252 .
- ^ Арагон, Чехия; Зайдель, Р.Г. (октябрь 1989 г.). «Рандомизированные деревья поиска» . 30-й ежегодный симпозиум по основам информатики . стр. 540–545. дои : 10.1109/SFCS.1989.63531 . ISBN 0-8186-1982-1 .
- ^ Пью, Уильям (апрель 1989 г.). Параллельное ведение списков пропуска (PS, PDF) (Технический отчет). Кафедра компьютерных наук, Университет Мэриленда. CS-TR-2222.
- ^ Jump up to: а б Алон, Нога (2016). Вероятностный метод . Джоэл Х. Спенсер (Четвертое изд.). Хобокен, Нью-Джерси. ISBN 978-1-119-06195-3 . OCLC 910535517 .
{{cite book}}
: CS1 maint: отсутствует местоположение издателя ( ссылка ) - ^ П. Эрдеш: Некоторые замечания по теории графов, Bull. амер. Математика. Соц. 53 (1947), 292-294 MR 8,479d; Централблатт 32,192.
- ^ Эрдеш, П. (1959). «Теория графов и вероятности» . Канадский математический журнал . 11 : 34–38. дои : 10.4153/CJM-1959-003-9 . ISSN 0008-414X . S2CID 122784453 .
- ^ Зейдель Р. Обратный анализ рандомизированных геометрических алгоритмов .
- ^ Каргер, Дэвид Р. (1999). «Случайная выборка в задачах проектирования разрезов, потоков и сетей». Математика исследования операций . 24 (2): 383–413. CiteSeerX 10.1.1.215.794 . дои : 10.1287/moor.24.2.383 .
- ^ Алиппи, Чезаре (2014), Интеллект для встраиваемых систем , Springer, ISBN 978-3-319-05278-6 .
- ^ Кушилевиц, Эяль; Нисан, Ноам (2006), Сложность коммуникации , Издательство Кембриджского университета, ISBN 9780521029834 . Детерминированную нижнюю границу см. на стр. 11; логарифмическую рандомизированную верхнюю границу см. на стр. 31–32.
- ^ Дайер, М.; Фриз, А.; Каннан, Р. (1991), «Алгоритм случайного полиномиального времени для аппроксимации объема выпуклых тел» (PDF) , Journal of the ACM , 38 (1): 1–17, doi : 10.1145/102782.102783 , S2CID 13268711
- ^ Фюреди, З. ; Барань И. (1986), «Вычислить объем сложно», Proc. 18-й симпозиум ACM по теории вычислений (Беркли, Калифорния, 28–30 мая 1986 г.) (PDF) , Нью-Йорк, Нью-Йорк: ACM, стр. 442–447, CiteSeerX 10.1.1.726.9448 , doi : 10.1145/12130.12176 , ISBN 0-89791-193-8 , S2CID 17867291
- ^ Шамир, А. (1992), «IP = PSPACE», Журнал ACM , 39 (4): 869–877, doi : 10.1145/146585.146609 , S2CID 315182
- ^ Кук, Мэтью ; Соловейчик, Давид; Уинфри, Эрик ; Брук, Иегошуа (2009), «Программируемость сетей химических реакций», Кондон, Энн ; Харель, Дэвид ; Кок, Йост Н.; Саломаа, Арто ; Уинфри, Эрик (ред.), Алгоритмические биопроцессы (PDF) , Natural Computing Series, Springer-Verlag, стр. 543–584, doi : 10.1007/978-3-540-88869-7_27 , ISBN 978-3-540-88868-0 .
Ссылки
[ редактировать ]- Томас Х. Кормен , Чарльз Э. Лейзерсон , Рональд Л. Ривест и Клиффорд Стейн . Введение в алгоритмы , второе издание. MIT Press и МакГроу-Хилл, 1990. ISBN 0-262-03293-7 . Глава 5: Вероятностный анализ и рандомизированные алгоритмы, стр. 91–122.
- Дирк Драхейм. « Семантика вероятностно-типизированного лямбда-исчисления (семантика цепи Маркова, поведение завершения и денотационная семантика). » Springer, 2017.
- Джон Кляйнберг и Ева Тардос . Алгоритм проектирования . Глава 13: «Рандомизированные алгоритмы».
- Фаллис, Д. (2000). «Надежность рандомизированных алгоритмов». Британский журнал философии науки . 51 (2): 255–271. дои : 10.1093/bjps/51.2.255 .
- М. Митценмахер и Э. Упфаль . Вероятность и вычисления: рандомизированные алгоритмы и вероятностный анализ . Издательство Кембриджского университета, Нью-Йорк (Нью-Йорк), 2005 г.
- Раджив Мотвани и П. Рагхаван. Рандомизированные алгоритмы . Издательство Кембриджского университета, Нью-Йорк (Нью-Йорк), 1995.
- Раджив Мотвани и П. Рагхаван. Рандомизированные алгоритмы . Обзор рандомизированных алгоритмов.
- Христос Пападимитриу (1993), Вычислительная сложность (1-е изд.), Аддисон Уэсли, ISBN 978-0-201-53082-7 Глава 11: Рандомизированные вычисления, стр. 241–278.
- Рабин, Майкл О. (1980). «Вероятностный алгоритм проверки простоты» . Журнал теории чисел . 12 : 128–138. дои : 10.1016/0022-314X(80)90084-0 .
- А. А. Цай, В. С. Лавджой, Дэвид Р. Каргер, Случайная выборка в задачах разреза, потока и проектирования сетей , Математика исследования операций, 24 (2): 383–413, 1999.
- «Рандомизированные алгоритмы научных вычислений» (RASC), OSTI.GOV (10 июля 2021 г.).