{www | ...} 문맥이 없습니까?


12

{ w w w Σ }{wwwΣ} 의 보수 는 문맥이없는 것으로 잘 알려져있다 . 그러나 { w w w w Σ }{wwwwΣ} 의 보완은 어떻습니까?


1
나는 이것이 P. Dömösi, S. Horváth, M. Ito, L. Kszonyi, M. Katsura의 정리 4라는 것을 발견했습니다. 기본 단어로 구성된 공식 언어. link.springer.com/chapter/10.1007/3-540-57163-9_15
domotorp

답변:


11

아직도 CFL은 고전적 증거의 적응과 함께 믿습니다. 여기 스케치가 있습니다.

고려 L = { X에서 의 Y , Z를 : | x | = | y | = | z | ( x y y z ) }L={xyz:|x|=|y|=|z|(xyyz)} , 이것은길이가 0 mod 3이 아닌 { w w w }{www} 의 보수입니다.03 제거 된 .

하자 L ' = { u는 v에 : | u | 3 | v | 3 0 u 2 | u | / 3v | v | / 3 }L={uv:|u|3|v|30u2|u|/3v|v|/3} . 분명히 L 'L 는 CFL입니다. 위치 p를p 추측하고 그 후에 uup / 2로p/2 끝나는 것을 고려할 수 있기 때문 입니다. 우리는 L = L 'L=L 임을 보여준다 .

  • L L 'LL : w = x y z L로w=xyzL 하자. x py p 와 같은 pp 가 있다고 가정합니다. 그런 다음 쓰기 U를 에 대한 3 P / 2 첫 번째 문자 w , 그리고 V 나머지. 당연히 u 2 | u | / 3 =xpypu3p/2wv x pu2|u|/3=xp . 이제 vv|v|/3 는 무엇인가 | v | / 3 ? 먼저:

| v | / 3 = ( | w |3 p / 2 ) / 3 = | | / 3 p / 2.

|v|/3=(|w|3p/2)/3=|w|/3p/2.

따라서 ww 에서 위치는 다음과 같습니다. | u | + | v | / 3 = 3 p / 2 + | | / 3 p / 2 = | | / 3 + P ,

|u|+|v|/3=3p/2+|w|/3p/2=|w|/3+p,
환언하거나, 위치 Pp 에서 Yy . 이것은 u 2 | u | / 3 = x py p = v| v | / 3u2|u|/3=xpyp=v|v|/3 .

만약 Y PZ의 Pypzp 후하자 u는u 먼저 32 (|W|/3+P)32(|w|/3+p)의 문자ww, 그래서U2| u| /32 | u | / 3YP와이; vV는 나머지w입니다. 그런 다음 : | u| +| v| /3=2| | /3+P

| u | + | v | / 3=2 | | / 3+p
따라서 유사하게,V| v| /3=zpV| v | / 3= z.

  • L 'L'L : 이전 과정을 반대로합니다. w = u v L 'w=uvL 이라고하자. p = 2p=2|u|/3 쓰기 | u | / 3 . 그런 다음 : p + | | / 3 = 2 | u | / 3 + | U V | / 3 = | u | + | v | / 3.
    p+|w|/3=2|u|/3+|uv|/3=|u|+|v|/3.
    따라서 w p = u 2 | u | / 3 v | v | / 3 = w p + | | / 3wp=u2|u|/3v|v|/3=wp+|w|/3 ,wLwL(wwxxxxxx형식이므로모든p에대해 w p = w p + | w | / 3wp=wp+|w|/3 이어야합니다).p

2
와우, 믿어지지 않는다! 마지막 줄의 의미 ( '마지막 비트')가 무엇인지 알 수없는 경우와 같은 경우에 귀하의 주장에 대한 모든 세부 사항을 따랐다 고 주장하지 않으며 | | / 3 < p / 2 이지만 솔루션은 결국 작동합니다. 주요 트릭을 3 a + 3 b = 2 a + ( b a ) + 2 a + 2 b 로 요약합니다 . 비슷한 속임수는 모든 L r = { w r|w|/3<p/23a+3b=2a+(ba)+2a+2b }Lr={wr} . 나는 여부를 궁금해 L은 ' = { X , Y , Z를 : | 엑스 | = | y | = | z | ( x y ) } 에 컨텍스트가 없는지 여부가 있습니다. L={xyz:|x|=|y|=|z|(xy)}
domotorp

1
@domotorp: Cheers! Alright, "the last bit" was unnecessary, thanks! As for "the case when |w|/3<p/2|w|/3<p/2", I'm not sure where you mean that. Did I miss something? As for your LL, I wondered the same doing this "proof"! Not sure yet :)
Michaël Cadilhac

2
Oh, my bad, p/2|w|/3p/2|w|/3 always holds!
domotorp

아마도 문제는 아니지만 p 가 홀수 일 수 있으므로 사례를 처리해야합니다. | u | p 가 홀수 일 때 = 3 p / 2 ( ? ) p|u|=3p/2(?)p
Marzio De Biasi

@MarzioDeBiasi :이이 :-) 스케치입니다 정확히 왜 그래, 그건
의 Michaël Cadilhac

10

PDA를 사용 하여이 문제를 해결하는 방법은 다음과 같습니다. 제 생각에는 직관적으로 더 명확합니다.

워드 x는x 양식이 아닌 w는 w wwww 중 하나 IFF (I) | x | easy 0|x|≢0 (mod 3), 점검하기 쉬움, 또는 (ii) 발생 하는 해당 기호 b 와 다른 입력 기호 aa 가 있습니다 | | 나중에 위치. b|w|

We use the usual trick of using the stack to maintain an integer tt by having a new "bottom-of-stack" symbol ZZ, storing the absolute value |t||t| as the number of counters on the stack, and sgn(tt) by the state of the PDA. Thus we can increment or decrement tt by doing the appropriate operation.

The goal is to use nondeterminism to guess the positions of the two symbols you are comparing, and use the stack to record t:=|x|3dt:=|x|3d, where dd is the distance between these two symbols.

We accomplish this as follows: increment tt for each symbol seen until the first guessed symbol aa is chosen, and record aa in the state. For each subsequent input symbol, until you decide you've seen bb, decrement tt by 22 (11 for the input length and 33 for the distance). Guess the position of the second symbol bb and record whether abab. Continue incrementing tt for subsequent input symbols. Accept if t=0t=0 (detectable by ZZ at top) and abab.

The nice thing about this is that it should be completely clear how to extend this to arbitrary powers.


2
Indeed, very neat!
domotorp

1
Ah, much nicer indeed :-)
Michaël Cadilhac

4

Just a different ("grammar oriented") perspective to prove that the complement of {wk} is CF for any fixed k using closure properties.

First note that in the complement of {wk} there is always i such that wiwi+1. We focus on w1w2 and start with a simple CF grammar that generates:

L={a00...0w1b00...0w2...000...0wk|wi|=n}={a0n1b0n(k1)1}

E.g. for k=3, we have L={ab0,a0b000,a00b00000,...}, GL={Sab0|aX00,X0X00|0b0}

Then apply closure under inverse homomorphism, and union:

First homomorphism: φ(1)a,φ(0)b,φ(1)0,φ(0)0

Second homomorphism: φ(0)a,φ(1)b,φ(1)0,φ(0)0

L=φ1(L)φ1(L) is still context free

Apply closure under cyclic shifts to L to get the set of strings of length kn not of the form wk:

L=Shift(L)={uuwk|u|=kn}.

Finally add the regular set of strings whose length is not divisible by k in order to get exactly the complement of {wk}:

L{{0,1}nnmodk0}={uuwk}

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.