Рандомизированные (полиномиальное время, логический результат) алгоритмы находятся в классе вычислительной сложности RP, который является подмножеством NP, где находятся недетерминированные (полиномиальное время, логический результат) алгоритмы, и надмножеством P, где детерминирован (полиномиальное время, логический результат) алгоритмы проживают.
Подменю сложность о сокращении проблем в одном наборе к другому набору. Таким образом, RP ⊆ NP исключает возможность рандомизированных алгоритмов, которые также являются недетерминированными, поскольку определенно надмножество содержит подмножество. Подмножество означает, что каждый алгоритм RP (или любой RP-полный алгоритм) может быть уменьшен до некоторого NP-алгоритма (или любого NP-полного алгоритма). P является подмножеством RP, потому что каждая проблема в P может быть сведена к проблеме в RP, где количество неконтролируемой энтропии равно 0.
Тангенциально, это аналогично тому, как каждая задача в NC (параллельные вычисления) может быть сведена к проблеме в P путем симуляции параллельных вычислений в редукции к последовательной задаче в P, но еще не доказано, что обратное утверждение верно, т.е. что каждая проблема в P сводима к задаче в NC, а также не доказана, что она не верна, то есть неправдоподобное доказательство того, что P-полная задача не сводима к проблеме в NC. Возможно, что существуют проблемы, которые по своей природе последовательны и не могут быть вычислены параллельно, но доказать, что доказать P ≠ NC, кажется неправдоподобным (по причинам, слишком касательным, чтобы обсуждать в этом ответе).
В более общем смысле (т. Е. Не ограничиваясь булевыми типами результатов) рандомизированные алгоритмы отличаются от детерминированных алгоритмов тем, что некоторая энтропия извлекается из внешних источников . Рандомизированные алгоритмы отличаются от недетерминированных алгоритмов, потому что что энтропия ограничена , и, таким образом, можно доказать, что рандомизированные (а не недетерминированные) алгоритмы всегда заканчиваются.
Непредсказуемость недетерминированных алгоритмов связана с невозможностью перечисления все возможные перестановки входной энтропии (что приводит к непредсказуемости завершения). Непредсказуемость рандомизированного алгоритма обусловлена неспособностью контролироватьвся входная энтропия (которая приводит к непредсказуемости неопределенного результата, хотя степень непредсказуемости может быть предсказана). Ни одно из них не является утверждением о непредсказуемости правильного ответа на проблему, но скорее непредсказуемость проявляется в боковом канале завершения и неопределенного результата соответственно. Похоже, многие читатели связывают непредсказуемость в одной области с непредсказуемостью правильного результата, что я никогда не писал (см. Историю изменений).
Ключевым является понимание того, что недетерминизм - это всегда (в любой науке или использовании этого термина) неспособность перечислить универсальную (т.е. неограниченную) энтропию. Принимая во внимание, что рандомизация относится к доступу к другому источнику энтропии (в программах энтропии, отличных от контролируемых входных переменных и, таким образом, не зависящих от них), которые могут быть или не быть неограниченными.
Я добавил следующий комментарий ниже самого популярного в настоящее время ответа в другой ветке, которая задает аналогичный вопрос.
Все науки используют одно и то же определение недетерминизма, объединенного понятием неограниченной энтропии. Непредсказуемые результаты во всех науках обусловлены неспособностью априори перечислять все возможные выходные данные алгоритма (или системы), поскольку он принимает неограниченные состояния, то есть класс сложности NP. Указание конкретного входа для наблюдения за тем, останавливается ли он, и отметка, что результат идемпотентен, эквивалентен в других науках поддержанию постоянной энтропии вселенной постоянной, повторяя то же самое изменение состояния. Вычислительная техника позволяет эту энтропийную изоляцию, а естественные науки - нет
Добавление некоторых из лучших комментариев, чтобы добавить разъяснение моей точки зрения на единственное существенное различие между рандомизированным и недетерминированным.
Это действительно довольно элегантно и легко увидеть различие, как только вы все перестанете запутывать его, пытаясь описать его с оперативной точки зрения, а не с явной энтропийной точки зрения.
@reinierpost каждый сопоставляет разницу между рандомизированным и недетерминированным. Это заставляет ваш комментарий быть запутанным. Алгоритм реагирует на взаимодействие входной (переменной) энтропии и ее исходного кода (инварианта) внутренней энтропии. Недетерминизм - это неограниченная энтропия. Инвариантная энтропия может быть даже внутренне неограниченной, например, растягивая цифры π . Рандомизированный - это некоторая энтропия, которая не связана со входом, как определено (т. Е. Она может исходить от системного вызова /dev/random
или моделируемой случайности, например, NFA или PRNG).
,
@ Рафаэль формальное определение недетерминированного конечного автомата (NFA) является конечной входной энтропии (данные: 5-кортеж). Таким образом, каждый NFA может работать на детерминированной машине Тьюринга, т.е. не требует недетерминированной машины, полной по Тьюрингу. Таким образом, НФА не относятся к классу недетерминированных проблем. Понятие «недетерминизм» в NFA заключается в том, что его детерминизм (хотя он явно присутствует, поскольку каждый NFA может быть преобразован в DFA) явно не расширен - не то же самое, что недетерминизм вычислений
,
@ Рафаэль, заявленный «недетерминизм» в NFAs - это действительно случайность, смысл моего определения различия между случайностью и недетерминизмом. Мое определение состоит в том, что случайность - это когда некоторая энтропия, которая не находится под контролем, знание (или желаемое неявное расширение в случае NFA) входных данных для программы или функции. Принимая во внимание, что истинный недетерминизм - это неспособность знать энтропию в любом случае, потому что она не ограничена. Именно это и отличает рандомизированное от недетерминизма. Так что NFA должен быть примером первого, а не последнего, как вы утверждали.
,
@ Рафаэль, как я уже объяснил, понятие недетерминизма в НФА связывает недетерминированный с конечной энтропией. Таким образом, недетерминизм - это локальная концепция не расширения детерминизма как формы сжатия или удобства, поэтому мы не говорим, что NFA являются недетерминированными, скорее, они кажутся случайными для оракула, не желающего вычислять детерминированное расширение. Но это все мираж, потому что он называется детерминированным расширением, энтропия не является неограниченной, то есть конечной.
Словари являются инструментами. Научитесь использовать их.
случайное прилагательное
Статистика. или характеризующий процесс выбора, в котором каждый элемент набора имеет равную вероятность выбора.
быть или относиться к набору или к элементу набора, каждый из элементов которого имеет равную вероятность появления
Таким образом, рандомизация требует только того, чтобы некоторая часть входной энтропии была равновероятной, что согласуется с моим определением, что часть входной энтропии не контролируется вызывающей функцией. Обратите внимание, что рандомизация не требует, чтобы входная энтропия была неразрешимой по отношению к завершению.
В компьютерных науках детерминированный алгоритм - это алгоритм, который при заданном входном сигнале всегда будет выдавать один и тот же выходной сигнал, а базовый механизм всегда проходит через одну и ту же последовательность состояний.
Формально детерминированный алгоритм вычисляет математическую функцию; функция имеет уникальное значение для любого входа в своей области, и алгоритм представляет собой процесс, который производит это конкретное значение в качестве вывода.
Детерминированные алгоритмы могут быть определены в терминах конечного автомата: состояние описывает, что машина делает в определенный момент времени. Конечные автоматы дискретно переходят из одного состояния в другое. Сразу после того, как мы введем ввод, машина находится в исходном состоянии или в начальном состоянии. Если машина является детерминированной, это означает, что с этого момента ее текущее состояние определяет, каким будет ее следующее состояние; его прохождение через множество состояний предопределено. Обратите внимание, что машина может быть детерминированной и все равно никогда не останавливаться и не заканчивать работу, и, следовательно, не может дать результат.
Таким образом, это говорит нам о том, что детерминированные алгоритмы должны быть полностью определены состоянием ввода функции, то есть мы должны быть в состоянии доказать, что функция будет завершена (или не завершена), и что она не может быть неразрешимой. Несмотря на запутанную попытку Википедии описать недетерминированный, единственная противоположность детерминированному, как определено выше в Википедии, - это алгоритмы, чье входное состояние (энтропия) плохо определено. И единственный способ, которым входное состояние может быть плохо определено, - это когда оно не ограничено (таким образом, не может быть детерминировано предварительно проанализировано). Именно это отличает недетерминированную машину Тьюринга (и многие реальные программы, написанные на общих языках Тьюринга, таких как C, Java, Javascript, ML и т. Д.) От детерминированных ТМ и языков программирования, таких как HTML, формулы электронных таблиц, Кок, Эпиграмма,
В теории вычислительной сложности недетерминированные алгоритмы - это те, которые на каждом возможном шаге могут допускать многократные продолжения (представьте себе человека, идущего по тропинке в лесу, и каждый раз, когда он шагает дальше, он должен выбрать, какую развилку на дороге он хочет принять). Эти алгоритмы не приходят к решению для каждого возможного вычислительного пути; однако они гарантированно найдут правильное решение для некоторого пути (т. е. человек, идущий по лесу, может найти свою хижину, только если он выберет некоторую комбинацию «правильных» путей). Выбор может быть интерпретирован как догадки в процессе поиска.
Википедия и другие пытаются отождествить рандомизацию с недетерминизмом, но какой смысл иметь эти два понятия, если вы не собираетесь их красноречиво различать?
Ясно, детерминизм о способности определять. Ясно, что рандомизация заключается в том, чтобы сделать некоторую энтропию равновероятной.
Включение случайной энтропии в состояние алгоритма не обязательно делает его неопределимым. Например, PRNG может иметь требуемое равновероятное статистическое распределение, но также быть полностью детерминированным.
Смешение ортогональных понятий - это то, что люди с низким IQ Я ожидаю лучшего, чем это от этого сообщества!