Tôi nghĩ rằng câu hỏi đang được hỏi ở đây đại khái là " có ý nghĩa trong đó chúng ta có thể thay thế chuỗi bit ngẫu nhiên trong thuật toán bằng các bit được rút ra một cách xác định từ chuỗi ngẫu nhiên Kolmogorov dài thích hợp không? " Đây ít nhất là câu hỏi tôi sẽ cố gắng câu trả lời! (Câu trả lời ngắn gọn là "Có, nhưng chỉ khi bạn khuếch đại xác suất lỗi trước")
Đúng...
Chúng tôi chắc chắn có thể nói một cái gì đó ở đây. Đặt là ngôn ngữ nào đó và đặt là thuật toán lấy đầu vào và chuỗi ngẫu nhiên (phân phối đồng đều trên ) st . Nói cách khác, là một thuật toán sai với xác suất nhiều nhất là .LAxr∈Uf(|x|){0,1}f(|x|)Pr[A(x,r)=L(x)]>1−ϵ(x)Aϵ(⋅)
Bây giờ hãy lưu ý rằng nếu đưa ra câu trả lời sai trên tức là , thì điều này cho chúng ta một số phương tiện để mô tả , đặc biệt, chúng ta có thể mô tả nó như là -th chuỗi làm cho sai trênĐể làm điều này, chúng ta chỉ cần tạo ra máy có mã hóa cứng , , và bit và chỉ liệt kê các lựa chọn của từ cho đến khi tìm thấy lựa chọn thứ của sao cho .A(x,r)A(x,r)≠L(x)riAx.xAib=1⟺x∈Lr′{0,1}f(|x|)ir′A(x,r′)≠b
Vì vậy, bây giờ chúng ta biết rằng chúng ta có thể tận dụng sự lựa chọn tồi của chuỗi ngẫu nhiên vào mô tả, hãy quan sát một số điều kiện đủ để biến mô tả của chúng ta thành nén. Để mô tả , chúng tôi yêu cầu đủ bit để mô tả , , và sau đó là mã cho quy trình của chúng tôi (mã cho và quy trình chúng tôi đã mô tả), đưa ra như một mô tả về độ dàirrxibA
|x|+|i|+O(1)=|x|+log2(2f(|x|)ϵ(x))+O(1)=|x|+f(|x|)−log(1/ϵ(x))+O(1).
Hãy nhớ rằng là độ dài , vì vậy đây là nén của if ví dụ: khi .rf(|x|)r
log(1/ϵ(x))=|x|+ω(1),
ϵ(x)=1/22|x|
Cuối cùng, quan sát rằng nếu là một chuỗi ngẫu nhiên Kolmogorov, thì chúng ta không thể có nén như vậy, miễn là xác suất lỗi của đủ nhỏ, một chuỗi ngẫu nhiên Kolmogorov thay cho chuỗi các bit ngẫu nhiên sẽ khiến trả lời chính xác!rAA
Lưu ý rằng điều duy nhất chúng ta tận dụng về là xác suất lỗi của nó là nhỏ. Chúng tôi không quan tâm nếu có thời gian chạy cực kỳ dài hoặc nếu có một hoặc hai lỗi.AAA
Đưa câu hỏi này trở lại câu hỏi về (hoặc hoặc ), điều này nói rằng miễn là chúng ta khuếch đại xác suất lỗi của các thuật toán của mình, chúng ta có thể sử dụng các chuỗi ngẫu nhiên Kolmogorov thay cho các bit ngẫu nhiên của chúng.RPcoRPBPP
... Nhưng chỉ khi chúng ta khuếch đại trước.
Một câu hỏi tiếp theo có thể là "tôi có thể làm điều này mà không khuếch đại xác suất lỗi không?" Hãy xem xét thuật toán quyết định và có xác suất lỗi .A{0,1}∗1/2n
Trên đầu vào :x
- Tạo một chuỗir∈{0,1}n
- Nếu , từ chối.r=x
- Chấp nhận.
Chú ý rằng đối với mỗi lựa chọn , có một số lựa chọn của như vậy errs trên , cụ thể là sự lựa chọn của đó là , vì vậy chúng tôi không thể thay thế các chuỗi ngẫu nhiên của các bit được sử dụng bởi với một chuỗi ngẫu nhiên Kolmogorov mà không cần khuếch đại đó là xác suất lỗi!rxAxr xA
Lưu ý về nguồn: Tôi không chắc liệu đây có phải là tiểu thuyết không, nhưng tôi đã bao gồm đối số đầu tiên trong bài viết của mình cho bài kiểm tra đủ điều kiện cuối cùng sẽ có sẵn trực tuyến sau khi tôi hoàn thành việc sửa đổi nó.