Thuật toán để xác định xem hai biểu thức có tương đương không


11

Cho hai biểu thức chính quy tùy ý, có thuật toán "hiệu quả" để xác định xem chúng có khớp với cùng một chuỗi không?

Tổng quát hơn, chúng ta có thể tính kích thước của giao điểm của hai bộ khớp không?

Có những thuật toán nào để làm điều này, và chúng sống trong lớp phức tạp nào?

Nếu chúng ta không cho phép ngôi sao Kleene, điều đó có làm thay đổi hình ảnh không?


Bạn có ý nghĩa gì bởi "kích thước của giao lộ"? Trong hầu hết các trường hợp thú vị, nó sẽ vô cùng lớn; Bạn có quan tâm đến kích thước wrt ? Σn
Raphael

@Raphael Sự hiểu biết của tôi là việc loại bỏ ngôi sao Kleene buộc kích thước của tập hợp là hữu hạn.
Toán học,

Phụ thuộc. Những gì các nhà khai thác khác được phép? Nếu bạn cho phép bổ sung, những gì bạn nói là không đúng sự thật. Ngoài ra, bạn cũng yêu cầu tình huống với ngôi sao Kleene, vì vậy dù sao bạn cũng cần phải làm rõ.
Raphael

Câu trả lời:


12

Hendrik Jan đưa ra một câu trả lời tốt cho lớp phức tạp, nhưng bản thân nó không phải là một thuật toán.

Thuật toán đơn giản nhất để thực hiện điều này mà tôi biết là chuyển đổi biểu thức chính quy thành DFA. Có các kỹ thuật đã biết để chuyển đổi biểu thức chính quy thành NFA và NFA thành DFA.

Khi bạn có hai DFA, việc kiểm tra tính tương đương là hiệu quả và có thể quyết định được, vì hình thức tối thiểu của DFA là duy nhất cho đến đẳng cấu.

Tuy nhiên, việc xây dựng các DFA này từ NFA có thể mất nhiều thời gian và tạo ra DFAS cực kỳ lớn, lớn theo cấp số nhân trong trường hợp xấu nhất.


10

Sự tương đương của các biểu thức chính quy được biết là hoàn thành PSPACE, điều này khá tệ. Bài viết "Độ phức tạp của các vấn đề quyết định đối với các biểu thức chính quy đơn giản" liệt kê một số lớp con của các biểu thức chính quy với độ phức tạp tương ứng của chúng. ( liên kết )


1
e2ee

@dkuper Cảm ơn bạn đã giải thích thêm. Hãy chỉnh sửa câu trả lời để thêm tài liệu tham khảo này hoặc phù hợp. (Hoặc thậm chí bắt đầu câu trả lời của riêng bạn.)
Hendrik

Có một tài liệu tham khảo cho các biểu thức chính quy thông thường được hoàn thành PSPACE không?
Ryan

Liên kết của bạn đã chết. Bạn có thể cung cấp một cái mới hoặc ít nhất một số thông tin liên quan từ bài báo không?
D. Ben Knoble

@ D.BenKnoble Link hoạt động tốt với tôi.
Hendrik ngà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.