Tổng quát hóa thuật toán tối thiểu hóa DFA của Brzozowski để tự động hữu hạn với các lớp trạng thái chấp nhận khác nhau?


9

Thuật toán của Brzozowski để chuyển đổi DFA thành DFA ở trạng thái tối thiểu tương đương rất đơn giản: nếu biểu thị NFA được hình thành bằng cách đảo ngược tất cả các cạnh trong DFA , biến trạng thái bắt đầu cũ thành trạng thái chấp nhận cũ và biến trạng thái chấp nhận cũ tiểu bang bắt đầu tiểu bang, và nếu biểu thị kết quả của việc áp dụng việc xây dựng tập hợp con đến NFA , sau đó là một tối thiểu nhà nước DFA với ngôn ngữ tương tự như .D P ( N ) N P ( R ( P ( R ( D ) ) ) ) DR(D)DP(N)N

P(R(P(R(D))))
D

Chúng ta có thể nghĩ về DFA như một thiết bị tính toán chấp nhận chuỗi đầu vào và sau đó xuất 0 nếu kết thúc ở trạng thái từ chối và 1 nếu kết thúc ở trạng thái chấp nhận. Tổng quát hóa tự nhiên các DFA liên quan đến từng trạng thái trong DFA với một số số tự nhiên nằm trong khoảng từ 0 đến .w w k - 1wwwk1

Theo hiểu biết tốt nhất của tôi, có thể giảm thiểu các lớp DFA đã sửa đổi này bằng cách sử dụng thuật toán tối thiểu hóa dựa trên khả năng phân biệt, chẳng hạn như thuật toán chính tắc của Hopcroft. Tuy nhiên, tôi không thể thấy làm thế nào có thể điều chỉnh thuật toán tối thiểu hóa của Brzozowski với lớp tự động mới này bởi vì bước quan trọng (đảo ngược máy tự động) không còn có một cách giải thích rõ ràng trong cài đặt tổng quát này.

Có một sự khái quát hóa đã biết của thuật toán Brzozowski để giảm thiểu các loại automata này không? Nếu không, có bất kỳ lý do lý thuyết tại sao chúng ta mong đợi rằng một thuật toán sửa đổi như vậy sẽ không tồn tại?


"khái quát hóa" dường như không được xác định rõ ràng. là gì có phải chỉ nói về việc liên kết mỗi trạng thái trong một DFA với một giá trị nguyên bị ràng buộc? rồi sao? một ví dụ là gì? ai làm việc với cái này v.v.k
vzn

@vzn Bạn có thể nghĩ mỗi trạng thái trong một DFA bình thường là được liên kết với 0 hoặc 1 (tương ứng từ chối và chấp nhận trạng thái). Tôi đang suy nghĩ về việc khái quát hóa điều này cho trường hợp mỗi trạng thái DFA được liên kết với một số giá trị trong và DFA xuất ra số được liên kết với trạng thái chuỗi kết thúc vào.{0,1,2,3,...,k1}
templatetypedef

ok, điều đó hoàn toàn không được truyền đạt trong bài viết, "DFA xuất ra # được liên kết với trạng thái chuỗi kết thúc", đề nghị bạn khắc phục điều đó. Ngoài ra, về mặt kỹ thuật, DFA không có "đầu ra". có thể bạn có nghĩa là đầu dò FSM? thực sự có một số lý thuyết từng phần liên quan đến tối thiểu hóa đầu dò FSM mà dường như không ("chưa"?) hoàn toàn gắn liền với giảm thiểu DFA.
vzn

Câu trả lời:


7

Câu trả lời cho câu hỏi của bạn là có.

Xem các bài báo của Bonchi, Bonsangue, Rutten và Silva Thuật toán của Brzozowski (đồng) đại số (phiên bản hội nghị ngắn hơn) và Đại số nhị phân-Đại số trong Thuật toán tối thiểu hóa của Brzozowski (phiên bản tạp chí dài hơn với nhiều khái quát hơn).

Họ đưa ra một bản trình bày phân loại (nhẹ) về thuật toán của Brzowzowski và sử dụng nó để lấy các phiên bản của nó cho các lớp automata tổng quát hơn, bao gồm Moore automata (đưa ra câu trả lời khẳng định cho câu hỏi của bạn).


6

Chỉ cần thêm vào câu trả lời của Neel, trong cuốn sách của tôi Trình tự tự động với Jean-Paul Allouche, chúng tôi thảo luận về DFAO (automata hữu hạn xác định với đầu ra), chính xác là những gì bạn đã hỏi về (liên kết một đầu ra với mỗi trạng thái). Và Định lý 4.3.3 mô tả cách đảo ngược một máy như vậy.

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.