วิธีแมปเทปของเครื่องทัวริง“ k-tape” ลงในเทปเดียวของเครื่องทัวริง“ 1-tape”


11

ฉันกำลังอ่านSipserและฉันพบว่ามันยากที่จะเข้าใจว่ากระบวนการนี้เป็นเช่นไรหากคุณให้เครื่องทัวริง k กับเทป k ให้ฉันฉันสามารถพ่นเครื่องทัวริงเทียบเท่ากับเทปเดียว ตัวอย่างน่าจะดี อันที่จริงตัวอย่างที่แสดงให้เห็นว่าจะไปจาก TM ที่มีเทปหนึ่งที่มี 1 เทปเป็นสิ่งที่ฉันกำลังมองหา ฉันไม่สามารถหาได้จนถึงขณะนี้ ฉันยังไม่ได้มองหาหลักฐานใด ๆk


คุณหมายถึงอะไรโดย "เครื่องจักรที่เทียบเท่ากัน" อินพุตคืออะไรและเอาต์พุตคืออะไร (บางทีคุณอาจหมายถึงเครื่องจักรทัวริงหนึ่งอันด้วยเทป ?)k
Yuval Filmus

ใช่. เครื่องหมุนด้วยเทป k หนึ่งอัน
678392

คำตอบ:


17

คำตอบคัดลอกมาจากตัวเองอย่างไร้ยางอาย:

เครื่องทัวริงแบบมัลติเทปส่วนใหญ่เหมือนกับเครื่องเทปเดี่ยวยกเว้นว่าเรามีฟังก์ชั่นการเปลี่ยนแบบขยายโดยที่คือจำนวนเทป ดังนั้นในแต่ละรัฐฟังก์ชั่นการเปลี่ยนภาพจะอ่านเนื้อหาของแต่ละเทปย้ายไปที่สถานะใหม่ (อาจ) เขียนบางอย่างบนแต่ละเทปและย้ายแต่ละหัว - เหมือนปกติ TM ยกเว้นตอนนี้เรามีสิ่งอื่น ๆ ให้อ่านเขียน และย้าย kQ×ΓkQ×Γk×{L,R}kk

ตามที่คำถามของคุณแนะนำเครื่องดังกล่าวสามารถจำลองโดยใช้เทปเดียว TM ยิ่งไปกว่านั้นมันสามารถทำได้เมื่อมีการชะลอตัวแบบสมการกำลังสองเท่านั้น (ดังนั้นสำหรับคลาสที่ปิดแบบโพลิโนเมียลก็เพียงพอแล้วที่จะพูดถึงเครื่องเทปเดี่ยว)

ข้อพิสูจน์สำหรับเรื่องนี้ค่อนข้างเกี่ยวข้องและสามารถค้นหาได้ง่ายด้วยเว็บดังนั้นฉันจะร่างภาพการทำแผนที่สำคัญของเทปไปยังเทปเดียวk

แนวคิดพื้นฐานค่อนข้างตรงไปตรงมา เราเพียงแค่เพิ่มสัญลักษณ์ใหม่ไม่กี่รายการและติดตามแต่ละเทปและนำหนึ่งส่วนต่อจากกัน ในแต่ละขั้นตอนของการคำนวณเราสามารถเข้าชมเทปได้เพียงจำนวน จำกัด เท่านั้นดังนั้นเราจึงจำเป็นต้องจัดเก็บข้อมูลมากมายเกี่ยวกับเทปแต่ละอันเท่านั้น ดังนั้นสำหรับเราเพิ่มสัญลักษณ์ใหม่ไปที่ซึ่งจะระบุตำแหน่งที่หัว (สำหรับแต่ละเทป) อยู่ที่จุดใดในการคำนวณ นอกจากนี้เรายังแนะนำอักขระตัวคั่นถึงซึ่งจะระบุจุดเริ่มต้นและจุดสิ้นสุดของเทป "เสมือน" รับอินพุตแกมมา_ Γ # Γ ω = ω 1 ... ω n # ω 1 _ ... ω n # _ # _ # ... # _ # k  ส่วนหนึ่งต่อเทป...γΓγ_Γ#Γω=ω1ωn(เราสามารถสันนิษฐานได้ว่าแม้ในเครื่องมัลติเทปทุกอินพุตอยู่ในเทปแรก - พิสูจน์ว่าทำไมการออกกำลังกายที่ดี) ในเครื่องมัลติเทปเครื่องเทปเดี่ยวของเราจะมีอินพุต

#ω1_ωn#_#_##_#k sections, one per tape

จากนั้นเราจะใช้สถานะของเครื่องเทปเดี่ยวเพื่อเข้ารหัสสิ่งที่สถานะของเครื่องมัลติเทปอยู่ในและสิ่งที่หัวกำลังมองหา ฟังก์ชั่นการเปลี่ยนภาพของเครื่องเทปเดี่ยวเป็นการจำลองแบบหลายขั้นตอนของฟังก์ชั่นการเปลี่ยนเทปแบบหลายเทปซึ่งเราทำการดำเนินการกับเทปต่าง ๆ อย่างเหมาะสมโดยเลื่อนขึ้นเทปเดี่ยวไปยังแต่ละส่วนตามลำดับ รอยย่นที่เหลืออยู่เพียงอย่างเดียวกำลังขยับทุกอย่างไปพร้อม ๆ กันเมื่อเรามีพื้นที่เหลืออยู่ในส่วน (แต่เครื่องย่อยนั้นเป็นแบบฝึกหัดง่ายๆ) - เราไม่เคยลดขนาดของแต่ละส่วนk

ตัวอย่างง่ายๆ (หวังว่า):

สมมติว่าเรามีเทป 3 TM ซึ่งตัวอักษรอินพุตเป็นเพียง , ตัวอักษรเทปคือและอินพุตคือ10101 สถานะเทปเริ่มต้นของเครื่องดูเหมือนว่า: " " คือการแสดงตำแหน่งที่หัวอ่าน / เขียนอยู่บนแต่ละเทปΣ={0,1}Γ={0,1,}ω=10101

Tape 1:10101Tape 2:Tape 3:

ในการสร้างเครื่องเทปเดี่ยวที่รวมกันเราจำเป็นต้องเพิ่มสัญลักษณ์ใหม่ให้กับตัวอักษรของเทป:

  1. เราต้องการสัญลักษณ์ที่แสดงถึงจุดเริ่มต้นและจุดสิ้นสุดของเทปจำลอง
  2. สำหรับสัญลักษณ์แต่ละตัวในเราจำเป็นต้องมีเวอร์ชันที่ระบุว่าหัวเทปจำลองอยู่ที่อักขระนั้นบนเทปจำลองΓ

ดังนั้นสำหรับเครื่องเดียวเทปเทปอักษรใหม่ของเราคือ\} สถานะเริ่มต้นของเทปคือ: สังเกตความแตกต่างระหว่างส่วนหัวของเครื่อง ( ) และหัวจำลองของเทปจำลอง 3 ตัว (ตัวอักษรที่ขีดเส้นใต้) แน่นอนว่าเทปขยายไปทางขวาอย่างไม่ จำกัด เช่นเคย ฉันยังโกงอย่างอ่อนโยนด้วยการขยับหัวเทปไปที่อักขระตัวแรกบนสตริงแรก อย่างเคร่งครัดควรเริ่มจากเซลล์ซ้ายสุด แต่นี่เป็นเทคนิคเล็กน้อยΓ={0,1,,0_,1_,_,#}

#1_0101#_#_#

ดังนั้นเราจึงมีส่วนที่ทำเครื่องหมายไว้สามส่วน (ระหว่างเครื่องหมาย ) ซึ่งจะสอดคล้องกับ 3 เทปของเครื่องดั้งเดิม#

ตอนนี้เรามาทำการกระทำสำหรับเครื่อง สมมติว่าเครื่องต้นฉบับอ่านจากเทปแรกถ้ามันเห็นมันเขียนบนเทปที่สองถ้ามันเห็นมันเขียนบนเทปที่สาม ในการอ่านหรือเขียนแต่ละครั้งศีรษะจะเลื่อนไปทางขวา1101

ดังนั้นหลังจาก "ขั้นตอนแรก" (อาจต้องใช้หลายสถานะและช่วงการเปลี่ยนภาพในเครื่องจริง) เทปควรมีบนเทปที่สองและหัวแรกและที่สองจะย้ายขวาหนึ่งขั้นตอน:1

Tape 1:10101Tape 2:1Tape 3:

ในรอบที่สองเทปแรกจะอ่านดังนั้นเราจึงเขียนไปยังเทปที่สามแทน:0

Tape 1:10101Tape 2:1Tape 3:1

เครื่องเทปเดี่ยวจำลองสิ่งนี้โดยการขีดเส้นใต้ (โดยใช้ตัวละครในอื่นและเขียนไปยังเทปจำลองที่เหมาะสมดังนั้นหลังจากขั้นตอนแรกเทปรวมจะมีลักษณะดังนี้:Γ

#10_101#1_#_#

หลังจากขั้นตอนที่สอง:

#101_01#1_#1_#

แน่นอนว่านี่เป็นมุมมองระดับสูงของกระบวนการ - ฉันไม่ได้พยายามอธิบายวิธีสร้างสถานะหรือวิธีที่เทปจำลองแต่ละอันใช้เวลานานขึ้น (สำหรับสิ่งนี้คุณต้องมีกิจวัตรเล็กน้อยที่จะตรวจสอบว่า ในตอนท้ายของเทปจำลองแล้วย้ายทุกอย่างไปทางขวาหนึ่งขั้นตอนและบีบในช่องว่างใหม่ - นั่นคือจะเพิ่มเฉพาะเซลล์เทปจำลองเมื่อจำเป็นเท่านั้น)


2
หรือใช้ " แทร็ก " แยกเพื่อเขียนเทปแยกต่างหากติดกันในพื้นที่เดียวกัน อย่างไรก็ตามเกี่ยวข้องกับการแนะนำตัวอักษรใหม่
Hendrik Jan

2
@ user678392 การก่อสร้างอย่างละเอียดและเขียนมันทั้งหมดขึ้นที่นี่จะใช้เวลาอย่างน้อยสองชั่วโมง ถ้าคุณไม่อธิบายด้วยซ้ำว่าส่วนไหนที่คุณไม่เข้าใจทำไมทุกคนควรทำงานแทนคุณ และถ้ามีใครทำ คุณจะพูดว่า "ฉันไม่เข้าใจคนอื่นทำเช่นนั้น"?
David Richerby

1
@ user678392 ขอบคุณ และเพื่ออธิบายให้ชัดเจนว่าเป็นภาษาอังกฤษที่คุณประสบปัญหา (เช่นมีการใช้ถ้อยคำใหม่ที่น่าจะช่วยได้) หรือคุณต้องการรายละเอียดเพิ่มเติมในคำอธิบายหรือไม่
David Richerby

1
@ user678392 ฉันได้เพิ่มตัวอย่างของมุมมองระดับสูงของขั้นตอนแรกของการแปลงและเอาต์พุตจริงบนเทป ฉันหลีกเลี่ยงการพูดคุยถึงวิธีการสร้างชุดของรัฐใหม่เนื่องจากมีความซับซ้อนมากและคุณจะไม่ได้คำอธิบายที่ดีไปกว่าสิ่งที่อยู่ใน Sipser หรือคล้ายกัน - มันเป็นปริศนาและคณิตศาสตร์โดยเนื้อแท้
ลุคแมททีสัน

1
@RomaKarageorgievich ดูเหมือนว่าหลักฐานจำนวนหนึ่งที่ชัดเจนกว่านั้นได้หายไปในช่วง 5 ปีที่ผ่านมา (อย่าเชื่อถืออินเทอร์เน็ต: D) ชัดเจนที่สุดที่ฉันพบอยู่ที่นี่ (คำเตือน, ไฟล์. doc!) บทพิสูจน์ใน "ความรู้เบื้องต้นเกี่ยวกับภาษาและทฤษฎีการคำนวณ" ของมาร์ตินค่อนข้างดีถ้าคุณมีสิทธิ์เข้าถึงหนังสือเล่มนั้น (หน้า 244 ในฉบับที่ 4) หลักฐานใน Sipser "รู้เบื้องต้นเกี่ยวกับทฤษฎีการคำนวณ" ก็เพียงพอแล้ว (หน้า 177 ใน 3rd Ed.)
ลุคแมททีสัน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.