첫 번째 부분에서는 원형을 결정하기위한 지수 알고리즘을 보여줍니다. 두 번째 부분에서는 이것이 문제가 coNP-hard임을 보여줍니다. 세 번째 부분에서, 우리는 모든 순환 언어가 형식 (여기서 r 은 빈 정규 표현식이 될 수 있음) 의 언어의 합집합임을 보여줍니다 . 노조가 반드시 분리되어 있지는 않습니다. 네 번째 부분에서 우리는 분리 된 합으로 쓸 수없는 순환 언어를 보여 줍니다. ∑ r + i .r+r∑r+i
편집 : Mark의 의견에 따라 일부 수정 사항이 통합되었습니다. 특히, 원형도가 coNP-complete 또는 NP-hard라고 주장한 나의 이전 주장은 수정되었다.
편집 : 정규 형식을 에서 ∑ r + i로 수정했습니다 . "본질적으로 모호한"언어를 전시했습니다.∑r∗i∑r+i
Peter Taylor의 의견에 계속해서, DFA에서 언어가 원형인지 여부를 결정하는 방법은 매우 비효율적입니다. 상태가 이전 상태의 튜플 인 새 DFA를 구성합니다 . 이 새로운 DFA는 이전 DFA의 사본 n 개를 동시에 실행 합니다.nn
언어가 원형이 아닌 경우 다음 단어가 우리가 반복적으로 DFA를 통해 실행하면, 초기 상태로 시작되도록 의 0은 우리가 얻을 상태 의 1 , ... , s의 N 그러한 s의 1은 수용하지만 하나 다른 것 중 하나는 받아들이지 않습니다 (모두 받아들이면 순서 s 0 , … , s n 은 순환해야 w * 는 항상 언어로 표시됩니다). 다시 말해, 우리는 s 0 , … , s n 의 경로를 가지고 있습니다ws0s1,…,sns1s0,…,snw∗ ~ s 1 ,…, s n 여기서 s 1 은 수락하지만 다른 것 중 하나는 수락하지 않습니다. 반대로, 언어가 원형이라면 그럴 수 없습니다.s0,…,sn−1s1,…,sns1
따라서 문제를 간단한 직접 도달 가능성 테스트로 줄였습니다 (가능한 모든 "나쁜" 튜플을 확인하십시오 ).n
순환 성의 문제는 coNP-hard입니다. 변수 → x 및 m 절 C 1 , … , C m 과 함께 3SAT 인스턴스가 있다고 가정 합니다. 우리는 가정 할 수 N = m (더미 변수를 추가)하고 , n은 소수 (그렇지 않으면 사이의 소수를 찾을 수 N 과 2 N AKS의 소수성 테스트를 사용하고 더미 변수와 절을 추가).nx⃗ mC1,…,Cmn=mnn2n
다음 언어를 고려한다 : "입력이 없는 형태의 여기서 → X I 이기 만족 할당 C I ". 이 언어에 대한 O ( n 2 ) DFA를 쉽게 구성 할 수 있습니다. 언어가 원형이 아닌 경우 언어에 단어 w 가 있으며, 그 중 일부는 언어에 있지 않습니다. 언어에없는 단어의 길이는 n 2 이므로 w 의 길이는 1 또는 n 이어야합니다 . 길이가 길 경우x⃗ 1⋯x⃗ nx⃗ iCiO(n2)wn2w1n ,대신 w n (여전히 언어로되어 있음)을 고려하여 w 는 언어이고 w n 은 언어가 아닙니다. 사실 승 , n은 언어 수단 아니라고 승 인 할당을 만족.1wnwwnwnw
반대로, 만족스러운 할당은 언어의 비순환 성을 증명하는 단어로 변환됩니다. 만족스러운 할당 는 언어에 속하지만 w n 은 그렇지 않습니다. 따라서 3SAT 인스턴스가 만족스럽지 않으면 언어는 원형입니다.wwn
이 부분에서는 순환 언어의 일반적인 형식에 대해 설명합니다. 순환 언어 대한 일부 DFA를 고려하십시오 . 시퀀스 C = C 0 , ... 이다 실제 경우 C 0 = S (초기 상태), 다른 상태는 수용되고, C가 나는 = C의 j는 의미 C I + 1 = C의 J + 1 . 따라서 모든 실제 시퀀스는 결국 주기적이며 DFA에는 유한하게 많은 상태가 있기 때문에 실제 시퀀스는 유한하게 만 존재합니다.LC=C0,…C0=sCi=CjCi+1=Cj+1
우리는 단어를 말할 동작합니다가에 따라 C 단어 상태에서 DFA 걸리는 경우 상태로 c를 내가 + 1 모두, 내가 . 그러한 모든 단어 E ( C ) 의 집합 은 규칙적입니다 (논쟁은이 답변의 첫 부분과 유사합니다). 참고 E ( C는 ) 의 서브 세트이고 L이 .cici+1iE(C)E(C)L
실제 시퀀스 감안 정의 C의 (k)를 순차로 C를 K ( t ) = C ( k 값 t ) . 시퀀스 C k 도 실수입니다. 단지 유한 한 여러 시퀀스가 있기 때문에 C의 K , 언어 D ( C ) 모두의 합집합 E ( C에서 k는 ) 정규이다.CCkCk(t)=C(kt)CkCkD(C)E(Ck)
우리는 가 x , y ∈ D ( C ) 이면 x y ∈ D ( C ) 의 속성을 가진다고 주장합니다 . 실제로, x ∈ C k 및 y ∈ C l 이라고 가정하십시오 . 그런 다음 x y ∈ C k + l 입니다. 따라서 D ( C ) = D ( C ) + 는 r 형식으로 쓸 수 있습니다.D(C)x,y∈D(C)xy∈D(C)x∈Cky∈Clxy∈Ck+lD(C)=D(C)+ 일부 정규 표현식에 대한 연구 .r+r
언어의 모든 단어 는 실제 시퀀스 C에 해당합니다 . 즉, w가 동작 하는 실제 시퀀스 C 가 있습니다. 따라서 L 은 모든 실제 시퀀스 C에 대해 D ( C ) 의 합집합입니다 . 따라서 모든 원형 언어는 ∑ r + i 형식으로 표현 됩니다. 반대로, 그러한 모든 언어는 (사소한) 원형입니다.wCCwLD(C)C∑r+i
짝수 또는 a 또는 짝수의 b 또는 둘 다를 포함 하는 a , b 에 대한 모든 단어 의 순환 언어 을 고려하십시오 . 우리는 그것이 불연속 합계로 쓰여질 수 없음을 보여줍니다. ∑ r + i ; "비 연속"은 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 . 따라서 표현은 분리 될 수 없습니다.