Giao điểm DFA trong không gian phụ?


25

Giao điểm của hai DFA (tối thiểu) với n trạng thái có thể được tính bằng thời gian và không gian O (n 2 ). Điều này là tối ưu nói chung, vì DFA kết quả (tối thiểu) có thể có n 2 trạng thái. Tuy nhiên, nếu DFA tối thiểu kết quả có các trạng thái z, trong đó z = O (n), nó có thể được tính trong không gian n 2-eps , đối với một số eps không đổi> 0? Tôi sẽ quan tâm đến kết quả như vậy ngay cả đối với trường hợp đặc biệt khi các DFA đầu vào có tính chu kỳ.


3
Ừm ... nếu hai DFA trạng thái n là chu kỳ, thì mỗi D chỉ chấp nhận một tập hợp các từ có độ dài tối đa n, trong trường hợp giao điểm của chúng chỉ là giao điểm của hai biểu đồ chuyển tiếp được gắn nhãn, sẽ có n trạng thái và có thể được tính toán trong thời gian và không gian tuyến tính. Hay tôi đang thiếu một cái gì đó?
Joshua Grochow

4
Có, các DFA theo chu kỳ chỉ chấp nhận một tập hợp các từ hữu hạn. Nhưng có những ví dụ về các DFA tuần hoàn có giao điểm có kích thước n ^ 2. Ví dụ, hãy nghĩ về một DFA chấp nhận các chuỗi có dạng AABC (trong đó ABC là các chuỗi có độ dài k) và một chuỗi chấp nhận các chuỗi có dạng ABCC.
Rasmus Pagh

1
retagging: cs.cc là một chỉ định arxiv, vì vậy các thẻ đã cho không cần tiền tố cs.cc.
Suresh Venkat

Câu trả lời:


15

Câu trả lời là mà không có bất kỳ yêu cầu nào về kích thước của máy tự động. Nó có thể được tính trong không gian O(log2n) ngay cả đối với k DFA trong đó k là hằng số.

Hãy ( i [ k ] ) được k DFAs. Chúng tôi thấy rằng, cho Một 1 , ... , A k , tính toán tối thiểu DFA nhận L ( A 1 ) L ( A k ) có thể được thực hiện trong OAi=(Qi,Σi,δi,zi,Fi)i[k])kA1,,AkL(A1)L(Ak) không gian. Trước tiên chúng tôi chứng minh một số kết quả kỹ thuật.O(log2n)

Định nghĩa 1 : Hãy có hai trạng thái sau đó q r iff w Σ * , q . w F r . w Fq,rqrwΣq.wFr.wF

Bây giờ chúng tôi xem xét tự động được đưa ra bởi xây dựng sản phẩm cartesian cổ điển. Hãy q = ( q 1 , ... , q k )r = ( r 1 , ... , r k ) là tiểu bang của Một .Aq=(q1,,qk)r=(r1,,rk)A

Bổ đề 1 : Quyết định nên là trong NL.qr

Bằng chứng (phác họa): Chúng tôi cho thấy rằng kiểm tra sự không tương đương là bằng NL và sử dụng NL = coNL. Đoán một từ (một lá thư vào thời điểm đó) sao cho q . w là trạng thái cuối cùng và r . w không. Điều này có thể đạt được bằng cách tính q i . w , r i . w trong log-không gian cho i [ k ] và sử dụng thực tế là q là cuối cùng khi và chỉ khi q iF iwΣq.wr.wqi.w,ri.wi[k]qqiFii[k]wqrw

Bổ đề 2 : Quyết định xem có (có thể truy cập) trong NL hay không.q

Proof (sketch): Đoán đường dẫn (poly-size) từ đến ( ).q i i [ k ]ziqii[k]

Định nghĩa 2 : Xét các trạng thái của theo thứ tự từ điển. Xác định là trạng thái có thể truy cập đầu tiên và trạng thái có thể truy cập đầu tiên sau không tương đương với bất kỳ trạng thái nào trước đó. Chúng tôi định nghĩa là duy nhất sao cho .s ( 1 ) s ( i ) s ( i - 1 ) c ( q ) i q s ( i )As(1)s(i)s(i1)c(q)iqs(i)

Bổ đề 3 : có thể được tính trong không gian .O ( log 2 n )s(i)O(log2n)

Proof (sketch): Định nghĩa 2 mang lại một thuật toán. Chúng tôi sử dụng quầy để lặp đi lặp lại qua các tiểu bang. Đặt và là trạng thái hiện tại. Ở mỗi tiểu bang, chúng tôi sử dụng bổ đề 2 để xác minh xem có thể truy cập được không. Nếu đúng như vậy, chúng tôi lặp lại trên mọi trạng thái trước đó và chúng tôi xác minh xem có bất kỳ trạng thái nào tương đương với . Nếu không có gì, chúng ta tăng và đầu ra nếu . Mặt khác, chúng tôi lưu trữ là và chúng tôi tiếp tục. Vì chúng tôi chỉ lưu trữ một số lượng bộ đếm không đổi và các thử nghiệm của chúng tôi có thể được thực hiện trongj 0 q q q jkj0qqqjj = i q s ( j ) NL DSPACE ( log 2 n )qj=iqs(j)NLDSPACE(log2n), điều này hoàn thành bằng chứng.

Hệ quả 1 : có thể được tính trong không gian .O ( log 2 n )c(q)O(log2n)

Định lý : Tối thiểu hóa có thể được thực hiện trong không gian .O ( log 2 n )AO(log2n)

Bằng chứng (phác họa): Đặtlà lớn nhất sao cho được định nghĩa (nghĩa là số lớp của ). Chúng tôi đưa ra một thuật toán xuất ra một máy tự động trong đói s ( i ) A ' = ( Q ' , Σ , δ ' , z ' , F ' )1m|Q0||Q1|is(i)A=(Q,Σ,δ,z,F)

  • Q={s(i):i[m]} ;
  • F={qQ:qiFii[k]} ;
  • q = ( z 0 , ... , z k )z=s(c(q)) trong đó .q=(z0,,zk)

Bây giờ chúng tôi chỉ cho bạn cách tính . Với mọi , hãy tính và xuất ra quá trình chuyển đổi . Theo bổ đề 3 và hệ quả 1, thuật toán này chạy trong không gian . Có thể kiểm tra rằng là tối thiểu và . i [ m ] , một Σ q s ( iδi[m],aΣ( s ( i ) , một , s ( c ( q ) ) ) O ( log 2 n ) Một ' L ( A ' ) = L ( A )qs(i).a(s(i),a,s(c(q)))O(log2n)AL(A)=L(A)


3
Thuật toán đẹp! Đây là một cách hơi khác nhau để xem xét thuật toán này. Cốt lõi của nó là việc giảm thiểu trạng thái của bất kỳ DFA nào có thể được thực hiện trong thời gian đa thức và không gian . Sau đó, có thể dễ dàng xây dựng một số DFA đại diện cho giao điểm trong không gian logarit (do đó trong thời gian đa thức và không gian ) và chúng ta có thể kết hợp hai hàm tính toán trong thời gian đa thức và không gian (theo cách tương tự để soạn hai lần giảm không gian logarit), thu được toàn bộ thuật toán trong thời gian đa thức và không gian . O ( log 2 n ) O ( log 2 n ) O ( log 2 n )O(log2n)O(log2n)O(log2n)O(log2n)
Tsuyoshi Ito

2
Tôi chỉ thấy câu trả lời này ... Tôi không hiểu tại sao thuật toán chạy trong không gian polytime và cùng một lúc. Có, , nhưng không biết nếu - đó là, chúng ta có thể có được một thuật toán chạy trong polytime và chúng ta có thể có một thuật toán khác chạy trong không gian , nhưng tôi không biết cách giải quyết các vấn đề trong không gian polytime và bằng một thuật toán. N L P D S P A C E [ log 2 n ] N L T I S P [ n O ( 1 ) , log 2 n ] O ( log 2 n ) N L O ( log 2 n )O(log2n)NLPDSPACE[log2n]NLTISP[nO(1),log2n]O(log2n)NLO(log2n)
Ryan Williams

Bạn nói đúng, tôi cũng không biết. Tôi đã đăng bài này từ lâu, vì vậy tôi không chắc tại sao tôi lại viết nó theo cách này, nhưng có lẽ tôi có nghĩa là "thời gian đa thức hoặc O (log² n)". Tôi sẽ chỉnh sửa nó vì nó gây hiểu nhầm. Cảm ơn bạn!
Michael Blondin

14

Dick Lipton và các đồng nghiệp gần đây đã giải quyết vấn đề này và Lipton đã viết về nó ở đây:

http://rjlipton.wordpress.com/2009/08/17/on-the-intersection-of-finite-automata/

Dường như làm tốt hơn O (n ^ 2) ngay cả đối với trường hợp rất đặc biệt là xác định xem giao lộ DFA có xác định ngôn ngữ trống hay không.
Bài viết đưa ra những hậu quả phức tạp dẫn đến việc xử lý thuật toán được cải thiện nhiều không chỉ 2 DFA trong giao lộ, mà cả những con số lớn hơn.


1
và những gì về giới hạn dưới?
Marcos Villagra

1
Chỉ cần làm rõ các câu hỏi: Tôi rất vui khi dành thời gian O (n ^ 2) (hoặc thậm chí là n ^ O (1)) để cải thiện không gian bị ràng buộc.
Rasmus Pagh

13

Nếu bạn được cung cấp k DFA (k là một phần của đầu vào) và muốn biết liệu giao điểm của chúng có trống không, thì vấn đề này nói chung là PSPACE hoàn chỉnh:

Dexter Kozen: Giới hạn thấp hơn cho các hệ thống bằng chứng tự nhiên FOCS 1977: 254-266

Có lẽ nếu bạn nghiên cứu kỹ bằng chứng này (và các công trình tương tự của Lipton và các đồng tác giả của anh ấy), bạn có thể tìm thấy một số không gian bị ràng buộc thấp hơn ngay cả đối với k cố định.


Cảm ơn con trỏ này. Tôi đoán rằng điều này có thể có thể dẫn đến một không gian Omega (1) bị ràng buộc thấp hơn trên không gian bổ sung cần thiết, ngoài đầu vào. Nhưng nó có thể dẫn đến một không gian siêu tuyến tính bị ràng buộc thấp hơn không?
Rasmus Pagh

1
@ user124864 Cho mỗi DFA với trạng thái, mỗi máy tự động của sản phẩm sẽ có trạng thái. Bây giờ, có hai thủ thuật bạn có thể làm để giảm kích thước của nó. Đầu tiên là bạn chỉ cần xem xét thành phần có thể tiếp cận của biểu đồ sản phẩm. Thứ hai, bạn có thể giảm thiểu DFA sản phẩm. Vào cuối ngày, việc tìm ra ngôn ngữ nào được công nhận bởi sản phẩm tự động này là khó. n n kknnk
Michael Wehar

1
@ user124864 Thậm chí chỉ cần cố gắng xác định xem sản phẩm DFA có nhận ra ngôn ngữ không trống không là khó. Đây là vấn đề không giao nhau. Nói một cách khó khăn, ý tôi là đó là hoàn thành theo nghĩa mạnh mẽ. XNL
Michael Wehar

1
@ user124864 Nếu bạn có thể giải quyết nó trong thời gian ngắn hơn , thì chúng tôi sẽ nhận được các thuật toán nhanh hơn cho các vấn đề hoàn chỉnh của PSPACE. Nó không thể giải được trong không gian nhị phân không xác định . Không biết liệu chúng ta có thể giải quyết nó trong không gian nhị phân xác định ít hơn không. Không biết liệu chúng ta có thể giải quyết nó trong thời gian đa thức xác định đồng thời và không gian nhị phân cho bất kỳ hàm (làm như vậy sẽ cải thiện định lý Savitch). o ( 1 ) k log ( n ) k 2 log 2 ( n ) f ( k ) log 2 ( n ) fnko(1)klog(n)k2log2(n)f(k)log2(n)f
Michael Wehar

1
@ user124864 Lưu ý: chúng tôi có cả hai điều sau đây. (1) Đánh bại thời gian xác định hàm ý các thuật toán xác định nhanh hơn cho các vấn đề hoàn chỉnh PSPACE và (2) đánh bại thời gian không xác định ngụ ý các thuật toán không xác định nhanh hơn cho các vấn đề hoàn chỉnh PSPACE. n knknk
Michael Wehar

7

Cho hai automata , chấp nhận các ngôn ngữ hữu hạn (acyclic automata), độ phức tạp trạng thái của là trong (1) . Kết quả này cũng đúng với các DFA đơn nhất (không nhất thiết phải theo chu kỳ) (2) . Tuy nhiên, dường như bạn đang nói về không gian cần thiết để tính toán giao điểm của hai automata. Tôi không thấy cách xây dựng cổ điển sử dụng sản phẩm của Cartesian sử dụng không gian . Tất cả bạn cần là một số lượng liên tục của bộ đếm kích thước logarit. Khi bạn tính toán hàm chuyển đổi cho trạng thái mới bạn chỉ phải quét đầu vào mà không cần tìm kiếm bất kỳ dữ liệu nào được tạo trước đó.B L ( A ) L ( B ) Θ ( | A || B | ) O ( n 2 ) ( q , r )ABL(A)L(B)Θ(|A||B|) O(n2)(q,r)

Có lẽ bạn muốn đầu ra tự động tối thiểu? Nếu đây là trường hợp, thì tôi không biết liệu nó có thể đạt được hay không. Sự phức tạp trạng thái của giao điểm đối với các ngôn ngữ hữu hạn dường như không đáng khích lệ. Tuy nhiên, các DFA đơn nhất có cùng độ phức tạp trạng thái và tôi nghĩ nó có thể đạt được với automata như vậy. Bằng cách sử dụng kết quả từ (2) , bạn có thể nhận được kích thước chính xác của máy tự động nhận ra giao lộ. Kích thước này được mô tả bằng chiều dài của đuôi và chu kỳ, do đó, chức năng chuyển đổi có thể được tính toán dễ dàng với rất ít không gian do cấu trúc được mô tả hoàn toàn bởi hai kích thước đó. Sau đó, tất cả những gì bạn phải làm là tạo tập hợp các trạng thái cuối cùng. Gọi là số trạng thái trong máy tự động kết quả, sau đó cho tất cả , trạng thái1 i n i a i A Bn1ini là trạng thái cuối cùng nếu được cả và chấp nhận . Thử nghiệm này có thể được thực hiện với ít không gian.aiAB


1
Có, tôi quan tâm đến máy tự động tối thiểu, hoặc ít nhất là máy tự động có kích thước tương tự. Cảm ơn các con trỏ đến các DFA đơn nhất. Tuy nhiên, điều này dường như không giúp được gì nhiều cho trường hợp chung.
Rasmus Pagh
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.