NFA với số lượng trạng thái theo cấp số nhân khi được phổ biến


10

Làm cách nào tôi có thể xây dựng một ví dụ về DFA có trạng thái trong đó NFA tương đương có trạng thái. Rõ ràng tập hợp trạng thái của DFA nên chứa tất cả các tập hợp con của tập hợp trạng thái của NFA, nhưng tôi không biết bắt đầu như thế nào. Bất kỳ đề nghị để đưa tôi đi đúng hướng? n2nn


Câu hỏi này có phần không rõ ràng. Nói chung, có vô số DFA tương đương cho bất kỳ ngôn ngữ thông thường nhất định và vô số NFA tương đương cho bất kỳ ngôn ngữ thông thường nào. Nếu bạn muốn các DFA tối thiểu trạng thái, điều này thậm chí không thể xảy ra, vì các NFA khác nhau có thể nhận ra cùng một ngôn ngữ và có số lượng trạng thái khác nhau, nhưng tương ứng với cùng một DFA tối thiểu. Ngoài ra, nếu bạn chỉ muốn xem xét các NFA "tối thiểu", điều này sẽ trở nên thú vị hơn ...2n
Patrick87

2
Patrick, tôi nghĩ OP có nghĩa là một ví dụ trong đó DFA tối thiểu lớn hơn theo cấp số nhân so với NFA tối thiểu.
Yuval Filmus

@ Patrick87 Tôi không tìm kiếm một thuật toán. Tất cả những gì tôi muốn là một ví dụ về một cặp máy: DFA với trạng thái và NFA với n trạng thái chấp nhận cùng một ngôn ngữ. 2nn
saadtaame

@saadtaame: Đó là chuyện nhỏ: lấy bất kỳ DFA nào và thêm đủ các trạng thái để đạt . Ví dụ thú vị là những nơi mà DFA tương đương tối thiểu có nhiều trạng thái. 2n
Raphael

1
Lưu ý rằng bài viết Wikipedia về tối thiểu hóa các tham chiếu DFA ví dụ phù hợp (mặc dù bạn phải tự mình tìm ra NFA nhỏ).
Raphael

Câu trả lời:


18

Ví dụ tiêu chuẩn là ngôn ngữ của tất cả các từ trên một bảng chữ cái Một kích thước nkhông chứa tất cả các chữ cái khác nhau. Có một NFA chấp nhận L với n + 1 bang (hoặc n bang nếu bạn cho phép nhiều tiểu bang bắt đầu): đầu tiên đoán một lá thư một mà là mất tích, sau đó đi (với một ε -Di chuyển) đến một trạng thái chấp nhận với tự lặp cho bộ tất cả các chữ khác hơn là Một .LAnLn+1naϵA

Bất kỳ DFA cho yêu cầu ít nhất 2 n trạng thái. Điều này có thể được nhìn thấy bằng cách sử dụng định lý Myhill-Nerode. Đặt S 1 , S 2 là hai tập hợp con khác nhau của các từ Aw ( S 1 ) , w ( S 2 ) có chứa tất cả và chỉ các chữ cái trong S 1 , S 2 , tương ứng. Không mất tính tổng quát, giả sử a S 1S 2 và đặt w = w (L2nS1,S2Aw(S1),w(S2)S1,S2aS1S2 . Sau đó w ( S 1 ) w L trong khi w ( S 2 ) w L .w=w(Aa)w(S1)wLw(S2)wL


10

đây là một bài tập trong cuốn sách "Finite Automata" của Mark V. Lawson Heriot-Watt University, Edinburgh, trang 68:

Hãy . Chứng minh rằng ngôn ngữ ( 0 + 1 ) * 1 ( 0 + 1 ) n - 1 có thể được công nhận bởi một automaton không xác định với n + 1 tiểu bang. Cho thấy rằng bất kỳ máy tự động xác định nào nhận ra ngôn ngữ này phải có ít nhất 2 n trạng thái. Ví dụ này cho thấy rằng sự gia tăng theo cấp số nhân của số lượng trạng thái khi chuyển từ máy tự động không xác định sang máy tự động xác định tương ứng đôi khi không thể tránh khỏi.n1(0+1)1(0+1)n1n+12n


10

Tôi sẽ đoán rằng bạn có nghĩa là DFA tối ưu trạng thái. Có thể điều này không mang lại cho bạn 2 n trạng thái, nhưng đó là Ω ( 2 n ) .2n2nΩ(2n)

Từ "Sự phức tạp trong giao tiếp" của Kushilevitz và Nisan trong bài tập 12.6:

"Đối với một số không đổi [không âm integer] , hãy xem xét (hữu hạn) ngôn ngữ L c = { w w | w { 0 , 1 } c } ."cLc={www{0,1}c}

và cuốn sách tiếp tục yêu cầu bạn chứng minh rằng bạn có thể tìm thấy một đồng NFA nhận ra sử dụng trạng thái O ( c ) và bạn cũng không thể làm tốt hơn trạng thái Ω ( 2 c ) cho DFA.LcO(c)Ω(2c)


Ngoài ra, bằng chứng của phần thứ hai "đòi hỏi" sự phức tạp trong giao tiếp, vì vậy điều này có thể không phù hợp với mục đích của bạn.
Timothy Sun

Cảm ơn câu trả lời! Bạn có ý nghĩa gì bởi đồng NFA?
saadtaame

Về cơ bản, chuyển đổi "chấp nhận" bằng "từ chối" trong định nghĩa của NFA. Đó là, nếu không có con đường nào có thể dẫn đến trạng thái từ chối, bạn chấp nhận, nếu không thì bạn từ chối.
Timothy Sun

Trong thực tế, giới hạn dưới theo sau khá dễ dàng từ Myhill-Nerode. (Trên thực tế, bạn có thể nhận được một cái gì đó như ( c + 1 ) 2 c .) Nhưng đồng NFA của tôi sử dụng trạng thái Θ ( c 2 ) . 2c(c+1)2cΘ(c2)
Yuval Filmus

Ngôn ngữ hữu hạn có phần nhàm chán trong vấn đề này. Xem thêm tại đây .
Raphael

9

Đây là một câu trả lời muộn, nhưng dường như không ai đưa ra giải pháp tối ưu. Hãy , Q n = { 0 , 1 , ... , n - 1 } et Một n = ( Q n , A , E n , { 0 } , { 0 } ) , với E n = { ( tôi , a , tôiA={a,b}Qn={0,1,,n1}An=(Qn,A,En,{0},{0})

En={(i,a,i+1)0in1}{(n1,a,0)}{(i,b,i)1in1}{(i,b,0)1in1}}
NFA này trên bảng chữ cái hai chữ cái có trạng thái, chỉ có một trạng thái ban đầu và một trạng thái cuối cùng và DFA tối thiểu tương đương của nó có 2 n trạng thái.n2n

3
(an+aWn1b)Wn1an1

2
@ yuval-filmus Ví dụ này không phải của tôi. Tôi muốn đưa ra một tài liệu tham khảo, nhưng hiện tại tôi không nhớ mình đã nhìn thấy nó ở đâu.
J.-E.
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.