Là tìm biểu thức chính quy tối thiểu là một vấn đề NP-đầy đủ?


42

Tôi đang nghĩ đến vấn đề sau: Tôi muốn tìm một biểu thức chính quy khớp với một chuỗi các chuỗi cụ thể (ví dụ: địa chỉ email hợp lệ) và không khớp với các biểu thức khác (địa chỉ email không hợp lệ).

Giả sử bằng biểu thức chính quy, chúng tôi muốn nói đến một số máy trạng thái hữu hạn được xác định rõ, tôi không quen với thuật ngữ chính xác, nhưng chúng ta hãy đồng ý về một số loại biểu thức được phép.

Thay vì tự tạo biểu thức, tôi muốn cung cấp cho nó một tập hợp các ví dụ tích cực và một tập hợp các ví dụ tiêu cực.

Sau đó, nó sẽ đưa ra một biểu thức khớp với các +, loại bỏ các - và là tối thiểu theo một số nghĩa được xác định rõ (số trạng thái trong automata?).

Câu hỏi của tôi là:

  • Vấn đề này đã được xem xét, làm thế nào nó có thể được xác định theo một cách cụ thể hơn và nó có thể được giải quyết một cách hiệu quả? Chúng ta có thể giải quyết nó trong thời gian đa thức? NP đã hoàn thành chưa, chúng ta có thể ước chừng bằng cách nào đó không? Đối với những lớp biểu thức nào nó sẽ làm việc? Tôi sẽ đánh giá cao bất kỳ con trỏ đến sách giáo khoa, bài viết hoặc như vậy thảo luận về chủ đề này.
  • Điều này có liên quan đến sự phức tạp của Kolmogorov không?
  • Điều này có liên quan trong bất kỳ cách học? Nếu biểu thức chính quy phù hợp với các ví dụ của tôi, do nó là tối thiểu, chúng ta có thể nói điều gì đó về sức mạnh khái quát của nó trên các ví dụ chưa thấy? Tiêu chí nào cho sự tối thiểu sẽ phù hợp hơn cho việc này? Cái nào sẽ hiệu quả hơn? Điều này có bất kỳ kết nối với máy học? Một lần nữa, bất kỳ con trỏ sẽ hữu ích ...

Xin lỗi vì câu hỏi lộn xộn ... Chỉ cho tôi đi đúng hướng để tìm ra điều này. Cảm ơn !


2
Trang sau có vẻ rất phù hợp với khía cạnh học tập của câu hỏi: people.dsv.su.se/~henke/ML/merLINE.html
Tsuyoshi Ito

1
Có thể hoặc không. Dường như có nhiều công trình về học tập DFA.
Tsuyoshi Ito

2
Câu hỏi này gần đây đã được thảo luận trên blog cộng đồng .
Aaron Sterling

Câu trả lời:


38

OPTkkP=NP

Về câu hỏi học tập: Kearns và Valiant đã chứng minh rằng bạn có thể mã hóa RSA thành DFA. Vì vậy, ngay cả khi các ví dụ được gắn nhãn đến từ phân phối thống nhất, việc có thể khái quát hóa cho các ví dụ trong tương lai (thậm chí đến từ phân phối đồng phục) sẽ phá vỡ RSA. Do đó, chúng tôi nghĩ rằng trong trường hợp xấu nhất, việc có các ví dụ được gắn nhãn không giúp ích gì cho việc học DFA (trong mô hình PAC). Đây là một trong những kết quả độ cứng mật mã cổ điển cho việc học.

Cả hai vấn đề này được đan xen do những gì chúng ta gọi là Định lý dao cạo của Occam . Về cơ bản, nó nói rằng nếu chúng ta có một quy trình tìm ra giả thuyết nhỏ nhất từ ​​một lớp nhất định phù hợp với một mẫu được dán nhãn bởi một giả thuyết từ cùng một lớp, thì chúng ta có thể PAC học lớp đó. Vì vậy, với kết quả độ cứng RSA, chúng tôi hy vọng rằng việc tìm kiếm DFA nhất quán nhỏ nhất sẽ khó nói chung!

Để thêm kết quả học tập tích cực, Angluin đã chỉ ra rằng bạn có thể học DFA nếu bạn có thể tạo ra các ví dụ của riêng mình, nhưng nó đòi hỏi sức mạnh bổ sung để có thể hỏi "giả thuyết hiện tại của tôi có đúng không?" Đây cũng là một bài báo tinh túy trong học tập.

Để trả lời câu hỏi khác của bạn, tất cả đều thực sự liên quan đến độ phức tạp Kolmogorov, vì vấn đề học tập trở nên dễ dàng hơn khi biểu diễn chính tắc của DFA mục tiêu có độ phức tạp thấp.


3
Bạn đánh bại tôi với một kết quả gần đây, mạnh mẽ hơn! Bạn nên đăng một câu trả lời tốt hơn sau !! 1 !!
Tsuyoshi Ito

ối xin lỗi! Tôi đã dành đủ thời gian cho việc học DFA mà tôi phải nhảy vào lúc này :)
Lev Reyzin

1
Chỉ trong trường hợp, tôi đã nói đùa trong bình luận trước đây của tôi. Tất nhiên tôi rất vui khi thấy một câu trả lời tốt hơn!
Tsuyoshi Ito

1
Vì vậy, nói cách khác, sự khác biệt chính giữa vấn đề này và giảm thiểu DFA thường xuyên là sự hiện diện của các ví dụ tiêu cực, đúng không?
Suresh Venkat

1
tôi không hiểu không có ví dụ tiêu cực, dfa nhất quán nhỏ nhất chỉ có 1 trạng thái - trạng thái chấp nhận trỏ đến chính nó ...
Lev Reyzin

13

Tôi trả lời các khía cạnh liên quan đến học tập của câu hỏi.

Vấn đề này dường như được gọi là học DFA học tập trong văn học.

Vàng [Gol78] cho thấy NP hoàn toàn quyết định, đưa ra k ∈ℕ và hai tập hợp hữu hạn PN của chuỗi, cho dù có tồn tại một máy tự động trạng thái hữu hạn xác định (DFA) với hầu hết các trạng thái k chấp nhận mọi chuỗi trong P và không ai trong số các chuỗi trong N . Bài báo [PH01] dường như thảo luận về các vấn đề liên quan đến động lực này (có thể còn nhiều vấn đề nữa; điều này chỉ xuất hiện khi tôi cố gắng tìm các bài báo liên quan với Google).

Người giới thiệu

[Gol78] E Đánh dấu vàng. Độ phức tạp của nhận dạng tự động từ dữ liệu nhất định. Thông tin và kiểm soát , 37 (3): 302 bóng320, tháng 6 năm 1978. http://dx.doi.org/10.1016/S0019-9958(78)90562-4

[PH01] Rajesh Parekh và Vasant Honavar. Học DFA từ các ví dụ đơn giản. Học máy , 44 (1 Điện2): 9 cường35, tháng 7 năm 2001. http://www.springerlink.com/content/kr2501h2442l8mk1/ http://www.cs.iastate.edu/~honavar/Papers/parekh- dfa.pdf


1
Cảm ơn đã phản hồi, tôi đang xem các tài liệu tham khảo. Tôi có thể bỏ phiếu nhiều hơn một câu trả lời hay nhất trên trang web này không? :) Một lần nữa, tôi cảm thấy xấu hổ vì tôi đã bỏ lỡ toàn bộ trường con "DFA learning", mặc dù tôi đã học máy học trong nhiều năm.
László Kozma

@steve: Bạn chỉ có thể chấp nhận một câu trả lời, nhưng bạn có thể bình chọn nhiều câu trả lời như bạn muốn.
Jukka Suomela

2
Lưu ý rằng [Gold78] cũng nói rằng DFA có thể được học trong thời gian đa thức (bên trong khung nhận dạng có thể học được trong giới hạn). Xem thêm cuốn sách gần đây về suy luận ngữ pháp ( Pagesperso.lina.univ-nantes.fr/~cdlh/book_webpage.html ) để biết tổng quan.
mgalle

@mgalle: Cảm ơn bạn đã thông tin thêm.
Tsuyoshi Ito

8

Trong suốt cuộc thảo luận này, người ta đã giả định rằng việc tìm một biểu thức chính quy tối thiểu để tìm một FSM tối thiểu nhận ra ngôn ngữ, nhưng đây là hai điều khác nhau. Nếu tôi nhớ chính xác, một DFA có thể được giảm thiểu trong thời gian đa thức, trong khi tìm một biểu thức chính quy tối thiểu đại diện cho một ngôn ngữ thông thường nhất định là PSPACE-hard. Cái sau là một trong những kết quả thuộc về văn hóa dân gian của Thuyết tự động, nhưng không thể tìm thấy bằng chứng ở bất cứ đâu. Tôi nghĩ rằng nó được nêu là một bài tập trong cuốn sách của Papadimitrou.


1
Đúng là độ dài của biểu thức chính quy và số lượng trạng thái trong DFA là các hàm mục tiêu khác nhau. Tôi đã trả lời về giảm thiểu DFA vì nó có thuộc tính đẹp hơn (ví dụ: có một DFA duy nhất có số lượng trạng thái tối thiểu) và từ cách đặt câu hỏi, tôi có ấn tượng rằng hàm mục tiêu chính xác là linh hoạt.
Tsuyoshi Ito

Nhận xét ngẫu nhiên: với thực tế là một biểu thức chính quy có kích thước f (n) có thể được mô phỏng bằng NFA có kích thước O (f (n)), giảm thiểu các biểu thức chính quy giống như giảm thiểu NFA, điều này rõ ràng khó hơn.
Hsien-Chih Chang 張顯

một số điều này được giải quyết trong các bình luận cho câu trả lời của @ keith
Lev Reyzin

2

Xem thêm bài viết này chồng bài. Cuốn sách bạn đang tìm kiếm dường như là Giới thiệu về Lý thuyết tính toán của Michael Sipser.

Bạn đang hỏi một vài câu hỏi khác nhau, vì vậy hãy thực hiện từng câu hỏi một:

Is finding a minimal Finite State Machine for a language L NP-complete?

Không, không. Bài đăng Stack Overflow thảo luận về thuật toán n ^ 2 ngây thơ để giảm một FSM xuống kích thước tối thiểu của nó. (Làm việc lạc hậu từ các trạng thái dừng, kết hợp các trạng thái "giống hệt nhau" theo nghĩa chính xác.)

Rõ ràng (tôi đã không theo liên kết), có một thuật toán n log n để làm điều này.

I have a training set of strings, how do I find the minimal FSM 
that separates the good examples from the bad?

Khi bạn diễn đạt nó, tập huấn luyện của bạn mô tả một ngôn ngữ hữu hạn . Các ngôn ngữ hữu hạn ánh xạ tầm thường đến một FSM - tạo một tập hợp trạng thái tuyến tính kết thúc ở trạng thái dừng cho mỗi chuỗi trong ngôn ngữ của bạn, không yêu cầu lặp. Sau đó, chạy thuật toán tối thiểu hóa FSM trên máy kết quả.

Is this a good way to build a classifier?

Tôi sẽ không nói như vậy. Giảm thiểu FSM không làm thay đổi khả năng phân biệt đối xử của nó - đó là loại điểm. FSM tối thiểu chấp nhận chính xác bộ chuỗi như bất kỳ FSM không tối thiểu tương đương nào.

Nói chung, các biểu thức chính quy không được sử dụng để phân loại dữ liệu tiểu thuyết. Đối với bất kỳ tập huấn hữu hạn nào, bạn sẽ nhận được RE / FSM chỉ khớp với các ví dụ tích cực trong tập đó, không có khả năng khái quát hóa dữ liệu mới. Tôi chưa bao giờ thấy một cách tiếp cận nào cố gắng tìm một ngôn ngữ thông thường vô hạn phù hợp với một số tập huấn luyện.

Đối với học máy, bạn sẽ tìm kiếm thứ gì đó như bộ phân loại Bayes ngây thơ, cây quyết định, mạng lưới thần kinh hoặc thứ gì đó kỳ lạ hơn. Trí tuệ nhân tạo của Russell và Norvig : Cách tiếp cận hiện đại là nơi tốt nhất để tìm hiểu tổng quan về các kỹ thuật học máy (và nhiều hơn thế nữa.)


2
Tôi không đồng ý với câu trả lời này. Nếu bạn chỉ cần lấy tất cả các ví dụ tích cực và xây dựng một FSM chỉ chấp nhận các ví dụ đó và không có gì khác, thì FSM của bạn có thể rất lớn. Mặt khác, FSM nhỏ nhất chấp nhận tất cả các ví dụ tích cực và không có ví dụ tiêu cực nào có thể nhỏ hơn nhiều .
Jukka Suomela

3
Tôi nghĩ rằng câu hỏi ban đầu đã làm cho nó khá rõ ràng: "một biểu thức khớp với +, loại bỏ những cái - và là tối thiểu theo một nghĩa nào đó được xác định rõ".
Jukka Suomela

5
@keith sự phân biệt giữa câu trả lời của bạn và của tôi là khá tinh tế. khi bạn xây dựng dfa của mình, bằng cách tạo các trạng thái mới cho từng chuỗi trong mẫu, bạn cam kết với một ngôn ngữ có thể khác với ngôn ngữ được biểu thị bằng dfa tối thiểu tách biệt các ví dụ tích cực và tiêu cực. Vì vậy, thuật toán để tạo ra một dfa và sau đó giảm thiểu nó không may làm điều đó!
Lev Reyzin

1
Tôi không chắc tôi hiểu sự khác biệt này. Nếu chúng ta có một tập hợp các ví dụ tích cực và tiêu cực, chúng ta có một nhóm ngôn ngữ đáp ứng tất cả các ràng buộc này. cho mỗi cái có một (bộ) dfas tối thiểu. Miễn là tôi trả lại một DFA có kích thước tối thiểu, thì tôi chọn ngôn ngữ nào trong số những ngôn ngữ này.
Suresh Venkat

1
Đối với việc học, bạn muốn chọn DFA nhỏ nhất vì nó có khả năng khái quát hóa tốt nhất. Quy trình của @ kieth sẽ không chọn DFA tối thiểu trên tất cả các ngôn ngữ này, chỉ ngôn ngữ nhỏ nhất cho ngôn ngữ cam kết sử dụng quy trình của mình.
Lev Reyzin
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.