Thuật toán giao cắt DFA cho các trường hợp đặc biệt


9

Tôi quan tâm đến các thuật toán hiệu quả cho giao lộ DFA cho các trường hợp đặc biệt. Cụ thể, khi các DFA giao nhau tuân theo một cấu trúc nhất định và / hoặc hoạt động trên bảng chữ cái giới hạn. Có nguồn nào mà tôi có thể tìm thấy các thuật toán như vậy không?

Để không làm cho câu hỏi quá rộng, cấu trúc sau đây được đặc biệt quan tâm: tất cả các DFA để giao nhau hoạt động trong bảng chữ cái nhị phân (0 | 1), chúng cũng có thể sử dụng các ký hiệu không quan tâm. Hơn nữa, tất cả các trạng thái chỉ có một chuyển đổi ngoại trừ tối đa K trạng thái đặc biệt, chỉ có hai chuyển đổi (và các chuyển đổi này luôn là 0 hoặc 1, nhưng không quan tâm). K là một số nguyên, nhỏ hơn 10 cho mục đích thực tế. Ngoài ra, họ có một trạng thái chấp nhận duy nhất. Ngoài ra, người ta biết rằng giao lộ LUÔN LUÔN là một DFA ở dạng "dải", tức là không có nhánh như trong hình ảnh sau:

nhập mô tả hình ảnh ở đây

EDIT: Có lẽ mô tả về các ràng buộc đối với các DFA đầu vào không rõ ràng lắm. Tôi sẽ cố gắng cải thiện nó trong đoạn này. Bạn có T DFA đầu vào . Mỗi DFA này chỉ hoạt động trên bảng chữ cái nhị phân. Mỗi trong số họ có ít nhất N tiểu bang. Đối với mỗi DFA, mỗi trạng thái của nó là một trong những điều sau đây:

1) trạng thái chấp nhận (nó chỉ là một và không có sự chuyển đổi từ trạng thái này sang bất kỳ trạng thái nào khác)

2) trạng thái có hai lần chuyển tiếp (0 và 1) sang cùng trạng thái đích (phần lớn các trạng thái thuộc loại này)

3) một trạng thái có hai lần chuyển tiếp (0 và 1) sang các trạng thái mục tiêu khác nhau (nhiều nhất là K thuộc loại này)

Nó được đảm bảo rằng chỉ có một trạng thái chấp nhận và có tối đa K trạng thái loại (3) trong mỗi DFA đầu vào. Nó cũng được đảm bảo rằng giao DFA của tất cả các DFAs đầu vào là một "dải" (như mô tả ở trên), có kích thước nhỏ hơn N .

EDIT2: Một số ràng buộc bổ sung, theo yêu cầu của DW trong các bình luận:

  • Các DFA đầu vào là DAG.
  • Các DFA đầu vào được "cân bằng", theo định nghĩa DW trong các bình luận. Cụ thể, bạn có thể gán các số nguyên khác nhau cho mọi trạng thái theo cách mà mọi chuyển đổi đều đi từ một số nguyên u sang một số nguyên v , sao cho u + 1 = v .
  • Số lượng các quốc gia chấp nhận cho mỗi đầu vào DFA, không vượt quá K .

Có ý kiến ​​gì không? Cảm ơn.


Làm thế nào chính xác để bạn mô hình "không quan tâm"? Nó dường như làm cho automata không đặc biệt, theo một cách nào đó.
Shaull

@Shaull Tại sao nó phải làm cho máy tự động không xác định. Điều đó chỉ có thể xảy ra nếu có một chuyển đổi khác từ cùng một trạng thái, được loại trừ rõ ràng.
babou

1
a DFA in form of "strip", i.e., no branchesgì Bạn có bất kỳ lý do cụ thể để tin rằng một người có thể làm tốt hơn thuật toán tiêu chuẩn trong trường hợp của bạn không?
babou

1
Chào. Tính toán giao lộ thực sự sẽ rất tuyệt, vì nó sẽ đơn giản hóa nhiều thứ, nhưng quyết định sự trống rỗng cũng sẽ hữu ích.
ale64bit

1
chỉ cần chạy qua một bài báo mới trên các biểu đồ giao nhau , một số lý thuyết này có thể có liên quan? bạn có thể mở rộng ứng dụng của bạn được đề cập trong bình luận của bạn trong Trò chuyện khoa học máy tính lý thuyết không? & mời những người khác tiếp tục thảo luận ở đó.
vzn

Câu trả lời:


9

Vâng , có một số trường hợp của vấn đề bảo mật không trống rỗng DFA nằm trong P. Luận án thạc sĩ của tôi dành cho câu hỏi này, nhưng không may là nó bằng tiếng Pháp. Tuy nhiên, hầu hết các kết quả đã xuất hiện ở đây trong .[2]

Khi bảng chữ cái là đơn nhất, thì vấn đề là L-đầy đủ khi mỗi DFA có nhiều nhất hai trạng thái cuối cùng và NP-hoàn thành khác. Hầu hết các trường hợp khác là hạn chế đối với các đơn âm chuyển tiếp của automata. Ví dụ: đối với các đơn vị chuyển tiếp nhóm abelian, vấn đề nằm ở khi mỗi DFA có nhiều nhất một trạng thái cuối cùng và NP hoàn thành khác; đối với các đơn vị chuyển tiếp 2 nhóm cơ bản, vấn đề là L- khi mỗi DFA có nhiều nhất hai trạng thái cuối cùng và NP hoàn thành khác.NC3


Bây giờ hãy để tôi giải quyết câu hỏi chính xác hơn của bạn, câu hỏi chỉ có thể tìm thấy trong . Giả sử bạn được cung cấp các DFA hoạt động trên và có hình dạng như cây, tức là tồn tại trạng thái (trạng thái ban đầu) sao cho mỗi trạng thái tồn tại một đường dẫn duy nhất từ đến . Sau đó, quyết định giao điểm không trống rỗng là:[1]{0,1}uvuv

  1. Hoàn thành L cho một trạng thái cuối cùng trong mỗi DFA,
  2. Hoàn thành NL cho hai trạng thái cuối cùng trong mỗi DFA và
  3. NP-hoàn thành cho ba hoặc nhiều trạng thái cuối cùng trong mỗi DFA.

Kết quả độ cứng vẫn giữ ngay cả khi bạn "rẽ nhánh" tương ứng 0, 1 hoặc 2 lần (đây là của bạn ). Bây giờ nếu các DFA của bạn được vẽ đồ thị theo chu kỳ thay vì cây, thì vấn đề là NP hoàn thành ngay cả với một trạng thái cuối cùng trong mỗi DFA và ; việc giảm là khá đơn giản và là từ Monotone 1 trong 3 3-SAT.KK=2

Do đó, không , tôi không nghĩ có một thuật toán hiệu quả cho vấn đề của bạn.

Bây giờ, nếu số lượng automata là cố định, bạn có thể muốn thảo luận với Michael Wehar , người đã xuất bản gần đây .[3]


EDIT: Kể từ khi OP chỉnh sửa câu hỏi của anh ấy, hãy để tôi làm rõ câu trả lời của mình với yêu cầu mới của anh ấy. Hãy xem xét bài toán hoàn thành NP Đơn điệu 1 trong 3 3-SAT trong đó bạn được cung cấp công thức trong 3-CNF mà không cần phủ định và bạn phải xác định liệu có một phép gán nào thực hiện đúng một biến trong mỗi mệnh đề hay không. Bạn có thể giảm vấn đề này thành vấn đề giao nhau không trống rỗng như sau. Ví dụ: đối với mệnh đề , bạn xây dựng máy tự động sau:x2x3x5

tiện ích giảm

Lưu ý rằng automata là cây (và do đó DAG), được san bằng và có ba trạng thái cuối cùng. Trên thực tế, ba trạng thái cuối cùng có thể được hợp nhất thành một trạng thái duy nhất, nếu một trạng thái hài lòng với DAG. Hơn nữa, chỉ có hai trạng thái có hai chuyển tiếp (khác biệt) đi.

  1. Michael Blondin. Complexité raffinée duTHERème d'intersection d'automates, ThS. Luận án, Đại học Montréal, 2012.
  2. Michael Blondin, Andreas Krebs và Pierre McKenzie. Sự phức tạp của giao tiếp tự động hữu hạn có ít trạng thái cuối cùng, độ phức tạp tính toán (CC), 2014.
  3. Michael Wehar. Kết quả độ cứng cho giao lộ Không trống rỗng. ICALP, 2014.

2
Cảm ơn rất nhiều! Tôi chấp nhận câu trả lời của bạn. Câu hỏi bắt nguồn từ một số thử nghiệm thực tế trong đó mọi thứ đều giảm sau nhiều bước chuyển giao các giải pháp của nhiều DFA với đặc điểm đặc biệt này. Tuy nhiên, chúng tôi đã quan sát thấy rằng mặc dù cuối cùng chúng tôi sẽ có được một DFA đơn giản, quá trình không bao giờ kết thúc do các DFA trung gian (trong khi giao nhau tuần tự) đang phát triển mạnh mẽ thành một số lượng lớn các trạng thái. Vì vậy, câu hỏi, làm thế nào để có được câu trả lời mà không cần thông qua các bước "ngây thơ" trung gian.
ale64bit

1
Cảm ơn rất nhiều (và xin lỗi vì không rõ ràng, tôi ở dưới người mới trong lĩnh vực này). Bây giờ có một cái gì đó tôi không nhận được. Bạn đề cập rằng "hình như cây" có nghĩa là "đường dẫn duy nhất từ ​​gốc đến mọi nút khác". Nhưng, ví dụ, trong hình ảnh bạn đã đăng trong bản chỉnh sửa, đó sẽ không phải là một cái cây (trừ khi bạn tính các chuyển đổi 0/1 là một nhãn duy nhất)?
ale64bit

1
Bạn đúng, nhưng sự hiểu biết của tôi là bạn cho phép chuyển đổi "không quan tâm". Có phải vậy không?
Michael Blondin

2
Chào Michael. Cảm ơn câu trả lời tốt đẹp. Tôi hy vọng tất cả là tốt. :)
Michael Wehar

2
@MichaelWehar Trong trường hợp bạn sửa cả k và c, bạn đề cập đến việc bạn có thể giải quyết vấn đề "nhanh chóng". Nhưng bạn không đề cập đến sự phức tạp thời gian, chỉ có sự phức tạp về không gian. Chính xác "nhanh chóng" nghĩa là gì trong bối cảnh đó?
ale64bit
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.