Sự mơ hồ liên tục có thể làm giảm sự phức tạp trạng thái của một ngôn ngữ thông thường?


16

Chúng ta nói rằng NFA là Thường xuyên mơ hồ nếu có tồn tại sao cho bất kỳ chữ được chấp nhận bởi một trong hai hoặc (chính xác) đường dẫn.M w Σ * 0 kkNwΣ0k

Nếu automaton liên tục mơ hồ với , thì được gọi là FA không rõ ràng (UFA).k = 1 MMk=1M

Hãy để là một ngôn ngữ thông thường.L

Một số máy tự động liên tục mơ hồ cho có thể nhỏ hơn UFA nhỏ nhất chấp nhận không? Nó có thể nhỏ hơn bao nhiêu? L LMcLL

Máy tự động mơ hồ có thể nhỏ hơn theo cấp số nhân so với CFA nhỏ nhất cho cùng một ngôn ngữ?

Người ta biết rằng có các máy tự động mơ hồ hoàn toàn (tồn tại , sao cho mọi từ được chấp nhận bởi tối đa đường dẫn) nhỏ hơn theo cấp số nhân so với UFA nhỏ nhất cho cùng một ngôn ngữ, nhưng tôi chưa thấy điều gì về sự mơ hồ không đổi.k k

Ngoài ra, đây là một câu hỏi liên quan tôi đã đăng ở đây vài tháng trước.

BIÊN TẬP:

Câu trả lời của Domotorp cho thấy có thể giảm đa thức đối với , nhưng không giải quyết được câu hỏi liệu chúng ta có thể đạt được mức giảm không gian đa thức đó bằng không.U F A C F ACFAUFACFA

Vì vậy, câu hỏi mới trở thành: nhỏ hơn bao nhiêu (tuyến tính / bậc hai / v.v.) có thể so sánh với tối thiểu ? cho cùng một ngôn ngữ?U F ACFAUFA


được -transitions phép? ϵ
Denis

Có lẽ điều này có thể hữu ích: trong Kupke, Khi tách hằng số khỏi sự không rõ ràng đa thức của Finite Automata , hệ thống phân cấp sau được trình bày: Tôi không kiểm tra giấy liên quan vì nó là phía sau tường thành. dfa2nunfa2ncafa2n???2npafa2nnfa
Marzio De Biasi

Cảm ơn @MarzioDeBiasi, nhưng thật không may, điều này không có ích (tôi cũng hy vọng khi xem bài thuyết trình). Họ sử dụng ký hiệu khác với ký hiệu tôi sử dụng (và tôi đã thấy trong các giấy tờ khác nhau). "Sự mơ hồ không đổi" của họ là cái mà tôi gọi là sự mơ hồ hữu hạn, vì vậy mối quan hệ giữa Cafa và UFA của họ đã được biết đến với tôi. Vì ứng dụng của tôi đang đếm các giải pháp cho các vấn đề NPC, ngôn ngữ của tôi luôn hữu hạn và do đó, mọi từ được chấp nhận bởi các đường dẫn mà chúng gọi là "hằng số". O(1)
RB

Tôi tự hỏi liệu định nghĩa của tôi có giúp giảm độ phức tạp trạng thái hay không, vì tôi có CFA nhỏ hơn theo cấp số nhân so với UFA nhỏ nhất mà tôi biết để xây dựng và tôi tự hỏi liệu có thể không có UFA nhỏ cho ngôn ngữ.
RB

1
@Denis, vâng, nhưng nó sẽ giúp bạn giảm sự phức tạp của nhà nước? Tôi cho rằng bạn chỉ có thể giảm số lượng các cạnh bằng cách di chuyển như vậy.
RB

Câu trả lời:


4

Tôi cho rằng nếu đối với một số ngôn ngữ có một CFA với với bang và 0 hoặc c chấp nhận đường dẫn cho từng chữ, sau đó có một UFA với C s s c tiểu bang. Ý tưởng cơ bản là các trạng thái của UFA là các bộ dữ liệu (theo thứ tự) của các trạng thái của CFA và nó chấp nhận nếu và chỉ khi tất cả các trạng thái c chấp nhận. Tất nhiên chúng tôi cũng phải đảm bảo rằng đây thực sự là những tính toán khác nhau và chúng tôi không tính tất cả c ! hoán vị, vì vậy đối với những chúng ta cần thêm một số C s bit dung lượng lưu trữ.s0cCsscc!Cs

Mô tả chi tiết hơn một chút về ý tưởng cơ bản: Nếu là trạng thái của UFA, thì nó có sự chuyển đổi từ nó (đọc một số chữ a ) sang trạng thái ( s 1 , gan , s c ) nếu và chỉ khi CFA có sự chuyển đổi (đọc chữ a ) từ s i sang s i cho mọi i . Một nhà nước ( 1 , ... , s c )(s1,,sc)a(s1,,sc)asisii(s1,,sc)là chấp nhận khi và chỉ khi được chấp nhận cho mỗi i . Tất nhiên trạng thái bắt đầu của UFA là ( s 0 , Mạnh , s 0 ) trong đó s 0 là trạng thái bắt đầu của CFA.sii(s0,,s0)s0

Vấn đề với bên trên là mô phỏng chạy của CFA có thể tương tự. Vì vậy, chúng tôi thêm một số thông tin bổ sung, được mã hóa, giả sử, trong một biểu đồ trên các đỉnh c có cạnh giữa đỉnh i và đỉnh j nếu trong quá trình chạy ít nhất một lần chúng ta đã có c ic j .ccijcicj

Bây giờ chúng tôi vẫn có một vấn đề, đó là chúng tôi đã đếm tất cả mọi thứ lần vì hoán vị có thể. Chúng ta có thể khắc phục điều này bằng cách yêu cầu rằng nếu trạng thái thứ i và thứ j giống nhau cho đến bây giờ và trong bước tiếp theo chúng sẽ khác nhau, thì trong bước tiếp theo, trạng thái thứ i sẽ có chỉ số lớn hơn.c!iji


Cảm ơn bạn đã trả lời @domotorp. Thật không may, tôi không thể nói rằng tôi hiểu nó. Bạn có thể cung cấp thêm chi tiết (ví dụ: Bằng chứng về tính nguyên thủy sẽ được mã hóa như thế nào?). Cảm ơn !
RB

Dù sao tôi cũng nhận ra rằng cũng có một UFA cho ngôn ngữ đó, vì vậy hãy quên nó đi. Phần còn lại của câu trả lời của tôi thì sao?
domotorp

Tôi không chắc là tôi làm theo. Nếu là CFA với k = c , thì điều đó không có nghĩa là chỉ có thể có đường dẫn c cho mỗi từ w , chỉ có điều c trong số chúng sẽ kết thúc ở trạng thái chấp nhận. Các tiểu bang của UFA sẽ là gì? Bạn có thể vui lòng thử chính thức hóa nó? Mk=ccwc
RB

Có bạn đi, tôi hy vọng bây giờ nó rõ ràng.
domotorp
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.