ปัญหาการเป็นสมาชิกสำหรับไวยากรณ์บางประเภทที่ไม่ จำกัด


9

พิจารณาหลักไวยากรณ์แบบไม่มีบริบท G มากกว่าตัวอักษร {0,1,0¯,1¯}. ในโปรดักชั่นของไวยากรณ์นี้เพิ่มโปรดักชั่นที่ไม่มีบริบทแบบคงที่สองรายการP: 0¯0ϵ และ 1¯1ϵ. เรียกไวยากรณ์ที่เกิดขึ้นGP ยืนเพื่อ "G เสริมด้วยการผลิต P"

เป็นไปได้ไหมที่จะให้อัลกอริทึมที่ใช้ไวยากรณ์ GP และสตริง s เกิน {0,1,0¯,1¯} และตัดสินใจว่า sL(GP)?


ที่น่าสนใจในขณะที่คำตอบดูเหมือนว่า "ไม่" ฉันคิดว่าถ้า L(G) เป็นเรื่องปกติดังนั้นจึงเป็น L(GP). เป็นหลัก NFA สำหรับL(G) สามารถเปลี่ยนเป็นหนึ่งสำหรับ L(GP) โดยการเพิ่มซ้ำ ๆ ϵ-transitions (s,ϵ,t) เมื่อใดก็ตามที่คุณมีเส้นทาง (s,0¯,p,0,t),(s,0¯,p,ϵ,q,0,t),(s,1¯,p,1,t),(s,1¯,p,ϵ,q,1,t) หรือ (s,ϵ,p,ϵ,t)และในที่สุดก็แสดง ϵ-elimination
Klaus Draeger

ใช่ว่าเป็นเรื่องจริง ในความเป็นจริงคำถามเกิดขึ้นจากปัญหาในการวิเคราะห์โปรแกรม (การเก็บขยะตาม Liveness) เราหลีกเลี่ยงปัญหาโดยการประมาณ CFG ให้เป็นไวยากรณ์ปกติอย่างยิ่ง (การแปลง Mohri-Nederhoff) จากนั้นทำการPลดความซับซ้อนของ NFA ที่เกิดขึ้นตามวิธีที่ Klaus Draeger กล่าวถึง
Amit

คำตอบ:


5

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

ในแต่ละจุดคำที่ขยายบางส่วนในปัจจุบันจะดูเหมือน

[tape to the left][head][tape to the right]

ที่นี่:

  • [tape to the left]หลังจากสมัคร Pมีเพียงตัวอักษร 0¯ และ 1¯.
  • [tape to the right]หลังจากสมัคร Pมีเพียงตัวอักษร 0 และ 1.
  • [head] เป็น nonterminal เดี่ยวซึ่งเข้ารหัสทั้งสถานะหัวและอักขระที่ตำแหน่งหัว

สมมติว่าหัวอยู่ในสถานะ Sและตัวละครที่อยู่ใต้หัวคือ i{0,1}. จากนั้นศีรษะจะแสดงโดยไม่ใช่เทอร์มินัลSi. หากต้องการเปลี่ยนเป็นรัฐTแทนที่อักขระปัจจุบันด้วย jและเลื่อนไปทางซ้ายมีการเปลี่ยนสองครั้ง Si0T0j และ Si1T1j. หากต้องการย้ายไปทางขวาแทนจะมีการเปลี่ยนสองครั้งSij¯T00¯ และ Sij¯T11¯. ในบางแง่หัวหน้าต้อง "เดา" ตัวละครในทิศทางที่มันกำลังเคลื่อนที่ไปด้วยการสร้างตัวละครที่เข้าชุดกัน หากการทายผิดผิดค่าคงที่[tape to the left] หรือ [tape to the right] จะถูกละเมิดและจะไม่มีวันฟื้นตัว

เมื่อเครื่องหยุดหัวควร "กิน" เทปทั้งสองข้างโดย "เดา" และสร้างอักขระที่ตรงกัน หลังจากนั้นควรสร้างคำที่ว่างเปล่า ดังนั้นคำที่ว่างเปล่าจะเป็นสมาชิกของไวยากรณ์ดังกล่าวหากเครื่องทัวริงที่เกี่ยวข้องหยุดทำงาน


ฉันไม่แน่ใจว่าฉันเข้าใจการลดลงของคุณ นี่คือข้อสงสัยของฉัน: หากเครื่องทัวริงที่ได้รับมีN จากนั้นจึงไม่ใช่จำนวนโปรดักชั่นที่ไม่ จำกัด ที่จำเป็นในการจำลองเครื่องทัวริงที่เกี่ยวข้อง N? แต่ปัญหาของฉันอนุญาตให้ผลิตได้ไม่ จำกัด เพียงสองรายการ
Amit

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