Một ngôn ngữ có thể có nhiều hơn một DFA không?


17

Ví dụ: khi chúng tôi xem xét một DFA cho phép các chuỗi không có chuỗi phụ 00hoặc 11tôi có thể tạo hai DFA sau:

nhập mô tả hình ảnh ở đây

Câu trả lời:


37

Trước hết, DFA bên trái của bạn không chính xác - nó chấp nhận, ví dụ 011.

Thứ hai, các DFA có thể được thu nhỏ theo quy tắc , vì vậy theo nghĩa đó, bạn luôn có thể tìm thấy một DFA chính tắc cho một ngôn ngữ nhất định.

Nhưng nói chung, có vô số DFA khác nhau cho mỗi ngôn ngữ, vì vậy bạn có thể nhận được các câu trả lời đúng khác nhau.


Và đó thậm chí là vô cùng nhiều đến đẳng cấu.
G. Bạch

Để cụ thể hơn nữa: đó là vô hạn đến đẳng cấu khi các trạng thái là tập con của một tập hợp cố định, ví dụ . Nếu chúng ta không khắc phục điều đó, bộ sưu tập automata thậm chí không phải là một bộ ... Bằng cách nào đó tôi không nghĩ đây là ý định của OP :)N
Shaull 4/2/2016

Vô số DFA khác nhau ngay cả đối với các ngôn ngữ hữu hạn?
Bergi

1
@Bergi: Chắc chắn - bạn có thể thêm bao nhiêu trạng thái dư thừa tùy thích. Điều này nghe có vẻ "ngớ ngẩn", và nó thực sự vô nghĩa khi bạn tự chế tạo một máy tự động. Tuy nhiên, nhiều lần automata được xây dựng bằng cách dịch từ một số chủ nghĩa hình thức khác (ví dụ: xác định NFA), trong trường hợp đó bạn rất có thể có được trạng thái dư thừa.
Shaull 4/2/2016

@Shaull: Ý bạn là với các trạng thái chuyển tiếp hoặc không thể truy cập? OK, tôi đã không xem xét những thứ đó.
Bergi
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.