ฉันจะแปลงเครื่องทัวริงให้จดจำภาษาเป็นไวยากรณ์ที่ไม่ จำกัด ได้อย่างไร


19

จากบทความ Wikipedia นี้ไวยากรณ์ที่ไม่ จำกัด นั้นเทียบเท่ากับเครื่องจักรทัวริง บทความบันทึกว่าฉันสามารถแปลงเครื่องทัวริงให้เป็นไวยากรณ์ที่ไม่ จำกัด แต่แสดงให้เห็นเพียงวิธีการแปลงไวยากรณ์เป็นเครื่องทัวริง

ฉันจะทำอย่างนั้นและแปลงเครื่องทัวริงให้ตระหนักถึงภาษาเป็นไวยากรณ์ที่ไม่ จำกัด ได้อย่างไร ฉันได้ลองเปลี่ยนกฎการเปลี่ยนเป็นกฎไวยากรณ์ แต่เครื่องทัวริงสามารถกำหนดค่าสถานะที่แตกต่างกันมากมายเช่นกัน ...L

คำตอบ:


9

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

ความคิดที่สำคัญที่สองคือเราต้องย้อนกระบวนการ: TM ใช้คำว่าเป็นอินพุตและแปลงเป็นหรือ0หรือไม่ยุติ อย่างไรก็ตามไวยากรณ์ต้องสร้างคำขึ้นมา โชคดีที่ไวยากรณ์ไม่ได้มีการกำหนดค่าโดยเนื้อแท้ดังนั้นเราสามารถปล่อยให้มัน "เดา" ซึ่งการยอมรับ1มาจาก; ทุกคำที่ทำให้ TM ยอมรับนั้นสามารถสร้างขึ้นได้101

ให้ชุดของ nonterminals wlog ให้Q 0เป็น start-state-nonterminal และQ FQชุดของ accept-states-nonterminals อันดับแรกเราต้องเริ่มกฎที่สร้างการยอมรับการกำหนดค่าทั้งหมดQ={Q0,,Qk}Q0QFQ

S#1Qf#สำหรับทุก FQfQF

ในทำนองเดียวกันเรายุติเมื่อเรา "เข้าถึง" สถานะเริ่มต้นในตำแหน่งที่ถูกต้องกล่าวคือในสัญลักษณ์แรก:

#aQ0#aสำหรับทุก ΣaΣ

การแปลการเปลี่ยนสถานะที่แท้จริงนั้นเป็นการส่งตรง:

aQcQ  for a,cΣ(a,Q,N)δ(c,Q)aQbacQ for a,b,cΣ(b,Q,L)δ(c,Q)abQcQb for a,b,cΣ(a,Q,R)δ(c,Q)

มีเทคนิคบางอย่างที่ต้องรีดออก ตัวอย่างเช่นคุณต้องกำจัดเครื่องหมายขอบเขตในตอนท้าย ที่สามารถทำได้โดยการวางไข่ nonterminals พิเศษสองตัวแทนการยกเลิกแลกเปลี่ยนพวกนั้นไปยังจุดสิ้นสุดแล้วลบ#พร้อมกับพวกเขา นอกจากนี้ต้องสร้าง#เพิ่มเติมตามความต้องการ ที่ต้องมีการเจาะของกฎที่มีd = ####d=#

#Q0Σ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.