มีหลายภาษา (และฉันหมายถึงหลายภาษา) ซึ่งนับได้ว่าเป็นทัวริงได้ ภาษาที่นับไม่ได้ใด ๆ สามารถทัวริงได้
มีหลายภาษา (และฉันหมายถึงหลายภาษา) ซึ่งนับได้ว่าเป็นทัวริงได้ ภาษาที่นับไม่ได้ใด ๆ สามารถทัวริงได้
คำตอบ:
ทุกภาษาที่มีตัวอักษร จำกัด (หรือนับได้) จะนับได้ สมมติว่าตัวอักษรของเครื่องจักรทัวริงมี จำกัด ภาษาใด ๆ ที่มันสามารถยอมรับได้นั้นสามารถนับได้
เราสามารถมีภาษาที่นับไม่ได้ แต่ถ้าเรายอมให้คำพูดของความยาวไม่มีที่สิ้นสุดดูตัวอย่างภาษา Omega-ปกติ ภาษาเหล่านี้เรียกว่า -languages อีกตัวอย่างหนึ่งคือภาษาของชุดย่อยของ reals ซึ่งประกอบด้วยการพูดการขยายทศนิยมของจำนวนจริงทั้งหมด
มีบางรุ่นที่ทัวริงเครื่องจักรมีการปรับเปลี่ยนเพื่อยอมรับภาษา บางส่วนของรูปแบบเหล่านี้ใช้เงื่อนไข Buchi เพื่อรับการยอมรับ เนื่องจากคุณไม่สามารถเห็นอินพุตทั้งหมดในเวลา จำกัด เราจึงกล่าวว่าอินพุตนั้นได้รับการยอมรับหากเครื่องทัวริงเข้าสู่สถานะการยอมรับหลายครั้งอย่างไม่สิ้นสุด หากเราสามารถพิสูจน์ได้โดยการวิเคราะห์อินพุท (ไม่ใช่โดยรันมัน) เราบอกว่าอินพุตนั้นเป็นที่ยอมรับ
ความสามารถในการคำนวณแบบคลาสสิกกล่าวถึงฟังก์ชั่นมากกว่าสายอักขระที่ จำกัด จากตัวอักษรที่ จำกัด ดังนั้นทุกภาษาไม่ว่าจะเป็น decidable หรือ undecidable
ในการพิจารณาภาษาที่นับไม่ได้ เราต้องพิจารณาสตริงที่ไม่สิ้นสุดแทนสตริง จำกัด (AFAIK การมีตัวอักษรไม่สิ้นสุดไม่น่าสนใจมากและไม่สอดคล้องกับรูปแบบการคำนวณที่เหมือนจริงด้วยตัวเอง)
มีรูปแบบการคำนวณที่เราสามารถจัดการกับสตริงที่ไม่สิ้นสุดซึ่งทำให้เราสามารถแสดงวัตถุจากโดเมนที่ไม่สามารถนับได้เช่นจำนวนจริง สิ่งเหล่านี้มักแสดงว่าเป็นการคำนวณประเภทที่สูงกว่า รุ่นหนึ่งที่ใช้เครื่องจักรทัวริงคือรุ่น TTE ในรูปแบบนี้การป้อนข้อมูลสามารถเป็นสตริงที่ไม่มีที่สิ้นสุดและเครื่องสามารถเข้าถึงรายการใด ๆ ในสตริงที่ต้องการ เครื่องไม่จำเป็นต้องยกเลิก แต่มีเงื่อนไขเพื่อให้แน่ใจว่าผลลัพธ์ของเครื่องมาบรรจบกัน
สมมติว่าการป้อนข้อมูลเครื่องของเราอยู่ห่างจากคือสตริงอนันต์จากตัวอักษรΣเช่นΣ = { 0 , 1 } จากนั้นมีสตริงΣ N = 2 N ดังนั้นจึงมีภาษาที่เป็นไปได้2 2 N จำนวนเครื่อง TTE ทัวริงยังคงนับได้ ดังนั้นภาษาเหล่านี้ส่วนใหญ่จึงไม่สามารถตัดสินใจได้
แต่มีบางสิ่งที่น่าสนใจมากขึ้นที่นี่: หากคุณต้องการให้เครื่องหยุดอยู่เสมอมันจะสามารถอ่านเฉพาะส่วนเริ่มต้นที่แน่นอนของอินพุต ด้วยเหตุนี้เราจึงมีสิ่งต่อไปนี้: ให้เป็นเครื่องจักร TTE ที่จะหยุด (เสมอในเวลา จำกัด ) จากนั้นก็มีคำนำหน้าฟรีภาษาL ∈ Σ *และเครื่องจักรทัวริงไม่มีข้อความดังกล่าวว่าสำหรับการใด ๆx ∈ Σ โอห์ม , Mยอมรับx IFF Nยอมรับส่วนเริ่มต้นของxที่อยู่ในL
ในการพูดอย่างง่าย ๆ การคำนวณของเครื่อง TTE ทัวริงที่หยุดจะถูกกำหนดโดยการคำนวณของเครื่องจักรทัวริงในขอบเขต จำกัด
ให้ฉันยกตัวอย่างบางส่วนของภาษา decidable และ undecidable ของสตริงไม่สิ้นสุด:
ตำแหน่งที่คือ 1
10
ภาษาสามารถตัดสินได้ถ้าทั้งภาษาและส่วนประกอบนั้นเป็นแบบกึ่งตัดสินใจได้
ภาษาที่มีสตริง inifinite 0 ไม่สามารถตัดสินใจได้ นี่อาจดูแปลก แต่ลองดูด้วยวิธีนี้: เมื่ออ่านสตริงเมื่อสามารถหยุดและพูดว่าอินพุตประกอบด้วย 0 ทั้งหมดหรือไม่ ถ้าคุณหยุดหลังจากอ่าน 0s เครื่องของคุณจะยอมรับภาษาที่เริ่มต้นด้วย 0s และตามด้วย 1s ทั้งหมด โปรดทราบว่าการเข้าถึงอย่างเดียวที่เรามีกับสตริงในรุ่นนี้คือการขอบิตและรับมัน
นี่อาจทำให้คุณคิดว่า TTE ไม่ใช่รุ่นที่น่าสนใจ แต่ปรากฎว่าการคำนวณสตริงที่ไม่สิ้นสุดโดยใช้โมเดล TTE นั้นน่าสนใจทีเดียว มันขึ้นอยู่กับสัญชาตญาณว่าการรับส่วน จำกัด ใด ๆ ของผลลัพธ์ที่คุณสามารถอ่านได้เฉพาะส่วนแน่นอนของอินพุต กล่าวอีกนัยหนึ่งข้อมูล จำกัด ใด ๆ เกี่ยวกับผลลัพธ์ขึ้นอยู่กับจำนวน จำกัด ของข้อมูลเกี่ยวกับอินพุตเท่านั้น ปรากฎว่าฟังก์ชั่นที่เราสนใจคำนวณตามกฎนี้มิฉะนั้นเราไม่สามารถคำนวณได้ เช่นลองอ่านตัวเลขที่เข้ารหัสเป็นสตริงไบนารี่และฟังก์ชั่น. เราให้ค่าประมาณที่ จำกัด ของจำนวน ไปที่เครื่องและจะคืนค่าตัวเลขที่ประมาณ สำหรับพวกเรา.
สิ่งเหล่านี้มากมายกลายเป็นสัญชาตญาณมากขึ้นถ้าคุณรู้โทโพโลยีเล็กน้อย แนวคิดที่สำคัญที่นี่คือเราสามารถกำหนดทอพอโลยีข้อมูลบนสตริงและด้วยความเคารพต่อทอพอโลยีฟังก์ชันที่คำนวณใด ๆ จะต้องดำเนินการต่อไป เป็นผลให้เมื่อเรามีฟังก์ชั่นที่คำนวณได้ทั้งหมด ที่มีรหัสคือ has to be clopen. Other realistic models of computation over real numbers (not just floating point but really infinite real numbers) have this property. If you are interested a good place to read about TTE is Klaus Weihrauch's book "Computable Analysis". There are also lots of other references on the website for Computability and Complexity in Analysis Network.