ฉันเข้าร่วมการสนทนาค่อนข้างช้า แต่ฉันจะพยายามตอบคำถามหลายข้อที่ถามไว้ก่อนหน้านี้
ข้อแรกเป็นที่สังเกตโดย Aaron Sterling มันเป็นสิ่งสำคัญที่จะต้องตัดสินใจก่อนว่าเราหมายถึงอะไรโดยใช้ตัวเลข "สุ่มอย่างแท้จริง" และโดยเฉพาะอย่างยิ่งถ้าเราดูสิ่งต่าง ๆ จากความซับซ้อนในการคำนวณหรือมุมมองการคำนวณ
ให้ฉันเถียงว่าในทฤษฎีความซับซ้อนผู้คนส่วนใหญ่ให้ความสนใจในpseudo -randomness และpseudo -random generators นั่นคือฟังก์ชั่นจากสายไปสู่สายอักขระซึ่งการกระจายของลำดับเอาต์พุตไม่สามารถบอกได้นอกเหนือจากการกระจายแบบเดียวกันโดยกระบวนการที่มีประสิทธิภาพ (ในกรณีที่มีความหมายหลายอย่างที่มีประสิทธิภาพสามารถนำมาพิจารณาได้เช่นตัวคำนวณแบบ polytime วงจรขนาดพหุนามเป็นต้น) มันเป็นพื้นที่การวิจัยที่สวยงามและแอคทีฟมาก แต่ฉันคิดว่าคนส่วนใหญ่จะยอมรับว่าวัตถุที่ศึกษานั้นไม่ได้สุ่มอย่างแท้จริงมันก็เพียงพอแล้วที่พวกเขาจะดูสุ่ม (ดังนั้นคำว่า "หลอก")
ในทฤษฎีการคำนวณความสอดคล้องได้เกิดขึ้นกับสิ่งที่ควรจะเป็นความคิดที่ดีของ "การสุ่มที่แท้จริง" และมันก็เป็นความคิดของมาร์ติน - Löfแบบแผนซึ่งได้รับชัยชนะ (คนอื่น ๆ ที่ได้รับการเสนอ คุณสมบัติที่ดีของ Martin-Löfมีการสุ่ม) เพื่อลดความซับซ้อนของเรื่องเราจะพิจารณาการสุ่มสำหรับลำดับอนันต์ไบนารี (วัตถุอื่น ๆ เช่นฟังก์ชั่นจากสตริงไปยังสตริงสามารถเข้ารหัสได้อย่างง่ายดายตามลำดับดังกล่าว)
ลำดับอนันต์ไบนารีคือ Martin-Löfสุ่มหากไม่มีกระบวนการคำนวณ (แม้ว่าเราอนุญาตให้กระบวนการนี้คำนวณได้ในเวลาเอ็กซ์โพเนนเชียลสามเท่าหรือสูงกว่า) สามารถตรวจพบข้อบกพร่องแบบสุ่มα
(1) เราหมายถึงอะไรโดย "ข้อบกพร่องแบบสุ่ม"? ส่วนนั้นเป็นเรื่องง่าย: มันเป็นชุดของการวัด 0 นั่นคือคุณสมบัติที่เกือบทุกลำดับไม่มี (ที่นี่เราพูดถึงการวัด Lebesgueเช่นการวัดที่แต่ละบิตมีความน่าจะเป็นจะเป็นแยกจากกันทั้งหมด บิต) ตัวอย่างของข้อบกพร่องคือ "มีซีมโทติติก 1 ใน 3 ของศูนย์และ 2/3 ของศูนย์" ซึ่งละเมิดกฎหมายจำนวนมาก อีกตัวอย่างหนึ่งคือ "สำหรับทุก ๆ n บิต 2n แรกของรับการกระจายอย่างสมบูรณ์แบบ (เป็นศูนย์มากที่สุดเท่าที่มีอยู่) ในกรณีนี้กฎของคนจำนวนมากจะอิ่มตัว แต่ไม่ใช่ทฤษฎีบทขีด จำกัด กลาง ฯลฯ1 / 20α
(2) การทดสอบกระบวนการที่สามารถคำนวณได้ว่าลำดับไม่ได้อยู่ในชุดของการวัดที่เฉพาะเจาะจง 0 อย่างไร กล่าวอีกนัยหนึ่งชุดการวัด 0 ใดที่สามารถอธิบายการคำนวณได้ นี่คือสิ่งที่การทดสอบ Martin-Löfเกี่ยวข้อง การทดสอบ Martin-Löfเป็นกระบวนการที่คำนวณได้ซึ่งรับอินพุต k, computably (เช่นผ่านเครื่องทัวริงกับอินพุต ) สร้างลำดับของสตริง , , ... เช่นชุดของลำดับอนันต์โดยเริ่มจากหนึ่งในบรรดามีการวัดที่มากที่สุด (ถ้าคุณชอบโทโพโลยีสังเกตว่านี่เป็นชุดเปิดในโทโพโลยีผลิตภัณฑ์สำหรับชุดของ ลำดับไบนารีไม่ จำกัด ) จากนั้นชุดkwk,0wk,1Ukwk,i2−kG=⋂kUkมีมาตรการและจะเรียกว่ามาร์ตินLöf nullset ตอนนี้เราสามารถกำหนด Martin-Löfสุ่มโดยบอกว่าไม่มีที่สิ้นสุดไบนารีลำดับเป็นมาร์ตินLöfสุ่มถ้ามันไม่ได้อยู่ในใด ๆ nullset 0α
คำจำกัดความนี้อาจดูเหมือนเป็นเรื่องทางเทคนิค แต่เป็นที่ยอมรับกันอย่างกว้างขวางว่าเป็นสิ่งที่ถูกต้องด้วยเหตุผลหลายประการ:
- มันมีประสิทธิภาพเพียงพอเช่นนิยามของมันเกี่ยวข้องกับกระบวนการที่คำนวณได้
- มันมีความแข็งแรงเพียงพอ: คุณสมบัติ "เกือบจะแน่นอน" ใด ๆ ที่คุณอาจพบในตำราเรียนทฤษฎีความน่าจะเป็น (กฎจำนวนมากกฎลอการิทึมซ้ำแล้วซ้ำอีก) สามารถทดสอบโดยการทดสอบ Martin-Löf (แม้ว่าบางครั้งยากที่จะพิสูจน์)
- มันได้รับการเสนอโดยอิสระจากหลาย ๆ คนที่ใช้คำจำกัดความที่แตกต่างกัน และความจริงที่ว่าพวกเขาทั้งหมดนำไปสู่แนวคิดเดียวกันเป็นคำใบ้ว่ามันควรจะเป็นความคิดที่ถูกต้อง (เล็กน้อยเช่นความคิดของฟังก์ชั่นคำนวณซึ่งสามารถกำหนดได้ผ่านเครื่องจักรทัวริงฟังก์ชันซ้ำแลมด้าแคลคูลัส ฯลฯ )
- ทฤษฎีทางคณิตศาสตร์ที่อยู่เบื้องหลังมันดีมาก! ดูหนังสือสามเล่มที่ยอดเยี่ยมความรู้เบื้องต้นเกี่ยวกับความซับซ้อนของ Kolmogorov และการประยุกต์ใช้ (Li และ Vitanyi) การสุ่มและความซับซ้อนของอัลกอริทึม (Downey and Hirschfeldt) การคำนวณและการสุ่ม (Nies)
ลำดับสุ่ม Martin-Löfมีลักษณะอย่างไร เอาเหรียญที่สมดุลอย่างสมบูรณ์แล้วเริ่มพลิกมัน ในแต่ละครั้งให้เขียน 0 สำหรับหัวและ 1 สำหรับก้อย ดำเนินการต่อไปจนถึงเวลาสิ้นสุด นั่นคือสิ่งที่ลำดับ Martin-Löfดูเหมือนว่า :-)
ตอนนี้กลับไปที่คำถามเริ่มต้น: มีวิธีที่คำนวณได้เพื่อสร้างลำดับสุ่ม Martin-Löfหรือไม่ คำตอบอย่างสังหรณ์ใจควรจะไม่เพราะถ้าเราสามารถใช้กระบวนการคำนวณเพื่อสร้างลำดับดังนั้นเราสามารถใช้กระบวนการคำนวณเพื่ออธิบาย singleton { } ดังนั้นจึงไม่สุ่ม อย่างเป็นทางการนี้จะทำดังนี้ สมมติว่าลำดับคำนวณได้ พิจารณาการทดสอบ Martin-Löfต่อไปนี้: สำหรับทั้งหมดเพียงแค่นำหน้าคำนำหน้าของของ lengthและไม่มีอะไรอื่น สิ่งนี้มีมาตรการมากที่สุด (อันที่จริงแล้ว)ααααkakαk2−kและจุดตัดของชุดเช่นเดียวกับในนิยามคือ { } QED !!Ukα
ในความเป็นจริงมาร์ติน - Löfสุ่มลำดับสามารถเปรียบเทียบได้ในความหมาย: ถ้า oracle คำนวณด้วย oracle (ซึ่งเป็นลำดับไบนารีอนันต์) สามารถคำนวณแล้วสำหรับ ,บิต ของจำเป็นต้องคำนวณบิตแรกของ (อันที่จริงแล้วเป็นลักษณะของการสุ่มของ Martin-Löfซึ่งน่าเสียดายที่ไม่ค่อยมีการกล่าวถึงในวรรณคดี)αβαnn−O(1)βnα
ตกลงตอนนี้ส่วน "แก้ไข" ของคำถามของโจเซฟ: เป็นกรณีที่ TM ที่เข้าถึงแหล่งกำเนิดของการสุ่ม (oracle?) สามารถคำนวณฟังก์ชันที่ TM คลาสสิกไม่ได้หรือไม่
จากมุมมองการคำนวณคำตอบคือ "ใช่และไม่ใช่" หากคุณได้รับการเข้าถึงแหล่งสุ่มเป็น oracle (ซึ่งผลลัพธ์ถูกแสดงเป็นลำดับเลขฐานสองไม่สิ้นสุด) โดยมีความน่าจะเป็น 1 คุณจะได้รับพยากรณ์แบบสุ่มของ Martin-Löfและอย่างที่เราเห็นมาก่อนหน้านี้ คำนวณได้ดังนั้นจึงพอเพียงที่จะส่งออราเคิลออกมา! หรือถ้าคุณต้องการฟังก์ชั่นคุณสามารถพิจารณาฟังก์ชันซึ่งทั้งหมดบอกคุณว่าหลายศูนย์ที่มีอยู่ในหมู่คนแรกที่บิต oracle ของคุณ ถ้า oracle เป็น Martin-Löfสุ่มฟังก์ชันนี้จะไม่สามารถคำนวณได้f:N→Nfnn
แต่แน่นอนคุณอาจโต้เถียงว่านี่เป็นการโกงจริง ๆ สำหรับ oracle ที่แตกต่างกันเราอาจได้ฟังก์ชันที่แตกต่างกันดังนั้นจึงมีปัญหาที่ไม่สามารถจำลองได้ ดังนั้นอีกวิธีที่จะเข้าใจคำถามของคุณมีดังต่อไปนี้: มีฟังก์ชันซึ่งไม่สามารถคำนวณได้ แต่สามารถ "คำนวณด้วยความน่าจะเป็นบวก" ในแง่ที่ว่ามีเครื่องทัวริงที่สามารถเข้าถึงพยากรณ์แบบสุ่มได้ กับความน่าจะเป็นในเชิงบวก (มากกว่า oracle), การคำนวณฉคำตอบคือไม่เนื่องจากทฤษฎีบทของ Sacks ซึ่งการพิสูจน์ค่อนข้างง่าย ที่จริงแล้วมันได้รับคำตอบจาก Robin Kothari เป็นหลัก: ถ้าความน่าจะเป็นสำหรับ TM นั้นถูกต้องมากกว่า 1/2 แล้วละก็สามารถมองหาทั้งหมดในการคำนวณ oracle ที่เป็นไปได้ทั้งหมดด้วยอินพุตฉn n ฉε > 0 σ σ ฉσffnnและหาผลลัพธ์ที่ได้รับ "เสียงข้างมากโหวต" คือซึ่งผลิตโดยชุดของวัด oracles มากกว่า 1/2 (นี้สามารถทำได้อย่างมีประสิทธิภาพ) อาร์กิวเมนต์แม้ขยายไปถึงความน่าจะเป็นขนาดเล็ก: สมมติว่า TM ผลผลิตกับความน่าจะเป็น 0 โดยทฤษฎีบทความหนาแน่นของ Lebesgue มีสตริง จำกัดเช่นนั้นถ้าเรากำหนดบิตแรกของ oracle ให้เป็นอย่างแน่นอนแล้วได้บิตอื่น ๆ โดยการสุ่มเราคำนวณด้วยความน่าจะเป็นอย่างน้อย 0.99 โดยการใช้ aเราสามารถใช้อาร์กิวเมนต์ข้างต้นอีกครั้งfϵ>0σσfσ