2016-10-29 18 views
0

나는 비 맥락을위한 푸시 다운 오토 마톤 L = {a^(n) b^(n) c^(n) | n> = 1} 두 가지 접근법을 생각해 보자.L = {a^(n) b^(n) c^(n) | n> = 1에 대한 PushDown 자동화 장치 (PDA)

첫 번째 접근 방식은 : -

나는 모든에 대해 'A'문자열에 내가, 내가 2를 나타납니다 스택에와 문자열의 모든 'B'에 대한 'A'(3)를 밀어 것이라고 생각 스택에서 'a'는 문자열의 모든 'c'에 대해 스택에 여전히 1을가집니다. 첫 번째 방법으로

문제점 : - | 생성 언어이 L = {A^(p)^B (m) C^(n)를 같은 것을진다 p> = 1 }

번째 접근 방법 m 결정할 수 있고, N을 정의 할 수있다 : -

우리가 알고 L = {A^(n)은 B (^ m) c^(m) d^(n) | n> = 0}은 문맥 - 자유 언어이고 L = {wxw | w∈ (a, b) *} 또한 context-free 언어이다.

그래서 나는 L = {a^(n) b^(m) b^(m) c^(n) | N> = 1, m = 바닥 ((N + 1)/2)}는 두 번째 방식과

문제 - 우리 바닥을 계산할 수 있다면는 (N + 1/2)을 몰라에 스택의 구성 요소를 방해하지 않으면 서 PDA.

첫 번째 방법에서 m과 n을 정의하는 방법과 PDA에서 floor ((n + 1)/2)를 찾는 방법을 결정할 때 도움을주십시오.

필요한 경우 JFLAP 파일을 사용할 수 있습니다.

답변

1

Ami Tavory가 지적했듯이이 언어는 컨텍스트 프리가 아니기 때문에이 언어에 대한 PDA는 없습니다. 스택 대신 큐를 사용하거나 스택을 두 개 사용하거나 Turing 머신을 사용하면이 언어를 쉽게 인식 할 수 있습니다 (모두 해당).

큐 기계 :

  1. 인큐 a의 한 당신이 b을 볼 때까지, a의를 참조한다.
  2. 큐에서 a들과 대기열 b의 한 당신이 c
  3. 큐에서 b의 한 당신이 보는대로 c의이 나타날 때까지 당신이 b의를 참조한다.
  4. 추가 입력 및 빈 대기열없이이 프로세스를 끝내면 동의하십시오.

PDA 두 스택 : 당신이 b을 볼 때 당신이 aa 터지는를 볼 때

  1. 사용하여 첫 번째 스택이 a을 눌러 확인 a^n b^n를 만들기 위해;
  2. b^n c^n 두 번째 스택을 사용하여 b을보고 b을보고 b을 표시하면 c가 표시됩니다.
  3. 이 프로세스가 끝날 때 두 스택이 모두 비어 있으면 수락하십시오.

튜링 기계 :

  1. Aa을 1,8- 지워서 a^n ... c^n 확인은 c 일치;
  2. Ab의 일치하는 쌍을 지워서 A^n b^n을 확인하십시오.
  3. 이 과정이 끝날 때 더 이상 A이 아니며 b이 없으면 테이프가 완전히 삭제 된 것으로 간주됩니다.
+0

첫 번째로 나는 다시 " 바보의 심부름 "그리고 두 번째는 PDA가 존재하지 않는다는 것을 알고 있으므로 질문에 대한 설명을 충분히 읽으십시오. – NeoR

+0

아마도 JFlap 이미지를 추가하여 질문을 업데이트해야 할 수도 있습니다. – NeoR

+0

@NeoR 실제 질문을 반영하도록 실제 제목을 변경하고 그 아래에 설명이나 동기 부여가있는 실제 질문을 질문 본문 가까이에 두는 것을 고려해보십시오. – Patrick87

1

이 언어에 대해 푸시 다운 자동 완성을 구성하지 않은 한 가지 이유는 아무 것도 없기 때문입니다. Bar Hillel pumping lemma에 표시됩니다.

증거를 요약하려면이를 수행 할 수 있다고 가정합니다. | VWX | 그런 다음, 일부 페이지를 들어, 각 문자열보다 큰 페이지

  • , uvwxy, s.t.로 분할 될 수 <p

  • | vx | > 1 개

  • UV N WX N Y는 임의의 N 들면, 기계적으로 받아 들여진다.

제 규칙 VWX는 두 최대 (충분한 문자열) 세 영역을 확장 할 수 있다는 것을 의미한다.두 번째 및 세 번째 규칙은 언 스팬 영역이 다른 영역 중 적어도 하나보다 작도록 펌핑 할 수 있음을 의미합니다.

+0

예 펌핑 보조 정리가 작동하는 방식을 알고 있지만 바보의 심부름을 말한 것처럼 성공한 경우 보조 정리가 실패합니다. – NeoR

+0

?! 행운을 빕니다. 일단 당신이 끝나면 integer * a, b, c *, st, * a^3 + b^3 = c^3 *에 대한 검색을 물어보고, 그들을 찾는 방법에 대한 지침을 요청할 것입니다 . –

+0

그 방법으로는 2 way PDA가 가능할 것입니다. – NeoR