CFG parsing menggunakan

18

Ada banyak algoritma yang dapat menguraikan tata bahasa bebas konteks dalam waktu . Dengan menggunakan perkalian matriks, seseorang bahkan bisa berjalan lebih cepat tanpa gejala dari itu.O(n3)

Namun, semua algoritma untuk parsing CFG sewenang-wenang yang saya tahu memiliki penggunaan ruang kasus terburuk (meskipun, diakui, saya tidak tahu apa penggunaan ruang dari algoritma multiplikasi matriks itu). Saya bertanya-tanya apakah ada algoritma yang meningkatkan penggunaan ruang ini (jadi abaikan batas waktu).Ω(n2)

Pertanyaan itu muncul dalam pikiran saya setelah secara mental menghubungkan dengan ruang Ω ( n 2 ) yang terikat pada semua algoritma penguraian CFG Saya tahu. Ini mungkin tidak menarik secara praktis, tetapi hanya sesuatu yang saya ingin ketahui.CSG=NDSPACE(n)DSPACE(n2)Ω(n2)

Alex ten Brink
sumber
5
Tidak tahu tentang semua algoritma parsing lainnya, tetapi mereka berdasarkan perkalian matriks melakukan take ruang; lihat: cstheory.stackexchange.com/questions/1313/…Θ(n2)
Ryan Williams

Jawaban:

14

Bagian pertama dari jawaban ini tidak lebih dari pengulangan jawaban ( menjadi log 2 ( n ) ) yang efisien dari jawaban David dalam istilah teoretis kompleksitas.log4(n)log2(n)

LOGCFL.NC2.NC2DSPACE(log2(n))nlogn

O(n2)n2

Tentunya masalah yang sangat menarik layak untuk dilihat.

V Vinay
sumber
Itu presentasi yang cukup menarik, terima kasih untuk tautannya.
Alex ten Brink
13

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

O(log4n)

David Eppstein
sumber
3
Saya baru saja menemukan hasil serupa oleh Lewis et al. di sini: ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=5397245 . Namun, pertanyaannya adalah apakah kita dapat melakukan lebih baik daripada ruang kuadratik hanya menggunakan waktu polinomial.
Alex ten Brink
8

O(log2n)SC2

Emil Jeřábek mendukung Monica
sumber