Phân tích cú pháp CFG bằng cách sử dụng không gian


18

Có vô số thuật toán có thể phân tích cú pháp ngữ pháp không ngữ cảnh trong thời gian . Sử dụng phép nhân ma trận, người ta thậm chí có thể đi nhanh hơn bất thường.O(n3)

Tuy nhiên, tất cả các thuật toán để phân tích cú pháp CFG tùy ý mà tôi biết đều có cách sử dụng không gian trong trường hợp xấu nhất là (mặc dù, phải thừa nhận rằng tôi không biết cách sử dụng không gian của thuật toán nhân ma trận đó là gì). Tôi đã tự hỏi liệu có bất kỳ thuật toán nào cải thiện việc sử dụng không gian này (vì vậy không quan tâm đến thời gian bị ràng buộc).Ω(n2)

Câu hỏi hiện lên trong đầu tôi sau khi liên kết về mặt tinh thần với không gian bị ràng buộc trên tất cả các thuật toán phân tích cú pháp CFG mà tôi biết. Nó có thể không có hứng thú thực tế, nhưng chỉ là thứ tôi muốn biết.Ω ( n 2 )CSG=NDSPACE(n)DSPACE(n2)Ω(n2)


5
Không biết về tất cả các thuật toán phân tích cú pháp khác, nhưng các thuật toán dựa trên phép nhân ma trận sẽ chiếm không gian ; xem: cstheory.stackexchange.com/questions/1313/ KhănΘ(n2)
Ryan Williams

Câu trả lời:


14

Nửa đầu của câu trả lời này không gì khác hơn là một câu trả lời hiệu quả ( đến ) về câu trả lời của David về mặt lý thuyết phức tạp.log 2 ( n )log4(n)log2(n)

Các ngôn ngữ ngữ cảnh miễn phí sống trong lớp phức tạpLớp này được đặc trưng tương đương bởi các mạch bán không giới hạn độ sâu log . Đây là các mạch có kích thước đa thức trong đó các cổng OR có quạt vào không giới hạn và cổng AND có giới hạn quạt (ví dụ 2). Bằng cách tăng độ sâu theo hệ số nhật ký, chúng ta có thể thay thế mọi cổng OR trong quạt không giới hạn bằng các OR trong quạt có giới hạn. Điều này đặt vấn đề trongKhông khó để thấy có thể được đánh giá bằng bằng cách nói một tìm kiếm đầu tiên chuyên sâu duy trì chuỗi trẻ em trái / phải tại các cổng được khám phá cho đến nay. Kết quả quay trở lại bài báo của Lewis-Hartmanis. Và trong khi điều này cải thiện không gian của David bị ràng buộc, điều này có thể mấtN C 2 . N C 2 D S P A C E ( log 2 ( n ) ) n log nLOGCFL.NC2.NC2DSPACE(log2(n))nlognthời gian. Chúng tôi không biết gì hơn.

Cách truyền thống để hiểu sự đánh đổi không gian thời gian là sử dụng các trò chơi cuội. Đã có một vài bài viết về CYK; một nỗ lực gần đây hơn là trong phần đầu tiên của bài trình bày này . Ở đây người ta chỉ ra rằng (a) không gian tuyến tính có thể đạt được theo thời gian theo cấp số nhân và (b) nếu thời gian bị giới hạn ở , thì CYK sẽ sử dụng ít nhất không gian.n 2O(n2)n2

Chắc chắn là một vấn đề rất thú vị đáng xem.


Đó là một bài thuyết trình khá thú vị, cảm ơn vì liên kết.
Alex ten Brink

13

Bất kỳ ngôn ngữ tự do ngữ cảnh nào cũng có thể được mô tả bằng một ngữ pháp trong Mẫu Chomsky Bình thường, và sau đó được nhận dạng bằng thuật toán không xác định sử dụng các bit : chỉ cần đoán các bit sản xuất cấp cao nhất ( ) và điểm dừng trong chuỗi đầu vào giữa hai chuỗi được khớp bởi hai cạnh của các bit sản xuất ( ), lặp lại ở phía nhỏ hơn, và sau đó tiếp tục không đệ quy ở phía lớn hơn.O ( 1 ) O ( log n )O(log2n)O(1)O(logn)

Theo định lý của Savitch, theo sau vấn đề có thể được giải quyết một cách xác định với các bit bộ nhớ . Tuy nhiên, thuật toán kết quả từ kỹ thuật này có thể sẽ khá kém hiệu quả.O(log4n)


3
Tôi vừa vấp phải một kết quả tương tự của Lewis và cộng sự. đây: ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=5397245 . Tuy nhiên, vẫn còn câu hỏi liệu chúng ta có thể làm tốt hơn không gian bậc hai chỉ bằng thời gian đa thức.
Alex ten Brink

8

CFL xác định có thể được phân tích cú pháp trong không gian và thời gian đa thức (nghĩa là trong ). Đây là một kết quả cũ của Cook . Đây là một vấn đề mở cho dù CFL không đặc biệt cũng có trong SC (nhưng điều này không nói lên điều gì về sự tồn tại của các thuật toán không gian tuyến tính).S C 2O(log2n)SC2

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.