DFA tối thiểu đáp ứng một cái nhìn hữu hạn về ngôn ngữ


12

Giả sử ta có một ngôn ngữ , nhưng người ta không biết khái niệm về chuỗi thực sự là một phần của ngôn ngữ. Tất cả người ta là một cái nhìn hữu hạn của ngôn ngữ: một tập hữu hạn các chuỗi Một L được biết đến là trong ngôn ngữ, và một tập hữu hạn các chuỗi B ( Σ *L )LΣALB(ΣL) mà được biết là không có trong ngôn ngữ.

Ví dụ: giả sử tôi có B = { b , a a b , a a a b a } . Tôi có thể có ngôn ngữ L = { a 2 i + 1 b j | i , j N } , vì AA={ab,aaab,aaaaabb}B={b,aab,aaaba}L={a2i+1bj | i,jN}A phù hợp với L , hoặc tôi có thể có một ngôn ngữ hoàn toàn khác.BL

Câu hỏi của tôi là: có cách nào để tạo DFA (automata hữu hạn xác định) chấp nhận các chuỗi trong và từ chối các chuỗi trong B , với số lượng trạng thái tối thiểu hoặc gần như tối thiểu? Sự phức tạp của vấn đề này là gì? Làm thế nào là tốt khi xấp xỉ L (giả sử L có độ phức tạp mô tả khá thấp, và AB là lớn)?ABLLAB

Câu hỏi gốc trên math.stackexchange.com. Tôi quyết định đăng lại ở đây sau khi không nhận được câu trả lời cho câu hỏi ban đầu và không biết tìm chúng ở đâu. Nếu ai đó có thể chỉ cho tôi nghiên cứu trong lĩnh vực này, nó sẽ được đánh giá rất cao.



2
Câu trả lời được viết tốt của Lev cho câu hỏi tôi đã liên kết đã bao gồm tính không tương thích.
Tsuyoshi Ito

6
Tôi cũng đã viết một bài đăng trên blog đi sâu vào chi tiết hơn câu trả lời ban đầu của tôi cstheory.blogoverflow.com/2011/08/on-learning- thường-ngôn ngữ
Lev Reyzin

1
Tôi không thấy sự khác biệt giữa phiên bản của bạn, phiên bản của bạn và kết quả không thể đạt được mà Lev đã trích dẫn trong câu trả lời. Ngoài ra, tôi không thấy được kết nối giữa phiên bản của bạn, phiên bản của bạn và khác đi theo cách khác. Hãy
Tsuyoshi Ito

1
@TsuyoshiIto Thật ra, câu trả lời của Lev có trả lời "phiên bản của tôi"! Tôi đã đọc bài đăng trên blog, và nó đã không (ít nhất, tôi đã không tìm thấy nó). Nhưng câu trả lời ban đầu của Lev đã làm. Đối với kết nối giữa "phiên bản của tôi" và "đi theo con đường khác" ... Nếu chúng ta có thể tạo B như vậy , điều đó có nghĩa là câu trả lời cho "phiên bản của tôi" không phải lúc nào cũng âm. Bài báo của Parekh và Honavar thực sự sử dụng ý tưởng này để chứng minh rằng DFA đơn giản có thể học được với xác suất cao tùy ý. Trong mọi trường hợp, làm thế nào để một hoặc làm thế nào nên đóng câu hỏi này? AB
Francisco Mota

Câu trả lời:


5

Như bạn đã biết từ các ý kiến, việc tìm kiếm DFA tối thiểu thỏa mãn một tập hợp hữu hạn các ví dụ tích cực và tiêu cực là -hard. Tuy nhiên, không phải tất cả niềm hy vọng bị mất, nếu bạn sẵn sàng để thay đổi mô hình học tập của bạn một chút thì chúng ta có thể lấy lại vào P .NPP

Giả sử rằng bạn đang cố gắng tìm hiểu một một DFA chưa biết mà là tối thiểu đối với một số ngôn ngữ L W . Nếu bạn cho phép các truy vấn thành viên tiên tri hành động như một giáo viên bằng cách trả lời câu hỏi sau: Đưa ra một DFA G được đề xuất, nó sẽ nhận ra L WWLWGLW không? Nếu không, bạn có thể cung cấp một ví dụ phản tác dụng?

Lưu ý rằng nếu nhà tiên tri có quyền truy cập vào nó có thể so sánh G với W trong nhiều thời gian, vì việc kiểm tra sự bình đẳng giữa các ngôn ngữ thông thường là dễ dàng. Tạo một ví dụ ngược cũng có thể được thực hiện trong thời gian đa thức.WGW

Trong khung này, bạn có thể học trong thời gian đa thức bằng thuật toán Angluin ( 1987 ; pdf ) (hoặc sàng lọc của Schapire về nó; xem phần 5.4.5). Để biết thêm thông tin về mô hình này, đây là hai câu hỏi về cstheory và CS.SE về nó:W


0

Dường như với tôi rằng bạn có thể sử dụng một sàng lọc tương đương Myhill-Nerode cho vấn đề này.

Chúng ta có thể xác định nếu có tồn tại x Σu x Av x B . Điều này có nghĩa là bất kỳ máy tự động nào tách A khỏi B phải ở các trạng thái khác nhau sau khi đọc uv .uvxΣuxAvxBABuv

Nó cũng đủ để nghiên cứu mối quan hệ này trên các tiền tố của các yếu tố của B . Điều này sẽ cung cấp cho bạn một giới hạn thấp hơn về số lượng trạng thái bạn cần. Tôi không chắc nó trực tiếp cung cấp cho bạn cách xây dựng máy tự động tối thiểu, nhưng ít nhất đó là một con đường để khám phá.AB


-1

Tôi nghĩ rằng vấn đề này có thể đã được đặt ra một cách không chính xác bởi người hỏi. Người hỏi rõ ràng muốn một thuật toán khái quát các từ vô hạn dựa trên các ví dụ từ hữu hạn cụ thể, sử dụng một số loại cảm ứng cơ giới hóa, tức là nhận ra các mẫu rõ ràng trong các ví dụ.

Ngoài một số nghiên cứu lý thuyết CS được trích dẫn trong các bình luận, còn có một số nghiên cứu thực nghiệm hơn trong lĩnh vực này, ví dụ như dưới đây, sử dụng ANN để tạo ra các FSM từ các ví dụ. Lưu ý người ta luôn có thể chạy thuật toán tối thiểu hóa DFA tiêu chuẩn trên kết quả. Thư viện FSM của AT & T phù hợp cho công việc trong lĩnh vực này.

Người hỏi không cụ thể về miền vấn đề của mình, điều đó có thể giúp hiểu cấu trúc của các ví dụ và nhận được các tài liệu tham khảo cụ thể hơn. Tuy nhiên, một ví dụ có thể thấy là thuật toán AI trong các trò chơi sử dụng thuật toán FSM. Tôi nghi ngờ có một số trường hợp các FSM được học từ các ví dụ sử dụng thuật toán học tập.

[1] Học một lớp máy trạng thái hữu hạn lớn với mạng lưới thần kinh tái phát C. Lee Giles, 1, BG Horne, T. Lin 1995

[2] Học các FSM với các mạng tái phát tự phân cụm theo Zeng & Smyth 1993

[3] Thư viện FSM của AT & T


1
liên kết thứ hai của bạn chỉ liên kết đến câu hỏi này. Nó giả sử liên kết ở đâu?
Artem Kaznatcheev

oops, thx, đã sửa
vzn
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.