ภาษาทั้งหมดที่ไม่มีบริบทและภาษาปกติสามารถตัดสินใจได้อย่างมีประสิทธิภาพหรือไม่


12

ฉันเจอตัวเลขนี้ซึ่งแสดงว่าภาษาที่ไม่มีบริบทและภาษาปกติเป็นเซตย่อยของปัญหาที่มีประสิทธิภาพ (สมมุติว่า ) ฉันเข้าใจอย่างถ่องแท้ว่าปัญหาที่มีประสิทธิภาพเป็นส่วนย่อยของปัญหาที่ตัดสินใจได้ทั้งหมดเพราะเราสามารถแก้ปัญหาได้ แต่อาจใช้เวลานานมากP

ทำไมทุกบริบทฟรีและปกติภาษา decidable ได้อย่างมีประสิทธิภาพ? มันหมายถึงการแก้ปัญหาพวกเขาจะไม่ใช้เวลานาน (ฉันหมายถึงเรารู้โดยไม่มีบริบท)

ป้อนคำอธิบายรูปภาพที่นี่


3
คุณอยากรู้เรื่องนี้จากที่ไหน มันอาจช่วยให้มีบริบทอธิบายได้เนื่องจาก "ประสิทธิภาพ" ไม่ใช่ความคิดที่เป็นทางการและคนต่าง ๆ อาจใช้มันเพื่อหมายถึงสิ่งต่าง ๆ
Gilles 'หยุดความชั่วร้าย'

2
ถ้า "มีประสิทธิภาพ" หมายถึง " " (ตามปกติ), "มีประสิทธิภาพ" ไม่ได้หมายความว่า "ไม่นานมาก" เนื่องจากพหุนามมีค่ามากเช่นกัน โปรดทราบว่าผลลัพธ์ขั้นพื้นฐานในความซับซ้อนคือมีลำดับของปัญหาที่ไม่สิ้นสุดซึ่งแต่ละครั้งจะง่ายกว่าถัดไป นี้ถือทั้งภายในและภายนอกของ{P} PPP
Raphael

@ ราฟาเอล: ในบริบทนี้มีประสิทธิภาพเป็นคลาสของภาษาที่ decidable ในเวลาพหุนาม ฉันใช้ "มันอาจใช้เวลานานมาก" สำหรับปัญหาที่ตัดสินใจได้ซึ่งตรงข้ามกับปัญหาที่ไม่สามารถตัดสินใจได้ซึ่งเราไม่สามารถหาคำตอบได้ในระยะเวลาอัน จำกัด
Gigili

วิธีการทางเทคนิคที่ถูกต้องที่จะบอกว่านี่คือการพิจารณาว่าw∈Lโดยที่ w เป็นคำอะไรและ L เป็นภาษาที่อยู่ใน P. ie / aka "การจดจำภาษา"
vzn

คำตอบ:


15

สมาชิกภาพภาษาปกติสามารถตัดสินใจได้ในเวลาโดยจำลอง DFA (ขั้นต่ำ) ของภาษา (ซึ่งได้รับการคำนวณล่วงหน้า)O(n)

สมาชิกบริบทภาษาฟรีสามารถตัดสินใจในโดยCYK อัลกอริทึมO(n3)

มีภาษา decidable ที่ไม่อยู่ในที่มีเช่นผู้ที่อยู่ใน{P}E X P T ฉันM EPPEXPTIMEP


2
คุณอาจต้องการที่จะพูดถึงขั้นตอนวิธีการคูณเมทริกซ์สำหรับ gramamrs บริบทฟรีที่มีเวลาในการทำงานที่ดีขึ้นและว่าวิธีนี้จะทำงานได้อย่างมีประสิทธิภาพมาก (เส้นตรง) ใด ๆ เพียงเกี่ยวกับไวยากรณ์บริบทการปฏิบัติ: sciencedirect.com/science/article/pii / 030439759190180A
Alex ten Brink

@AlextenBrink ฉันไม่คิดว่าคำถามนี้ถามละเอียดปลีกย่อยกว่า "พหุนามหรือไม่"
Raphael

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

1
ในความเป็นจริงสำหรับภาษาปกติคุณไม่จำเป็นต้องมีออโตมาต้าแบบกำหนดแน่นอน คุณจำลองการคำนวณทั้งหมดในแบบคู่ขนานโดยการติดตามสถานะทั้งหมดในลักษณะที่เลียนแบบการสร้าง powerset
Hendrik Jan

1
@Dave: เชิงเส้นในความยาวของสตริงป้อนเข้าสำหรับภาษาปกติคงที่เช่นความซับซ้อนอื่น ๆ ที่ได้รับที่นี่
Hendrik Jan

1

การปรับแต่ง / "fine print" ตามคำตอบของ DC: CFL ทั้งหมดในรูปแบบของChomsky Normal Formสามารถแยกวิเคราะห์ได้อย่างมีประสิทธิภาพด้วยอัลกอริทึม CYKและ CFLs ทั้งหมดสามารถแปลงเป็น CNF อย่างไรก็ตามการแปลง CFL ตามอำเภอใจเป็น CNF อาจกินพื้นที่แบบเอ็กซ์โปเนนเชียลในกรณีที่เลวร้ายที่สุดขึ้นอยู่กับอัลกอริทึมบางตัว (ฉันไม่ทราบถึงอัลกอริทึมที่รับประกันการแปลงแบบ P-time ที่นี่มีใครอีกบ้างเราต้องพิจารณากรณีขอบ / ที่เลวร้ายที่สุดทั้งหมดเช่น CFDs ที่ไม่ชัดเจนหรือสิ่งที่ไม่ชัดเจน ) Wikipedia สหรัฐฯในส่วน CNF ลำดับการเปลี่ยนแปลง

นอกจากนี้การขยายตัวที่เลวร้ายที่สุดในขนาดไวยากรณ์ [note 4] ขึ้นอยู่กับลำดับการเปลี่ยนแปลง การใช้ | G | เพื่อแสดงขนาดของไวยากรณ์ดั้งเดิม G ขนาดการระเบิดในกรณีที่เลวร้ายที่สุดอาจอยู่ในช่วงถึงขึ้นอยู่กับอัลกอริทึมการแปลงที่ใช้ [6]: 72 2 | G ||G|222|G|

ดังนั้นจึงดูเหมือนว่าอาจมี CFLs ที่ไม่สามารถแยกวิเคราะห์ได้อย่างมีประสิทธิภาพ ภาษาโปรแกรมส่วนใหญ่สามารถแปลงเป็น CNF ได้อย่างมีประสิทธิภาพ (หรืออาจกำหนดไว้เป็นส่วนใหญ่ใน CNF หรือใกล้เคียงกับ CNF) ดังนั้นการแยก CFL สำหรับภาษา "ทั่วไป" คือ "จริง" ใน P อาจมีงานวิจัยที่ทันสมัยเกี่ยวกับกรณีที่ซับซ้อนที่สุด ค้นหาเอกสารล่าสุดในการค้นหาคร่าวๆ) เช่นบทความวิจัยที่เก่ากว่านี้ (1973) โดย Greibach ก็ดูเหมือนจะบ่งชี้ว่าประสิทธิภาพของกรณีที่เลวร้ายที่สุดอาจไม่ได้ล้อมรอบด้วย P. ดูเช่น

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