Sự phức tạp của giao điểm của các ngôn ngữ thông thường như ngữ pháp không ngữ cảnh


20

Đưa ra các biểu thức chính quy , có bất kỳ giới hạn không tầm thường nào về kích thước của ngữ pháp không ngữ cảnh nhỏ nhất cho không?R 1R nR1,,RnR1Rn


??? cố gắng hình dung điều này Có mẹo gì không? giao điểm của là thường xuyên. người ta có thể tìm thấy DFA tối thiểu (số trạng thái wrt) thông qua các phương thức tiêu chuẩn cũng là CFG. Rn
vzn

@vzn: bạn nói đúng Vấn đề là DFA này, và do đó CFG, có thể rất lớn. Tôi tự hỏi liệu người ta có thể sử dụng sức mạnh thêm của CFG để có được một mô tả ngắn gọn hơn về giao lộ.
Tối đa

phỏng đoán không. nghi ngờ rằng mọi CFL nhận ra (nghĩa là tương đương) RL không sử dụng ngăn xếp của nó hoặc có thể được chuyển đổi thành ngăn không tăng trạng thái và tối thiểu như vậy (số lượng trạng thái wrt) có cùng kích thước với mức tối thiểu DFA. chưa bao giờ nghe / thấy một bằng chứng về điều này. nó có thể không khó? một câu hỏi đơn giản hơn, có bất kỳ PDA nào nhận ra RL nhỏ hơn DFA không? Nghĩ không.
vzn

@vzn: Phỏng đoán hữu ích, nhưng sai: là tập con của các ngôn ngữ Dyck trên hai loại dấu ngoặc trong đó độ sâu lồng tối đa là . Có một CFG cho có kích thước , nhưng DFA tối thiểu (thậm chí, tôi nghĩ, NFA tối thiểu) có kích thước . k L k O ( k ) O ( 2 k )LkkLkO(k)O(2k)
Tối đa

Ngôn ngữ Dyck là CFL nhưng không phải RL ...? nhưng thấy bạn đang giới hạn độ sâu lồng tối đa ... vậy thì bạn có thể xây dựng cùng ngôn ngữ đó với các giao điểm RL không? cái gì / ở đâu là bằng chứng cho thấy DFA tối thiểu là lớn như vậy? là bang ? bạn không xác định tiêu chí tối thiểu hoặc ở nơi khác & lấy trạng thái làm trường hợp tự nhiên nhưng không phải là tiêu chí duy nhất. O(2k)
vzn

Câu trả lời:


6

Đây là một câu hỏi tuyệt vời và nó thực sự nằm trong sở thích của tôi. Tôi rất vui vì bạn đã hỏi nó Max.

Đặt DFA với tối đa mỗi trạng thái được đưa ra. Sẽ thật tuyệt nếu tồn tại một chiếc PDA với nhiều tiểu bang theo cấp số nhân chấp nhận giao điểm của các ngôn ngữ của DFA. Tuy nhiên, tôi đề nghị rằng một chiếc PDA như vậy có thể không luôn tồn tại.O ( n )nO(n)

Hãy xem xét ngôn ngữ sao chép. Bây giờ, hạn chế nó để sao chép chuỗi có độ dài n.

Chính thức, xem xét -copy .: = { x xn:= {xx|x{0,1}n}

Chúng ta có thể biểu thị -copy là giao điểm của DFA có kích thước tối đa là . Tuy nhiên, DFA nhỏ nhất chấp nhận -copy có trạng thái.n O ( n ) n 2 Ω ( n )nnO(n)n2Ω(n)

Tương tự như vậy, nếu chúng ta giới hạn bản thân trong bảng chữ cái ngăn xếp nhị phân, thì tôi nghi ngờ rằng chiếc PDA nhỏ nhất chấp nhận bản sao có nhiều cấp số nhân.n

PS Vui lòng gửi email cho tôi nếu bạn muốn thảo luận thêm. :)


5

Tôi không nghĩ rằng có thể có bất kỳ giới hạn dưới hoặc trên không tầm thường.
Đối với giới hạn dưới, hãy xem xét ngôn ngữ cho một cố định . Kích thước của ngữ pháp không ngữ cảnh nhỏ nhất là logarit theo kích thước của biểu thức chính quy của , trong khi kích thước của máy tự động nhỏ nhất cho là tuyến tính theo kích thước của biểu thức chính thức của . Sự khác biệt theo cấp số nhân này vẫn giữ nguyên nếu chúng ta giao cắt với các ngôn ngữ khác. Đối với giới hạn trên, hãy xem xét một ngôn ngữ bao gồm chính xác một deBruijn - Chuỗi có độ dài . Được biết, kích thước của một ngữ pháp nhỏ nhất chok L 1 L 1 L 1 L 1 L 2 n L 2 O ( nL1={a2k}kL1L1L1L1
L2nL2 là trường hợp xấu nhất, tức là , do đó, sự khác biệt đối với máy tự động "nhỏ nhất" đối với chỉ đơn giản là một yếu tố logarit, mệnh đề 1 trongL2O(nlogn)L2

Một giới hạn chung không tầm thường hoặc giới hạn trên sẽ mâu thuẫn với các kết quả đó, vì những gì đúng với giao điểm của ngôn ngữ phải đúng với giao điểm của ngôn ngữ.1n1


Nhận xét về kích thước của ngữ pháp nhỏ nhất cho deBruijn-Sequence là khá thú vị. Bạn có thể vui lòng cung cấp một tài liệu tham khảo. Cảm ơn bạn.
Michael Wehar

Ngoài ra, tôi có thể bị nhầm, nhưng có vẻ như bạn chỉ giải quyết vấn đề cho một biểu thức chính quy duy nhất (chứ không phải là một sản phẩm của biểu thức thông thường)?
Michael Wehar

@MichaelWehar Yep, tôi chỉ xem xét một biểu thức chính quy duy nhất. Bởi vì nếu nó đúng với giao điểm của ngôn ngữ, thì nó chắc chắn phải đúng với giao điểm tầm thường. Tôi không biết cách cải tổ câu hỏi để loại trừ những trường hợp này. Tôi đã thêm tài liệu tham khảo, nên đã làm điều đó ngay lập tức, xin lỗi. n
john_leo

1
Cảm ơn bạn! Bạn đã có thể mô tả một ví dụ cụ thể. Dưới đây là một nhận xét đơn giản dẫn đến sự tồn tại của các ví dụ như vậy. Hãy để n được đưa ra. Có 2 ^ n chuỗi có độ dài n. Ngoài ra, không có nhiều hơn 2 ^ n máy Turing có tối đa n / log (n). Do đó, một số chuỗi x có độ dài n sao cho không có máy Turing nào có ít hơn n / log (n) trạng thái chấp nhận ngôn ngữ {x}. Do đó, {x} được chấp nhận bởi một DFA với n trạng thái và không thể được chấp nhận bởi một PDA có ít hơn n / log (n) trạng thái.
Michael Wehar

5

Hãy để tôi phán xét thứ hai của Michael, đây thực sự là một câu hỏi thú vị. Ý tưởng chính của Michael có thể được kết hợp với kết quả từ tài liệu, do đó cung cấp một giới hạn thấp hơn tương tự với một bằng chứng nghiêm ngặt.

Tôi sẽ đề cập đến giới hạn về kích thước CFG về tổng số ký hiệu chữ cái trong biểu thức chính quy. Đặt số này được ký hiệu là . (Như john_leo đã lưu ý, chúng tôi sẽ không tìm thấy bất kỳ giới hạn hữu ích nào về số lượng biểu thức chính quy tham gia vào giao lộ.)knk

Cả OP và Michael đều không thấy cần phải đề cập đến điều này, nhưng có thể dễ dàng chứng minh giới hạn trên của (về số lượng trạng thái) để chuyển đổi một giao điểm của biểu thức chính quy thành NFA. Đối với bản ghi, đây là: Chuyển đổi các biểu thức thông thường thành Glushkov automata, tất cả đều không trả về. Sau đó áp dụng xây dựng sản phẩm để có được NFA cho giao điểm của các ngôn ngữ này. (Tôi cho rằng người ta có thể cải thiện giới hạn thành hoặc hơn.) Một NFA -state có thể được chuyển đổi thành một ngữ pháp tuyến tính phải (là trường hợp đặc biệt của CFG) có kích thước (nếu chúng tôi đo kích thước ngữ pháp là tổng số ký hiệu ở bên trái và bên phải của sản phẩm), do đó cho kích thước 2 k + 1 s O ( s 2 ) O ( 4 k )2k+12k+1sO(s2)O(4k). Điều này tất nhiên nghe có vẻ khủng khiếp nếu bạn có ứng dụng thực tế trong tâm trí. Cố gắng chứng minh ràng buộc tốt hơn bằng cách sử dụng độ phức tạp chuyển tiếp không điều kiện thay vì độ phức tạp trạng thái không xác định để ước tính kích thước của NFA có thể đáng để nỗ lực.

Phần khác là tìm một ngôn ngữ nhân chứng có thể được diễn đạt ngắn gọn như là giao điểm của các biểu thức thông thường, nhưng nhất thiết phải rườm rà để mô tả với CFG. (Ở đây chúng ta cần thiết lập giới hạn thấp hơn về kích thước của tất cả các CFG tạo ra ngôn ngữ, trong đó có thể có vô số.) Đối số sau đây đưa ra chặn dưới.2Ω(k/logk)

Hãy xem xét ngôn ngữ hữu hạn , trong đó biểu thị sự đảo ngược của . Sau đó, có thể được biểu thị dưới dạng giao điểm của các biểu thức chính sau:Ln={wwRw{a,b}|w|=n}wRwLn2n+1

  • ri=(a+b)ia(a+b)2(ni1)a(a+b)+(a+b)ib(a+b)2(ni1)b(a+b) , với ;1in
  • si=(a+b)a(a+b)2(ni1)a(a+b)i+(a+b)b(a+b)2(ni1)b(a+b)i , với ;1in
  • =(a+b)3n

Tổng số của các ký hiệu chữ cái trong giao điểm của biểu thức này là trong .O ( n 2 )kO(n2)

Sử dụng một đối số được đưa ra trong bằng chứng Định lý 13 trong ( 1 ), người ta có thể chứng minh rằng mọi CFG tuần hoàn tạo phải có ít nhất các biến khác biệt, nếu phía bên phải của mỗi quy tắc có độ dài tối đa là . Điều kiện thứ hai là cần thiết để tranh luận về số lượng biến, vì chúng ta có thể tạo ra một ngôn ngữ hữu hạn với một biến duy nhất. Nhưng từ góc độ kích thước ngữ pháp, điều kiện này không thực sự là một hạn chế, vì chúng ta có thể chuyển đổi CFG thành dạng này chỉ với một kích thước tuyến tính kích thước, xem ( 2 ). Lưu ý rằng ngôn ngữ được sử dụng bởi Arvind et al. là trên một bảng chữ cái có kích thước , và điều này mang lại một ràng buộc của2 n / ( 2 n ) = 2 Ω ( Ln2nnn/(2n)2n/(2n)=2Ω(k/logk)2nnn/(2n) ; nhưng đối số mang theo với sửa đổi rõ ràng.

Tuy nhiên, một khoảng cách lớn vẫn còn giữa và giới hạn dưới đã nói ở trên.O(4n)

Tài liệu tham khảo:

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.