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

Download Report

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

3.5 구문-구조 언어의 범위를 넘어서
• 튜링 기계를 위한 부호화 시스템
• 비-구문-구조 언어
• 범용 튜링 기계(Universal Turing machine)
• 수락가능 언어 대 결정가능 언어
• 정지 문제(halting problem)
2002 계산이론
1
튜링 기계를 위한 부호화 시스템
• 튜링 기계를 0과 1만을 포함하는 스트링으로
표현
– 튜링-수락가능이 아닌 언어를 확인
– 부호화 시스템(coding system)
• M = (S, , , , , h), where  =   {}
– 상태 집합 S를 부호화
– 알파벳 와 이동 연산 R과 L을 부호화
– : (S  {h})    S  (  {L, R})
• 전이는 (현재 상태, 현재 기호)와 (다음 상태, 쓰기/이동 연
산)으로 구성  부호화 가능
2002 계산이론
2
상태 집합 S를 부호화
• 0들의 스트링으로 표현
• M의 상태들을 배열한다
–
–
–
–
–
첫 번째 상태, 초기 상태: 0
두 번째 상태, 정지 상태: 00
세 번째 상태 : 000
…
j번 째 상태: 0…0 (0이 j개)
2002 계산이론
3
와 이동 연산 R과 L을 부호화
• 0들의 스트링으로 표현
• L, R, 그리고 에 있는 기호들을 목록화
–
–
–
–
–
–
L, 좌로 이동 : 0
R, 우로 이동 : 00
의 첫 번째 기호 : 000
의 두 번째 기호 : 0000
…
의 j 번째 기호 : 000…0 (j+2 개의 0들)
• 공백 기호 : 공백 스트링
2002 계산이론
4
전이의 부호화
• 전이 (p, x) = (q, y);
– 4-tuple (p, x, q, y)  p1x1q1y
•
•
•
•
p : 현재 상태
x : 현재 기호
q : 새로운 상태(next state)
y : 테이프 기호 또는 L 혹은 R
– 네 그룹의 0들의 스트링들
– 각 스트링은 1로 분리한다
– (, x) = (h, R)  01000100100
2002 계산이론
5
전이들의 목록
• 각 전이는 세 개의 분리자와 네 그룹의 0
들의 스트링으로 구성
– 01000100100
• 세 개의 전이들(A, B, C)의 표현
– 1 전이A 1 전이B 1 전이C 1
– 1 : 전이 분리용 1
– 1 : 시작의 1과 마지막 종결용 1
2002 계산이론
6
튜링 기계의 부호화
• 전이들의 나열
–
–
–
–
상태 0(초기 상태)에서 시작하는 모든 전이들
상태 000에서 시작하는 모든 전이들
상태 0000에서 시작하는 모든 전이들,
…
• 같은 현재 상태의 전이들의 나열
– 현재 기호가 공백인 겨우
– 코드가 000인 경우
– 코드가 0000인 경우, …
2002 계산이론
7
비-구문-구조 언어
• 튜링 기계
– 0과 1로된 스트링으로 표현
– 이진법으로 쓰여진 음이 아닌 정수로 표현
• (전사) 함수: 정수 N  튜링 기계들
– 유효한 튜링 기계가 아닌 정수  simple
Turing machine (그림 3.21)
– i  Mi
2002 계산이론
8
언어 L0
• 함수: *  튜링 기계들
– where  and  =   {}
– w  M|w|, |w|는 w의 길이
– 간단한 표기: w  Mw (w에 연계되는 기계)
• L0 = {w : Mw는 w를 수락하지 않는다}
– *의 원소 w는 그것에 대응되는 기계 Mw 에
의해서 수락되지 않으면 L0에 포함된다
2002 계산이론
9
증명: L0이 튜링-수락가능하지 않다
• 반대 명제  모순
• 가정: L0이 튜링-수락가능하다
– 알파벳은 이고 과  =   인 기계
– L0는 Mw0에 의해 수락된다. Then, L0 = L(Mw0)
• Mw0는 w0( *)에 대응되는 기계
– w0이 L(Mw0)에 있는가(속하는가)?
• w0  L(Mw0) or w0  L(Mw0)
2002 계산이론
10
모순이다
• w0이 L(Mw0)에 속한다
– w0  L(Mw0), 즉, w0를 수락하는 기계가 있다
– L0의 정의에 의해, w0  L0
– w0  L(Mw0)  w0  L0 , but L0 = L(Mw0)
• w0이 L(Mw0)에 속하지 않는다
– w0  L(Mw0), 즉, w0를 수락하는 기계가 없다
– L0의 정의에 의해, w0  L0
– w0  L(Mw0)  w0  L0 , but L0 = L(Mw0)
2002 계산이론
11
범용 튜링 기계
• L1 = {w : Mw는 w를 수락한다}
– L0 = {w : Mw는 w를 수락하지 않는다}
• L0를 수락하는 튜링 기계는 없다
– L0의 여집합 L1이 튜링-수락가능하다
• L1을 수락하는 튜링 기계는 있다
• 범용 튜링 기계를 사용한다
• 튜링 기계가 언어를 수락하는 능력의 대칭성
– 어떤 정해진 언어에 속한 스트링을 수락한다
– 그 언어에 속하지 않은 스트링을 기각한다
2002 계산이론
12
Universal Turing machine
• 다른 튜링 기계를 모의수행할 수 있는
programmable 튜링 기계
– 오늘날 프로그램 가능한 컴퓨터의 추상적인 선구자
• 범용 기계에 요구되는 작업을 수행하는 튜링
기계의 부호화된 버전
– 전통적인 튜링 기계를 0과 1의 스트링으로 부호화 :
프로그램
– 입력으로 사용할 데이터를 부호화: 그림 3.22
2002 계산이론
13
이 곳은 새로운 전이의 시작일 수가 없다. 왜냐하면 그러한
해석은 유효하지 못한 상태 부호를 만들기 때문이다.
(, ) = (h, x) 1 (, x) = (h, R)
x1x1x
10110010001010001001001 1000100010001
시작의 1과 종결용 1
스트링의 울타리
부호화된 튜링 기계와 데이터
2002 계산이론
14
부호화된 튜링 기계와 데이터
• 그림 3.23: 1coded version of TM1 1coded w1
– 부호화된 튜링 기계 + 부호화된 데이터
– 1 첫번째 전이 1 두번째 전이 1 1 첫번째 기호 1 두번
째 기호 1 세번째 기호 1
• 범용 튜링 기계는 프로그램을 사용하여 데이터
를 조작한다.
– 테이프의 앞 부분에서 적용 가능한 전이들을 찾아
서 모의수행
– 테이프의 뒷 부분에 있는 스트링을 조작
2002 계산이론
15
범용 튜링 기계
• 3-테이프 기계
– 첫 번째 테이프: 입력 프로그램과 데이터를
저장하였다가 출력을 저장 (입력  출력)
– 두 번째 테이프: 입력 데이터가 다루어지는
작업 테이프로 사용
– 세 번째 테이프: 모의수행되고 있는 기계의
현재 상태를 나타낸다
• 그림 3.24
2002 계산이론
16
수락가능 언어 대 결정가능 언어
• L0의 여집합인 L1을 수락하는 합성 기계
 Mpre  Tu
– Mpre : 프로그램(튜링 기계의 부호화)과 데이
터를 만듬
• 1coded version of TM1 1coded w1
– Tu : universal Turing machine
– Mw를 w에 적용하여 만약 Mw가 w를 수락하
는 경우에만 정지
• L1 = {w : Mw는 w를 수락한다}을 정확히 수락
2002 계산이론
17
튜링-결정가능 언어
• Turing-decidable language
– 어떤 스트링이 어떤 정해진 언어에 있는지의 여부
를 결정할 수 있는 튜링 기계가 존재
• 언어 L1은 수락가능하지만 결정가능한 것은 아
니다
– w  L1을 확인하는 튜링 기계가 있지만
– w  L1인 w  L0를 확인하는 튜링 기계는 없다
• 결정가능한 언어들의 예
– 문맥-무관 언어
– 그림 3.28: 언어 {xnynzn: n  N}
2002 계산이론
18
튜링-결정가능 언어의 확인
• w  L 인지 아닌지를 결정할 수 있다
– 입력 스트링 w와 같은 길이의 스트링들을 생성한다
– w가 G의 시작 기호 S 열 밑에 기록되어 있으면, w 
L ; 없으면 w  L
• 그림 3.26
• 그림 3.27
– G = (N, T, S, R)
– (|N| + 1)-테이프 튜링 기계
2002 계산이론
19
정지 문제(halting problem)
• 튜링-결정가능 언어가 아닌 언어
• 자체-종료(self-terminating)
–
–
–
–
–
(M) : 튜링 기계 M이 0들과 1로 부호화
 = {0, 1}과  = {0, 1, }을 가진 기계 M
부호 스트링 (M)은 기계 M 자체의 입력
M의 입력이 (M)이면, 정지하는 지?
정지하면, M이 자체-종료한다고 말한다
2002 계산이론
20
정지 문제: Lh를 결정하는 문제
• Lh = {(M) : M은 자체-종료한다}
– Lh  {0, 1}*
– Lh가 튜링-결정가능인지의 여부
– 주어진 string이 자체-종료 기계의 coded
version인지를 탐지
– 주어진 기계가 특정 입력에 정지하는 지를
결정
2002 계산이론
21
언어 Lh는 튜링-결정가능이 아니다
• 귀류법으로 증명
– 가정, 전개, 모순(그러면 가정이 틀림)
• 가정: Lh를 결정하는 튜링기계 Mh가 있다
• 합성 기계 M0:
– Mh의 수정본 Mh
• Mh가 Y로 마치면, 메시지 1로 표기
• Mh가 N으로 마치면, 메시지 0으로 표기
2002 계산이론
22
합성 기계 M0
1 R
 Mh  R 
• Mh 이 출력 0으로 정지 상태에 도달하면
정지한다.
•  = {0, 1, }
• 논증의 중심: M0이 자체-종료하느냐?
– 입력 = (M0)
2002 계산이론
23
전개  모순
• 전개
– M0이 자체-종료한다
• 그림 3.29 : 자체-종료하지 않는다
– M0이 자체-종료하지 않는다
• 그림 3.30 : 자체-종료한다
• 모순에 도달
– 초기 가정이 틀렸다
언어 Lh는 튜링-결정가능이 아니다
2002 계산이론
24