ที่จริงแล้วแบบฟอร์มปกติของชัมสกี้ (CNF) ไม่จำเป็นต้องเรียกใช้ CYK เพียงแค่ทำการไบนาไนเซชัน การสร้างไบนาไนเซชั่นเป็นสิ่งสำคัญในการรักษาความซับซ้อนของการแยกวิเคราะห์แม้ว่าจะจำเป็นเฉพาะในส่วนที่ไม่ใช่เทอร์มินัล (NT) แต่ถ้าคุณมีกฎรวมถึง 2 เทอร์มินัลที่ไม่ใช่และเทอร์มินัลบางตัวอัลกอริทึม CYK จะซับซ้อนมากขึ้นในการเขียนโปรแกรมและอธิบาย
อย่างที่คุณพูดมีหลายวิธีในการทำ binarisation บางคนจะให้ผลไวยากรณ์เล็กกว่าอื่น ๆ ตัวอย่างเช่น
X -> B C D
Y -> B C E
สามารถเป็นไบนาไนซ์ได้
X -> Z D
Y -> Z E
Z -> B C
ดังนั้นการบันทึกหนึ่งกฎโดยการแยกตัวประกอบซึ่งอาจบันทึกในการคำนวณและขนาดของผลลัพธ์
แต่ด้วยกฎอื่น ๆ คุณอาจต้องการแยกส่วนท้ายของกฎมากกว่าจุดเริ่มต้น
ฉันไม่คุ้นเคยกับการทำงานของเพลง Ding และหลินโดยอ้างว่าคำตอบของร็อบซิมมอนส์ ความคิดนั้นน่าสนใจ แต่ฉันสงสัยว่ามันจะมีประสิทธิภาพเมื่อเปรียบเทียบกับวิธีอื่น ๆ ในการเพิ่มประสิทธิภาพการคำนวณ ฉันไม่กลัวอะไรมาก
ประเด็นก็คือการวิเคราะห์ปัญหาเฉพาะในส่วนที่เกี่ยวกับอัลกอริธึม CKY ล้วนๆดูเหมือนจะเป็นเรื่องทางวิชาการ แต่มีค่าใช้จ่ายสูงเนื่องจากมีการปรับให้เหมาะสมแบบอื่น ๆ
CYK เป็นเพียงหนึ่งในรูปแบบที่ง่ายกว่าในตระกูลอัลกอริทึมที่สร้างขึ้นในรูปแบบการเขียนโปรแกรมแบบไดนามิกที่เหมือนกันอย่างเห็นได้ชัด ฉันกำลังพูดอย่างชัดเจนเพราะอัลกอริทึมรุ่นที่ง่ายที่สุดเหล่านี้ไม่รู้จักกันในชื่อการเขียนโปรแกรมแบบไดนามิก แต่เป็นผลิตภัณฑ์ข้าม มันเป็นงานก่อสร้างเก่าของ CF ไวยากรณ์ G ที่สร้างจุดตัดของภาษาของ CF ไวยากรณ์ F และภาษาปกติของ FSA เอเนื่องจาก
บาร์ Hillel, Perles และมิร์ (1961)เป็นข้อสังเกตโดยหรั่งในปี 1995
ตัวแยกวิเคราะห์แผนภูมิทั้งหมดหรือตัวแยกวิเคราะห์ CF ทั่วไปตามการเขียนโปรแกรมแบบไดนามิกอาจถูกมองว่าเป็นตัวแปร "ที่เหมาะสมที่สุด" ของการสร้างผลิตภัณฑ์ข้ามซึ่งการปรับให้เหมาะสมที่สุดใช้เพื่อหลีกเลี่ยงการคำนวณ parser ที่ไร้ประโยชน์ แต่ปัญหานั้นลึกซึ้งเพราะการหลีกเลี่ยงการคำนวณที่ไร้ประโยชน์อาจส่งผลให้เกิดการทำซ้ำสิ่งที่มีประโยชน์ซึ่งอาจแย่กว่านั้น
จากด้านล่างสุดอัลกอริทึม CKY สร้างการคำนวณที่ไร้ประโยชน์ของการแยกวิเคราะห์บางส่วนที่ไม่สามารถได้มาจากความจริงของไวยากรณ์
อัลกอริธึมเช่นตัวแยกวิเคราะห์ GLR (เพื่อบอกชื่อหนึ่งในสิ่งที่รู้จักกันดีแม้ว่าเวอร์ชั่นที่มีข้อบกพร่องได้รับการเผยแพร่แล้ว) มีความรู้จากบนลงล่างที่จะหลีกเลี่ยงการคำนวณที่ไร้ประโยชน์มากมายเช่นนี้ และยังมีอีกหลายสายพันธุ์ที่มีพฤติกรรมแตกต่างกันด้วยความเคารพต่อการประหยัดในการคำนวณที่ไร้ประโยชน์ ..
ขึ้นอยู่กับกลยุทธ์การปรับให้เหมาะสมเหล่านี้ในใจว่าควรมีการวิเคราะห์กลยุทธ์การปรับระดับ อะไรคือประเด็นของการปรับให้เหมาะสมกับสิ่งที่อาจเป็นปัญหาเล็กน้อยและไม่สนใจเทคนิคที่มีประสิทธิภาพยิ่งขึ้น
การเพิ่มประสิทธิภาพของกระบวนการแยกวิเคราะห์ยังเชื่อมโยงอย่างแน่นหนากับ "คุณภาพ" ของโครงสร้างการแยกวิเคราะห์ที่ได้รับซึ่งเป็นตัวแทนการแยกวิเคราะห์ที่เป็นไปได้ทั้งหมดและมักจะเรียกว่า (การแบ่งปัน -) การแยกวิเคราะห์ป่า ผมหารือว่าในคำตอบอื่น
ปัญหาเหล่านี้บางส่วนถูกกล่าวถึงในวรรณคดี ยกตัวอย่างเช่นโดยBillot และ Langวิเคราะห์บางแง่มุมของการสัมมนาไบนารี่ที่เกี่ยวกับกลยุทธ์การแยกวิเคราะห์