Я долучаюся до дискусії досить пізно, але спробую вирішити кілька питань, які були задані раніше.
По-перше, як зауважив Аарон Стерлінг, важливо спочатку визначитися, що ми маємо на увазі під «справді випадковими» числами, і особливо, якщо ми дивимось на речі з точки зору складності обчислень чи обчислювальної точки зору.
Дозвольте мені заперечити, що в теорії складності люди в основному цікавляться псевдовипадковістю і псевдовипадковими генераторами, тобто функціями від рядків до рядків таким чином, що розподіл вихідних послідовностей не можна сказати, окрім рівномірного розподілу деяким ефективним процесом (де можна розглянути декілька значень ефективності , наприклад, обчислювані багатопотокові, схеми розміру поліномів тощо). Це прекрасна і дуже активна дослідницька область, але я думаю, що більшість людей погодиться, що об'єкти, які вона вивчає, не є справді випадковими, достатньо, щоб вони просто виглядали випадковими (звідси і термін «псевдо»).
У теорії обчислюваності з'явився консенсус щодо того, що має бути хорошим поняттям "справжньої випадковості", і саме це поняття випадковості Мартіна-Лефа переважало (інші запропоновані та цікаві для вивчення, але не всі приємні властивості має випадковість Мартіна-Лефа). Для спрощення питань ми розглянемо випадковість для нескінченних бінарних послідовностей (інші об'єкти, такі як функції від рядків до рядків, легко кодуються такою послідовністю).
Нескінченна бінарна послідовність є випадковою для Мартина-Лефа випадковим випадком, якщо жоден обчислюваний процес (навіть якщо ми дозволяємо обчислювати цей процес у потрійний експоненціальний час або вище) не може виявити недолік випадковості.α
(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 - kкшk , 0шk , 1Uкшk , i2- к(якщо вам подобається топологія, зауважте, що це відкритий набір у топології продукту для набору нескінченних бінарних послідовностей). Тоді множина має міру 0 і називається нульсетом Мартіна-Лефа . Тепер ми можемо визначити випадковість Мартіна-Лефа, сказавши, що нескінченна бінарна послідовність α є випадковою для Мартина-Лефа, якщо вона не належить до жодного нульсета Мартина-Лефа . G = ⋂кUк0α
Це визначення може здатися технічним, але воно широко прийнято з кількох причин:
- він досить ефективний, тобто його визначення включає в себе обчислювальні процеси
- воно досить сильне: будь-яке "майже впевнене" властивість, яке ви можете знайти в підручнику з теорії ймовірностей (закон великих чисел, закон ітераційного логарифму тощо), може бути перевірене тестом Мартіна-Лефа (хоча це часом важко довести)
- це було самостійно запропоновано декількома людьми, що використовують різні визначення (зокрема, визначення Левіна-Хайтіна з використанням складності Колмогорова); і той факт, що всі вони ведуть до однієї і тієї ж концепції, є натяком на те, що це має бути правильне поняття (трохи схоже на поняття обчислювальної функції, яку можна визначити за допомогою машин Тьюрінга, рекурсивних функцій, лямбда-числення тощо).
- математична теорія за нею дуже приємна! див. три чудові книги Вступ до складності Колмогорова та його застосувань (Лі та Вітаній), Алгоритмічна випадковість та складність (Дауні та Гіршфельдт) Обчислюваність та випадковість (Nies).
Як виглядає випадкова послідовність Мартина-Льофа? Ну, візьміть ідеально збалансовану монетку і починайте її гортати. На кожному фліпі напишіть 0 для головок та 1 для хвостів. Продовжуйте до кінця часу. Ось так виглядає послідовність Мартина-Лефа :-)
Тепер повернемося до початкового питання: чи існує обчислюваний спосіб генерувати випадкову послідовність Мартіна-Лефа? Інтуїтивно відповідь повинна бути НІ , тому що якщо ми можемо використовувати обчислювальний процес для генерації послідовності , то, безумовно, ми можемо використовувати обчислювальний процес для опису сингтона { α }, тому α не є випадковим. Формально це робиться наступним чином. Припустимо, послідовність α обчислюється. Розглянемо наступний тест Martin-LOF: для всіх до , просто вихідний префікс до з альфа довжини до , і нічого іншого. Це має міру максимум (насправді, саме) 2 - kααααкакαк2- к, а перетин множин як у визначенні, рівно { α }. QED !!Uкα
Насправді випадкова послідовність Мартіна-Лефа α є непорушною в набагато сильнішому сенсі: якщо деякі обчислення оракула з оракулом β (який сам по собі є нескінченною бінарною послідовністю) можуть обчислити α , то для всіх n , n - O ( 1 ) біт β потрібні для обчислення перших n бітів α (це насправді характеристика випадковості Мартіна-Лефа, яка, на жаль, рідко заявляється, як це є в літературі).αβαнn - O ( 1 )βнα
Гаразд, тепер питання "редагування" Джозефа: чи це так, що ТМ з доступом до чистого джерела випадковості (оракул?) Може обчислити функцію, яку класична ТМ не може?
З точки зору обчислюваності, відповідь - "так і ні". Якщо ви отримаєте доступ до випадкового джерела як оракул (де вихід представлений у вигляді нескінченної бінарної послідовності), з ймовірністю 1 ви отримаєте випадковий оракул Мартіна-Лефа, і як ми бачили раніше, випадковий Мартін-Леф означає, що обчислювальна, тому досить вивести сам оракул! Або якщо ви хочете функцію , ви можете розглянути функцію f, яка для всіх n повідомляє вам, скільки нулів є серед перших n біт вашого оракула. Якщо оракул є випадковим Мартіном-Лефом, ця функція буде невичислена.f: N → Nfнн
Але, звичайно, ви можете стверджувати, що це обман: дійсно, для іншого оракула ми можемо отримати іншу функцію, тому існує проблема невідтворюваності. Отже, ще один спосіб зрозуміти ваше запитання полягає в наступному: чи існує функція яка не обчислюється, але яку можна "обчислити з позитивною ймовірністю", в тому сенсі, що існує машина Тьюрінга з доступом до випадкового оракула, який, з позитивною ймовірністю (над оракулом) обчислює f . Відповідь - ні, через теорему Саксів, доказ якої досить простий. Насправді на нього в основному відповів Робін Котарі: якщо ймовірність правильності ТМ більша за 1/2, то можна шукати всі n на всіх можливих обчисленнях оракул із введенням nffнні знайдіть результат, який отримує "голос більшості", тобто отриманий набором оракул міри більше 1/2 (це можна зробити ефективно). Аргумент поширюється навіть на менші ймовірності: припустимо, TM виводить з вірогідністю ϵ > 0 . За теоремою про щільність Лебега існує кінцевий рядок σ такий, що якщо ми фіксуємо перші біти оракула точно σ , а потім отримаємо інші біти навмання, то обчислимо f з вірогідністю щонайменше 0,99. Взявши таке σ , ми можемо застосувати вищезазначений аргумент ще раз.fϵ > 0σσfσ