มันคือ ตำรวจและโจร ความท้าทายจากการนิยามภาษาและการพิสูจน์ว่าทัวริงสมบูรณ์
นี่คือด้ายของตำรวจ ด้ายโจรอยู่ที่นี่
ตำรวจ
ในฐานะตำรวจคุณจะเตรียมสองสิ่ง:
สเปคอย่างเป็นทางการของภาษาการเขียนโปรแกรมหรือระบบการคำนวณอื่น ๆ (ระบบการคำนวณมีการกำหนดไว้ด้านล่าง)
หลักฐานที่แสดงว่าระบบของคุณกำลังทัวริงสมบูรณ์ตามคำจำกัดความที่เข้มงวดด้านล่าง
คุณจะโพสต์สเปคของภาษาของคุณและโจรจะพยายาม "ถอดรหัส" โดยการพิสูจน์ความสมบูรณ์ของทัวริง หากการส่งของคุณไม่แตกภายในหนึ่งสัปดาห์คุณสามารถทำเครื่องหมายว่าปลอดภัยและโพสต์หลักฐานของคุณ (คำตอบของคุณอาจถูกยกเลิกหากมีคนพบข้อบกพร่องในหลักฐานของคุณเว้นแต่คุณจะแก้ไขได้)
มันคือ ความนิยมประกวดดังนั้นผู้ชนะจะเป็นคำตอบที่มีคะแนนโหวตมากที่สุดและไม่แตกหรือเป็นโมฆะ ความท้าทายคือปลายเปิด - ฉันจะไม่ยอมรับคำตอบ
เพื่อความท้าทายนี้ระบบการคำนวณจะถูกกำหนดเป็นสี่สิ่ง:
A
P
"ชุดโปรแกรม" นี่จะเป็นชุดที่ไม่มีที่สิ้นสุดนับได้เช่นสตริงจำนวนเต็มต้นไม้ไบนารีการกำหนดค่าพิกเซลบนกริดเป็นต้น (แต่ดูข้อ จำกัด ทางเทคนิคด้านล่าง)"ชุดอินพุต"
I
ซึ่งจะเป็นชุดที่ไม่มีที่สิ้นสุดนับไม่ได้และไม่จำเป็นต้องเป็นชุดเดียวกันกับP
(แม้ว่าจะเป็น)"ชุดเอาต์พุต"
O
ซึ่งในทำนองเดียวกันจะเป็นชุดที่ไม่มีที่สิ้นสุดนับและอาจหรืออาจจะไม่เหมือนP
หรือI
กำหนดขั้นตอนกลไกสำหรับการผลิตออก
o
จากโปรแกรมp
และใส่i
ที่p
,i
และo
เป็นสมาชิกของP
,I
และO
ตามลำดับ ขั้นตอนนี้ควรเป็นไปตามหลักการสามารถนำไปใช้กับเครื่องทัวริงหรือแบบจำลองนามธรรมอื่น ๆ ของการคำนวณ แน่นอนว่ากระบวนการอาจไม่สามารถหยุดได้ทั้งนี้ขึ้นอยู่กับโปรแกรมและอินพุตของโปรแกรม
ชุดP
, I
และO
จะต้องเป็นเช่นที่คุณสามารถแสดงให้พวกเขาเป็นสตริงในลักษณะที่คำนวณ (สำหรับตัวเลือกที่เหมาะสมที่สุดสิ่งนี้จะไม่สำคัญกฎนี้มีอยู่เพื่อป้องกันคุณจากการเลือกชุดแปลก ๆ เช่นชุดของเครื่องจักรทัวริงที่ไม่หยุด)
ทัวริงสมบูรณ์จะถูกกำหนดดังต่อไปนี้:
- สำหรับฟังก์ชั่นบางส่วนที่คำนวณได้
f
จากI
ถึงO
มีโปรแกรมp
ในP
ลักษณะที่กำหนดp
และอินพุตi
เอาต์พุตคือf(i)
ถ้าf(i)
มีค่า (มิฉะนั้นโปรแกรมจะไม่หยุดทำงาน)
คำว่า "คำนวณ" ในคำนิยามข้างต้นหมายถึง "สามารถคำนวณได้โดยใช้เครื่องทัวริง"
โปรดทราบว่ากฎ 110หรือแท็ก cyclic บิตนั้นไม่ใช่ทัวริงที่สมบูรณ์โดยคำจำกัดความนี้เนื่องจากไม่มีโครงสร้างอินพุต - เอาต์พุตที่ต้องการ แลมบ์ดาแคลคูลัสเป็นทัวริงสมบูรณ์ตราบใดที่เรากำหนดI
และO
จะเป็นเลขคริสตจักร (ไม่สมบูรณ์ทัวริงหากเราใช้I
และO
เป็นแลมบ์ดานิพจน์โดยทั่วไป)
โปรดทราบว่าคุณไม่จำเป็นต้องจัดเตรียมการใช้ภาษาของคุณ แต่คุณสามารถรวมไว้ในคำตอบหากคุณต้องการ อย่างไรก็ตามคุณไม่ควรพึ่งพาการนำไปใช้เพื่อกำหนดภาษาในลักษณะใด ๆ - ข้อมูลจำเพาะควรเสร็จสมบูรณ์ในตัวเองและหากมีข้อขัดแย้งระหว่างข้อมูลจำเพาะและการนำไปปฏิบัติสิ่งนี้ควรถือว่าเป็นข้อบกพร่องในการนำไปใช้