Có bao nhiêu DFA chấp nhận hai chuỗi đã cho?


28

Sửa một số nguyên và bảng chữ cái . Xác định là tập hợp của tất cả các automata trạng thái hữu hạn trên trạng thái có trạng thái bắt đầu 1. Chúng tôi đang xem xét tất cả các DFA (không chỉ kết nối, tối thiểu hoặc không suy biến); do đó, .Σ = { 0 , 1 } D F A ( n ) n | D F A ( n ) | = n 2 n 2 nnΣ={0,1}DFA(n)n|DFA(n)|=n2n2n

Bây giờ hãy xem xét hai chuỗi và định nghĩa là số phần tử của chấp nhận cả và . K ( x , y ) D F A ( n )x,yΣK(x,y)DFA(n) yxy

Câu hỏi: Độ phức tạp của điện toán gì?K(x,y)

Câu hỏi này có ý nghĩa đối với học máy .

Chỉnh sửa: Bây giờ có một tiền thưởng cho câu hỏi này, tôi cho rằng chính xác hơn một chút trong công thức là theo thứ tự. Đối với , hãy để là tập hợp của automata, như được định nghĩa ở trên. Để , xác định là số automata trong chấp nhận cả và . Câu hỏi: có thể được tính theo thời gian không?D F A ( n ) n 2 n 2 n x , y { 0 , 1 } K n ( x , y ) D F A ( n )n1DFA(n)n2n2nx,y{0,1}Kn(x,y)DFA(n) y K n ( x , y ) p o l y ( n , | x | , | y | )xyKn(x,y)poly(n,|x|,|y|)


2
Nếu bạn sửa DFA mà không sửa các trạng thái cuối cùng, thì nó sẽ ánh xạ x và y sang cùng một trạng thái, trong trường hợp đó, hạn chế duy nhất là trạng thái phải là cuối cùng, hoặc nó ánh xạ chúng sang hai trạng thái khác nhau, trong trường hợp đó hạn chế duy nhất là cả hai phải là cuối cùng. Vì vậy, tôi sẽ điều chỉnh lại vấn đề của bạn là "có bao nhiêu DFA ánh xạ x và y sang các trạng thái khác nhau?".
a3nm

3
Aryeh, bạn có thể giải thích số không? Tôi không thể có được yếu tố . Đã thêm: Rất tiếc, tôi quên chỉ định trạng thái cuối cùng. Dù sao, vì lợi ích của người khác, đây là cách tính. Đối với mỗi trạng thái, chỉ định nơi sẽ đi vào đầu vào và ; tài khoản cho . Chỉ định tập hợp các trạng thái cuối cùng; đó là . 2 n 0 1 n 2 n 2 nn2n2n2n01n2n2n
Srivatsan Narayanan

2
Thật vậy, tôi không quan tâm điều gì xảy ra với các chuỗi khác ngoài và . Tôi đoán người ta cần một số điểm nhất định để bắt đầu một tiền thưởng? yxy
Aryeh

4
Máy tự động nhỏ nhất chấp nhận và có một trạng thái duy nhất, vì vậy tôi không nghĩ đó là thông tin khủng khiếp ...yxy
Aryeh

3
Đây là một ý tưởng: chúng ta chỉ cần biết số lượng DFA -state kết thúc ở cùng một trạng thái trên và . Đặt số này là và là tổng số DFA, tức là . Sau đó, câu trả lời là , điều này mang lại giới hạn. Để tính một ý tưởng khác là chúng ta có thể quên đi phân đoạn ban đầu được chia sẻ của và và cũng giả sử rằng wlog và . Chúng tôi chỉ tính số lượng DAG nhị phân có trạng thái và chiều caox y m M M = n 2 n 2 n 1nxymMM=n2n2n12m+14(Mm)mxyx=0ab=1blmax{a,b}rằng và kết thúc ở cùng một vị trí và từ đó dễ dàng tính được . 0a1bm
Kaveh

Câu trả lời:


1

Vì vậy, câu hỏi khá ngắn gọn nhưng rất thú vị. Tôi cho rằng đầu vào là đơn nhất, và và ở dạng nhị phân (hoặc chúng ta có vấn đề, như được chỉ ra bởi câu trả lời của Kai).nxy

Trước hết, nếu bạn muốn biết xấp xỉ, thì bạn chỉ có thể tạo một vài DFA ngẫu nhiên và điều này sẽ cung cấp cho bạn (whp) một xấp xỉ tốt. (Tôi tự hỏi nếu lớp phức tạp này có một tên.)K(x,y)

Sau đó, biết chính xác có vẻ như là một vấn đề khó khăn. Như đã chỉ ra trong các bình luận của a3_nm và Kaveh, câu hỏi tương đương với việc xác định số lượng automata mà và đi đến cùng một trạng thái. Tôi sẽ biểu thị xác suất để chúng đi đến cùng một trạng thái bởi .K(x,y)xyp

Cập nhật: Một số điều tôi viết ở đây không đúng, giờ tôi đã sửa chúng.

Dễ dàng thấy rằng . Chúng ta có đẳng thức, nếu là tất cả 0 và đều bằng 0 ngoại trừ bit cuối cùng của nó, đó là 1. Có trường hợp nào khác không? Tôi không biết. Nếu ví dụ là chuỗi rỗng và , thì .p1/nxyxy=00p=n+1(n1)n

Để đơn giản hóa vấn đề, tôi thậm chí bắt đầu suy nghĩ về những gì sẽ xảy ra nếu và là đơn nguyên. Nếu cả hai ít nhất là và sự khác biệt của chúng chia hết cho, sau đó . Có một công thức đơn giản cho phiên bản unary?xynn!p=1


Tôi đã làm rõ vấn đề - một thuật toán là mong muốn (hoặc giảm từ một số vấn đề khó khăn đã biết). Phép tính gần đúng lấy mẫu được sử dụng trong bài báo giới thiệu hạt nhân này: Portal.acm.org/citation.cfm?id=1577108poly(n,|x|,|y|)
Aryeh

2
Đối với phiên bản đơn nguyên: chỉ có nhiều máy tự động đơn phương -state, vì vậy tôi đặt cược rằng có một thuật toán đa thời gian để tính toán cho trường hợp này. nKn(x,y)
Aryeh

Thật vậy, bạn hoàn toàn đúng khi phiên bản unary có thể tính toán được. Tôi vẫn tự hỏi làm thế nào công thức đơn giản cho một x và y nhất định.
domotorp

Mức giảm mà bạn đã sử dụng là lỗi: x và y có thể được chấp nhận bởi cùng một automata và kết thúc ở các trạng thái hoàn toàn khác nhau, trên thực tế, chúng chỉ có thể chia sẻ trạng thái bắt đầu trong đường dẫn của chúng, điều này đúng với tất cả các chuỗi.
amnn

@amnn: Đã ba năm kể từ khi tôi viết bài này, nhưng không phải đoạn thứ ba trong câu trả lời của tôi giải thích tại sao tôi chỉ giải quyết với việc kết thúc ở cùng một trạng thái?
domotorp

0

Tôi rất có thể thiếu điểm nhưng bạn đã nói rằng là cố định, vì vậy tất cả các DFA có kích thước đó có thể được coi là được tính toán trước và được lưu trữ ở định dạng dễ mô phỏng. Tính như sau:nK

Trên đầu vào , trong đóxyx,yΣ

  1. cửa hàng vàxy
  2. khởi tạo bộ đếm thànhc0
  3. cho mỗi DFA của bạnn2n2n
  4. a. mô phỏng nó trên cả hai từ (bước này là )O(|xy|)

    b. gia tăng nếu cả hai lần chạy mô phỏng đều chấp nhậnc

  5. đầu rac

Nhìn chung, tính toán có độ phức tạp tuyến tính. Câu trả lời khá khác nhau đối với .K(n,x,y)


3
Rõ ràng cố gắng tất cả các máy sẽ làm việc. Aryeh muốn biết liệu, có lẽ, một thuật toán thời gian đa thức hay nói cách khác là kết quả độ cứng.
Lev Reyzin

Nói đúng ra đây là thời gian đa thức trong đầu vào, nếu n không phải là một phần của đầu vào, đó là những gì Kai đã nói. Nhưng câu hỏi rõ ràng là khác nhau.
domotorp

4
Ồ tôi hiểu rồi. Tôi không nghĩ đó là những gì anh ấy có nghĩa là "sửa ." Tôi nghĩ rằng cách giải thích tự nhiên của vấn đề là một vấn đề không tầm thường hóa nó. n
Lev Reyzin

1
Phải, cảm ơn vì đã chỉ ra kẽ hở, Kai. Nó đã được sửa :)
Aryeh
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.