제3장 3절 언어 수락기로서의 튜링 기계

Download Report

Transcript 제3장 3절 언어 수락기로서의 튜링 기계

3.3 언어 수락기로서의 튜링기계
• 스트링 검사 절차
– 스트링 수락의 문제
• 다중-테이프 튜링 기계 (계산 성능 개선 ?)
– 정리 3.1
• 비결정적 튜링 기계 (계산 성능 개선 ?)
– 정리 3.2
2002 계산이론
1
스트링 검사 절차
• 시작 단계(초기 컨피규레이션)
– 테이프의 두 번째 칸에서부터 스트링 기록
– 테이프 헤드를 테이프의 첫 번째 칸에 위치
– 기계의 초기 상태
• “기계가 그 스트링을 수락한다”는 의미
– 초기 컨피규레이션에서부터 그 기계가 정지
상태까지의 길을 찾는 경우
2002 계산이론
2
L(M) = {xnynzn: n  N}
• 그림 3.12, 문맥-무관 언어가 아닌 언어
• 수락하는 과정에서 스트링 변화
xnynzn
 xn-1ynzn
 xn-1yn-1zn
 xn-1yn-1zn-1
…
2002 계산이론
3
초기 컨피규레이션:
x2y2z2
 x
x
y
y
z
z
 
#
#
x
x
y
y
z
z
 
R
#
x
x
y
y
z
z
 
SL
#
x
y
y
z
z
  
2002 계산이론
초기 상태
Shift left
4
  
R
#
x
y
y
z
z
SL
#
x
y
z
z
   
R
#
x
y
z
z
   
SL
#
x
y
z
    
2002 계산이론
Shift left
Shift left
5
L#
#
x
y
z
    
R
#
x
y
z
    
SL
#
y
z
     
Shift left
SL
#
z
      
Shift left
2002 계산이론
6
SL
#
       
Shift left
L
#
       
정지 상태
2002 계산이론
7
튜링-수락가능 언어
• Turing-acceptable language
• 튜링 기계 M에 의해 수락되는 스트링들
의 모임, L(M)
• L(M) = {xnynzn: n  N}
– 푸쉬다운 자동장치는 수락하지 못한다
– 문맥-무관 언어가 아니다
• 튜링-결정가능 언어(Turing-decidable
language) (239페이지)
2002 계산이론
8
튜링 기계의 수락 메시지
• 정지하기 전에 테이프에 수락 메시지
– 스트링을 수락한다: Y   • • •
– 기호 Y는 “예(yes)”를 나타낸다
– 이런 부가적인 수락 메시지는 튜링 기계의
성능에 영향을 미치지 않는다
2002 계산이론
9
수락 메시지를 남기는 M
• 초기 컨피규레이션
RSRRLL#R
w    • • •  #w    • • •
• 정지하기 전에 메시지 Y를 쓴다
#
R*L
#
2002 계산이론
RYL
10
수락 메시지를 남기는 튜링 기계 M
#
RSRRLL#R M0 R*L
#
RYL
2002 계산이론
11
다중-테이프 튜링 기계
• k-테이프 튜링 기계
• 정리 3.1 : L(M) = L(M)
– M : 다중-테이프 튜링 기계
– M : 단일-테이프 튜링 기계
– k-테이프 튜링 기계의 테이프들을 하나의 배
열로 표현: 그림 3.13
• 때때로 다중-테이프 기계를 사용하는 것
이 편리
2002 계산이론
12
비결정적 튜링 기계
• M = (S, , , , , h)
• 결정적 튜링 기계: 함수, 
: (S  {h})    S  (  {L, R})
• 비결정적 튜링 기계: 다음 곱의 부분집합
((S  {h})  )  (S  (  {L, R}))
• 상태/기호 쌍에 대하여 하나보다 많은 적
용 가능한 전이들이 있다.
2002 계산이론
13
정리 3.2: L(M) = L(D)
• L(M) = L(M)  정리 3.1: L(M) = L(D)
– M : 비결정적 튜링 기계
– M : 결정적 3-테이프 튜링 기계
• M의 세 테이프
– 첫 번째 테이프: 검사하고 있는 입력 스트링
– 두 번째 테이프: 작업 테이프, #w
– 세 번째 테이프: 전이들을 기억, 그림 3.10
• 모든 가능한 일련의 전이들을 발생
2002 계산이론
14
정리 3.2: M의 동작들
1. 테이프 1에서 입력 스트링을 테이프 2
에 복사
2. 테이프 3에서 다음 전이 순서 생성
3. 테이프 2에서 이 전이 순서를 모의수행
4. 두 가지 경우
1) 모의 수행이 M의 정지 상태로 되면 정지
2) Otherwise, 테이프 2를 지우고 단계 1 수행
2002 계산이론
15
3.4 튜링-수락가능 언어
• 튜링-수락가능 언어 대 구문-구조 언어
– 정리 3.3 : 모든 튜링-수락가능 언어는 구문구조 언어다.
– 정리 3.4 : 모든 구문-구조 언어는 튜링-수락
가능 언어이다.
• 구문-구조 언어의 범위
– 정리 3.5 : 어떤 알파벳 와 관련하여 구문-구
조 언어가 아닌 언어가 존재한다.
2002 계산이론
16
구문-구조 언어
• 문법적으로 정의될 수 있는 언어
• 그림 3.16: L(G) = {xnynzn: n  N}
• 구문-구조 언어는 정확히 튜링-수락가능
언어다
2002 계산이론
17
표기 시스템:
기계의 컨피규레이션
•
•
•
•
테이프의 왼쪽 끝: [
스트링의 오른쪽 : ]
현재 상태: 현재 기호의 바로 왼쪽
예: [xpxyxx]
– 현재 상태: p
– 테이프 컨피규레이션: xxyxx • • •
• 예제: 그림 3.17, {xmyn: m  N, n  N+}
2002 계산이론
18
정리 3.3
• M = (S, , , , , h)이 주어지면,
L(M) = L(G)인 G = (N, T, S, R)을 정의
• G의 비단말들, N
N = {S(문법의 시작기호), [, ]}  S  ,
where { , Y}  
• G의 단말들, T
T=
2002 계산이론
19
G의 생성 규칙들, R
R1:
R2:
R3:
R4:
R5:
R6:
R7:
R8:
S  [h Y ]
]   ]
qy  px, for each (p, x) = (q, y)
xq  px, for each (p, x) = (q, R)
qyx  ypx, for each (p, x) = (q, L)
[   
] ]
]  
2002 계산이론
20
L(M) = L(G)를 논증
w의 유도 과정을 만들어 낸다:
S  [h Y ]  • • •  [ w ]  w ]
w
그림 3.18
2002 계산이론
21
정리 3.4, L(G) = L(M)인 M
• 증명 과정
– L(G) = L(N)인 비결정적 2-테이프 튜링 기계
N
– L(N) = L(N1)인 비결정적 1-테이프 튜링 기
계 N1, by observation
– L(N1) = L(M3)인 결정적 3-테이프 튜링 기계
M3, by 정리 3.2
– L(M3) = L(M)인 결정적 1-테이프 튜링 기계
M, by 정리 3.1
2002 계산이론
22
비결정적 2-테이프 튜링 기계
• 테이프 1 : 검사하는 입력 스트링 저장
• 테이프 2 : 문법의 시작 기호로 생성 규칙
을 적용하여(비결정적으로) 스트링을 만
든다
• 테이프 2에 단말들만의 스트링이 되면,
– 테이프 1의 스트링과 비교하여, 두 스트링이
같으면 정지한다(수락)
– Otherwise, 비정상 종료.
2002 계산이론
23
구문-구조 언어의 범위
• 정리 3.5: 구문-구조 언어가 아닌 언어 존
재
• 부호화된 형식
– L : 알파벳  상의 구문-구조 언어, L = L(M)
– M = (S, , , , , h), where   {}  
– L(M) = L(M)인 M = (S, , , , , h), where
 =   {}
•   {}로만 된 테이프 기호들로 된 기계
2002 계산이론
24
부호화 시스템(Coding system)
•   {}로만 된 테이프 기호들로 된 기계
–
–
–
–
–
의 첫 번째 항목: x, x  
의 두 번째 항목: xx,
의 세 번째 항목: xxx,
…,
공백기호 : 두 개의 연속된 공백 문자들, 
• M은 M에 의해서 수락된 스트링들을 정
확하게 수락: L(M) = L(M)
2002 계산이론
25
증명 과정
•  =   {}, 상태/기호 쌍
• 튜링 기계들을 체계적으로 나열
–
–
–
–
두 개의 상태들만을 가진 모든 튜링 기계들
세 개의 상태들을 가진 모든 튜링 기계들
…
계수 가능한 튜링 기계들 = 계수 가능한 구
문-구조 언어
• *상에는 계수 불능의 언어들
2002 계산이론
26