คำชี้แจงปัญหา :
ให้เป็นหุ่นยนต์แบบเลื่อนลง (อาจเป็นแบบไม่ จำกัด ค่า) และให้เป็นตัวอักษรอินพุต มีคำว่า stที่ยอมรับโดย ?
ปัญหานี้เกิดขึ้นกับ NP หรือไม่? มันได้รับการศึกษา? มีอัลกอริทึมที่อนุญาตให้ค้นหาคำดังกล่าวหรือไม่?
คำชี้แจงปัญหา :
ให้เป็นหุ่นยนต์แบบเลื่อนลง (อาจเป็นแบบไม่ จำกัด ค่า) และให้เป็นตัวอักษรอินพุต มีคำว่า stที่ยอมรับโดย ?
ปัญหานี้เกิดขึ้นกับ NP หรือไม่? มันได้รับการศึกษา? มีอัลกอริทึมที่อนุญาตให้ค้นหาคำดังกล่าวหรือไม่?
คำตอบ:
คำนวณจุดตัดของภาษา CFG ของคุณด้วยภาษาปกติ (จำนวนนี้จะเพิ่มจำนวนของสถานะด้วย และการเพิ่มสถานะ "dead end") ตอนนี้ตรวจสอบว่าผลลัพธ์ว่างเปล่า: แปลงเป็นไวยากรณ์ (ฉันคิดว่าผลลัพธ์จะมีขนาดพหุนาม) และ "backtrack" จากการผลิต epsilon
แก้ไข: Kaveh กล่าวว่านี่คือพหุนาม ดังนั้นถ้า จะได้รับเป็นอินพุทอัลกอริทึมเป็นเลขยกกำลัง . อย่างไรก็ตาม Kaveh พบวิธีแก้ไข แปลงออโตมาตาดั้งเดิมให้เป็น CFG และแทนที่เทอร์มินัลทั้งหมดด้วยเทอร์มินัลคงที่ ตอนนี้ใช้อัลกอริทึมซ้ำเพื่อค้นหาขนาดที่เล็กที่สุดของคำที่สร้างโดยแต่ละเทอร์มินัลที่ไม่ใช่ดังต่อไปนี้
เริ่มต้นความยาวทั้งหมดด้วย และจากนั้นอัปเดตความยาวทั้งหมดด้วยวิธีที่ชัดเจน: ให้การผลิต (คำสั่งไม่สำคัญ) ใส่ . อ้างสิทธิ์: สิ่งนี้มาบรรจบกัน การทำซ้ำที่ไหน คือจำนวนเทอร์มินัลที่ไม่ใช่ เหตุผลก็คือในต้นไม้ที่สร้างคำที่มีความยาวน้อยที่สุดจะไม่มีการใช้เทอร์มินัลสองครั้ง "edge" แต่ละอันจะใช้เวลาในการประมวลผลซ้ำมากที่สุด (ขอบบางอันสามารถ "อัพเดท" พร้อมกัน)
เปลี่ยนอักขระตัวอักษรทั้งหมดเป็นอักขระตัวเดียว ตอนนี้คุณมี PDA กำหนดไว้ที่ตัวละครตัวเดียว ภาษาเป็นไวยากรณ์ที่ไม่มีบริบท อย่างไรก็ตามไวยากรณ์อิสระบริบทมากกว่าอักขระเดียวเป็นเรื่องปกติ ดังนั้นแปลง CFG เป็นภาษาปกติแล้วตรวจสอบว่ามีคำยาว k หรือไม่
ตอนนี้การแปลงทั้งหมดเหล่านี้มีแนวโน้มที่จะต้องใช้เวลาชี้แจง แต่ดูเหมือนว่าฉันไม่น่าจะเป็นปัญหาที่สมบูรณ์ NP โดยเฉพาะอย่างยิ่งถ้าคุณอนุญาตให้ใช้เวลาพหุนาม.
ฉันอาจจะผิดและขอโทษสำหรับคำตอบเริ่มต้นของฉัน ...
BTW ความจริงที่ว่า CFG บนตัวอักษรเดียวนั้นตามมาจากทฤษฎีบทของ Parikh แม้ว่าการพิสูจน์โดยตรงจะไม่ยากเกินไป ดูลิงค์สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับทฤษฎีบทของ Parikh - มันเป็นผลลัพธ์ที่สวยงาม ... http://www8.cs.umu.se/kurser/TDBC92/VT06/final/3.pdf
วิธีที่ไม่น่าจะเป็นไปได้: เรียกใช้อัลกอริทึมของ Djikstra จากนั้นสำหรับแต่ละรัฐสุดท้ายให้เปรียบเทียบระยะทางด้วย. ถ้ามียอมรับ ปฏิเสธ.
แก้ไข: ข้างต้นใช้งานได้เฉพาะกับ NFA เท่านั้น! ขอโทษด้วยกับเรื่องนั้น.