Có một thử nghiệm hiệu quả cho việc nếu một NFA chấp nhận một tập hợp con của một NFA khác không?


12

Vì vậy, tôi biết rằng thử nghiệm nếu một ngôn ngữ thông thường là một tập hợp con của ngôn ngữ thông thường S là decidable, vì chúng ta có thể chuyển đổi chúng cả hai để DFAs, tính toán R ˉ S , và sau đó kiểm tra nếu ngôn ngữ này là trống.RSRS¯

Tuy nhiên, vì điều này đòi hỏi phải chuyển đổi sang DFA, nên có thể các DFA, và do đó, thuật toán thử nghiệm, sẽ theo cấp số nhân về số lượng trạng thái trong các NFA đầu vào.

Có một cách được biết để làm điều này trong thời gian đa thức? Vấn đề này nói chung đã được chứng minh Co-NP hoàn thành chưa?

RSRS

EDIT: điều này là không chính xác, vì không có gì đảm bảo rằng một từ như vậy sẽ là đa thức trong số lượng trạng thái.


1
Đây là một câu hỏi lý thuyết, hoặc trong thực tế? đôi khi đối với một "phân phối" cụ thể của các đầu vào gặp phải trong thực tế, một vấn đề hoàn chỉnh của Pspace có thể là "có thể chạy được" trong thời gian P.
vzn

Lý tưởng nhất là về mặt lý thuyết, nhưng các bằng chứng tôi đang làm việc bị kiểm soát nhiều bởi máy tính, điều đó có nghĩa là một thuật toán nhanh chắc chắn sẽ hữu ích.
jmite

vì vậy, vâng, có một thuật toán khá đơn giản, hoạt động chỉ bằng cách thực hiện song song các chuyển đổi cho mỗi hai máy và theo dõi các tập trạng thái kết quả, giống như thuật toán xác định tiêu chuẩn. không biết nó có trong tài liệu ở đâu đó không, nó đơn giản đến mức nó đoán được. bạn đã sử dụng một số thuật toán? Nó sẽ hữu ích nếu bạn trích dẫn nó. cũng có nhiều chi tiết hơn về loại đầu vào sẽ hữu ích. Nghe có vẻ như bạn muốn xác định xem giao điểm của hai NFA có trống không? Bạn có muốn ngôn ngữ của giao lộ hoặc chỉ Y / N nếu nó không trống?
vzn

Tôi chỉ tìm kiếm cho nếu nó trống rỗng, ý tưởng được Tôi đang tìm nếu để kiểm tra nếu R S . Thuật toán chuyển đổi song song hoạt động, tôi nghĩ phần khó là lấy lời khen của NFA, trước tiên bạn phải chuyển đổi sang DFA. Thuật toán tôi đang sử dụng ngay bây giờ chỉ là vũ phu, vì tôi chỉ làm việc với các ngôn ngữ hữu hạn. RS={}RS
jmite

tin rằng có thể có một cách để vượt qua hai NFA mà không cần chuyển đổi thành DFA 1st, thậm chí còn tìm thấy sự bổ sung của một NFA. nhưng havent đã nhìn thấy nó trong một ref.
vzn

Câu trả lời:


15

Vấn đề quyết định ngăn chặn ngôn ngữ trong NFA là -complete. Để chứng minh điều này, nó rất dễ dàng để giảm từ vấn đề universaility cho NFAs (thử nghiệm cho dù L ( A ) = Σ * ) Vì vậy, trong một cách, bạn phải determinize, nhưng bạn có thể làm như vậy on-the-fly.PSPMộtCEL(Một)= =Σ*

Quan sát của bạn về co-NP là sai (nhưng tốt đẹp). Một nhân chứng như vậy thực sự có thể được kiểm tra trong thời gian đa thức trong nhân chứng , nhưng bản thân nhân chứng ngắn nhất có thể theo cấp số nhân theo độ dài của đầu vào. Vì , nên quyết định không ngăn chặn cũng là P S P A C E -complete.PSPMộtCE= =co-PSPMộtCEPSPMộtCE

Để điều nhà nước một cách cẩn thận hơn, quyết định P S P Một C E trong kích thước của B (vì chỉ có B cần phải được bổ sung), và N L O G S P Một C E trong kích thước của Một .L(Một)L(B)PSPMộtCEBBNLÔiGSPMộtCEMột


Bạn hoàn toàn đúng. Tôi đã làm việc với một lớp NFA cụ thể trong đó những gì tôi nói nắm giữ, nhưng nó chắc chắn không thể với NFA chung vô hạn. Cảm ơn!
jmite

Bạn sẽ không có tài liệu tham khảo cho một bài báo hay sách giáo khoa chứng minh nó hoàn chỉnh PSPACE chứ?
jmite

1
Đó không phải là một bằng chứng rất chi tiết, nhưng tôi nghĩ nó sẽ làm được: Wis.weizmann.ac.il/~vardi/av/notes/lec4.ps
Shaull 20/213

4

Bạn nên xem qua thuật toán Antichain của Jean-François Raskin cho Finite Automata .

Trong các thí nghiệm của chúng tôi, thử nghiệm bao gồm dựa trên antichain đã thực hiện một hoặc hai bậc độ lớn tốt hơn so với các phương pháp "truyền thống".

Nếu tôi nhớ chính xác, thuật toán này được triển khai trong thư viện libAMoRE ++ .


3

Một trong những thư viện FSM tốt nhất, toàn diện nhất nhà nước-of-the-art và tối ưu hóa cao, miễn phí trên mạng là thư viện của AT & T FSM . Nó thực hiện "fsmdifference" chính xác như bạn mô tả, yêu cầu một FSM không có epsilon xác định để thực hiện sự khác biệt. Một ý tưởng là giảm thiểu một hoặc cả hai FSM trước khi thực hiện sự khác biệt, điều này có thể giúp ích trong một số trường hợp. (nghĩa là xác định không giống như giảm thiểu.) Gói này cũng có tối thiểu hóa "gần đúng" hoặc "tham lam" được thiết kế để có thể nhanh hơn tối thiểu hóa hoàn toàn.

Tuy nhiên, nghiên cứu các vấn đề tương tự, tôi tin rằng có một số khái quát hoặc xây dựng các FSM không xuất hiện trong tài liệu có thể giúp giải quyết vấn đề này bằng cách tránh bước xác định, tức là về cơ bản đảo ngược NFA mà không tạo ra một FSM xác định bổ sung. Ý tưởng là đi qua các cạnh NFA "song song" và theo dõi tập hợp các nút là một phần của "superstate" hiện tại (tập hợp các trạng thái) giống như với thuật toán xác định tiêu chuẩn. Sau đó, phần bổ sung NFA chấp nhận khi và chỉ khi tập hợp các nút siêu thanh hiện tại là "tất cả không chấp nhận" (ngược lại với cấu trúc xác định chấp nhận "bất kỳ chấp nhận" nào).

Tuy nhiên, tôi chưa thấy điều này được viết lên trước đó và không thấy nó thông qua một tìm kiếm trực tuyến nhanh. Có nhiều tài liệu tham khảo gợi ý hoặc ngụ ý rằng cách duy nhất để làm việc với phần bổ sung của NFA là xác định nó.

Đây là hai tài liệu tham khảo "gần đó" có thể hữu ích cho một số ý tưởng. Tôi rất muốn nghe về bất kỳ / những người khác "gần gũi" hơn. Bạn đề cập rằng bạn đang làm việc về xác minh chương trình, có thể là một lĩnh vực có nhiều nghiên cứu trực tiếp hơn về vấn đề này.

[1] Xây dựng giao lộ của Automata hữu hạn không phá hủy bằng cách sử dụng ký hiệu Z Nazir Ahmad Zafar, Nabeel Sabir và Amir Ali

[2] Các công trình bổ sung cho Automata không điều kiện về các từ vô hạn Orna Kupferman và Moshe Vardi

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.