Trong phần đầu tiên, chúng tôi hiển thị một thuật toán theo cấp số nhân để quyết định tính tuần hoàn. Trong phần thứ hai, chúng tôi chỉ ra rằng vấn đề này là coNP-hard. Trong phần thứ ba, chúng tôi chỉ ra rằng mọi ngôn ngữ hình tròn là sự kết hợp của các ngôn ngữ có dạng (ở đây có thể là biểu thức chính quy trống); công đoàn không nhất thiết phải rời rạc. Trong phần thứ tư, chúng tôi trình bày một ngôn ngữ hình tròn không thể được viết dưới dạng tổng tách rời . r ∑ r + ir+r∑r+i
Chỉnh sửa: Kết hợp một số chỉnh sửa theo nhận xét của Mark. Cụ thể, tuyên bố trước đây của tôi rằng tính tuần hoàn là coNP-Complete hoặc NP-hard được sửa chữa.
Chỉnh sửa: Đã sửa dạng bình thường từ thành . Trưng bày một ngôn ngữ "vốn mơ hồ". ∑ r + i∑r∗i∑r+i
Tiếp tục bình luận của Peter Taylor, đây là cách quyết định (cực kỳ kém hiệu quả) liệu một ngôn ngữ có được thông tư theo DFA hay không. Xây dựng một DFA mới có các trạng thái là -tuples của các trạng thái cũ. DFA mới này chạy song song bản sao của DFA cũ.nnn
Nếu ngôn ngữ không phải là hình tròn thì sẽ có một từ mà nếu chúng ta chạy nó qua DFA nhiều lần, bắt đầu với trạng thái ban đầu là , thì chúng ta sẽ nhận được các trạng thái sao cho chấp nhận nhưng một trong những từ khác những cái đó không được chấp nhận (nếu tất cả chúng đều chấp nhận thì chuỗi phải quay vòng để luôn ở trong ngôn ngữ). Nói cách khác, chúng tôi có một đường dẫn từ đến trong đó đang chấp nhận nhưng một trong những người khác không chấp nhận. Ngược lại, nếu ngôn ngữ là hình tròn thì điều đó không thể xảy ra.s 0 s 1 , ... , s n s 1 s 0 , ... , s n w * s 0 , ... , s n - 1 s 1 , ... , s n s 1ws0s1,…,sns1s0,…,snw∗s0,…,sn−1s1,…,sns1
Vì vậy, chúng tôi đã giảm vấn đề xuống một thử nghiệm khả năng tiếp cận được định hướng đơn giản (chỉ cần kiểm tra tất cả các tuples "xấu" có thể ).n
Vấn đề về tính tuần hoàn là coNP-hard. Giả sử chúng ta đã đưa ra một ví dụ 3SAT với biến và mệnh đề . Chúng ta có thể giả sử rằng (thêm biến giả) và→ x m C 1 , Nhìn , C m n = m nnx⃗ mC1,…,Cmn=mn là số nguyên tố (nếu không thì tìm một số nguyên tố giữa và 2 n bằng cách sử dụng kiểm tra nguyên hàm AKS, và thêm các biến và mệnh đề giả).n2n
Hãy xem xét ngôn ngữ sau: "đầu vào không có dạng trong đó → x i là một phép gán thỏa mãn cho C i ". Thật dễ dàng để xây dựng một DFA O ( n 2 ) cho ngôn ngữ này. Nếu ngôn ngữ không phải là hình tròn thì có một từ w trong ngôn ngữ, một số sức mạnh không có trong ngôn ngữ. Vì các từ duy nhất không có trong ngôn ngữ có độ dài n 2 , w phải có độ dài 1 hoặc n . Nếu nó có chiều dàix⃗ 1⋯x⃗ nx⃗ iCiO(n2)wn2w1n , hãy xem xét w n thay thế (nó vẫn ở trong ngôn ngữ), do đó w nằm trong ngôn ngữ và w n không có trong ngôn ngữ. Thực tế là w n không có trong ngôn ngữ có nghĩa là w là một nhiệm vụ thỏa mãn.1wnwwnwnw
Ngược lại, bất kỳ bài tập thỏa mãn nào cũng chuyển thành một từ chứng minh tính không tuần hoàn của ngôn ngữ: bài tập thỏa mãn thuộc về ngôn ngữ nhưng w n thì không. Do đó, ngôn ngữ là vòng tròn nếu trường hợp 3SAT không thỏa mãn.wwn
Trong phần này, chúng tôi thảo luận về một hình thức bình thường cho các ngôn ngữ tròn. Xem xét một số DFA cho một ngôn ngữ hình tròn . Một chuỗi C = C 0 , ... là thực nếu C 0 = s (tình trạng ban đầu), tất cả các tiểu bang khác được chấp nhận, và C i = C j ngụ ý C i + 1 = C j + 1 . Do đó, mọi trình tự thực cuối cùng là định kỳ và chỉ có nhiều trình tự thực (vì DFA có nhiều trạng thái hữu hạn).LC=C0,…C0=sCi=CjCi+1=Cj+1
Chúng tôi nói rằng một từ hoạt động theo C nếu từ đó đưa DFA từ trạng thái sang trạng thái c i + 1 , cho tất cả i . Tập hợp tất cả các từ như vậy E ( C ) là thông thường (đối số tương tự như phần đầu tiên của câu trả lời này). Lưu ý rằng E ( C ) là một tập hợp con của L .cici+1iE(C)E(C)L
Cho một chuỗi , xác định C k là dãy C k ( t ) = C ( k t ) . Trình tự C k cũng có thật. Vì chỉ có nhiều trình tự C k khác nhau , nên ngôn ngữ D ( C ) là liên kết của tất cả E ( C k ) cũng đều đặn.CCkCk(t)=C(kt)CkCkD(C)E(Ck)
Chúng tôi cho rằng có thuộc tính là nếu x , y ∈ D ( C ) thì x y ∈ D ( C ) . Thật vậy, giả sử x ∈ C k và y ∈ C l . Khi đó x y ∈ C k + l . Do đó D ( C ) = D ( C ) + có thể được viết dưới dạng rD(C)x,y∈D(C)xy∈D(C)x∈Cky∈Clxy∈Ck+lD(C)=D(C)+ cho một số biểu thức chính quy r .r+r
Mỗi từ trong ngôn ngữ tương ứng với một số chuỗi C thực , tức là tồn tại một chuỗi C thực sự mà w hành xử theo. Do đó L là liên kết của D ( C ) trên tất cả chuỗi C thực . Do đó, mọi ngôn ngữ hình tròn đều có biểu diễn dạng ∑ r + i . Ngược lại, mọi ngôn ngữ như vậy là thông tư (tầm thường).wCCwLD(C)C∑r+i
Hãy xem xét các hình tròn ngôn ngữ của tất cả các từ trên một , b có chứa hoặc một số chẵn hoặc một 's hoặc một số chẵn các b ' s (hoặc cả hai). Chúng tôi thấy rằng nó không thể được viết dưới dạng một khoản tiền rời nhau Σ r + i ; bằng "disjoint", chúng tôi có nghĩa là r + i ∩ r + j = ∅ .La,bab∑r+ir+i∩r+j=∅
Nir+i x = a N b N ! x ∈ L x ∈ r + i i x N r + i z = a N ! b N ! y = a N ! b N r + j z i ≠ j x y ∉ LN>maxNix=aNbN!x∈Lx∈r+iixNr+iz=aN!bN!y=aN!bNr+jzi≠jxy∉L . Do đó, đại diện không thể rời rạc.