Máy tự động LR (1) có thể lớn hơn bao nhiêu so với máy tự động LR (0) tương ứng?


10

Trong một trình phân tích cú pháp LR (0), mỗi trạng thái bao gồm một tập hợp các mục LR (0), là các sản phẩm được chú thích với một vị trí. Trong một trình phân tích cú pháp LR (1), mỗi trạng thái bao gồm một tập hợp các mục LR (1), là các sản phẩm được chú thích với một vị trí và một ký tự nhìn.

Người ta biết rằng với một trạng thái trong một máy tự động LR (1), bộ cấu hình được hình thành bằng cách thả các mã thông báo nhìn từ mỗi mục LR (1) mang lại một bộ cấu hình tương ứng với một số trạng thái trong máy tự động LR (0). Theo nghĩa đó, sự khác biệt chính giữa máy tự động LR (1) và máy tự động LR (0) là máy tự động LR (1) có nhiều bản sao của các trạng thái trong máy tự động LR (0), mỗi trạng thái được chú thích bằng giao diện thông tin. Vì lý do này, tự động LR (1) cho một CFG nhất định thường lớn hơn trình phân tích cú pháp LR (0) tương ứng cho CFG đó.

Câu hỏi của tôi là máy tự động LR (1) có thể lớn hơn bao nhiêu. Nếu có ký hiệu đầu cuối riêng biệt trong bảng chữ cái của ngữ pháp, thì về nguyên tắc, chúng ta có thể cần sao chép từng trạng thái trong máy tự động LR (0) ít nhất một lần cho mỗi tập hợp con của ký hiệu đầu cuối riêng biệt đó, có khả năng dẫn đến một LR (1 ) automaton lớn gấp lần so với automaton gốc (0). Cho rằng mỗi mục riêng lẻ trong máy tự động LR (0) bao gồm một tập hợp các mục khác nhau (0), chúng ta có thể nhận được một cú đánh thậm chí còn lớn hơn.n 2 nnn2n

Điều đó nói rằng, tôi dường như không thể tìm ra cách xây dựng một họ ngữ pháp mà máy tự động LR (1) lớn hơn đáng kể so với máy tự động LR (0) tương ứng. Tất cả mọi thứ tôi đã thử đã dẫn đến sự gia tăng kích thước khiêm tốn (thường là khoảng 2-4 lần), nhưng dường như tôi không thể tìm thấy một mô hình dẫn đến một vụ nổ lớn.

Có những họ đã biết về ngữ pháp không ngữ cảnh có automata LR (1) lớn hơn theo cấp số nhân so với automata LR (0) tương ứng không? Hoặc được biết rằng trong trường hợp xấu nhất, bạn thực sự không thể có được một cú đánh theo cấp số nhân?

Cảm ơn!


những vấn đề như vậy đôi khi có thể chấp nhận được để thử nghiệm theo kinh nghiệm. Bạn nghĩ gì về các trường hợp riêng lẻ được tạo ngẫu nhiên mà (được chọn để) triển lãm? có một mô hình trong các loại câu hỏi này mà các công trình "tìm kiếm ngẫu nhiên" thể hiện sự "phức tạp" nhất ...
vzn

2
Các trường hợp xấu nhất thường khó tìm thấy bằng cách lấy mẫu ngẫu nhiên, ít nhất là nếu trường hợp trung bình tốt hơn đáng kể.
Raphael

ps sẽ rất hữu ích nếu bạn bao gồm các ví dụ về các trường hợp
nổ tung

ý tưởng / dẫn: hoán vị phân tích cú pháp (cstheory.se)
vzn

LALR (1) thường được trình bày như một cách để có đủ sức mạnh gần với năng lượng LR (1) có ích với nhiều trạng thái ít hơn (để sử dụng các từ của sách Rồng). Tôi tự hỏi nếu một yếu tố chỉ từ 2 đến 4 sẽ đủ để loại bỏ LR (1) là cấm cho đến khi phát minh ra LALR (1). Nếu tôi nghĩ về điều đó khi chúng có thể truy cập được, tôi sẽ xem Aho & Ullman Lý thuyết về phân tích cú pháp, dịch thuật và biên dịch và trong Kỹ thuật phân tích cú pháp Grune nếu họ có điều gì đó về các con số.
AProgrammer

Câu trả lời:


2

Ngữ pháp

ST0TnaTn+1TnbTn+1TnbTn+1tnTNtN

có trạng thái LR (0) mở rộng thành biến thể trong automata LR (1) vì tất cả các phân vùng của đều có thể nhìn- đầu xuất hiện trong các bối cảnh khác nhau. Số lượng các tiểu bang ở LR (0) automaton mặt khác là tuyến tính trong nhiệm kỳ của . Do đó, hệ số mở rộng của thứ tự là có thể.

TNtN˙
{ t 0 ... t N - 1 } N 2 N / N2N{t0tN1}N2N/N

Chỉnh sửa: Tôi sẽ phải kiểm tra sau khi tôi có nhiều thời gian hơn, tôi nghĩ rằng việc thêm sẽ cung cấp hệ số mũ trên gần như tất cả các trạng thái LR (0). TNT0Điều đó dẫn đến một cuộc xung đột giảm ca.


0

Các giới hạn thấp hơn như vậy đôi khi rất khó để xây dựng và có thể gợi lên lý thuyết CS sâu sắc hơn (ví dụ trong các trường hợp, tách lớp phức tạp). Bài viết này dường như đưa ra một cấu trúc lý thuyết / giới hạn thấp hơn mà bạn tìm kiếm, ví dụ như trong Định lý 5 đặt giới hạn thấp hơn trên tổng số ký hiệu và do đó cũng nêu rõ. Các tài liệu tham khảo cũng bao gồm các công trình tương tự khác / giới hạn dưới.

Định lý 5. Đặt . Đối với bất kỳ chương trình LR (k) với tạo ; trong đó ; số lượng ký hiệu nonterminal phải có ít nhất hoặc tồn tại ký hiệu nonterminal A sao cho số lượng sản phẩm khác nhau có A ở phía bên trái phải ít nhất là .k=0,1; . . . ,n-1Lnn3f(n,k)f(n,k)f(n,k)=214(nk)/n2k=0,1;...,n1Lnn3f(n,k)f(n,k)

Về kích thước của trình phân tích cú pháp và LR (k) -grammars / Leunga, Wotschkeb


Điều này không cho chúng ta biết máy tự động LR (1) lớn hơn bao nhiêu so với máy tự động LR (0). Nó cho giới hạn thấp hơn về kích thước của máy tự động LR (1) và giới hạn dưới trên kích thước của máy tự động LR (0), nhưng những gì chúng ta muốn là giới hạn thấp hơn về tỷ lệ kích thước của máy tự động LR (1) chia cho máy tự động LR (0). Kết quả này không ngụ ý gì về tỷ lệ đó. Để tìm hiểu điều gì đó về tỷ lệ, chúng ta cần có giới hạn trên về kích thước của máy tự động LR (0) cho ngôn ngữ đó. Vì vậy, câu trả lời này không trả lời câu hỏi đã được hỏi. 2 n / 4 / n 22(n1)/4/n22n/4/n2
DW

Chưa kể rằng khoảng cách giữa hai giới hạn dưới chỉ là một yếu tố của , và bài đăng gốc nói rằng tác giả đã biết cách đạt được tỷ lệ 2-4x nhưng muốn biết liệu có thể thực hiện một cú đánh lớn hay không. 1.1892
DW

DW nghĩ rằng sự phản đối của bạn là hợp pháp và tiếp cận việc chia tóc. thx rất nhiều cho việc làm rõ / chi tiết. đó là một câu trả lời khoa học có liên quan / gần như trực tiếp cho / nghiên cứu có hệ thống về câu hỏi của anh ấy, về cơ bản là về việc xây dựng ngôn ngữ trong trường hợp xấu nhất (s) / blowup trong LR (n). có thể đây là (gần?) "kết quả được biết đến nhiều nhất" trong khu vực. một câu trả lời chính đáng cho câu hỏi có thể là tiêu cực, còn gọi là KHÔNG, không có kết quả nào tốt hơn được tìm thấy bởi người hỏi (anh ta chưa thực sự trưng bày bất kỳ) hoặc trong tài liệu. háo hức chờ đợi bất kỳ câu trả lời dứt khoát hơn bản thân mình!
vzn
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.