Liệu một automata hữu hạn không vô căn (NDFA) có thể được chuyển đổi một cách hiệu quả thành một automata hữu hạn xác định (DFA) trong không gian / thời gian phụ?


16

Hai mươi năm trước, tôi đã xây dựng một gói biểu thức chính quy bao gồm các chuyển đổi từ biểu thức chính quy sang máy trạng thái hữu hạn (DFA) và hỗ trợ một loạt các hoạt động biểu thức chính quy kín (sao Kleene, nối, đảo ngược, đặt thao tác, v.v.). Tôi không chắc chắn về hiệu suất trường hợp xấu nhất của gói của tôi.

Một DFA có sức mạnh biểu cảm tương tự như một NDFA, bởi vì một NDFA ở trạng thái n có thể được chuyển đổi một cách tầm thường thành một DFA có 2 ^ n trạng thái. Tuy nhiên, có bất kỳ đảm bảo giới hạn trên dưới nào cho một chuyển đổi như vậy không yêu cầu một vụ nổ theo cấp số nhân trong trạng thái không?

Tôi đã không thể đưa ra các ví dụ về các biểu thức thông thường hoặc NDFA, nhưng tôi không dành nhiều thời gian để nghĩ về nó. Tôi đoán một biểu thức chính quy như ((((e | A | B | C) * (e | D | E | F)) * (e | G | H | I)) * (e | J | K | L | M)) * kết hợp nhiều sự thay thế và các ngôi sao Kleene sẽ có một NDFA có kích thước tuyến tính nhưng một DFA mở rộng.


Có bất kỳ hạn chế nào đối với loại NFA mà bạn muốn chấp nhận làm đầu vào không? Một số hạn chế dẫn đến giới hạn trên tốt hơn.
András Salamon

không phải là một điểm rất quan trọng, nhưng cần ndfa là thẻ riêng của nó?
Lev Reyzin

Vâng, có những hạn chế. Các NFA được xây dựng trực tiếp từ các biểu thức chính quy bằng cách coi chúng là các biểu đồ chuyển tiếp tổng quát. sea.upenn.edu/~cit596/notes/dave/regapi-nfa4.html
Wesner Moise

Câu trả lời:


15

Được biết, với mỗi cặp số tự nhiên n,anhư vậy n <= a <= 2^n, tồn tại một NDFA tối thiểu với ncác trạng thái có dfa tối thiểu tương đương có acác trạng thái (trên một bảng chữ cái bốn chữ cái).

Xem bài báo ở đây: Những cú đánh quyết định của automata hữu hạn không điều kiện tối thiểu trên một bảng chữ cái cố định .

Tóm tắt của bài báo:

Chúng tôi chỉ ra rằng với tất cả các số nguyên n và α sao cho n ≤ α ≤ 2 ^ n, tồn tại một máy tự động hữu hạn không điều kiện tối thiểu của n trạng thái với một bảng chữ cái đầu vào bốn chữ cái có tự động hữu hạn xác định tối thiểu tương đương có chính xác một trạng thái. Theo sau trong trường hợp của một bảng chữ cái bốn chữ cái, không có "số ma thuật", tức là các lỗ hổng trong hệ thống phân cấp. Điều này cải thiện một kết quả tương tự mà Geffert thu được cho một bảng chữ cái đang phát triển có kích thước n + 2 (Proc. 7th DCFS, Como, Italy, 23-37).

Vì vậy, tôi cho rằng câu trả lời cho câu hỏi của bạn là không.


câu hỏi là yêu cầu một "thuật toán" chạy trong thời gian và không gian phụ để chuyển đổi NFA.
Marcos Villagra

@Marcos: Nếu đầu ra của bạn là số mũ, bạn có thể không có thuật toán chạy trong thời gian theo cấp số nhân.
Aryabhata

1
Đây là một kết quả chung. Nếu có các hạn chế đã biết đối với loại NFA đầu vào, thì có thể làm tốt hơn.
András Salamon

@Andras: Đồng ý, nhưng cho rằng điều này có thể liên quan đến lập trình (sẽ hỗ trợ Kleen * vv), tôi nghi ngờ nếu bộ NFA đầu vào sẽ bị giới hạn trong một tập hợp con thích hợp.
Aryabhata

5
Kết quả này gần đây đã được củng cố để sử dụng một bảng chữ cái ba chữ cái và các công trình xây dựng đơn giản hơn một chút: Portal.acm.org/ (

13

Ví dụ kinh điển cho một ngôn ngữ có sự phân tách theo cấp số nhân giữa kích thước DFA và kích thước NFA là ngôn ngữ hữu hạn sau: chuỗi nhị phân có độ dài chính xác 2n trong đó nửa đầu không bằng nửa thứ hai. Một NFA sẽ đoán chỉ số i trong đó nửa đầu và nửa sau không đồng ý. Chẳng hạn, giới hạn dưới của DFA xuất phát từ độ phức tạp trong giao tiếp.


8

DFA tối thiểu tương ứng với NFA có 2 ^ n trạng thái trong trường hợp xấu nhất, vì vậy bạn không thể đảm bảo bất cứ điều gì. Không có ví dụ mang tính xây dựng, lý do là trong NFA, bạn có thể ở bất kỳ tập hợp con trạng thái tùy ý nào sau khi đọc một chuỗi đầu vào nhất định và mỗi tập hợp con như vậy có thể hành xử khác nhau khi quan sát một ký tự. Giả sử một ngôn ngữ có hai ký tự trong bảng chữ cái (a và b) và NFA N với n trạng thái bắt đầu bằng trạng thái chấp nhận tại s_0. Bây giờ hãy liệt kê tất cả các tập hợp con của trạng thái N và xây dựng bảng chuyển đổi sao cho việc quan sát "a" từ tập hợp con S_i sẽ đưa bạn đến tập hợp con S_i + 1 và việc quan sát b sẽ đưa bạn đến tập hợp con S_i-1 (tôi nghĩ điều này có thể thực hiện được ). Bây giờ automata này có n trạng thái và chấp nhận chuỗi các ma và nb sao cho mn = 0 mod 2 ^ | N |, và không thể được biểu thị bằng một DFA có ít hơn 2 ^ | N | các trạng thái (vì có thể cần phải chuyển qua tất cả các tập hợp con của các trạng thái của NFA N).


Điều này có thể được biến thành một đối số nói rằng "nếu (một số điều xấu) được tránh trong NFA, thì DFA có số lượng trạng thái phụ"?
András Salamon

1
@ András, vâng. "Nếu chủ nghĩa không phá hủy được tránh trong NFA, thì DFA có số lượng trạng thái phụ".
P Shved

2
Pavel, vâng, rõ ràng. Có bất kỳ tài sản không tầm thường nào có thể được công nhận một cách hiệu quả mà cũng đảm bảo thổi phồng phụ?
András Salamon
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.