수학 개념 지도
논리와 계산(Logic and computation)

튜링 기계(Turing machine)

칸이 끝없이 이어진 테이프, 한 칸을 읽고 쓰는 헤드, 유한한 상태표만으로 '기계적인 계산'을 정의한 가상의 기계. 보편 튜링 기계⁠(universal Turing machine)⁠는 다른 모든 튜링 기계를 흉내 낸다.

δ(q,s)=(s′,d,q′),d∈{L,R}\delta(q, s) = (s', d, q'), \quad d \in \{L, R\}
먼저 보면 좋은 개념함수진법

1936년 앨런 튜링은 '기계적으로 계산한다'는 말을 정확히 정의하려고, 종이와 연필로 계산하는 사람을 극단까지 단순하게 만들었습니다. 칸이 한 줄로 끝없이 이어진 테이프, 한 번에 한 칸만 읽고 쓰는 헤드, 그리고 유한한 개수의 상태가 전부입니다. 기계의 프로그램은 표 하나입니다. 표의 한 칸은 "(지금 상태 q, 읽은 기호 s) → (쓸 기호 s′, 움직일 방향 d, 다음 상태 q′)"라는 규칙이고, 기계는 정지 상태에 닿을 때까지 이 규칙을 되풀이합니다. 방향 d는 왼쪽(L)이나 오른쪽(R)입니다. 아래 그림의 기계들은 편의상 제자리(–)도 쓰는데, 이것을 허용해도 계산할 수 있는 것은 달라지지 않습니다. 이렇게 초라한 기계가, 지금까지 알려진 어떤 컴퓨터가 하는 계산이든 (시간과 테이프만 넉넉하면) 모두 해냅니다. 이것이 계산의 정의로 받아들여지는 까닭은 처치–튜링 논제⁠(Church–Turing thesis)⁠에서 다룹니다.

위는 테이프와 헤드(노란 삼각형), 아래는 상태표입니다. 노란 테두리가 다음에 쓸 규칙입니다. 표의 L·R은 왼쪽·오른쪽, –는 제자리, ␣는 빈칸입니다. 테이프 칸을 누르면 처음 입력을 바꿀 수 있습니다.

기계를 로 바꿔 가며 한 걸음씩 따라가 보세요.

이진수에 1 더하기는 오른쪽 끝까지 간 다음, 1을 0으로 바꾸며 받아올림을 왼쪽으로 넘기다가 0이나 빈칸을 만나면 1을 쓰고 멈춥니다. 이진법⁠(binary)⁠의 받아올림 그대로입니다. 회문 검사는 abba처럼 앞에서 읽으나 뒤에서 읽으나 같은 문자열(회문)인지 가립니다. 맨 앞 글자를 지우고 그 글자를 상태로 기억한 채(a→, b→) 오른쪽 끝으로 가서 마지막 글자와 비교합니다. 헤드가 테이프를 계속 오가므로 길이 n인 입력에 대략 n²에 비례하는 걸음이 듭니다. 알고리즘⁠(algorithm)⁠의 빠르기를 이런 걸음 수로 재는 것이 P 대 NP 문제⁠(P versus NP problem)⁠의 출발점입니다.

바쁜 비버⁠(busy beaver)⁠는 기호 0과 1만 쓰는 n상태 기계 가운데, 빈 테이프에서 출발해 언젠가 멈추면서 1을 가장 많이 남기는 기계입니다. 상태가 셋이면 최대 6개이고, 위의 기계가 그런 기계입니다(14걸음 만에 멈춥니다). 남기는 1의 개수 대신 멈출 때까지 걸리는 걸음 수의 최댓값을 물어도 됩니다. 이런 최댓값들은 n이 커질수록 어떤 계산 가능한 함수⁠(function)⁠보다도 결국 빨리 자랍니다(헝가리 태생의 미국 수학자 티보르 라도, 1962). 여기서 계산 가능한 함수란 n을 입력받아 그 값을 적고 멈추는 튜링 기계가 있는 함수를 말합니다. 핵심은 계산 가능한 함수로는 이 최댓값을 위에서 막을 수조차 없다는 데 있습니다. 만약 모든 n에서 걸음 수의 최댓값 이상인 수를 계산해 내는 기계가 있다면, n상태 기계를 빈 테이프에서 그 걸음만큼 돌려 보고 그때까지 멈추지 않으면 영원히 돈다고 판정할 수 있게 됩니다. 멈추는 기계와 영원히 도는 기계를 이렇게 가려내는 일은 정지 문제⁠(halting problem)⁠ 때문에 불가능합니다. 다섯 상태의 경우 가장 오래 달리는 기계가 47,176,870걸음 만에 멈춘다는 사실은 2024년에야 온라인 공동 연구 모임(bbchallenge)의 작업과 컴퓨터 증명 검증으로 확정되었습니다.

튜링의 가장 큰 발견은 보편 튜링 기계입니다. 상태표도 기호열로 적어 테이프에 올릴 수 있으니, 다른 기계의 표와 입력을 테이프에서 읽어 그 기계가 할 일을 한 걸음씩 흉내 내는 기계 하나를 만들 수 있습니다. 프로그램을 데이터처럼 메모리에 넣어 두는 오늘날 컴퓨터의 발상, 흔히 폰 노이만의 이름으로 불리는 내장 프로그램 방식⁠(stored-program concept)⁠과 같은 생각이 이 기계에 이미 들어 있습니다. 또 기계는 모두 유한한 기호열로 적히니 기계 전체는 가산개뿐이고, 자릿수를 계산해 낼 수 있는 실수⁠(real number)⁠도 가산개뿐입니다. 그런데 실수는 셀 수 없이 많으므로(대각선 논법⁠(diagonal argument)⁠) 나머지 셀 수 없이 많은 실수는 어떤 기계로도 자릿수를 계산해 낼 수 없습니다. 튜링의 1936년 논문 제목이 바로 「계산 가능한 수⁠(computable number)⁠에 대하여」였습니다.

이어지는 곳. 튜링 기계에서 힘을 덜어 내면 더 약한 기계들이 나옵니다. 테이프에 쓰지 못하고 한 방향으로 읽기만 하는 기계가 유한 오토마톤⁠(finite automaton)⁠입니다. 쓸 수 있는 칸을 입력이 차지한 칸으로 제한한 기계(선형 유계 오토마톤⁠, linear bounded automaton⁠)는 문맥 의존 언어⁠(context-sensitive language)⁠를 인식하는데, 예를 들어 aⁿbⁿcⁿ처럼 a, b, c 세 덩어리의 길이가 모두 같은 문자열들을 알아봅니다. 기계의 힘에 따라 나뉘는 이 층들이 촘스키 위계⁠(Chomsky hierarchy)⁠입니다. 같은 1936년 알론조 처치는 전혀 다른 람다 계산⁠(lambda calculus)⁠으로 같은 개념에 이르렀고, 둘이 같다는 사실이 처치–튜링 논제의 근거가 되었습니다. 튜링은 이 논문에서 힐베르트의 결정 문제⁠(decision problem)⁠가 풀릴 수 없음도 보였습니다. 결정 문제는 1차 논리⁠(first-order logic)⁠로 적은 문장이 주어지면, 그 문장이 논리 법칙만으로 증명되는지를 기계적으로 가리는 방법을 찾으라는 문제입니다. 처치도 몇 달 앞서 따로 같은 결론에 이르렀습니다. 괴델이 '증명할 수 없는 참'이 있음을 보였다면 튜링은 '기계적으로 판정할 수 없는 문제'가 있음을 보인 것이라, 괴델의 불완전성 정리⁠(Gödel's incompleteness theorems)⁠와 짝을 이루는 결과입니다. 튜링 기계는 '알고리즘'이라는 말에 정확한 뜻을 준 모형 가운데 가장 설득력 있는 것으로 꼽힙니다. 보편 기계⁠(universal machine)⁠ 하나를 정해 두고, 그 기계에 넣어 어떤 문자열을 출력하게 하는 가장 짧은 프로그램의 길이가 그 문자열의 콜모고로프 복잡도⁠(Kolmogorov complexity)⁠입니다.

이 개념이 나오는 큰 생각무한을 다루는 법자기 참조와 대각선

이 개념이 나오는 긴 글

집합론 무한에도 크기가 있다 자연수와 짝수는 어느 쪽이 많을까? 칸토어는 무한을 세는 법을 찾았고, 무한이 하나가 아님을 보였다. 혼돈 나비의 날갯짓 방정식이 정해져 있으면 미래도 정해질까? 소수점 아래 몇 자리를 버린 계산이 날씨 예보의 한계를 드러냈다. 계산 이론 기계가 풀 수 없는 문제 모든 수학 문제를 기계적으로 풀 수 있을까? 러셀의 역설에서 괴델과 튜링까지, 그 질문에 대한 답은 '아니오'였고, 그 증명이 컴퓨터를 낳았다. 계산언어학 말을 세는 기계 문법은 규칙일까, 확률일까? 파니니의 문법에서 촘스키의 위계, 섀넌의 영어 엔트로피, 오늘날의 언어 모델까지. 정보 이론과 압축 짧게 보내기 모스 부호는 왜 E를 점 하나로 보낼까? 섀넌의 엔트로피가 정한 압축의 한계와, 허프만 부호에서 JPEG까지 그 한계에 다가간 방법들. 신경망과 기계 학습 배우는 기계 예를 보여 주면 규칙을 스스로 찾는 기계. 1958년의 퍼셉트론에서 오늘의 심층 신경망까지, 그 밑바닥에는 미분과 연쇄법칙이 있다. 타입 이론과 범주론 증명은 프로그램이다 러셀의 역설을 막으려던 '타입'이 프로그램의 실수를 막는 장치가 되었다. 명제를 타입으로, 증명을 프로그램으로 읽으면 둘이 규칙 하나하나까지 맞아떨어진다. 오늘날 수학자들은 그 사실로 컴퓨터에게 증명을 검사받는다. 언어 모델 다음 단어를 맞히는 기계 다음 낱말을 짐작하는 일만으로 어디까지 갈 수 있을까? 마르코프의 글자 세기에서 섀넌의 추측 게임, 트랜스포머와 규모의 법칙, 사람의 선호까지. 밑바닥에는 확률의 곱셈 규칙과 로그 하나가 있고, 그 수학은 모델이 왜 그럴듯하게 틀리는지도 말해 준다. 압축과 과학 압축하는 것이 이해하는 것이다 튀코 브라헤가 20년 동안 적은 행성의 위치를 케플러는 법칙 세 줄로 줄였다. 짧게 적는 일과 이해하는 일은 정말 같은 일일까? 오컴의 면도날을 비트로 재는 법, 과적합을 압축의 실패로 읽는 법, 그리고 그 말이 정리인 곳과 철학인 곳.

이 개념 위에 세워진 것

이 개념을 언급하는 페이지

이 페이지가 가리키는 개념