Các thuật toán đã biết để chuyển từ DFA sang biểu thức chính quy


28

Tôi đã tự hỏi liệu có một thuật toán `` better '' (tôi sẽ giải thích theo nghĩa nào) để bắt đầu từ một DFA và xây dựng một biểu thức chính quy sao cho , hơn một trong cuốn sách của Hopcroft và Ullman (1979). Trong đó, các bộ được sử dụng để biểu diễn các chuỗi lấy DFA từ trạng thái đến mà không đi qua bất kỳ trạng thái nào được đánh số cao hơn . Cấu trúc này, mặc dù rõ ràng là chính xác và rất hữu ích, nhưng khá kỹ thuật. r L ( A ) = L ( r ) R k i j q i q j kArL(A)=L(r)Rijkqiqjk

Tôi đang viết một chuyên khảo về lý thuyết tự động đại số và tôi không muốn đánh lạc hướng khán giả của mình với quá nhiều chi tiết kỹ thuật (ít nhất là không có chi tiết không liên quan đến kết quả tôi muốn trình bày), nhưng tôi muốn đưa vào bằng chứng về sự tương đương giữa DFA và các biểu thức chính quy để hoàn thiện. Để ghi lại, tôi đang sử dụng Glushkov automata để chuyển từ biểu thức chính quy sang DFA. Nó có vẻ trực quan hơn -transitions, điều mà tôi hoàn toàn không xác định (một lần nữa, vì tôi không cần chúng).ε

Những thuật toán nào khác được biết là đi từ DFA sang biểu thức chính quy? Tôi đánh giá cao sự đơn giản hơn hiệu quả (đó là '' tốt hơn '' đối với tôi trong trường hợp này), nhưng đó không phải là một yêu cầu.

Cảm ơn trước sự giúp đỡ của bạn!


1
Nó không phải là một thuật toán khác, nhưng thuật toán có thể được biểu diễn theo đại số, sử dụng sức mạnh thứ k của một ma trận các biểu thức chính quy trong đại số thích hợp. Có lẽ bạn sẽ thấy điều này thanh lịch / súc tích hơn. Tôi đang tìm một tài liệu tham khảo. Rijkk
Tối đa

1
Các thuật toán cơ bản là một biến thể của Thuật toán Floyd-Warshall cho vấn đề All-cặp-ngắn-con đường, vì vậy bạn có thể tìm thấy trình bày về nhân ma trận bằng cách tìm kiếm các từ khóa này. Rijk
Jan Johannsen

2
Tôi đồng tình. Về cơ bản là thuật toán Floyd-Warshall. Nó cũng có thể được lấy từ nó bằng cách sử dụng các kỹ thuật lập trình động tiêu chuẩn (giống như Floyd-Warshall có thể).
david

Tôi chắc chắn rằng tôi đã trả lời một câu hỏi như thế này trước đây, nhưng tôi không thể tìm thấy nó.
Raphael

@Max bạn có thể tìm một tài liệu tham khảo? Tôi quan tâm đến việc biểu diễn ma trận, nó thực sự sẽ hấp dẫn hơn đối với các chuyên gia xoay vòng.
Janoma

Câu trả lời:


17

Hai công trình nữa: Brzozowski-McCluskey hay còn gọi là loại bỏ trạng thái [1] và loại bỏ Gaussian trong một hệ phương trình sử dụng Bổ đề Arden. Nguồn tốt nhất trong số này có lẽ là cuốn sách của Jacques Sakarovitch [2].

[1] J. Brzozowski, E. McCluskey Jr., Các kỹ thuật đồ thị tín hiệu cho các sơ đồ trạng thái mạch tuần tự, Giao dịch của IEEE trên Máy tính điện tử EC-12 (1963) 67 xăng76.

[2] J. Sakarovitch, Các yếu tố của lý thuyết tự động. Nhà xuất bản Đại học Cambridge, 2009.


2
Tôi thấy cách tiếp cận giải phương trình bằng Bổ đề Arden là đơn giản và dễ giải thích nhất, đó là lý do tại sao tôi trình bày theo cách đó trong một lớp lý thuyết giới thiệu.
Jan Johannsen

Phương pháp của một hệ phương trình nghe có vẻ xuất sắc. Thật không may, thư viện của trường đại học của tôi không có cuốn sách mà bạn đề cập (Sakarovitch), nhưng tôi sẽ tìm ở nơi khác.
Janoma

4
Sự so sánh các công trình cũng được tìm thấy trong bài báo "Ngôn ngữ, biểu hiện và tự động (nhỏ)" của Sakarovitch, CIAA 2005, LNCS 3845, Springer (2006) 15-30. Xem infres.enst.fr/~jsaka/PUB/Files/LESA.pdf
Hermann Gruber

2
Ngoài ra, lưu ý rằng thứ tự trong đó các trạng thái được xử lý có thể ảnh hưởng lớn đến kích thước của biểu thức chính quy kết quả. Điều này luôn đúng: cho dù bạn làm điều đó với bổ đề của Arden, McNaughton-Yamada, loại bỏ nhà nước hay một biến thể khác. Một số heuristic đơn giản để chọn một thứ tự loại bỏ tốt có sẵn.
Hermann Gruber

15

Cuốn sách "Automata & Computability" của Kozen đã đề cập đến một khái quát hóa tao nhã của thuật toán Floyd-Warshall này. Vì bạn đã đề cập đến việc thu hút các nhà đại số, bạn có thể thấy nó hữu ích. Bạn sẽ tìm thấy nó trên trang 58-59 của văn bản đó. (Tôi nghĩ rằng sách google có bản xem trước.)

2×2

[abcd]=[(a+bdc)(a+bdc)bd(d+cab)ca(d+cab)]

i,jij

n×na,b,c,dm×mm×(nm)(nm)×m(nm)×(nm)2×22×2

nTfF(T)s,fsT

m=1Rijk

Một dẫn xuất khác của các cấu trúc đại số Kleene trên ma trận xuất hiện trong Định lý hoàn chỉnh cho Kleene Algebras và Đại số của các sự kiện thường xuyên của Kozen.


12

Cho đến nay, thủ tục tốt nhất tôi đã thấy là một thủ tục được đề cập bởi Sylvain. Đặc biệt, nó dường như mang lại nhiều biểu hiện súc tích hơn những người khác.

Tôi đã viết tài liệu này giải thích phương pháp cho sinh viên vào mùa hè năm ngoái. Nó liên quan trực tiếp đến một bài giảng cụ thể; tài liệu tham khảo được đề cập là định nghĩa điển hình của biểu thức chính quy. Một bằng chứng về Bổ đề của Arden được chứa; một cho sự chính xác của phương pháp bị thiếu. Khi tôi học về nó trong bài giảng, tôi không có một tài liệu tham khảo, thật đáng buồn.


Tôi cũng thích bằng chứng đó. Tôi thấy nó thanh lịch và dễ dàng để giải thích. Ngay cả Bổ đề của Arden cũng không khó. Tôi nghĩ rằng đây sẽ là phương pháp tôi sẽ đưa vào tài liệu của mình.
Janoma

+
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.