Я довольно поздно присоединяюсь к обсуждению, но постараюсь ответить на несколько вопросов, которые были заданы ранее.
Во-первых, как заметил Аарон Стерлинг, важно сначала решить, что мы подразумеваем под «действительно случайными» числами, особенно если мы смотрим на вещи с точки зрения сложности вычислений или вычислимости.
Позвольте мне утверждать, однако, что в теории сложности люди в основном интересуются псевдослучайностью и генераторами псевдослучайности , то есть функциями от строк к строкам, так что распределение выходных последовательностей нельзя отличить от равномерного распределения каким-либо эффективным процессом. (где могут быть рассмотрены несколько значений эффективности , например, вычислимое время, схемы полиномиального размера и т. д.). Это красивая и очень активная область исследований, но я думаю, что большинство людей согласятся с тем, что изучаемые ею объекты не являются действительно случайными, достаточно просто выглядеть случайными (отсюда и термин «псевдо»).
В теории вычислимости возник консенсус относительно того, что должно быть хорошим понятием «истинной случайности», и действительно преобладало понятие случайности Мартина-Лёфа (другие были предложены и интересны для изучения, но не обнажают все приятные свойства Мартина-Лёфа имеет случайность). Чтобы упростить задачу, мы рассмотрим случайность для бесконечных двоичных последовательностей (другие объекты, такие как функции из строк в строки, могут быть легко закодированы такой последовательностью).
Бесконечная двоичная последовательность является случайной по методу Мартин-Лёфа, если никакой вычислимый процесс (даже если мы позволим этому процессу быть вычисляемым за три или более экспоненциальное время) не сможет обнаружить дефект случайности.α
(1) Что мы подразумеваем под «ошибкой случайности»? Эта часть очень проста: это множество меры 0, то свойство , что почти все последовательности не имеют (здесь мы говорим о Лебеге то есть мера , где каждые биты имеет вероятность быть 0 независимо от всех остальных биты). Примером такого недостатка является «асимптотически 1/3 нулей и 2/3 единиц», что нарушает закон больших чисел. Другой пример: «для каждого n первые 2n бит α идеально распределены (столько нулей, сколько единиц)». В этом случае закон больших чисел утверждается, но не центральная предельная теорема. И т. Д.1/20α
(2) Как вычислимый процесс может проверить, что последовательность не принадлежит определенному набору меры 0? Другими словами, какие множества меры 0 можно вычислить вычислимо? Это именно то, о чем говорят тесты Мартина-Лёфа. Тест Мартина-Лёфа - это вычислимая процедура, которая при заданном входном значении k вычислимо (т. Е. Через машину Тьюринга с входным значением ) генерирует последовательность строк w k , 0 , w k , 1 , ..., такую что множество U k бесконечных последовательностей, начинающихся с одного из этих w k , i имеет меру не более 2 - kkwk,0wk,1Ukwk,i2−k(если вам нравится топология, обратите внимание, что это открытый набор в топологии продукта для набора бесконечных двоичных последовательностей). Тогда множество имеет меру 0 и называется нулевым множеством Мартина-Лёфа . Теперь мы можем определить случайность Мартина-Лёфа, сказав, что бесконечная двоичная последовательность α случайна по Мартину-Лёфу, если она не принадлежит ни к какому нулевому множеству Мартина-Лёфа . G=⋂kUk0α
Это определение может показаться техническим, но оно широко признано правильным по нескольким причинам:
- он достаточно эффективен, то есть его определение включает в себя вычислимые процессы
- оно достаточно сильное: любое «почти уверенное» свойство, которое вы можете найти в учебнике по теории вероятностей (закон больших чисел, закон повторного логарифма и т. д.), может быть проверено с помощью теста Мартина-Лёфа (хотя это иногда трудно доказать)
- он был независимо предложен несколькими людьми, использующими разные определения (в частности, определение Левина-Чейтина, использующее колмогоровскую сложность); и тот факт, что все они приводят к одному и тому же понятию, является намеком на то, что оно должно быть правильным понятием (немного похоже на понятие вычислимой функции, которая может быть определена с помощью машин Тьюринга, рекурсивных функций, лямбда-исчисления и т. д.)
- математическая теория очень хороша! см. три превосходных книги «Введение в колмогоровскую сложность и ее приложения» (Ли и Витани), « Алгоритмическая случайность и сложность» (Дауни и Хиршфельдт), « Вычислимость и случайность» (Ниес).
Как выглядит случайная последовательность Мартина-Лёфа? Ну, возьмите идеально сбалансированную монету и начните ее подбрасывать. На каждом сальто напишите 0 для голов и 1 для хвостов. Продолжайте до конца времени. Вот как выглядит последовательность Мартина-Лёфа :-)
Теперь вернемся к первоначальному вопросу: существует ли вычислимый способ генерирования случайной последовательности Мартина-Лёфа? Интуитивно, ответ должен быть НЕТ , потому что, если мы можем использовать вычислимый процесс для генерации последовательности , то мы, безусловно, можем использовать вычислимый процесс для описания синглтона { ααα }, поэтому не является случайным. Формально это делается следующим образом. Предположим, что последовательность α вычислима. Рассмотрим следующий тест Мартина-Лёфа: для всех k просто выведите префикс a k из α длины k и ничего больше. Это имеет меру не более (фактически, точно) 2 - кααkakαk2−kи пересечение множеств как в определении, в точности равно { α }. QED !!Ukα
На самом деле случайная последовательность Мартина-Лёфа неисчислима в гораздо более сильном смысле: если какое-то вычисление оракула с оракулом β (которое само является бесконечной двоичной последовательностью) может вычислить α , то для всех n , n - O ( 1 ) битов β необходимы для вычисления первых n битов α (на самом деле это характеристика случайности Мартина-Лёфа, которая, к сожалению, редко указывается, как в литературе).αβαnn−O(1)βnα
Хорошо, теперь часть «редактирования» вопроса Джозефа: это тот случай, когда TM с доступом к чистому источнику случайности (оракулу?) Может вычислить функцию, которую не может классический класс?
С точки зрения вычислимости ответ - «да и нет». Если вам предоставляется доступ к случайному источнику в качестве оракула (где выходные данные представлены в виде бесконечной двоичной последовательности), с вероятностью 1 вы получите случайный оракул Мартина-Лёфа, и, как мы видели ранее, случайный случай Мартина-Лёфа подразумевает вычислимо, так что достаточно вывести самого оракула! Или, если вам нужна функция , вы можете рассмотреть функцию f, которая для всех n сообщает вам, сколько нулей есть среди первых n бит вашего оракула. Если оракул случайный по Мартину-Лёфу, эта функция будет невычислимой.f:N→Nfnn
Но, конечно, вы можете утверждать, что это обман: на самом деле, для другого оракула мы можем получить другую функцию, поэтому возникает проблема с невоспроизводимостью. Следовательно, другой способ понять ваш вопрос заключается в следующем: есть ли функция которая не вычислима, но которая может быть «вычислена с положительной вероятностью», в том смысле, что существует машина Тьюринга с доступом к случайному оракулу, который, с положительной вероятностью (над оракулом) вычисляет f . Ответ - нет, из-за теоремы Сакса, доказательство которой довольно просто. На самом деле на это в основном ответил Робин Котари: если вероятность того, что ТМ будет правильной, больше 1/2, то можно искать все n во всех возможных вычислениях оракула с помощью ввода nffnnи найдите результат, который получает «большинство голосов», то есть который создается набором оракулов меры более 1/2 (это можно сделать эффективно). Аргумент даже распространяется на меньшие вероятности: предположим, что ТМ выводит f с вероятностью . По теореме плотности Лебега существует конечная строка σ такая, что если мы зафиксируем первые биты оракула как точно σ , а затем получим другие биты случайным образом, то мы вычислим f с вероятностью не менее 0.99. Взяв такое σ , мы можем снова применить приведенный выше аргумент.ϵ>0σσfσ