언어가 규칙적이지 않다는 것을 증명하는 방법?


75

우리는 정규 언어 클래스 에 대해 배웠습니다 . 정규 표현식, 유한 오토마타 및 왼쪽 선형 문법 중 하나의 개념이 특징이므로 주어진 언어가 규칙적임을 쉽게 알 수 있습니다.REG

그래도 어떻게 반대를 보여줄 수 있습니까? 내 TA는 그렇게하기 위해서는 모든 정규 표현 (또는 모든 유한 한 오토마타 또는 모든 왼쪽 선형 문법)에 대해 그들이 사용하는 언어를 설명 할 수 없다는 것을 보여 주어야했다. 이것은 큰 일처럼 보입니다!

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

이것은 일반적인 증명 방법과 응용 예제를 수집하는 참조 질문입니다. 문맥없는 언어에 대한 동일한 질문 은 여기 를 참조 하십시오 .

답변:


60

귀류법은 종종 언어가 정규 아님을 표시하는 데 사용됩니다 :하자 특정 언어가 확인하지 않는 경우, 속성 모든 일반 언어에 대한 진정한 , 다음은 일반 아니다. 다음과 같은 속성을 사용할 수 있습니다.PPP

  1. Dave의 답변에 예시 된 펌핑 보조 정리 ;
  2. 일반 언어의 클로저 속성 (세트 연산, 연결, 킨 스타, 거울, 동형);
  3. 정규 언어에는 한정된 수의 접두사 등가 클래스 인 Myhill–Nerode 정리가 있습니다.

클로저 속성을 사용하여 언어 이 규칙적이지 않다는 것을 증명하기 위해 ,이 기법은 규칙적이지 않은 것으로 알려진 언어를 얻기 위해 규칙 성을 유지하는 연산에 의해 을 정규 언어와 결합 하는 것입니다. 예를 들어, 전형적인 언어 입니다. 예를 들어 . 가정 일반 언어 보완 하에서 폐쇄 같이 일정한 것은 그렇다 의 보수 . 이제 규칙적인 와 의 교차점을 취하면 규칙적 이지 않은 를 얻습니다 .L I = { a n b n | n N } L = { a p b q | p q } L L L c L c a b ILLI={anbn|nN}L={apbq|pq}LLLcLcabI

Myhill–Nerode 정리는 규칙적이지 않다는 것을 증명하는 데 사용될 수 있습니다 . 들어 , . 모든 클래스는 다르며 그러한 클래스에는 셀 수없는 무한대가 있습니다. 일반 언어 수업의 유한 수 있어야로서 정기적으로하지 않습니다.p 0 I / a p =Ip0나는I/ap={arbrbp|rN}=I.{bp}I


3
Myhill-Nerode 정리에 대해 몰랐다!
Daniil April

위키 백과에는 정규 언어의 단어 수에 대한 섹션도 있습니다. 언어가 특성에 맞지 않다는 것을 증명할 수 있으면 언어가 규칙적이지 않습니다. en.wikipedia.org/wiki/…
Alex ten Brink

@Daniil, 정규 표현식은 셀 수없는 Myhill-Nerode 정리의 비공식적 인 공식으로 보입니다.
AProgrammer

@AlextenBrink : 깔끔합니다. 나는 성명서의 상수가 오토 마톤 라플라시안의 고유 값이라고 생각합니까? 이것은 여기에 대한 답변을 훌륭하게 추가합니다.
Louis

@Louis : 실제로, 우리는 그 정리에 대한 참조를 전혀 찾지 못 했으므로, 그것에 대해 더 많이 알고 있다면 ... 참조 : cs.stackexchange.com/questions/1045/…
Alex ten Brink

37

Dave의 답변을 바탕으로 펌핑 보조 정리를 사용하기위한 단계별 "수동"이 있습니다.

펌핑 보조기구 (데이브의 답변에서 가져온 위키피디아 양식)를 상기하십시오.

정규 언어로 하자 . 이어서 정수 존재 (단에 따라 되도록)을 모든 문자열 에서 이상의 길이의 ( 은 "펌핑 길이"라고 함)로 기록 될 수 , 즉 ( 할 수있다 다음 조건을 만족하는 세 개의 하위 문자열로 나뉩니다.Ln1LwLnnw=xyzw

  1. |y|1
  2. |xy|n
  3. "펌프 된" 는 여전히 : 모든 , . wLi0xyizL

언어 있고 펌핑 보조를 통해 규칙적이지 않다는 것을 보여주고 싶다고 가정하십시오 . 증거는 다음과 같습니다.L

  1. 규칙적 이라고 가정하십시오 .L
  2. 그것이 규칙적이라면, 펌핑 보조기구는 펌핑 길이 인 수 이 존재한다고 말합니다 .n
  3. 길이가 보다 큰 특정 단어 을 선택하십시오 . 어려운 부분은 어떤 단어를 가져야 하는지를 아는 것입니다.wLn
  4. 고려 ALL 분할하는 방법 , 3 개 부분으로 로, 과 비 비어 있습니다. 이러한 방법에 대해 펌핑 할 수 없음을 표시하십시오. 과 같은 이 항상 존재합니다 .ww=xyz|xy|nyi 0 x y i z Li0xyizL
  5. 결론 : 단어 는 펌핑 보조와는 반대로 "펌핑"될 수 없으며 ( 즉, 분리해도 ) 우리의 가정 (1 단계)이 잘못되었습니다. 은 규칙적이지 않습니다.wxyzL

예제로 가기 전에 3 단계와 4 단계를 반복하겠습니다 (대부분의 사람들이 잘못되는 경우). 3 단계에서 특정 단어를 하나 선택해야합니다 . "00001111"또는 " " 과 같이 명시 적으로 적어 두십시오 . 특정 단어 가 아닌 단어의 예 : " "또는 "000을 접두사로 사용하는 단어"Lanbn ww

반면에 4 단계에서는 둘 이상의 사례를 고려해야합니다. 예를 들어, 이면 이라고 말하기에 충분하지 않으며 모순에 도달합니다. 또한, 선택해야 , 및 , 및 모든 다른 가능한 옵션.w=000111x=00,y=01,z=00x=0,y=0,z=0111x=ϵ,y=000,z=111


이제 단계를 따르고 이 일정하지 않다는 것을 증명해 봅시다 .L={0k12kk>0}

  1. 이 규칙적 이라고 가정하십시오 .L
  2. 은 펌핑 보조기구에 의해 주어진 펌핑 길이라고 하자 .n
  3. 이라고하자 . (전성 검사 : 필요에 따라 왜이 단어가 다른 단어가 잘 작동 할 수 있습니다 .. 그것은 바로 가지고 올 경험을합니다.? ). 다시 한 번 는 입니다.w=0n12n | | > n w w 000 0 n  회 111 1 2 n  회
    |w|>nww0000n times11112n times
  4. 이제 및 하여 를 로 나누는 다양한 경우를 고려해 봅시다 . 때문에 상관없이 우리가 분할 방법 , 오직 공의로 구성하지 않습니다 그래서 것이다 . 및 라고 가정하겠습니다 . 및 과 같이 모든 옵션, 즉 가능한 모든 를 고려해야합니다 . 의 경우 이러한 모든 경우에 대한 증거는 동일하지만 일반적으로 다를 수 있습니다. 취하고 고려wxyz|xy|n|y|>0|xy|<nwxy|x|=s|y|=ks,ks0,k1s+knL i = 0 x y i z = x z LL
    i=0xyiz=xz 입니다. 이 단어는 아닌 는 형태이기 때문에 (상관없이 와 했다), 이후 ,이 단어가 아닌 우리는 모순에 도달 .L0nk12nskk1L
  5. 따라서 우리의 가정은 부정확하며 은 규칙적이지 않습니다.L

동일한 라인을 따라 펌핑 보조를 사용하는 방법을 설명하는 YouTube 클립은 여기 에서 찾을 수 있습니다


1
이 정의에서 펌핑 길이는 n입니다!
saadtaame

28

Wikipedia에서 일반 언어의 펌핑 언어 는 다음과 같습니다.

정규 언어로 하자 . 이어서 정수 존재 (단에 따라 모든 문자열되도록) 에서 길이 중 적어도 ( 은 "펌핑 길이"라고한다)가과 같이 쓸 수있다 , 즉 ( 될 수 다음 조건을 만족하는 세 개의 하위 문자열로 나뉩니다.p 1 L w L p p w = x y z wLp1LwLppw=xyzw

  1. |y|1
  2. |xy|p
  3. 모든 , . 는 펌핑 할 수있는 하위 문자열입니다 (여러 번 제거 또는 반복되며 결과 문자열은 항상 ). x y i z L y Li0xyizL
    yL

(1) 펌핑 될 루프 y가 적어도 하나의 길이 여야 함을 의미하고; (2)는 첫 번째 p 문자 내에서 루프가 발생해야 함을 의미합니다. x와 z에는 제한이 없습니다.

간단하게 말하면, 정규 언어 L의 경우, 어떤 워드 충분히 긴 3 개 부분으로 분할 될 수있다. 즉, 모든 문자열이되도록, 에 대한 도이다 .w = x y z x y k z k 0 LwLw=xyzxykzk0L

이제 예제를 보자 . 이라고합시다 .L={(01)n2nn0}

이것이 규칙적이지 않다는 것을 보여주기 위해, 모든 분해 어떻게 생겼는지 고려해야합니다. 따라서 x, y, z는 (우리는 길이가 인 이 특정 단어를 , 여기서 는 펌핑 길이입니다. 문자열 의 부분이 어디에서 발생 하는지 고려해야 합니다. 그것은 첫 번째 부분과 중첩하고 있었다 것이다 이와 동일 하나 , , 또는 일부, ( 잊지 마십시오 ). 두 번째 부분과 겹칠 수 있습니다. 이는의 X , Y의 Z = ( 01 ) , P (2) P (3) P ( 01 ) K + 1 ( 10 ) K + 1 1 ( 01 ) (K) 0 ( 10 ) K K 0 | y | 1 , Y = 2 유전율 (K) > 0 ( 01 ) K + 1 (2)w=xyzxyz=(01)p2p3pYpy(01)k+1(10)k+11(01)k0(10)kk0|y|1y=2k일부 대한 . 또는 단어의 두 부분에 겹칠 수 있으며 , , 또는 , 및 입니다.k>0 ( 10 ) k + 1 2 l 1 ( 01 ) k 2 l 0 ( 10 ) k 2 l k 0 l 1(01)k+12l(10)k+12l1(01)k2l0(10)k2lk0l1

이제 모순을 얻기 위해 각각을 펌핑하십시오. 모국어가 아닌 단어가 될 것입니다. 예를 들어, 을 취 하면 펌핑 보조기구는 예를 들어 는 언어로되어 있어야합니다 와 적절히 선택하십시오 . 그러나이 단어는 앞에 가 표시 되므로 언어로되어있을 수 없습니다 . x y 2 z = x 0 ( 10 ) k 2 l 0 ( 10 ) k 2 l z x z 2 1y=0(10)k2lxy2z=x0(10)k2l0(10)k2lzxz21

다른 경우는 의 수가 의 수보다 크 거나 그 반대가되거나 , 예를 들어 다음과 같이 구조를 갖지 않는 단어가됩니다 . 행에 두 개의 있습니다.2 ( 01 ) n 2 n 0(01)2(01)n2n0

잊지 마세요 . 여기에서 증거를 줄이는 것이 유용합니다. 위의 많은 분해는 부분이 너무 길어질 수 없기 때문에 불가능 합니다.z|xy|pz

위의 각 사례는 그러한 모순으로 이어질 필요가 있으며, 이는 펌핑 보조의 모순이 될 것입니다. 짜잔! 언어는 규칙적이지 않습니다.


가설 가 필요한 예가 좋습니다. |xy|p
Gilles

@Gilles : 추가 한 문장의 의미가 확실하지 않습니다.
Dave Clarke

@ Giles : 모든 분해가 가능하다고 생각합니다 . 는 제한됩니다. 길이 와 어떤 관계가 있는지 잘 모르겠습니다 . zkz
Dave Clarke

어이! 나는 지금 본다. 감사. 그러나 답에 언급 된 분해 형태를 배제하지는 않는다. 그것은 내가 취할 수있는 와 값을 제한합니다 . lkl
Dave Clarke

1
그러한 쉬운 질문에 답하기 위해 수행 된 편집의 양은 왜 모든 사람들이 펌핑 식 정리를 "비정규 성을 증명하는"방법으로 가르치는 지 궁금하게 만듭니다. 호기심에서, 단순히 문자열을 와 같은 것으로 가져 가십시오 . 펌핑 보조는 에 가 없다는 것을 알려주 므로 모순이 더 간단합니다. y 2(01)2p22py2
Louis

14

주어진 언어 에 대해LΣ

SL(z)=n0|LΣn|zn

제 (보통) 생성 함수 의 , 워드 길이 당 카운트의 시퀀스, 즉.L

다음 내용은 [ FlSe09 , p52]와 같습니다.

LREGSL rational

즉, 다항식이있는 입니다 . P,QSL(z)=P(z)Q(z)P,Q

따라서 생성 기능이 합리적 이지 않은 언어 는 규칙적이지 않습니다. 불행히도, 모든 선형 언어 에는 합리적인 생성 함수 ¹가 있으므로이 방법은 더 간단한 비정규 언어에서는 작동하지 않습니다. 또 다른 단점은 을 얻는 (그리고 합리적이지 않다는 것을 보여주는) 어렵다는 것입니다.SL

예 : 올바르게 중첩 된 괄호 단어의 언어, 즉 Dyck 언어를 고려하십시오 . 모호하지 않은 문법으로 생성됩니다.

S[S]Sε

이것은 방정식으로 번역 될 수 있습니다

S(z)=z2S2(z)+1

하나의 솔루션 (모든 양의 계수가있는 솔루션)은

S(z)=114z22z2 .

마찬가지로 [ Kuic70 ]와 바람직하지 않은 경우 상기 반다이 크 언어 일반 아니다.SSL=SS


  1. 정규 언어에 대한 진술에 대한 증명은 문법을 통해 작동하며 즉시 선형 문법으로 옮깁니다 (곱셈의 교환).

   [FlSe09] P. Flajolet과 R. Sedgewick의 분석 조합 (2009) [Kuic70] W. Kuich 의 문맥이없는 언어의 엔트로피 (1970)
  


13

이것은 여기에서 내 대답의 확장 된 버전입니다. 펌핑 Lemma를 사용하여 언어 이L={(01)m2mm0} 참조 질문이기 때문에 규칙적이지 않다는 것을 증명합니다 .

펌핑 보조기구가 복잡해 보인다고 생각하십니까? 걱정마 @Romuald의 답변에도 숨겨져있는 약간 다른 테이크 접근 방식이 있습니다. (퀴즈 : 어디서?)

모든 정규 언어는 결정 론적 유한 상태 오토 마톤 (DFA)에 의해 수용된다는 것을 기억하는 것으로 시작합시다. DFA는 모든 정점이 알파벳의 각 문자에 대해 정확히 하나의 바깥 쪽 가장자리를 갖는 유한 방향 그래프입니다. 문자열은 "start"라고 표시된 정점을 기준으로 그래프를 보며,이 걷기가 "accept"라고 표시된 정점에서 끝나는 경우 DFA에서 수락합니다. (정점은 "상태"라고합니다. 수학의 다른 영역이 같은 것을 위해 자체 용어를 구성하는 것을 좋아하기 때문입니다.)

이러한 방식으로 문자열 와 가 DFA를 동일한 상태로 구동하는 경우 다른 문자열 , 및 는 DFA를 동일한 상태로 구동합니다. b c a c b cabcacbc왜? 산책의 진술과 그것을 정의하는 끈이 끝을 완전히 결정하기 때문입니다.

: 약간 다르게 넣어 경우 정기적 인 문자열 하고 의 모든 문자열에 대한 다음, 같은 상태로 인식 자동 장치 드라이브 중, 와 에 모두 또는도 아니다.a b c a c b c LLabcacbcL

우리는 언어가가 상상하고 함께 올라오고 정기적 인없는 보여주기 위해 이것을 사용할 수 있습니다 와 같은 상태로 DFA를 운전하고, 그래서 언어이며, 없습니다. @Dave의 답변에서 예제 언어를 가져옵니다. 그것은 정기적 인 상상, 그래서 일부와 DFA 인식이 상태. 비둘기 구멍 원리는 중 2 개 이상 이 같은 상태로 DFA를 전송한다고 말합니다 예 : and . 이후 , 우리는 참조 언어와에abcacbcm{(01)i:0im+1}a=(01)pb=(01)qpqa2pb2p 이 언어는 규칙적이지 않습니다.

좋은 점은 예제가 실제로 언어가 규칙적이지 않다는 것을 증명하기위한 템플릿이라는 것입니다.

  • 문자열의 가족 찾기 그들 각각은 "꼬리"가있는 속성 수 있도록 언어와에 위해 없습니다.{ai:iN}tiaitiaitjij
  • 위의 인수를 그대로 적용하십시오. ( Pigeon Hole Principle을 호출 할 수 있도록 항상 충분한 있으므로 허용됩니다.)ai

다른 요령이 있지만 이것은 대부분의 숙제 문제에서 쉽게 작동합니다.

편집 : 이전 버전에서는이 아이디어가 Pumping Lemma와 어떻게 관련이 있는지에 대해 논의했습니다.


나는 펌핑 Lemma의 증거를 재생하는 것이 일반적으로 유용하다고 생각하지 않지만 YMMV입니다. 증거를 이해하는 것은 어떤 경우에도 좋습니다. 그것은 유한 한 오토마타와 일반 언어의 수많은 폐쇄 및 기타 흥미로운 속성과 즉시 연결됩니다. 그러나 나는 마지막 문장에 강력히 동의하지 않습니다. automata 이론은 전혀 지루하지 않으며 이론 수업에서 가장 지루한 부분은 아닙니다.
Raphael

@Louis 당신의 대답에서 당신은 we see that a2p is in the language and b2p is not, so this language can't be regular.마지막 에이 진술 을 어떻게 생각해 냈습니다 . 예를 들어 주
시겠습니까

@Himanshu 와 모두 같은 상태 합니다. 따라서, 당신이 그 (후 읽기 어떤 여기), 같은 상태로 얻을 것이다 상관없이 당신이 무엇을 시작, - 또는 . abq12pq2ab
Al.G.

7

여기에 대한 답변을 따라 Kolmogorv의 복잡성을 기반으로 비 규칙 성을 증명하는 방법을 설명하겠습니다.

이 접근법은 Ming Li와 Paul MB Vitanyi의 "Kolmogorov Complexity의 공식 언어 이론에 대한 새로운 접근법" 에서 논의된다 (3.1 참조).

하자 문자열의 콜 모고 로프의 복잡성 나타내는 튜링 기계의 짧은 인코딩의 길이 즉, , 그런 (일반적인 정의의 할 것). 그런 다음 비정규 성을 증명하기 위해 다음과 같은 정리를 사용할 수 있습니다.K(x)xMM(ϵ)=x

KC-Regularity : 를 정규 언어로 설정하면 모든 대해 에만 의존 하는 상수 있으며 가 문자열 인 경우 )를 사전 식 순서로 상대적 다음 .LΣcLxΣynthLx={yΣ|xyL}K(y)O(logn)+c

에 대해 에서 문자열 을 설명하기 위해 위의 정리를 다음과 같이 이해하고 증명할 수 있습니다 .xΣnthLx

  • 을 받아들이는 오토 마톤L
  • 접두사 처리 한 후 오토 마톤 상태x
  • 인덱스n

우리 만 처리 한 후 상태를 기억할 필요가 있기 때문에 , 그리고 자체를 우리에 따라 일정이 요소를 숨길 수 있습니다 . 인덱스 은 설명하기 위해 비트를 필요로하며 , 위의 결과를 얻습니다 (완전성을 위해 생성에 필요한 특정 명령어를 추가해야 하지만 최종 설명에는 상수 요소 만 추가됨).xxLnlogny

이 기본 정리는 정규 언어 및 대해 멤버 인 모든 문자열의 Kolmogorov 복잡성을 제한하는 방법을 보여줍니다 . 비 규칙 성을 나타 내기 위해, 이 규칙적 이라고 가정 하고 경계가 너무 제한적임을 증명할 수 있습니다 (예 : 무한한 문자열 집합에 대한 경계 Kolmogrov 복잡성).LxLxΣL

위에 링크 된 답변에는이 보조 정리를 사용하여 는 규칙적이지 않으며, 논문에 몇 가지 예가 더 있습니다. 완전성을 위해 는 일정하지 않습니다.L={1p|p is prime}L={0n1n|n0}

주어지면 , 우리는 로 의 단어를 나타냅니다 . 참고 . 위의 정리를 사용하여 형식의 접두사 에 초점을 맞추고 고정 하면 얻습니다 . 이후 , 이것은 우리가 모든 형태의 스트링의 콜 모고 로프 복잡도 결합 할 수 있음을 의미 명백하게 오류 인 상수로. 충분히 큰 대해 단일 검사 할 수 있다고 언급 할 가치가 있습니다 . 예를 들어x{0,1}yixithLxy10i=1ixx=0in=1i0:K(y10i)cy10i=1i1ixx=0nn이는 (우리는 높은 복잡성 접두사로 시작 을 충족시킵니다 . 이후 , 우리 얻을 (모순 가정 ).K(0n)logny1x=1nK(1n)<cn>2c


7

단항 언어 (알파벳 1의 언어)의 경우 간단한 기준이 있습니다. 우리는 알파벳 해결하자 등에 대한 정의 {σ}AN

L(A)={σn:nA}.

정리. 보자 . 다음은 동일합니다.AN

  1. L(A) 는 규칙적입니다.

  2. L(A) 는 문맥이 없습니다.

  3. 존재 등 모든 것이 ,이 보유하는 IFF . (우리는 가 결국 주기적 이라고 말합니다 .)n n 0 n A n + m A An0,m1nn0nAn+mAA

  4. 하자 . 그러면 가 합리적입니다. 0. a 0 a 1 a 2ai=1iA0.a0a1a2

  5. 생성 함수 는 합리적인 함수입니다.iAxi

펌핑 렘마, Myhill-Nerode 이론, Parikh의 정리, 단항 언어의 DFA 구조 ( 폴라드의 알고리즘 에서 와 같이 " "처럼 보임 ) 및 곧. 유용한 추론이 있습니다.ρρρ

추론. 하자 하고 있다고 가정 일반이다. L ( A )ANL(A)

  1. 한계 이 있습니다. (이것은 의 점근 밀도 입니다 .)ρ=limn|A{1,,n}|nA

  2. 경우 다음 유한하다.ρ=0A

  3. 경우 다음, cofinite (즉, 유한).ρ=1AA¯

예를 들어, 언어 은 규칙이 없습니다. 세트는 사라지는 점근 밀도를 갖지만 무한합니다.L({2n:n0})


4

정규 언어 클래스는 공용체, 교집합, 보수, 동형, 정규 치환, 역 동형 등과 같은 다양한 폐쇄 작업에서 폐쇄됩니다. 이것은 이미 비정규 언어로 알려진 언어로 축소함으로써 주어진 언어가 규칙적이지 않다는 것을 증명하는 데 사용될 수 있습니다.

아주 간단한 예로서, 우리는 가 규칙적이지 않다는 것을 알고 있다고 가정하자 . 그럼 우리가 증명할 수있는 언어 동등하게 많은 모든 단어 (언어 s와 s)는 다음과 같이 규칙적이지 않습니다.{anbn:n0}{w{a,b}:#a(w)=#b(w)}ab

한다고 가정 정기적 있었다. 그러면 도 규칙적입니다. 그러나 , 이는 일반적이지 않은 것으로 알려져 있습니다.L={w{a,b}:#a(w)=#b(w)}LabLab={anbn:n0}

더 복잡한 예는 다음과 같습니다. 언어 이 일정하지 않다는 것을 보여주십시오.L={(0+1)n2(0+1)n:n0}

를 , , 제공하는 동종 매핑 이라고하자 . 경우 일반 있었다 후 그래서 다음 언어가 될 것이다 : . 그러나 우리는 후자가 규칙적이지 않다는 것을 알고 있습니다.hh(0)=0h(1)=1h(2)=ϵLh(L021)={0n1n:n0}

마지막으로, 역 동형을 사용하는 예가 있습니다. 우리가 언어 있음을 보여 드리죠 정기적으로하지 않습니다.L={0n10n:n0}

를 , , 주어진 동형 이라고하자 . 만약 이 규칙적이라면 될 것입니다. 그러나 그것은 앞의 예제에서 나온 언어 입니다.kk(0)=0k(1)=0k(2)=1Lk1(L)L


3

Myhill–Nerode 이론을 사용하십시오.

언어로 하자 . 우리는 두 단어라고 이다 inequivalent 모듈러스 (에 대하여 또는 워드가 존재하는 경우) 의 정확히 하나가되도록 되어 . 에 대한 모든 DFA 에서 (운동). 이는 다음 기준을 의미합니다.Lx,yLLzxz,yzLLδ(q0,x)δ(q0,y)

언어로 하자 . 페어 inequivalent 단어의 무한한 세트 (즉, 무한 세트이다 존재한다고 가정 두 비와 동일하도록 inequivalent 모듈러스이다 ). 그러면 은 규칙적이지 않습니다.LSx,ySLL

이 기준을 적용하는 간단한 예는 다음과 같습니다.

언어 일반 아니다.L={anbn:n0}

증명. 이라고하자 . 우리는 에서 두 개의 다른 단어 가 등가 모듈로 이라고 주장합니다 . 실제로, 하자. 여기서 . 그런 다음 이지만 입니다.S={an:n0}SLai,ajSijaibiLaibjL

이 방법의 중요한 특징은 성공을 보장한다는 것입니다. 만약 이 규칙적이지 않다면 무한대 쌍의 등가 단어가 존재합니다. 이것은 Myhill-Nerode 정리 의 결과입니다 . 요약하면, 등가 모듈러스 (inequivalence 모듈러스의 부정 상기 정의)을 동치 관계이며, 언어 등가 모듈로의 등가 클래스들의 수 IFF에 규칙적 유한하다. 경우 일반 아니라, 각 등가 클래스에서 하나 개의 단어를 복용 inequivalent 단어의 무한 집합을 구성하는 것입니다.LLLLLL


1

언어 주어지면 모든 문자열 대해 과 같은 문자열 세트가 있습니다 . 이러한 각 세트는 상태 머신에서 상태로 사용될 수 있습니다.LxyxyL

그러한 세트의 수가 유한하지 않다는 것을 표시하기 만하면됩니다.

예를 들어, 이라고하자 . 감안할 일부 유일한 캐릭터 되도록 인 . 따라서 모든 대해 우리는 다른 세트를 가지고 있습니다. 즉 은 규칙적이지 않습니다.L=anbn:n0x=anbn1yxyLy=bn1nL

따라서 일반적으로 각 가 다른 세트 를 제공 하도록 무한한 문자열 세트 를 찾으면 유한 상태 머신에서 언어를 인식 할 수 없으므로 규칙적이지 않습니다.xx{y:xyL}


이것은 단지 Myhill-Nerode 아닌가요?
David Richerby
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.