Phân loại tự động biểu thức chính quy đáng chú ý


10

Tôi đang cố gắng đưa ra một phân loại thuật toán để chuyển đổi các biểu thức chính quy thành automata để thực hiện một số thử nghiệm thực nghiệm về các tính chất phức tạp của chúng trong các miền cụ thể.

Tôi biết một số tên 'lớn hơn', vd


Thompson

"Thuật toán tìm kiếm biểu thức chính quy", Thompson, 1968

Glushkov

"Một thuật toán bậc hai mới để chuyển đổi biểu thức chính quy thành tự động", Ponty, et. al, 1996

Antimirov

"Các dẫn xuất một phần của biểu thức chính quy và các cấu trúc tự động hữu hạn", Antimirov, 1996

Theo

"Theo dõi Automata", Ilie, et. al, 2003;

"Tính toán tự động theo sau của một biểu thức", Champarnaud, et. al, 2002

Hromkovic

"Chuyển các biểu thức chính quy thành Tự động hữu hạn không điều kiện điện tử nhỏ miễn phí", Hromkovic, et. al, 2001


và các đặc tính phân biệt của chúng (epsilon-free-ness, tính xác định, kích thước, tối thiểu hóa, v.v.) nhưng tôi biết đây không phải là một danh sách đầy đủ.

Tôi đặc biệt quan tâm đến các thuật toán thể hiện độ phức tạp thời gian khác nhau đáng kể so với các thuật toán được liệt kê ở trên và / hoặc các cấu trúc liên kết khác nhau đáng kể.

Nếu bạn biết về những người khác, một liên kết đến một bài viết mô tả chi tiết thuật toán xây dựng sẽ được đánh giá rất cao (đọc là cần thiết nếu tôi sẽ triển khai nó!)

Chỉnh sửa: Đã thêm một số tài liệu tham khảo theo yêu cầu.


@Radu GRIGore Tôi đã thêm một số tài liệu tham khảo. Đây là những tài liệu tham khảo tốt nhất mà tôi biết về các automata này, nhưng có thể có những tài liệu khác.
s8soj3o289

1
Đối với Glushkov, tài liệu tham khảo thông thường của tôi là J. Berstel và J.-E. Pin, "Ngôn ngữ địa phương và thuật toán Berry Set Sethi", 1996.
Sylvain

1
Nhân tiện, bạn có thể tìm thấy việc triển khai một số thuật toán đó trong thư viện Vaucanson C ++, để tham khảo về việc xây dựng các thuật toán này. trac.lrde.org/vaucanson/browser/include/vaucanson/algorithms (trong đó standard_of = Glushkov, thompson_of = Thompson, derived_term_automaton = Antimirov, Brzozowski = Brzozowski)
Michaël Cadilhac

@ michael-cadilhac Cảm ơn con trỏ. Ước gì tôi biết về điều này trước khi tôi tự mình thực hiện những điều khác! Tôi chắc chắn sẽ xem xét.
s8soj3o289

Câu trả lời:


7

Watson (Tech. Rep. Univ. Eindhoven 1995) đã viết một phân loại về thuật toán xây dựng automata hữu hạn; một vài phát triển gần đây được tìm thấy dưới đây.

Đối với các NFA có chuyển đổi epsilon, cuốn sách lý thuyết phân tích của Sippu / Soisalon-Soininen (Springer, 1998) chứa một biến thể của cấu trúc của Thompson. Ilie và Yu (I & C 2003) và Gulan và Fernau (FSTTCS 2008) đưa ra các phiên bản tinh tế của cấu trúc cổ điển. Kích thước tối thiểu cần thiết của epsilon-NFA tương ứng với biểu thức chính quy được nghiên cứu thêm bởi Gruber và Gulan (LATA 2010). Cấu trúc của các bản vẽ cơ bản do việc xây dựng của Thompson được nghiên cứu bởi Giammarresi, Ponty, Wood & Ziadi (Discr. Appl. Math 2004) và bởi Gulan (Tech. Rep. Univ. Trier, 2010).

Về NFA không có epsilon, tôi muốn đề cập đến công trình trước đó của Berry & Sethi (TCS 1986) và bởi Brüggemann-Klein (TCS 1993), nhưng có lẽ được bao phủ bởi phân loại của Watson.

n2O(logn)

Cũng lưu ý: Liên quan đến các thuật toán nhanh để kết hợp biểu thức chính quy, tôi biết về công việc gần đây của Bille và Thorup (ICALP 2009, SODA 2010). Họ sử dụng cấu trúc cổ điển của Thompson (cộng với tất nhiên nhiều thủ thuật để có được tốc độ).


1
Đây là một câu trả lời tuyệt vời, cảm ơn bạn rất nhiều. tôi thấy gần đây bạn cũng đã xuất bản một cuốn sách về chủ đề này - tôi cũng có thể hỏi liệu a. nó có sẵn trên mạng dưới mọi hình thức và b. Có phải, hoặc bạn đã bao giờ xem xét độ phức tạp của 'trường hợp trung bình' cho các tên miền cụ thể chưa? Tôi chủ yếu quan tâm đến các ứng dụng cho nlp trong đó một số bằng chứng chủ yếu là giai thoại cho thấy độ phức tạp trung bình của một số thuật toán này khác biệt đáng kể so với các tình huống xấu nhất được mô tả trong tài liệu cs.
s8soj3o289

cũng không chắc chắn những gì nghi thức chỉ ra trong điều khoản của việc chọn một câu trả lời. câu trả lời của bạn rõ ràng là vượt trội so với câu tôi đã chọn trước đó.
s8soj3o289

Chỉ có lời trêu ghẹo của cuốn sách có sẵn trực tuyến miễn phí.
Hermann Gruber

Về độ phức tạp trạng thái trung bình, cũng có bài viết về kích thước NFA trung bình cho các ngôn ngữ hữu hạn với M. Holzer (TCS 2007); nhưng hầu hết có liên quan dường như là tác phẩm của Nicaud trên Glushkov automata (LATA 2009); cũng có một bài viết sắp tới của Nicaud, Pivoteau & Razet (FSTTCS 2010) với một tiêu đề thú vị - tôi chưa thể xem qua.
Hermann Gruber

Gouveia, Moreira & Reis (CiE 2010) chạy thử nghiệm trên chuyển đổi RE sang NFA. Trung bình Broda, Machiavelo, Moreira & Reis (DLT 2010) so sánh số lượng trạng thái của vị trí (Glushkov) automata và phương trình (Antimirov) automata trên trung bình. Điều này cũng có thể được quan tâm.
Hermann Gruber

5

Một thứ không được xem xét trong danh sách của bạn là Dẫn xuất biểu thức chính quy của Janusz Brzozowski, Tạp chí ACM 1964, gần đây đã được Scott Owens, John Reppy và Aaron Turon xem xét lại trong các dẫn xuất biểu thức chính quy được kiểm tra lại. Tạp chí lập trình chức năng (2009), 19: 173-190 , người cung cấp một triển khai thực tế về kỹ thuật cho một ký hiệu mở rộng cho các biểu thức thông thường.


2
Antimirov là một biến thể không xác định của Brzozowski.
Sylvain

Cái tên chắc chắn nghe quen quen.
Dave Clarke

cảm ơn vì bài báo 'kiểm tra lại', tôi đã không thấy điều đó!
s8soj3o289
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.