언어에 컨텍스트가 없음을 증명하는 방법은 무엇입니까?


88

문맥없는 언어 클래스 에 대해 배웠습니다 CFL. 그것은 모두 특징 문맥 자유 문법 과 푸시 다운 오토마타 가 주어진 언어는 문맥 자유 것을 보여 쉽게 있도록.

그래도 어떻게 반대를 보여줄 수 있습니까? 내 TA는 그렇게하기 위해 모든 문법 (또는 오토마타)에 대해 현재 사용중인 언어를 설명 할 수 없다는 것을 보여 주어야한다고 단호했습니다 . 이것은 큰 일처럼 보입니다!

펌핑 보조 정리에 대해 읽었지만 실제로 복잡해 보입니다.


Ntpick : 그것이 결정 불가능한 언어는 문맥 자유인지 여부를 표시합니다.
— reinierpost

1
@reinierpost 댓글이 질문과 어떤 관련이 있는지 모르겠습니다. 그것은 관하여 증명 하지 않는 것을 결정 (알고리즘).
— Raphael

일반적으로 언어에 컨텍스트가 없다는 것을 보여주기가 쉽지 않다는 점을 지적하십시오 . 프레임이 쉬운 경우 언어를 설명하는 푸시 다운 오토 마톤이 제공되는 것과 같이 일반적으로 언어에 적용되지 않는 특정 특수 조건 때문에 발생해야합니다.
— reinierpost

@reinierpost 그 추론의 선은 결정하기 어려운 것은 증명하기 어렵다는 것을 의미한다고 생각하는 것 같습니다. 그것이 사실인지 궁금합니다.
— Raphael

답변:


69

내 지식에 펌핑 보조 정리 입니다 지금까지 가장 간단하고 가장 많이 사용되는 기법. 열심히 찾으면 먼저 일반 버전을 사용해보십시오 . 그렇게 나쁘지 않습니다. 문맥이없는 언어에는 다른 방법이 있습니다. 예를 들어, 결정 불가능한 언어에는 사소한 맥락이 없습니다.

즉, 펌핑 보조기구가 아닌 다른 기술에도 관심이 있습니다.

편집 : 다음은 펌핑 보조 정리의 예입니다. 언어 에 컨텍스트가 없다고 가정하십시오 ( P 는 소수 세트). 펌핑 보조기구에는 ∃ / ∀ 정량자가 많으므로 이것을 게임처럼 만들 것입니다.L={ak∣k∈P}P∃/∀

  1. 펌핑 보조기구는 당신에게 p를 제공합니다p
  2. 당신 은 적어도 p 의 길이의 언어 를 제공합니다sp
  3. 펌핑 보조기구는 다음과 같이 다시 작성합니다. 일부 조건 ( | v x y | ≤ p 및 | v y | ≥ 1 )s=uvxyz|vxy|≤p|vy|≥1
  4. 정수 n≥0
  5. 경우 아닌 L , 당신은 승리, L은 문맥 무료로하지 않습니다.uvnxynzLL

이 특정 언어 어떤 K (와 케이 ≥의 P 와 K 트릭을 할 것입니다 소수이다). 그리고 펌핑 보조 정리는 준다 u는 v에 의 X , Y의 Z를 함께 | v y | ≥ 1 . 상황에 여수를 반증 마십시오, 당신은 찾을 필요가 없음을 되도록 | u v n x y n z | 소수가 아닙니다.sakk≥pkuvxyz|vy|≥1n|uvnxynz|

|uvnxynz|=|s|+(n−1)|vy|=k+(n−1)|vy|

그리고 은 다음을 수행합니다. k + k | v y | = k ( 1 + | v y | ) 는 소수가 아니므로 u v n x y n z ∉ L 입니다. 펌핑 보조기구를 적용 할 수 없으므로 L 에 컨텍스트가 없습니다.n=k+1k+k|vy|=k(1+|vy|)uvnxynz∉LL

두 번째 예는 언어 입니다. (물론) 문자열을 선택하고 5 개 부분으로 나눌 수있는 모든 방법이 없으며 모든 파생 된 문자열이 언어로 남아 있음을 보여 주어야합니다.{ww∣w∈{a,b}∗}

문자열 가이 증명에 적합한 선택입니다. 이제 v 와 y 가 어디에 있는지 살펴 봐야 합니다. 핵심 부분은 v 또는 y에 무언가가 있어야하고 (아마도 둘 다) v 와 y (및 x )가 길이 p 하위 문자열에 포함되어 있으므로 너무 멀리 떨어져서는 안된다는 것입니다.s=apbpapbpvyvyvyxp

이 문자열에는 와 y 가있을 수 있는 여러 가지 가능성이 있지만 실제로는 여러 경우가 매우 비슷해 보입니다.vy

  1. 또는 v y ∈ b ∗ . 그래서 그들은 모두 continguous의 섹션 중 하나에 포함하고의 또는 B 의. 종류의 그들이에있어 어떤 문제가되지 않는 한, 주장 할 수있는 비교적 쉬운 경우입니다 가정합니다. | v y | = k ≤ p . vy∈a∗vy∈b∗ab|vy|=k≤p
    • 그들은의 첫 번째 섹션에 있다면 의, 우리는 펌프 할 때, 새로운 문자열의 첫 번째 절반은 P + K B의 P - 케이 / 2 , 두 번째는 B K / 2 P는 B의 페이지 . 분명히 이것은 형식이 아닌 w w .aap+kbp−k/2bk/2apbpww
    • 다른 세 섹션 중 하나에 대한 논쟁은 거의 동일하게 실행되며, 와 k / 2 가 색인에서 끝나는 곳입니다.kk/2
  2. 는 두 섹션에 걸쳐 있습니다. 이 경우 펌핑다운은 친구입니다. 다시 한 번 이런 일이 일어날 수있는 곳이 몇 개 있지만 (정확히는 3 개), 나는 단지 하나의 예시적인 일을 할 것이고 나머지는 쉽게 알아낼 수있을 것입니다. vxy
    • 가 첫 번째 a 섹션과 첫 번째 b 섹션 사이의 경계에 걸쳐 있다고 가정합니다 . 하자 V의 Y를 = K 1 (B)의 K 2 합니다 (어디 정확하게 중요하지 않습니다 s와 (B) 의가에있는 V 와 y를 하지만, 우리는 그들이 위해 거 알아). 그런 다음 펌프 다운 할 때 (즉, i = 0 인 경우) 새 문자열 s ' = a p - k 1 b p − k 2vxyabvy=ak1bk2abvyi=0 , 그러나 만약 S가 ' 으로 분리 될 수 w w , 중간 점은 제 어딘가에 있어야전반이되도록 부 P - k는 1 ㄱ P - k는 2 ( K (1) + K 2 ) / 2 및 후반부는 P - ( K (1) + K (2) ) / 2 (B)의 피s′=ap−k1bp−k2apbps′wwaap−k1bp−k2a(k1+k2)/2ap−(k1+k2)/2bp. 분명히 이것들은 동일한 문자열이 아니므로 와 y를 넣을 수 없습니다 .vy

나머지 사례는 거기에서 상당히 투명해야합니다 . 첫 번째 인스턴스의 다른 3 자리에 와 y 를 넣고 두 번째 인스턴스에는 2 개의 자리를 두는 것과 동일한 아이디어 입니다. 그러나 모든 경우에 문자열을 반으로 나눌 때 순서가 엉망이되는 방식으로 펌핑 할 수 있습니다.vy


실제로 kozen의 게임은 이것에 대한 방법입니다.
— 소크라테스

45

오그 덴의 렘마

렘마 (Ogden). 문맥없는 언어로 하자 . 이어서 상수가 N 매 위해되도록 Z ∈ L 중 어느 방식으로 표시하는 N 의 이상의 위치 (심볼) Z를 "고유 위치"로하고 , Z는 로 쓸 수 Z = U V W 의 X , Y , 그러한LNz∈L Nzzz=uvwxy

  1. 는 하나 이상의 식별 위치를 갖습니다.vx
  2. 는 최대 N 개의 고유 위치를갖습니다.vwxN
  3. 모든 경우 u v i w x i y ∈ L 입니다.i≥0uviwxiy∈L

예. 이라고하자 . L 에 문맥이 없다고 가정 하고 N 을 Ogden의 이름으로 주어진 상수 라고 가정하십시오 . z = a N b N + N 이라고합시다 ! c N + 2 N ! (이는에 속하는 L ), 우리는 가정 표시L={aibjck:i≠j,j≠k,i≠k}LNz=aNbN+N!cN+2N!L기호 의 모든 위치 (즉, z 의 첫 번째 N 위치 ) 를 구별한다 . z = u v w x y 를 Ogden의 정리에서 나온 조건을 만족시키는 z 의 분해라고 하자 .aNzz=uvwxyz

  • 경우 또는 (X)은 다른 문자, 그 다음 u는 v에 2 w X 2 , Y의 ∉의 L을 잘못된 순서로 심볼이있을 것이기 때문에.vxuv2wx2y∉L
  • a 와 구별 되기 때문에 와 x 중 적어도 하나 에는 기호 a 만 포함해야합니다 . 따라서 x ∈ L ( b * ) 또는 x ∈ L ( c * ) 이면 v ∈ L ( A + ) 입니다. 하자 P는 = | v | . 그런 다음 1 ≤ p ≤ N 이므로 p 는 N을 나눕니다 ! . q 하자vxaax∈L(b∗)x∈L(c∗)v∈L(A+)p=|v|1≤p≤NpN! . 그런 다음 z ' = u v 2 q + 1 w x 2 q + 1 y 는 L에 속해야합니다. 그러나 v 2 q + 1 = a 2 p q + p = a 2 N ! + p . 이후 U 승 Y는 정확히 갖는 N - (P)의 기호후 Z를q=N!/pz′=uv2q+1wx2q+1yLv2q+1=a2pq+p=a2N!+puwyN−pa 는 2 N이 있습니다 ! + N 기호 a . 그러나 v 와 x 에는 c가 없으므로 z ' 도 2 N입니다 ! + N 기호 c 는 z ' ∉ L 을 의미하며, 이는오그 덴 (Ogden)의 명칭 과 모순됩니다. x ∈ L ( A + ) 또는 x ∈ L ( c * ) 인 경우 유사한 모순이 발생합니다. 우리는 L을 결론z′2N!+Navxcz′2N!+Ncz′∉Lx∈L(A+)x∈L(c∗)L 컨텍스트가 없습니다.

운동. Ogden의 Lemma를 사용하여 에 컨텍스트가 없음을 보여줍니다.L={aibjckdℓ:i=0 or j=k=ℓ}

펌핑 렘마

이것은 모든 위치가 구별되는 Ogden의 Lemma의 특별한 경우입니다.

렘마. 문맥없는 언어로 하자 . 이어서 상수가 N 매 위해되도록 부터 Z ∈의 L , Z는 로 쓸 수 Z = U V W 의 X , Y , 그러한LNz∈Lzz=uvwxy

  1. .|vx|>0
  2. .|vwx|≤N
  3. 모든 경우 u v i w x i y ∈ L 입니다.i≥0uviwxiy∈L

파리 크 정리

이것은 Ogden의 Lemma보다 훨씬 기술적입니다.

정의. 이라고하자 . 우리는 정의 Ψ Σ : Σ * → N , N 에 의해 Ψ Σ ( w ) = ( m 1 , ... , m의 N ) , m의 난 의 외관의 개수 I 에서 w .Σ={a1,…,an}ΨΣ:Σ∗→Nn

ΨΣ(w)=(m1,…,mn),
miaiw

SNn

S={u0+∑1≤i≤kaiui: for some set of ui∈Nn and ai∈N}

SNn

LΣL

ΨΣ[L]={ΨΣ(w):w∈L}

L={0m1n:m>n or (m is prime and m≤n)}

운동. Parikh 'Theorem을 사용하여 단항 알파벳을 통한 문맥없는 언어도 규칙적임을 보여줍니다.


1
질문에 Pumping Lemma가 명시 적으로 언급되어 있기 때문에 jmad의 답변을 수락했습니다. 그래도 귀하의 답변에 감사드립니다. 여기에 모든 주요 방법을 수집하는 것이 좋습니다.
— Raphael

1
괜찮습니다. 그러나 펌핑 보조는 오그 덴의 보조의 특별한 경우입니다. ;-)
— Janoma

물론이야. 그래도 대부분의 사람들은 PL을 먼저 시도합니다. 많은 사람들은 OL조차 모른다.
— Raphael

1
Ginsburg와 Spanier의 정리는 Parikh의 정리에 기반을두고 있으며, 제한된 경우 상황에 따라 자유롭고 충분한 조건을 제공합니다. math.stackexchange.com/a/122472
— sdcvvc

다른 작업과 관련하여 "구별 위치"를 정의 할 수 있습니까? 아니면 적어도 비공식적으로? 나는 여러 곳에서 OL 복사 된 그대로의 표현을 찾았지만, 지금까지 그 중 어떤 것도 그 의미를 설명하지 않았습니다.
— wvxvw

34

폐쇄 속성

CFL

L∈CFLL′∈CFLL′∉CFLL∉CFL

이것은 사전 지식이 적은 다른 결과 중 하나를 사용하는 것보다 종종 더 짧고 (종종 덜 오류가 발생하기 쉽습니다). 또한 모든 종류의 객체에 적용 할 수있는 일반적인 개념입니다.

예 1 : 정규 언어를 사용한 교차

L(e)e

L={w∣w∈{a,b,c}∗,|w|a=|w|b=|w|c}

L∩L(a∗b∗c∗)={anbncn∣n∈N}∉CFL

CFLL∉CFL

실시 예 2 : (역) 동형

L={(ab)2ncmd2n−m(aba)n∣m,n∈N}

ϕ(x)={ax=aεx=bbx=c∨x=d

ϕ(L)={a2nb2na2n∣n∈N}.

이제

ψ(x)={aax=a∨x=cbbx=bandL1={xnbnyn∣x,y∈{a,c}∧n∈N},

L1=ψ−1(ϕ(L)))

L1L2=L(a∗b∗c∗)L3={anbncn∣n∈N}

L3=L2∩ψ−1(ϕ(L))

LCFLL3L3L∉CFL


인터체인지 렘마

교환 명제 [1]보다 강한 상황 여수위한 필요 조건 제시 오그의 렘마 . 예를 들어,

{xyyz∣x,y,z∈{a,b,c}+}∉CFL

많은 다른 방법에 저항합니다. 이것은 정리이다 :

L∈CFLcLn≥2Qn⊆Ln=L∩Σnmn≥m≥2k≥|Qn|cLn2zi∈Qn

  1. zi=wixiyii=1,…,k
  2. |w1|=|w2|=⋯=|wk|
  3. |y1|=|y2|=⋯=|yk|
  4. m≥|x1|=|x2|=⋯=|xk|>m2
  5. wixjyi∈Ln(i,j)∈[1..k]2

n,mQn

현재로서는 자유롭게 구할 수있는 참고 자료가 없으며 위의 공식은 1981 년의 [1] 양식에서 발췌 한 것입니다. 같은 속성이 최근에 재발견 된 것으로 보입니다 [2].


기타 필요한 조건

Boonyavatana와 Slutzki [3]은 Pumping and Interchange Lemma와 유사한 몇 가지 조건을 조사했습니다.


  1. W. Ogden, RJ Ross 및 K. Winklmann의 문맥이없는 언어 를 위한“교류 간극”(1985)
  2. T. Yamakami (2008)에 의해 규칙적이고 문맥이없는 언어 를 위한 렘마 교환
  3. R. Boonyavatana와 G. Slutzki (1988)의 문맥없는 언어 에 대한 교환 또는 펌프 (DI) 레마


19

설정된 비 문맥 언어는 반 결정 가능하지 않기 때문에 일반적인 방법은 없습니다 (일명). 일반적인 방법이 있었다면,이 방법을 사용하여이 세트를 반 결정할 수 있습니다.

두 개의 CFL이 주어지기 때문에 상황이 더욱 악화됩니다. 교차점이 CFL인지 여부를 결정할 수는 없습니다.

참조 : Hopcroft and Ullman, "Automata 이론, 언어 및 계산 소개", 1979.


2
흥미로운 (그러나 아마도 더 진보적이고 개방적인 질문)은 특정 방법을 사용하여 CFL이 아닌 것으로 입증 될 수있는 비 CFL의 하위 클래스를 분류하는 것입니다.
— Kaveh

계산 가능한 방법을 찾지 않고 펜 및 종이 교정 기술을 찾고 있습니다. 후자는 반드시 전자를 의미하지는 않습니다.
— Raphael

13

Ogden의 상태 ( OC ) 의 강력한 버전은

바더 무라의 상태 (BMC)

L⊆Σ∗nz∈Ld(z)e(z)d(z)>ne(z)+1z=uvwxy

  1. d(vx)≥1e(vx)=0
  2. d(vwx)≤ne(vwx)+1
  3. i≥0uviwxiyL

L∈BMC(Σ)L

CFL(Σ)⊂BMC(Σ)⊂OC(Σ)

참조 : Bader, C., Moura, A., Ogden 's Lemma의 일반화. JACM 29, 아니오 2, (1982), 404–407


2
이유는 단지 Dömösi 및 Kudlek의 일반화로 모든 길을 갈 dx.doi.org/10.1007/3-540-48321-7_18 ...
— 안드라스 살 라몬

@ AndrásSalamon : 몰랐어요! :-) ... 아마도 당신은 OC, BMC, PC가 특별한 경우라고 말하는 새로운 답변으로 게시 할 수 있습니다 (모두 구별되거나 제외되지 않은 위치).
— Vor

게시 할 수 있습니다. 지금 시간이 없습니다.
— András Salamon

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