Computer Science

튜링 머신

sung960929 2020. 12. 18. 16:24

유튜브 주니온 TV 아무거나 연구소의 <TMItalk. 튜링 머신의 이해> 영상을 보고 내용을 정리했다.

 www.youtube.com/watch?v=BOr1waCdv3U&feature=youtu.be

 

튜링 머신의 이해

 

다비트 힐베르트

 - 20세기 가장 위대한 수학자로 손꼽히는 1

 - 힐베르트 문제 : 20세기에 풀어야 할 23개의 문제 제시

 - 힐베르트의 꿈 : 정의와 공리를 입력하면 모든 수학적 명제를 도출해줄 수 있는 만능기계가 있으면 좋지 않을까?

                         (공리(axiom) : 논리학이나 수학 등의 이론체계에서 가장 기초적인 근거가 되는 명제)

 

쿠르트 괴델

 - 힐베르트의 꿈을 박살낸 수학자

 - 불완전성 정리(Incompleteness Threorem) : 페아노 공리계를 포함한 모든 무모순적 공리계는 참인 일부 명제를 증명할 수 없다. -> 기계적인 방식으로 모든 수학적 명제를 도출할 수 없다.

 

앨런 튜링

 - 수학만으로 컴퓨터를 만든 컴퓨터과학의 아버지

 - 내가 설계한 튜링 머신은 모든 계산을 할 수 있는 보편적 만능기계인데, 그 기계로도 정지 문제는 풀 수 없다.

     -> 모든 수학적 명제를 도출하는 기계를 만들었는데, 그 기계가 풀 수 없는 문제가 있다.

     -> 괴델의 불완전성 정리를 뒷받침하는 근거로, 힐베르트의 꿈이 이루어질 수 없다고 주장

   (정지 문제 프로그램을 설명한 것과 처음 입력값이 주어졌을 때, 이 프로그램에 입력값을 넣고 실행한다면 이 프로

                    그램이 계산을 끝내고 멈출지 아니면 계속 계산할지 판정하는 문제

 

튜링 머신

 - 실존하는 기계가 아닌 수학적 도구(가상의 도구)

 - 테이프, 헤드, 상태 기록기, 행동표가 존재

 

 - 용어 정리

    - 테이프 : 일정한 크기의 셀(Cell)로 나뉘어 있는 종이 테이프. 각 셀에는 기호가 기록되어 있으며 길이는 무한히 늘어

                  날 수 있다.

    - 헤드 : 종이 테이프의 특정 한 셀을 읽을 수 있는 헤드. 이동이 가능하다.

    - 기호 집합 : 테이프에 읽고 쓸 수 있는 기호들의 집합

    - 상태 집합 : 튜링 머신이 가질 수 있는 상태들의 집합

    - 상태 기록기 : 현재 튜링 머신의 상태를 기록하고 있는 장치

    - 개시상태 : 상태 기록기가 초기화된 상태

    - 종료상태 : 수행이 종료된 상태

    - 행동표(명령 테이블) : 특정 상태에서 특정 기호를 읽었을 때 해야할 행동을 지시한다.

 

튜링 머신 예시

 

그림 1. 튜링 머신의 구조

 

 

기호 집합 X = {0, 1}

상태 집합 S = {s0, s1, H}, s0 : 초기 상태, H : 종료 상태

No.

현재 상태

읽은 기호

쓸 기호

헤드 이동

상태 이동

1

s0

0

1

R

s1

2

s0

1

1

L

s1

3

s1

0

1

L

s0

4

s1

1

1

R

H

 

행동표의 각 행은 간단하게 (헤드의 상태, 적혀있는 숫자, 쓸 숫자, 다음에 움직일 방향, 다음 상태)로 나타낼 수 있다.

  ex) No 1 -> (s0, 0, 1, R, s1)

작업 예시

 

초기 상태

 

그림 2. 초기 상태

행동 1. 현재 상태 s0, 읽은 기호 0 -> No.1 참조, 다음 상태 s1, 쓸 기호 1, 헤드 오른쪽 이동

 

그림 3. 첫 번째 행동

 

행동 2. 현재 상태 s1, 읽은 기호 0 -> No.3 참조, 다음 상태 s0, 쓸 기호 1, 헤드 왼쪽 이동

 

 

그림 4. 두 번째 행동

 

행동 3. 현재 상태 s0, 읽은 기호 1 -> No.2 참조, 다음 상태 s1, 쓸 기호 1, 헤드 왼쪽 이동

그림 5. 세 번째 행동

 

행동 4. 현재 상태 s1, 읽은 기호 0 -> No.3 참조, 다음 상태 s0, 쓸 기호 1, 헤드 왼쪽 이동

그림 6. 네 번째 행동

 

단계 5. 현재 상태 s0, 읽은 기호 0 -> No.1 참조, 다음 상태 s1, 쓸 기호 1, 헤드 오른쪽 이동

그림 7. 다섯 번째 이동

단계 6. 현재 상태 s1, 읽은 기호 1 -> No.4 참조, 다음 상태 H, 쓸 기호 1, 헤드 오른쪽 이동

그림 8. 튜링 머신 종료

현재 상태가 H로 변했으므로 튜링 머신의 동작이 끝난다.

 

이 튜링머신이 하는 일은? -> 아무것도 기록되어 있지 않은 메모리에 15를 기록한다(어셈블리보다 더 원시적인 방법). 이 방법이 15를 기록하기 위한 가장 효율적인 튜링 머신이다(2개의 상태만으로 기록).

-> 유한 상태 오토마타(Finite state Automata)

 

튜링 머신의 응용법

- 이론적으로 계산 가능한 모든 것을 할 수 있음(현대 컴퓨터로 불가능한 계산도 가능).

- Computability and Computational Theory

- 컴퓨터는 메모리가 유한하지만 튜링 머신의 테이프 길이는 무한하다고 가정하므로, 튜링 머신이 컴퓨터보다 할 수 있는 일이 더 많다.

 

클로드 섀넌 : 정보의 최소 단위는 비트, 모든 정보는 01로 표현 가능

튜링머신은 01, 그리고 10으로 바꿀 수 있다. -> 이 조합으로 and, or, not 연산 표현 가능 -> 사칙연산이 가능 -> 모든 연산이 가능

 

앨런 튜링

- 튜링 머신은 모든 정보를 처리할 수 있다.

 

유니버셜 튜링 머신

- 앨런 튜링이 만든 개념

- 임의의 튜링 머신 M의 명령 테이블을 보고 그것을 따라하는 따라쟁이 튜링 머신 UTM을 만들 수 있다.

-> 14개 사용하는 튜링 머신이 있다면(위의 예제), 그것을 따라하는 따라쟁이 튜링 머신(UTM)을 만들 수 있다.

- 어떤 튜링 머신에 대해 UTM이 존재하면, 그 튜링 머신이 존재하는지, 무한히 동작 하는지를 알 수 있다.

 

튜링 머신에서 헤드는 컴퓨터의 CPU, 테이프는 컴퓨터의 메모리로 치환이 가능하다. 각각의 튜링 머신은 컴퓨터의 응용프로그램으로, 유니버셜 튜링 머신은 컴퓨터의 운영체제로 치환 가능하다(운영체제(유니버셜 튜링 머신)가 각각의 응용프로그램(튜링 머신)을 실행시켜준다).