Я думаю, що питання, яке тут задають, є приблизно " чи є сенс, в якому ми можемо замінити послідовність випадкових бітів в алгоритмі бітами, визначеними детерміновано з відповідно довгих випадкових рядків Колмогорова? " відповідь! (Коротка відповідь - "Так, але тільки якщо ви попередньо посилите ймовірність помилки")
Так...
Тут ми можемо щось сказати. Нехай - деяка мова, а - алгоритм, який приймає як вхід і випадкову рядок (рівномірний розподіл на ) st . Іншими словами, - це алгоритм, який помиляється з вірогідністю не більше .LAxr∈Uf(|x|){0,1}f(|x|)Pr[A(x,r)=L(x)]>1−ϵ(x)Aϵ(⋅)
Зауважте тепер, що якщо дає неправильну відповідь на тобто , це дає нам деякі засоби опису , зокрема, ми можемо описати його як -тей рядок, який викликає помилку наДля цього ми просто робимо машину, у якої жорстко закодовані , , , і трохи , і просто перераховуємо вибір від поки не знайде -й вибір такий, що .A(x,r)A(x,r)≠L(x)riAx.xAib=1⟺x∈Lr′{0,1}f(|x|)ir′A(x,r′)≠b
Отже, тепер, коли ми знаємо, що ми можемо використовувати неправильний вибір випадкових рядків в опис, давайте спостерігатимемо деякі умови, достатні для перетворення нашого опису в стиснення. Для опису нам потрібні достатньо бітів для опису , , , а потім код для нашої процедури (код для і розпорядок, який ми описали), даючи як опис довжиниrrxibA
|x|+|i|+O(1)=|x|+log2(2f(|x|)ϵ(x))+O(1)=|x|+f(|x|)−log(1/ϵ(x))+O(1).
Нагадаємо, що - довжина , тому це стиснення якщо наприклад, коли .rf(|x|)r
log(1/ϵ(x))=|x|+ω(1),
ϵ(x)=1/22|x|
Нарешті, зауважте, що якби була випадкова рядок Колмогорова, тоді у нас не може бути такого стиснення, доки ймовірність помилки достатньо мала, випадкова рядок Колмогорова замість послідовності випадкових бітів призведе до відповіді правильно!rAA
Зауважте, що єдине, на що ми звертаємось до це те, що ймовірність його помилки невелика. Нам не байдуже, чи є у надзвичайно тривалий час роботи чи якщо в є одна або двостороння помилка.AAA
Повертаючи це до питання про (або або ), це говорить про те, що поки ми збільшуємо ймовірність помилок наших алгоритмів, ми можемо використовувати випадкові рядки Колмогорова замість їх випадкових бітів.RPcoRPBPP
... Але тільки якщо ми посилимось спочатку.
Наступне питання може бути: "чи можу я це зробити, не збільшуючи ймовірність помилки?" Розглянемо наступний алгоритм який вирішує і має ймовірність помилки .A{0,1}∗1/2n
На вході :x
- Утворіть рядокr∈{0,1}n
- Якщо , відхиліть.r=x
- Прийміть.
Зауважте, що для кожного вибору є певний вибір такий, що помиляється на , а саме вибір що є , тому ми не можемо замінити випадкову послідовність бітів, використаних випадковою рядком Колмогорова без посилення це ймовірність помилок!rxAxr xA
Зауваження про джерело: Я не впевнений, чи є щось із цього новим, але я включив перший аргумент у свою реєстрацію для мого кваліфікаційного іспиту, який згодом буде доступний в Інтернеті, коли я закінчу його перегляд.