Điều kiện để phổ cập NFA


28

Hãy xem xét một automata hữu hạn không xác định A=(Q,Σ,δ,q0,F) và một hàm f(n) . Ngoài ra chúng tôi xác định Σk=ikΣi .

Bây giờ hãy phân tích các tuyên bố sau:

Nếu Σf(|Q|)L(A) , sau đó L(A)=Σ .

Thật dễ dàng để chỉ ra rằng với f(n)=2n+1 thì điều đó là đúng, do đó nếu automata tạo ra mọi từ có độ dài tối đa là 2|Q|+1 , sau đó nó tạo ra Σ .

Nhưng nó vẫn giữ nếu f là một đa thức?

ApΣp(|Q|)L(Một)Σ*


Tôi muốn đưa tiền thưởng cho một bằng chứng hoặc không chắc chắn rằng cho trường hợp . Và nếu không có, tôi sẽ đưa nó cho công trình tốt nhất có thể có. | Σ | 2f(n)= =2n-o(n)|Σ|2
Hsien-Chih Chang 張顯

Câu trả lời:


22

Để câu lệnh được giữ, f phải tăng theo cấp số nhân, ngay cả với bảng chữ cái đơn nhất.

[Chỉnh sửa: Phân tích được cải thiện một chút trong phiên bản 2.]

Dưới đây là một bản phác thảo bằng chứng. Giả sử rằng câu lệnh giữ và cho f là một hàm sao cho mọi NFA có tối đa n trạng thái chấp nhận tất cả các chuỗi có độ dài tối đa f ( n ) chấp nhận tất cả các chuỗi. Chúng tôi sẽ chứng minh rằng với mọi C > 0 và đủ lớn n , chúng tôi có f ( n )> 2 C ⋅√ n .

Các định lý số nguyên tố ngụ ý rằng đối với mỗi c <lg e và cho đủ lớn k , có ít nhất c ⋅2 k / k số nguyên tố trong khoảng [2 k , 2 k 1 ]. Ta lấy c = 1. Đối với k như vậy , hãy để N k = 2 k / k và xác định một NFA M k như sau. Đặt p 1 , Lọ, p N k là các số nguyên tố khác biệt trong phạm vi [2 k , 2 k +1]. NFA M k có các trạng thái S k = 1 + p 1 + W + p N k . Ngoài trạng thái ban đầu, các trạng thái được phân chia thành các chu kỳ N k trong đó chu kỳ thứ i có độ dài p i . Trong mỗi chu kỳ, tất cả trừ một trạng thái là các trạng thái được chấp nhận. Trạng thái ban đầu có N k đi ra, mỗi cạnh đi đến trạng thái ngay sau trạng thái bị loại bỏ trong mỗi chu kỳ. Cuối cùng, trạng thái ban đầu cũng được chấp nhận.

Hãy P k là sản phẩm p 1 ... p N k . Dễ dàng thấy rằng M k chấp nhận tất cả các chuỗi có độ dài nhỏ hơn P k nhưng từ chối chuỗi có độ dài P k . Do đó, f ( S k ) P k .

Lưu ý rằng S k 1 + N k 2 k +1 = o (2 2 k ) và P k (2 k ) N k 2 2 k . Phần còn lại là tiêu chuẩn.


Phỏng đoán của bạn về giá trị tốt nhất của gì? Say f ( n ) = 2 n + 1 , hoặc ở đâu đó giữa 2 n2 c ff(n)= =2n+12n ? 2cn
Hsien-Chih Chang 張顯

@ Hsien-Chih: Tôi đã tự hỏi điều tương tự, và tôi không có bất kỳ phỏng đoán hợp lý nào. Đầu tiên, thật tầm thường khi thấy f (n) 2 ^ n (chúng ta không cần +1) và, trong khi tôi mong đợi một số cải tiến tuyến tính trên giới hạn trên này, tôi không biết liệu nó có chặt chẽ với một yếu tố không đổi hay không. (còn nữa)
Tsuyoshi Ito

(tiếp theo) Thứ hai, như đối với giá thấp hơn bị ràng buộc, nếu tôi không nhầm, một sự tinh tế nhẹ những phân tích trên đưa ra sau thấp hơn bị ràng buộc: đối với mỗi hằng số 0 <c < và n đủ lớn, chúng ta cóf(n)>e c 1/2 . Các tinh chỉnh thêm có thể có thể, nhưng chúng tôi không thể có được giới hạn thấp hơn, chẳng hạn như 2 ^ {n ^ p} cho p> 1/2 nếu chúng tôi sử dụng cùng một cấu trúc của NTM. Tôi nghĩ rằng đó là một câu hỏi thú vị cho dù việc sử dụng phân phối các số nguyên tố (như PNT) có cần thiết cho việc xây dựng các ví dụ xấu hay không. (còn nữa)f(n)>ecnlnn
Tsuyoshi Ito

(tiếp theo) Tuy nhiên, nếu bạn quan tâm và muốn điều tra thêm, có lẽ sẽ khôn ngoan hơn khi tìm tài liệu trước. Tôi sẽ không ngạc nhiên nếu câu trả lời này hoặc một cái gì đó tốt hơn đã xuất hiện trong tài liệu.
Tsuyoshi Ito

5
@Tsuyoshi: Nó được thể hiện bằng Chrobak rằng một n-state DFA cho một ngôn ngữ unary thể được mô phỏng bởi một m-state NFA cho . Do đó, xây dựng của bạn là chặt chẽ nếu ngôn ngữ là unary. Xem [Chr86]:cs.ust.hk/mjg_lib/L Library / Chap86.pdfm= =Ôi(enđăng nhậpn)
Hsien-Chih Chang

19

CHỈNH SỬA NGÀY 10/12/06:

ok, đây là công trình tốt nhất tôi có thể có, xem có ai nghĩ ra ý tưởng hay hơn không.

Định lý. Với mỗi Có một NFA M ( 5 n + 12 ) trên bảng chữ cái Σ với | Σ | = 5 sao cho chuỗi ngắn nhất không thuộc L ( M ) có độ dài ( 2 n - 1 ) ( n + 1 ) + 1 .n(5n+12)MΣ|Σ|= =5L(M)(2n-1)(n+1)+1

Điều này sẽ cho chúng ta .f(n)= =Ω(2n/5)

Cấu trúc này khá giống với cấu trúc của Shallit , ngoại trừ chúng tôi xây dựng một NFA trực tiếp thay vì thể hiện ngôn ngữ bằng một biểu thức thông thường trước tiên. Để cho

.Σ= ={[00],[01],[10],[11],}

Với mỗi , chúng ta sẽ xây dựng một ngôn ngữ nhận dạng NFA Σ - { s n } , trong đó s n là chuỗi sau ( ví dụ: lấy n = 3 ):nΣ*-{Sn}Snn= =3

.S3= =[00][00][01][00][01][10]Giáo dục[11][11][01]

Ý tưởng là chúng ta có thể xây dựng một NFA bao gồm năm phần;

  • một bộ khởi động , đảm bảo chuỗi bắt đầu bằng ;[00][00][01]
  • một bộ kết thúc , đảm bảo chuỗi kết thúc bằng ;[11][11][01]
  • một bộ đếm , giữ số lượng ký hiệu giữa hai s là n ;n
  • một trình kiểm tra bổ sung , đảm bảo chỉ các ký hiệu có dạng xuất hiện; cuối cùng,xx+1
  • một trình kiểm tra nhất quán , đảm bảo rằng chỉ các ký hiệu có dạng có thể xuất hiện đồng thời.xyyz

Lưu ý rằng chúng tôi muốn chấp nhận thay vì { s n } , vì vậy một khi chúng tôi phát hiện ra rằng chuỗi đầu vào không tuân theo một trong các hành vi trên, chúng tôi chấp nhận chuỗi ngay lập tức. Nếu không thì sau | s n | các bước, NFA sẽ ở trạng thái từ chối duy nhất có thể. Và nếu chuỗi dài hơn | s n | , NFA cũng chấp nhận. Vì vậy, bất kỳ NFA nào thỏa mãn năm điều kiện trên sẽ chỉ từ chối s n .Σ*-{Sn}{Sn}|Sn||Sn|Sn

Có thể dễ dàng kiểm tra trực tiếp con số sau đây thay vì bằng chứng nghiêm ngặt:

NFA để từ chối s_n

Chúng tôi bắt đầu ở trạng thái phía trên bên trái. Phần đầu tiên là bộ khởi động, và bộ đếm, sau đó là bộ kiểm tra nhất quán, bộ kết thúc, cuối cùng là bộ kiểm tra bổ sung. Tất cả các cung không có nút thiết bị đầu cuối chỉ đến trạng thái dưới cùng bên phải, đó là một chấp nhận tất cả thời gian. Một số cạnh không được dán nhãn do thiếu không gian, nhưng chúng có thể được phục hồi dễ dàng. Một đường gạch ngang thể hiện một chuỗi gồm trạng thái với n - 2 cạnh.n-1n-2

Chúng tôi có thể (đau đớn) xác minh rằng NFA chỉ từ chối , vì nó tuân theo tất cả năm quy tắc trên. Vì vậy, một NFA ( 5 n + 12 ) với | Σ | = 5 đã được xây dựng, thỏa mãn yêu cầu của định lý.Sn(5n+12)|Σ|= =5

Nếu có bất kỳ sự không rõ ràng / vấn đề nào với việc xây dựng, vui lòng để lại nhận xét và tôi sẽ cố gắng giải thích / khắc phục nó.


Câu hỏi này đã được nghiên cứu bởi Jeffrey O. Shallit và cộng sự, và thực sự giá trị tối ưu của vẫn còn mở cho | Σ | > 1 . (Đối với ngôn ngữ đơn phương, hãy xem các bình luận trong câu trả lời của Tsuyoshi )f(n)|Σ|>1

Trong trang 46-51 của bài nói chuyện về tính phổ quát , ông đã cung cấp một bản dựng sao cho:

Định lý. Cho đối với một số N đủ lớn, có một n -state NFA M qua bảng chữ cái nhị phân như vậy mà các chuỗi ngắn nhất không phải trong L ( M ) là chiều dài Ω ( 2 c n ) cho c = 1 / 75 .nNNnML(M)Ω(2cn)c= =1/75

Do đó, giá trị tối ưu cho nằm ở khoảng giữa 2 n / 752 n . Tôi không chắc liệu kết quả của Shallit có được cải thiện trong những năm gần đây hay không.f(n)2n/752n


Tôi đang chơi với công việc của Shallit, hy vọng sẽ có được một ràng buộc tốt hơn nhiều gần . Xây dựng của họ có vẻ thú vị, bởi chỉ định một số chuỗi có độ dài Ω ( 2 n ) mà không thể được đại diện bởi một biểu thức chính quy "ngắn" chiều dài2nΩ^(2n)cn+o(n)f(n)f(n)+1c222n

2
Tôi không nghĩ rằng nó cung cấp những hiểu biết sâu sắc hơn cho việc nghiên cứu vấn đề này, nhưng tài liệu tham khảo học thuật đúng đắn cho bài nói chuyện của Shallit là: K. Ellul, B. Krawetz, J. Shallit, M. Wang: Biểu hiện thường xuyên: Kết quả mới và vấn đề mở. Tạp chí Automata, Ngôn ngữ và Kết hợp 10 (4): 407-437 (2005)
Hermann Gruber

@Hermann: Cảm ơn bạn đã tham khảo, hiện tại tôi không thể truy cập vào bài báo, nhưng tôi sẽ tìm cách để.
Hsien-Chih Chang 張顯

3n+Ôi(1)

1
Phiên bản in sẵn của tác giả của bài báo JALC được ghi chú có ở đây: cs.uwaterloo.ca/~shallit/Papers/re3.pdf Ràng buộc và bằng chứng là giống nhau trong phiên bản in.
Hermann Gruber
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.