Đếm số lượng từ được chấp nhận bởi NFA theo chu kỳ


8

Đặt là một NFA tuần hoàn.M

Vì là chu kỳ, là hữu hạn.ML(M)

Chúng ta có thể tính toántrong thời gian đa thức?|L(M)|

Nếu không, chúng ta có thể ước chừng nó?


Lưu ý rằng số lượng từ không giống với số lượng đường dẫn chấp nhận trong , có thể tính toán dễ dàng.M


Hãy để tôi đề cập đến một cách tiếp cận rõ ràng không hiệu quả: chuyển đổi NFA thành DFA (cũng sẽ theo chu kỳ), sau đó đếm số lượng đường dẫn chấp nhận trong DFA. Điều này không dẫn đến thuật toán thời gian đa thức, vì việc chuyển đổi có thể gây ra một vụ nổ theo cấp số nhân trong kích thước của DFA.


Các kỹ thuật cho automata tùy ý mang qua, xem ví dụ trên cstheory.SE .
Raphael

1
@Raphael - Tôi sợ tôi không hiểu câu trả lời của bạn ở đó. Cụ thể, nó dường như không hoạt động đối với NFA mơ hồ. Đếm số lượng từ trong UFA cũng giống như đếm số lượng đường dẫn chấp nhận, như đã đề cập trong câu hỏi, rất đơn giản.
RB

Câu trả lời:


2

Đây là một cách tiếp cận mà tôi mong đợi sẽ cung cấp cho bạn một xấp xỉ nhân tử nhân, với thời gian chạy đa thức.

Đặt là ngôn ngữ thông thường là tập con của , ví dụ: . Chúng tôi sẽ cố gắng tính toán kích thước gần đúng của .{ 0 , 1 } n L = L ( M ) { 0 , 1 } n LL{0,1}nL=L(M){0,1}nL

Ở cấp độ cao, cách tiếp cận gần đúng của chúng tôisẽ trông giống như thế này:|L|

  1. Chọn một phân số , trong đó .0 < p < 1p0<p<1

  2. Chọn một ngôn ngữ thông thường sao cho, đại khái, là một tập hợp con ngẫu nhiên có có kích thước xấp xỉ (nghĩa là ).R { 0 , 1 } n p 2 n | R | p 2 nRR{0,1}np2n|R|p2n

  3. Kiểm tra xem có trống không. Lưu ý rằng kiểm tra này có thể được thực hiện trong thời gian đa thức.LR

Thực hiện liên tục các bước 1-3 cho các giá trị khác nhau của . Điều này cung cấp cho bạn một số thông tin sẽ cho phép bạn ước chừng.| L |p|L|

Cụ thể, nếu , thì chúng ta sẽ mong đợi|L|=m

Pr[LR=]=(1p)mepm.

Vì vậy, nếu bạn tình cờ chọn và lặp lại các bước 1-3 một loạt lần, bạn sẽ thấy một giao lộ trống khoảng 37% thời gian. Nếu bạn thấy một giao lộ trống thường xuyên hơn đáng kể thì hãy tăng và thử lại. Nếu bạn thấy một giao lộ trống ít thường xuyên hơn thì bạn có thể giảm và thử lại.p pp=1/mpp

Theo cách này, bằng cách sử dụng một cái gì đó như tìm kiếm nhị phân, bạn sẽ có thể ước chừngđể trong một yếu tố gần đúng nhân.|L|

Bạn vẫn cần chọn một số cách để chọn sao cho đều đặn nhưng cũng hoạt động như một tập hợp con ngẫu nhiên. Có nhiều khả năng, nhưng một cách tốt có thể là chọn một hàm băm 2 phổ ngẫu nhiên , chọn ngẫu nhiên và để . Chọn cung cấp cho bạn một bộ ngẫu nhiên có kích thước gần đúng và vì là phổ 2, nên tất cả các toán học ở trên sẽ hoạt động đúng.h : { 0 , 1 } m{ 0 , 1 , 2 , ... , k - 1 } y { 0 , 1 , ... , k - 1 } R = { x { 0 , 1 } n : h ( x ) = y } k = 1 / pRh:{0,1}m{0,1,2,,k1}y{0,1,,k1}R={x{0,1}n:h(x)=y}R hk=1/pRh

Điều này sẽ giải quyết vấn đề của bạn trong trường hợp tất cả các chuỗi trong NFA có cùng độ dài, giả sử . Nếu chúng có độ dài khác nhau, thì bạn có thể xử lý riêng từng độ dài có thể. Vì là chu kỳ, độ dài tối đa của bất kỳ chuỗi nào trong nhiều nhất là số trạng thái trong , do đó, điều này không làm tăng thời gian chạy quá nhiều.nML(M)M

(Cấu trúc này có thể nhắc nhở bạn về định lý Vazirani-Vazirani về SAT không rõ ràng.)


0

Giả sử rằng bạn có thể đếm theo thời gian đa thức số lượng từ của ngôn ngữ được cung cấp bởi NFA theo chu kỳ. Trong trường hợp này, xem xét hai mạch hở NFAs và , bạn có thể tính toán trong thời gian đa thức các hồng y (resp. ) của ngôn ngữ của (resp. ). Bằng một sản phẩm trực tiếp (bảo toàn tính tuần hoàn), bạn cũng có thể tính toán trong thời gian đa thức, hồng y của giao điểm của hai ngôn ngữ này. Hai automata chấp nhận cùng một ngôn ngữ iff . Do đó, bạn có thể kiểm tra sự bằng nhau của hai ngôn ngữ hữu hạn được đưa ra bởi acyclic automata trong đa thức, được biết đến là một vấn đề hoàn chỉnh NP. Vì vậy, trừ khiA1A2n1n2A1A2n3n1=n2=n3P=NP, bạn không thể giải quyết vấn đề của mình trong thời gian đa thức.


trích dẫn cần thiết cho kết quả độ cứng
A.Schulz
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.