CFG แยกโดยใช้


18

มีความหลากหลายของอัลกอริทึมที่สามารถแยกไวยากรณ์บริบทฟรีในเป็นเวลา การใช้การคูณเมทริกซ์สามารถทำให้เร็วกว่าแบบไม่มีสัญญาณได้O(n3)

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

คำถามผุดขึ้นในใจของฉันหลังจากเชื่อมโยงจิตใจกับพื้นที่เชื่อมโยงกับอัลกอริธึมการแยก CFG ทั้งหมดที่ฉันรู้ มันอาจจะไม่สนใจในทางปฏิบัติ แต่เป็นเพียงสิ่งที่ฉันอยากรู้Ω ( n 2 )CSG=NDSPACE(n)DSPACE(n2)Ω(n2)


5
ไม่ทราบเกี่ยวกับอัลกอริธึมการแจงอื่น ๆ ทั้งหมด แต่สิ่งที่อยู่บนพื้นฐานของการคูณเมทริกซ์จะใช้พื้นที่ ; ดู: cstheory.stackexchange.com/questions/1313/…Θ(n2)
Ryan Williams

คำตอบ:


14

ในช่วงครึ่งแรกของคำตอบนี้ไม่มีอะไรมากไปกว่าถึง ) การปรับปรุงคำตอบของเดวิดในแง่ความซับซ้อนทางทฤษฎีบันทึก2 ( n )log4(n)log2(n)

บริบทของภาษาฟรีอาศัยอยู่ในคลาสความซับซ้อนของคลาสนี้มีคุณลักษณะที่เท่ากันโดยวงจรกึ่งลึกที่มีความลึกของบันทึก นี่คือวงจรขนาดพหุนามที่ซึ่งหรือประตูมี fan-in ที่ไม่ได้ จำกัด และ AND ประตูได้ล้อมรอบ fan-in (พูด 2) โดยการเพิ่มความลึกด้วยปัจจัยบันทึกเราสามารถแทนที่เกนอินหรือประตูแฟนคลับที่ไม่มีข้อ จำกัด ด้วย OR-fan ที่มีขอบเขต สิ่งนี้ทำให้เกิดปัญหาในไม่ยากที่จะดูว่าสามารถประเมินโดยโดยการค้นหาความลึกครั้งแรกที่รักษาลำดับซ้าย / ขวาของเด็กที่ประตูที่สำรวจจนถึงขณะนี้ ผลลัพธ์จะกลับไปที่กระดาษ Lewis-Hartmanis และแม้ว่าสิ่งนี้จะช่วยปรับปรุงพื้นที่ของดาวิด แต่สิ่งนี้อาจใช้เวลาLOGCFL. N C 2 D S P A C E ( บันทึก2 ( n ) ) n บันทึกnNC2.NC2DSPACE(log2(n))nlognเวลา. เราไม่รู้อะไรเลยดีกว่า

วิธีดั้งเดิมในการทำความเข้าใจกับการแลกเปลี่ยนพื้นที่เวลาคือการใช้เกมเพบเบิล มีรายงานเกี่ยวกับ CYK อยู่เล็กน้อย ความพยายามครั้งล่าสุดคือในส่วนแรกของงานนำเสนอนี้ นี่มันแสดงให้เห็นว่า (ก) พื้นที่เชิงเส้นสามารถทำได้ในเวลาชี้แจงและ (ข) ถ้ามีเวลาจะมีการ จำกัดแล้ว CYK จะใช้เวลาอย่างน้อยพื้นที่n 2O(n2)n2

แน่นอนปัญหาที่น่าสนใจมากน่าดู


นั่นเป็นการนำเสนอที่ค่อนข้างน่าสนใจขอบคุณสำหรับลิงค์
Alex ten Brink

13

O(log2n)O(1)O(logn)

O(log4n)


3
ฉันเพิ่งสะดุดกับผลลัพธ์ที่คล้ายกันโดย Lewis และคณะ ที่นี่: ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=5397245 ถึงกระนั้นก็ยังมีคำถามว่าเราสามารถทำได้ดีกว่าพื้นที่กำลังสองโดยใช้เวลาพหุนามเท่านั้น
Alex สิบ Brink

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