मुझे लगता है कि यहां पूछे जा रहे प्रश्न "मोटे तौर पर" एक ऐसा अर्थ है जिसमें हम एक एल्गोरिथ्म में यादृच्छिक बिट्स के अनुक्रम को बिट्स के साथ नियतकालिक रूप से लंबे कोलमोगोरोव यादृच्छिक स्ट्रिंग से नियत रूप से खींचे जा सकते हैं? "यह कम से कम सवाल है जिसे मैं करने का प्रयास करूंगा ? " का जवाब! (संक्षिप्त उत्तर "हाँ, लेकिन केवल तभी जब आप त्रुटि की संभावना पहले बढ़ाएँ")
हाँ...
हम यहां निश्चित रूप से कुछ कह सकते हैं। चलो कुछ भाषा हो सकता है और जाने एक एल्गोरिथ्म जो के रूप में इनपुट लेता हो और एक यादृच्छिक स्ट्रिंग (अधिक समान वितरण ) st | दूसरे शब्दों में, एक एल्गोरिथ्म है जो अधिकांश प्रायिकता के साथ ।LAxr∈Uf(|x|){0,1}f(|x|)Pr[A(x,r)=L(x)]>1−ϵ(x)Aϵ(⋅)
अब ध्यान दें कि यदि गलत उत्तर देता है अर्थात, , तो यह हमें का वर्णन करने के कुछ साधन देता है , विशेष रूप से, हम इसे रूप में वर्णित कर सकते हैं। -th स्ट्रिंग जो को पर गलत करती हैऐसा करने के लिए, हम बस मशीन बनाते हैं जिसमें हार्ड-कोडेड , , , और एक बिट , और बस से विकल्पों की गणना करता है। जब तक यह की पसंद का पता नहीं लगाता है, जैसे कि ।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|
अंत में, देख सकते हैं कि अगर एक Kolmogorov यादृच्छिक स्ट्रिंग थे, तो हम ऐसी कोई संपीड़न इतनी के रूप में लंबे समय के त्रुटी संभावना के रूप में हो सकता है, पर्याप्त रूप से छोटा है, यादृच्छिक बिट्स के अनुक्रम के स्थान पर एक Kolmogorov यादृच्छिक स्ट्रिंग का कारण होगा जवाब देने के लिए सही ढंग से!rAA
ध्यान दें कि बारे में हम केवल एक ही चीज का लाभ उठाते हैं कि इसकी त्रुटि संभावना छोटी है। हमें परवाह नहीं है अगर पास बहुत लंबा समय है या अगर में एक या दो तरफा त्रुटि है।AAA
(या या ) के सवाल पर इसे वापस लाना , यह कहता है कि जब तक हम अपने एल्गोरिदम की त्रुटि संभावना को बढ़ाते हैं, हम उनके यादृच्छिक बिट्स के स्थान पर कोलमोगोरोव यादृच्छिक तारों का उपयोग कर सकते हैं।RPcoRPBPP
... लेकिन केवल अगर हम पहले बढ़ाते हैं।
एक अनुवर्ती प्रश्न हो सकता है "क्या मैं त्रुटि संभावना को बढ़ाए बिना ऐसा कर सकता हूं?" निम्नलिखित कलन विधि पर विचार करें जो फैसला करता है और त्रुटी संभावना है ।A{0,1}∗1/2n
इनपुट :x
- एक स्ट्रिंग उत्पन्न करेंr∈{0,1}n
- यदि , अस्वीकार करें।r=x
- स्वीकार करना।
सूचना के हर चुनाव के लिए कि , वहाँ के कुछ पसंद है ऐसी है कि पर errs , अर्थात् के चुनाव कि है , तो हम से के लिए बिट की यादृच्छिक अनुक्रम को बदल नहीं सकते amplifying के बिना एक Kolmogorov यादृच्छिक स्ट्रिंग के साथ यह त्रुटि संभावना है!rxAxr xA
स्रोत के बारे में एक नोट: मुझे यकीन नहीं है कि इसमें से कोई भी उपन्यास है, लेकिन मैंने अपनी योग्यता परीक्षा के लिए अपने राइटअप में पहला तर्क शामिल किया, जो अंततः इसे संशोधित करने के बाद ऑनलाइन उपलब्ध होगा।