해밍 거리가 2 이상인 문맥 길이가 같은 동일한 길이의 단어 쌍의 언어입니까?


26

다음 언어 컨텍스트는 무료입니까?

L={uxvyu,v,x,y{0,1}+,|u|=|v|,uv,|x|=|y|,xy}

sdcvvc에 의해 지적 된 바와 같이,이 언어의 단어는 또한 해밍 거리가 2 이상인 동일한 길이의 두 단어의 연결로 설명 될 수있다.

나는 그것이 컨텍스트가 없다고 생각하지만 그것을 증명하는 데 어려움을 겪고 있습니다. 나는이 언어를 일반 언어 (예 : ) 와 교차하려고 시도한 후 펌핑 보조 및 \ 또는 동형을 사용했지만 항상 특성화하고 쓰기에 너무 복잡한 언어를 얻습니다. 내려가는. 0101


문자열 펌핑하려고 했습니까 ? 0u1x1u0x
Pål GD

예, 그러나이 문자열을 언어에서 펌핑하는 데 실패했습니다 (가능하지 않다는 것을 의미하지는 않습니다.)
Robert777

1
@ PålGD,1u01x01u01x0
vonbrand

8
이 언어는 로 쓸 수 있습니다 여기서 는 해밍 거리입니다. 2를 1로 바꾸면 컨텍스트가 없지만 ( cs.stackexchange.com/questions/307 ) 사용 된 트릭은 작동하지 않습니다. 개인적으로 나는 그것이 맥락이없는 것이 아니라고 내기하고 있습니다. {uv:|u|=|v|,d(u,v)2}d
sdcvvc 2016 년

1
@ sdcvvc : 맞습니다. 하나는 를 로 분할 하여 다른 비트 중 하나는 있고 다른 하나는 있습니다. 나는 정정되었다. uuxux
András Salamon 2016 년

답변:


7

참고 [2019-07-30] 증거가 잘못되었습니다 ... 질문이 소리보다 복잡합니다.

여기서 실패한 시도는 또 다른 아이디어입니다.

을 일반 언어 과 교차 하면 CF 언어가됩니다.LLreg=0101010

(정확히 4 1 인 문자열)을 사용하면 더 많은 행운을 얻을 수 있습니다 .Lreg=010101010

하자 비공식적으로, 절반이 정확히 포함하도록이 두 반쪽으로 분할 될 수 있다면, 또는 두 반쪽 두 포함 의 위치는 일치하지 않습니다.L1=LLregwL1{0,1,3,4} 1s1

한다고 가정 L1 CF이고하자 G 촘스키 정규형의 문법, 그리고하자

w=uv=0a10b10c10d10eL1

우리는 |u|=|v|(길이조차도) 및 d(u,v)2

w 의 4 개의 1 이 생성 될 수있는 방식으로주의를 제한 하면 그림 1의 상단에 3 개의 경우가 표시됩니다. 그림 1의 중앙 부분은 첫 번째 경우를 보여줍니다 (그러나 다른 것은 유사합니다). .

여기에 이미지 설명을 입력하십시오
그림 1 (전체 사진은 여기에서 다운로드 할 수 있습니다 )

우리는 선택할 경우 = E , C = 2B를 , D » 우리 1S 두 쌍의 제로 독립적 펌핑 (도면에서 빨간색 노드)이어야 참조 : 특히, 충분히 큰 대 B » , 내부 하위 트리에 중복 된 비 터미널 노드 (그림 2의 노드 X) 또는 첫 번째 또는 두 번째 1 (그림 2의 노드 Y) 경로의 하위 시퀀스가 ​​반복됩니다. 참고 그림 2는 단순 조금이라고 더 자세한 비단 둘 사이의 노드가있을 수 X 들, 또한 둘 사이에 Y ( Y .a=e,c=2ab,dabaXYsY...Zi...Y 이지만Zi 를 사용하면 처음 1)의 오른쪽에 0 만 생성됩니다.

여기에 이미지 설명을 입력하십시오
그림 2

따라서 임의의 a=e=k,c=2a 고정한 다음 첫 번째와 두 번째 1 사이의 0 시퀀스에서 독립적으로 펌핑 가능한 노드를 얻을 수 있을만큼 충분히 큰 b 를 선택 합니다. 세 번째와 네 번째 1 사이의 0의 시퀀스에 대해 d = b를 선택할 수 있습니다 ! + b . 그러나 0 b 는 독립적으로 펌핑 가능하므로 p b 펌핑 가능한 하위 문자열 y가 있습니다 . 즉 b = x y z , |1d=b!+b
0bpbyb=xyz,|y|=p,|x|0,|z|0xyiz=b!+b . 우리가 얻는 문자열은 다음과 같습니다.

w=0k10b!+b102k10b!+b10k

그러나 wL1 . 따라서 L1 은 CF가 아니며 마지막으로 L 은 CF가 아닙니다.

증거가 정확하면 (???) 모든 언어로 확장 할 수 있습니다. Lk={uv:|u|=|v|,d(u,v)k},k2


바운티가 우리가이 증거를 실제로 확인할 수 있기 전에 만료 될 것이라 두려워합니다. 따라서 다음 4 시간 내에 중대한 정보가 나오지 않으면 지금까지 최선의 시도가 될 것입니다.
jmite

@jmite : 이전과 같은 잘못된 시도 일 가능성이 높다고 걱정하지 마십시오 (사소한 오류를 발견하기 전에 약 30 분 동안 지속됨) :-) :-)
Vor

왜 사건이 구별 되는가? 문법의 가지들은 단어의 절반과 관련이 없습니다. 그러나 나는 그것이 중요하지 않다고 생각한다. 증거가 작동하면이 경우 구별이 필요하지 않습니다. 가정 된 문법을보고 렘마 대신 펌핑 렘마 의 증거 를 사용하는 것은 좋은 트릭입니다 (더 자주 수행해야 함). 나는 하나의 (진짜) 관심을 가지고 : 당신의 하위 펌프 경우 , 당신이 얻을 0 B + P를 ( - 1 ) ; 나는 당신이 어떻게 b + b에 도착하는지 보지 못합니다 ! . 그것이 증거에 해를 끼칠 것이라고 생각하지 말고 더 잘 점검하십시오. 또한 일부 표기법 (및 오타)을 교정 할 수도 있습니다.0b0b+p(i1)b+b!
Raphael

1
@Raphael : 댓글 주셔서 감사합니다. 아마도 내가 틀렸지 만 목표 길이 로 선택하면 ! 그때마다 펌핑 길이에 대한 P 문자열 0 B가 분해 될 수있는 0 , X , Y , Z , ( | X , Y , Z | = B , | Y | = P B ) 및 펌핑 될 수있는 X , Y Z = B + B ! , 실제로 귀하의 예에서 p는 반드시 b를 나눕니다 !b+b!p0b0xyz,(|xyz|=b,|y|=pb)xyiz=b+b!b!그래서이 인 하는 P ( I - 1 ) = B ! 그러나 원래 문자열 길이는 b 이므로 총 펌핑 길이는 | x y ( i - 1 ) z | = b + b ! . 나는 Ogden의 명예를 사용하는 몇 가지 연습에서 기억합니다 ... 이제 그들을 다시 확인하겠습니다. (i1)p(i1)=b!b|xy(i1)z|=b+b!
Vor

@Raphael : ... 나는 증거를 찾지 못했습니다. Zach Tomaszewski의 논문은 의 보완 이 CF ( 질문 참조 ) 임을 증명하는 논문 이므로 아마도 새로운 결과 일 것입니다 (단순하지만); 펌핑-엘레 마 스타일의 정리는 유한 기호의 특정 기호를 포함하는 문자열과 그 사이의 임의 길이의 하위 문자열을 갖는 언어에 대해 도출 될 수있다. Ldup={ww}
Vor

2

@Hendrik Jan (감사합니다)에 의해 반증 된 두 번의 시도가 실패한 후에는 더 성공하지 못한 또 하나의 시도가 있습니다. @Vor는 올바른 경우 동일한 구성이 적용될 결정 론적 CF 언어의 예를 찾았습니다. 이것은 보조 정리의 적용에서 문자열 의 앵커링에서 오류를 식별하는 것을 허용했습니다 . 명예 자체는 잘못한 것처럼 보이지 않습니다. 이것은 너무 단순한 구조입니다. 주석에서 자세한 내용을 참조하십시오.y


언어 에 컨텍스트가 없습니다.L={uxvyu,v,x,y{0,1}{ϵ} , u∣=∣v , uv , x∣=∣y , xy }

특성화 명심하는 것이 도움이된다 여기서 d는 해밍 거리이며 @sdcvvc에서 제안합니다. 생각해야 할 것은 각 반열에서 선택된 두 위치가 해당 기호가 다르다는 것입니다.L={uv:|u|=|v|,d(u,v)2}

그럼 당신은 문자열 고려 그런 내가 < J내가 + j는 심지어입니다. 두 1 사이의 어느 곳에서나 ux 를 자르면 언어 L로 명확합니다 . 우리는 그 문자열을 1 사이의 첫 부분에 펌핑 하여 언어가 아닌 10 j 10 j 가되도록하고 싶습니다 .10i10ji<ji+jux10j10j

우리는 먼저 사용하려고 오그 덴의 보조 정리 펌핑 보조 정리와 비슷하지만, 적용 , 문자열에 표시됩니다 이상의 식별 기호를 , p는 표시 기호 펌핑 길이 인 (그러나 또한 펌프 수 있기 때문에 보조 정리는 더 펌프 수 있습니다 표시되지 않은 기호). 펌핑 표시 길이 p 는 언어에만 의존합니다. 이 시도는 실패하지만 실패는 힌트입니다.ppp

그런 다음 를 선택 하고 i 0의 첫 번째 시퀀스에 기호를 표시 합니다. 우리는 두 개의 1 중 어느 것도 펌프에 들어 가지 않을 것임을 알고 있습니다. 펌프하지 않고 한 번만 펌핑 할 수 있기 때문입니다 (지수 0). 1을 펌핑하면 언어에서 벗어날 수 있습니다.i=pi

그러나 우리는 두 번째 1의 양쪽에서 빠르거나 오른쪽에서 더 빠르게 펌핑 할 수 있으므로 두 번째 1은 문자열의 중간을 가로 지르지 않습니다. 또한 Ogden의 기본 정리 는 펌핑되는 것의 크기에 대한 상한을 고정하지 않으므로 펌핑을 구성하여 스트링의 중간을 정확히 오른쪽으로 1을 얻을 수는 없습니다.

우리는 이러한 어려움을 처리 할 수있는 수정 된 버전의 보조 정리 (여기서 Nash 's Lemma)를 사용합니다.

우리는 먼저 정의가 필요합니다 (문헌에 다른 이름이있을 수 있지만 어떤 도움을 환영하는지 모르겠습니다). 문자열 라고가 될 소거 문자열의 V 가로부터 얻어진다 IFF에 V 의 심볼 지워서 V . 우리는 u v 를 주목할 것 입니다.uvvvuv

내쉬의 보조 정리는 : 경우 컨텍스트가없는 언어는, 두 개의 숫자가 존재 P > 0Q를 > 0 이되도록 모든 문자열에 대한 w 적어도 길이의 페이지 에서 L , 및 "표시"의 모든면 페이지 이상 또는 직책 w , 으로 작성 가능 w = u는 X , Y , Z의 문자열 U , X , Y , Z , V가 있는지 등을Lp>0q>0wpLpwww=uxyzvuxyzv

  1. 에는 하나 이상의 표시된 위치가 있습니다.xz
  2. 는 최대 p 개의 표시 위치를 가지며xyzp
  3. 3 개 문자열이있다 X , Y , Z 그러한 x^y^z^
    1. , YY, ZZ,x^xy^yz^z
    2. , 1 | Y | Q1≤∣x^z^∣≤q1≤∣y^∣≤q
    3. 되어 L 마다 대한 I 0 매 대해 J 0 .uxjx^iy^z^izjvLi0j0

증명 : Ogden의 명예 증명 과 유사하지만 문자열 x z에 해당하는 하위 트리 가 제거되어 동일한 비 터미널이 두 배인 경로를 포함하지 않습니다 (이 두 하위 트리의 루트는 제외). 이것은 필연적으로 생성 된 캐릭터의 크기가 제한 X , ZY를 상수에 의해 Q . 문자열이 X JZ J를 들어, J 0 트리 unpruned의 버전에 대응하는, 주로 사용되는 J = 1yxzx^z^y^qxjzjj0j=1 기본 정리가 적용될 때 회계를 단순화합니다.

가장 왼쪽에있는 기호를 0 으로 표시하여 위의 시도를 수정 하지만 두 개의 1 사이에 문자열의 왼쪽 부분을 펌핑하기 위해 2 개의 q 기호 0 이옵니다 . 총 만드는 것이 내가 = P + 2 Q 1의 사이에 0의 (실제로 I = P + Q가 충분한 것입니다 우단 1이 될 수 없다 Z 간단히 제거 할 수있는 것이다).p2qi=p+2qi=p+qz^

남은 것은 선택 하여 두 시퀀스가 ​​동일하도록 정확한 숫자 0을 펌핑 할 수 있도록하는 것입니다. 그러나 지금까지 j 에 대한 유일한 제약 은 i 보다 커야 합니다. 또한 각 펌핑에서 펌핑되는 0의 수가 1과 q 사이임을 알고 있습니다. 따라서 h 는 첫 q 정수의 곱 이라고하자 . j = i + h를 선택합니다 .jjihqj=i+h

따라서 펌핑 증분 무엇이든지 [ 1 , q ]에 있으므로 h를 나눕니다 . k를 몫으로 하자 . 정확히 k 번 펌핑 하면 언어가 아닌 10 j 10 j 문자열을 얻습니다 . 따라서 L은 컨텍스트가 없습니다.d[1,q]hkk10j10j

.

나는
나무처럼 사랑스러운 끈을 보지 못할 것이라고 생각합니다 .
구문 분석이없는 경우
문자열이 잘못되었지만 멀리 있음


그러나 후반에 걸친 패스는 스택을 반대로 읽습니다. 그것은 두 위치가 두 반쪽에서 같은 위치에 있음을 의미하는 것 같습니다.
Hendrik 1 월

당신은 정확합니다 ... 나는 바보 ... 이제 나는 내 머리 뒤쪽에서 나를 잔소리하는 것이 무엇인지 알고 있습니다.
babou

나는 그 주장을 인정했다 (내가 시도했을 때 그것이 효과가 없었기 때문에).
Hendrik Jan

aibjckaibjck

@HendrikJan 다시 사귀 었습니까? (BTW, 토론 해 주셔서 감사합니다)
babou

-1

LSAXBYBYAXA00A00A11A01A1B10B00B11B01B1X00X00X11X01X1Y10Y00Y11Y01Y1


4
이것은 올바르지 않습니다. AX의 길이가 BY와 동일하다는 것을 보호 할 수 없습니다. 예를 들어, 문법은 원래 언어가 아닌 S-> AXBY-> A011-> 0A1011-> 001011을 생성합니다. 또한 기호 A와 X는 B와 Y에 대해 동일한 언어를 생성합니다. 그들은 병합 될 수 있습니다.
sdcvvc 2016 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.