Tìm DFA nhỏ nhất phân tách hai từ mà không sử dụng tìm kiếm vũ phu?


23

Cho hai chuỗi x và y, tôi muốn xây dựng một DFA kích thước tối thiểu chấp nhận x và từ chối y. Một cách để làm điều này là tìm kiếm vũ phu. Bạn liệt kê DFA bắt đầu từ nhỏ nhất. Bạn thử từng DFA cho đến khi bạn tìm thấy một chấp nhận x và từ chối y.

Tôi muốn biết liệu có cách nào khác để tìm hoặc xây dựng DFA kích thước tối thiểu chấp nhận x và từ chối y không. Nói cách khác, chúng ta có thể đánh bại tìm kiếm vũ phu?

Thêm chi tiết:

(1) Tôi thực sự muốn một thuật toán tìm DFA kích thước tối thiểu, không phải là DFA kích thước tối thiểu gần.

(2) Tôi không chỉ muốn biết DFA tối thiểu lớn hay nhỏ.

(3) Ngay tại đây, tôi chỉ tập trung vào trường hợp là bạn có hai chuỗi x và y.


Chỉnh sửa :

Thông tin bổ sung cho người đọc quan tâm:

Giả sử y là các chuỗi nhị phân có độ dài tối đa n . Đó là một kết quả được biết rằng có một DFA chấp nhận x và từ chối y với ít nhất xynxy tiểu bang. Chú ý rằng có khoảngnn DFA với một bảng chữ cái nhị phân và nhiều nhấtnn tiểu bang. Do đó, cách tiếp cận sức mạnh vũ phu sẽ không yêu cầu chúng tôi liệt kê thông qua hơnnn DFA. Nó sau đó phương pháp brute force không thể mất nhiều hơnnnn thời gian.nn

Các slide mà tôi thấy hữu ích: https://cs.uwaterloo.ca/~shallit/Talks/sep2.pdf


2
@ AndrásSalamon Nó vẫn hoàn thành NP nếu các tập hợp được phân biệt mỗi tập hợp chỉ có một chuỗi? Nó cảm thấy với tôi như thế này nên có thể dễ dàng hợp lý.
mhum

6
@mhum vấn đề là có nhiều ngôn ngữ thông thường khác nhau tách hai chuỗi - tối thiểu hóa DFA sẽ tìm ra máy tự động tốt nhất cho bất kỳ một trong những ngôn ngữ này nhưng sẽ không làm gì để so sánh nó với automata cho các ngôn ngữ phân tách khác.
David Eppstein

4
Nếu y có độ dài khác nhau, với độ dài n lớn hơn , bạn có thể dễ dàng tìm thấy DFA với trạng thái O ( log n ) để phân tách chúng: chỉ cần sử dụng một chu kỳ có độ dài p , trong đó p không chia | x | - | y | . Tìm p bằng cách cố gắng 2 , 3 , 5 , ... theo thứ tự cho đến khi bạn tìm ra thích hợp p . Nếu xy có cùng độ dài thì OxynO(logn)pp|x||y|p2,3,5,pxyxây dựng Robson, trong một bài báo năm 1996, đưa ra một cỗ máy đơn giản có thể tìm thấy bằng cách tìm kiếm kích thướcO(n). Không xây dựng nào được đảm bảo là DFA nhỏ nhất. O(n)O(n)
Jeffrey Shallit

3
Các ghi chú của Shallit, được liên kết ở trên, bao gồm quan sát hữu ích rằng trường hợp xấu nhất cho vấn đề phân tách là khi bảng chữ cái là nhị phân: luôn có thể phân vùng bảng chữ cái lớn hơn thành hai tập hợp con vẫn phân biệt hai từ đầu vào và tìm kiếm một máy tự động nhị phân xử lý các chữ cái trong một tập hợp con là 0 và các chữ cái trong tập hợp con khác là 1. Nhưng để tìm kiếm tự động phân tách tối thiểu, điều này dường như không có ích, bởi vì bạn có thể sử dụng thông tin bổ sung từ bảng chữ cái ban đầu để làm tốt hơn bạn có thể ánh xạ sang bảng chữ cái nhị phân.
David Eppstein

3
một trường hợp đặc biệt của câu hỏi gần đây khác này trong đó kích thước trong và ngoài bộ bằng 1. tự động hữu hạn tối thiểu được đưa ra bằng từ và từ ngoài . câu trả lời đó liệt kê một số tài liệu học tập bao gồm một số heuristic.
vzn

Câu trả lời:


9

Nếu tôi phải làm điều này trong thực tế, tôi sẽ sử dụng một bộ giải SAT.

kxy2k2zs,b,tstbxy

kk


Các mã hóa khác của điều này là SAT là có thể. Chẳng hạn, chúng ta có thể sử dụng mã hóa theo dõi:

  • xmmlgks0,s1,,smxsilgk

  • i,jxi=xjsi1=sj1si=sj

  • yt0,,tnytjlgki,jyi=yjti1=tj1ti=tj

  • i,jxi=yjsi1=tj1si=tj

  • s0=t0s0=t0=0

  • k0si<k0tj<ki,j

  • xysmtn

Tất cả các yêu cầu này có thể được mã hóa dưới dạng mệnh đề SAT.

kk


3
lưu ý rằng điều này thực sự sẽ vượt trội hơn so với tìm kiếm vũ lực nếu có sự đối xứng nhất định trong vấn đề và chúng được người giải quyết nhận ra, nhưng hiện tại có thể khó xác định / cô lập chúng (cho cả người hoặc máy). cũng có một số "công nghệ" mới hơn / liên quan đến các lý thuyết modulo thỏa đánglập trình tập hợp câu trả lời, một số trong đó có các vị từ đồ thị "tích hợp" hoặc có thể hỗ trợ các định nghĩa của chúng.
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.