

결정문제
'결정 문제'란 모든 수학적 명제에 대해 참인지 거짓인지를 유한 시간내에 판별할 수 있는 일반적인 절차, 즉 알고리즘이 존재하는지를 묻는 것이었습니다. 이 문제를 처음 제기한 힐베르트는 이러한 알고리즘이 존재할 것이라 기대했습니다. 1920년대에는 수학적 엄밀성에 대한 열정이 고조되어 있었고, 수학적 진리를 탐구하는 강력한 체계들이 속속 등장하고 있었기 때문입니다. 힐베르트는 수학이 충분히 강력하다면, 모든 문제에 대해 확실한 답을 구할 수 있을 것이라 보았던 것입니다.
하지만 10년이 채 지나지 않은 1936년, 영국의 젊은 수학자 앨런 튜링은 '계산 가능한 수와 결정 문제에 관한 적용에 관하여'라는 논문을 통해 모든 수학적 명제를 증명하거나 반증할 수 있는 하나의 보편적인 절차, 즉 알고리즘이 존재하지 않는다는 사실을 증명합니다.
튜링 기계(Turing Machine)
튜링의 논증은 매우 독창적이었는데, 그는 '튜링 기계'라는 개념적인 장치를 통해 어떤 명제가 주어졌을 때 이 명제를 풀기 위해 필요한 단계별 과정이 존재하는지 검토했습니다. 유한하고 기계적인 절차를 통해 계산 가능한 함수라는 직관적 개념을 형식화하는 데 성공한거죠.
튜링 기계는 무한히 긴 테이프(tape)를 갖춘 상상의 계산 기계입니다. 이 테이프는 같은 크기의 작은 칸(셀, cell)으로 나누어져 있으며, 각 셀에는 특정 기호가 기록됩니다. 튜링 기계의 헤드(head)는 테이프 위를 이동하며 셀에 기록된 기호를 읽거나 새로운 기호를 써넣을 수 있습니다. 튜링 기계의 현재 상태는 상태 기록기(state register)에 저장되며, 상태에 따라 기계의 동작은 동작 지침(action table)이라는 지침표에 의해 결정됩니다.
테이프(Tape)
테이프(Tape) 는 무한히 긴 종이와 비슷한 것으로, 작은 칸들로 나뉘어 있으며 각각의 칸에는 글자나 숫자(기호, Symbol)가 적혀 있을 수 있고, 비어 있을 수도 있습니다. 테이프는 상징적인 것으로 필요한 만큼 양쪽으로 더 길게 늘어날 수 있습니다. 대부분의 튜링 기계 문제에서 일관된 초기적은 제공하기 위해 테이프가 모두 0으로 채워진 상태에서 시작합니다.
머리(Head)
머리(Head)는 테이프 위에서 이동하며 기호를 읽거나 쓸 수 있는 작은 장치입니다. 머리는 칸을 하나씩 움직이며 현재 위치에 어떤 기호가 적혀 있는지를 읽고, 그에 따라 명령을 실행합니다. 예를 들어, 머리가
0
이라는 기호를 읽고1
로 바꾸거나, 테이프를 오른쪽으로 한 칸 이동하는 식입니다. 머리는 한 번에 한 칸씩 움직이며 읽기(read)와 쓰기(write) 작업을 수행하는 역할을 합니다.상태 기록기 (State Register)
튜링 기계에는 상태(State) 라는 개념이 있습니다. 상태 기록기 (State Register)는 기계가 지금 어떤 상황에 있는지를 기억하는 역할을 합니다. 튜링 기계은 항상 하나의 상태에 있으며, 이 상태가 바뀌면서 수행할 작업도 달라집니다.
동작 지침 (Action Table)
튜링 기계는 기계가 무엇을 해야 할지 미리 정해진 동작 지침(Action Table) 에 따라 작동합니다. 동작 지침은 기계가 특정 상태에 있을 때 특정 기호를 읽으면 어떤 행동을 해야 하는지를 알려줍니다. 예를 들어, 동작 지침에는 다음과 같은 내용이 있을 수 있습니다.
- 상태가
이고 을 읽고 있다면, 을 쓰고, 오른쪽으로 한 칸 이동하며( ), 라는 상태로 전환(Change State)한다. - 상태가
이고 을 읽고 있다면, 그대로 두고, 왼쪽으로 한 칸 이동하며( ), 라는 상태로 전환한다.
이해하기 쉽게 수식으로 정리해보겠습니다. 전이 함수
예를 들어
다음으로
앨런 튜링는 오늘날 튜링 머신이라 불리는 개념을 정의하며, 정수에 대한 함수가 직관적으로 계산 가능하다는 것이 오직 튜링 머신으로 계산 가능할 때만 해당된다고 주장했습니다. 이와 비슷한 시기에 다른 연구자들도 다양한 계산 모델을 제안했으나, 이들 역시 튜링 머신과 동일한 함수 집합을 계산하는 것으로 판명되었습니다.
일련의 연구를 통해 계산 가능성에 대한 직관적 개념을 튜링 머신의 형식적 개념으로 포착하여 "어떤 함수가 계산 가능하다면, 그 함수는 튜링 머신으로 계산 가능하다."는 처치-튜링 논제(Church-Turing Thesis)로 발전했습니다.[^4] 따라서 우리가 직관적으로 계산 가능하다고 여기는 모든 함수는 튜링 머신이라는 형식적 모델을 통해서만 계산될 수 있으며, 다른 어떤 계산 모델로도 이보다 더 많은 함수를 계산할 수 없다고 볼 수 있습니다. 이 논제는 수학적 정리가 아닌 가설로 간주되지만, 아직까지 이 논제를 반박할 만한 계산 모델이 아직 발견되지 않았고, 실용적인 컴퓨팅의 모든 영역에서 튜링 모델은 표준으로 받아들여지고 있습니다.
계산 가능한 함수와는 달리 어떤 계산 모델이 주어지면, 대각화 방법을 통해 쉽게 계산 불가능한 함수를 정의할 수 있습니다. 대각화 방법이란 모든 계산 가능한 함수들의 목록을 작성한 후, 목록에 있는 각 함수와 구별되는 함수를 정의하는 방법입니다. 이렇게 정의된 함수는 계산 불가능한 함수가 됩니다. 그러나 대각화를 통한 정의는 목록 선택과 마지막 함숫값 선택에 너무 많은 여지를 남깁니다. 따라서 계산 불가능한 함수도 단순하고 자연스러우며 모호함이 없는 정의가 필요했습니다.
계산할 수 없는 함수
티보르 라도(Tibor Radó)는 튜링의 연구가 남긴 한계를 더욱 확장하며, 계산할 수 없는 함수의 본질에 초점을 맞췄습니다. 라도는 계산 불가능성을 단순히 추상적인 한계로 두기보다, 한계를 실제로 체감할 수 있는 구체적인 예로 설명하고자 했습니다. 이렇게 탄생한 개념이 바로 바쁜 비버 함수(Busy Beaver Function)입니다.
바쁜 비버 함수는
는 개의 상태와 개의 기호를 가진 튜링 기계들 중에서 멈추기 전까지 테이프에 남길 수 있는 최대 (또는 특정 기호)의 개수를 나타냅니다. 즉, 최대한 많은 을 남기는 기계를 찾는 것이 목표입니다.
는 개의 상태와 개의 기호를 가진 튜링 기계들 중에서 멈추기 전까지 수행하는 최대 이동 횟수 즉, 가장 오래 이동하는 기계를 찾는 것을 목표로 합니다.
이 두 함수는 각각 다른 기준으로 튜링 기계의 '바쁨'을 측정하는 지표로, 튜링 기계가 계산 가능한 최대한의 작업량을 정의합니다. 자연에서 가장 부지런한 동물로 꼽히는 비버는 항상 일하는 모습으로 잘 알려져 있습니다. 이러한 비유에서 착안하여, 주어진 조건 내에서 최대한 많은 작업을 수행하는 튜링 기계의 특성을 강조하며 이 함수를 ‘바쁜 비버 함수’라고 부르게 되었습니다. 나무 막대기 처럼 생긴
바쁜 비버 문제의 고전적인 정의가 기호가
때에 따라
구체적인 예시로
- 기계가 멈출 때까지 테이프에 남기는 1의 최대 개수인
. - 기계가 멈출 때까지 수행하는 최대 이동 횟수인
.
이 값을 찾기 위해 상태가 한 가지인 바쁜 비버가 수행할 수 있는 모든 동작을 고려해보겠습니다. 우선 기계의 동작을 결정하는 전이 함수를 정의해보겠습니다. [^1]
상태가 하나이므로, 현재 상태
반면에 상태가 하나뿐인 조건에서, 바쁜 비버가 더 많은
기계는 무한 루프에 빠져 멈추지 않게 됩니다. 따라서 바쁜 비버가 멈추면서 최대한 많은
나아가,
표로 나타내어 설명하겠습니다.
전이 함수를 표로 명확하게 나타내기 위해 표의 첫 번째 행에는 현재 상태를, 첫 번째 열에는 읽은 기호를 적습니다. 다음으로 각 행과 열이 교차하는 칸에는 해당 전이 함수의 값을 쓰는 기호(Write symbol), 이동 방향(Move tape), 다음 상태(Next state) 순서로 작성합니다. 예를 들어 상태
그렇다면 이렇게 많은 조합 중에서
수 많은 조합 중 가장 긴 실행 시간을 가진 바쁜 비버를 찾는 과정은 단순하지 않지만 모든 경우를 일일이 검토한 결과 앞서 소개한 전이 함수가
바쁜 비버는 초기 상태
세가지 상태
반면에 전이 함수
다섯 가지 상태를 가진 바쁜 비버의 수는 약
이 발견은
를 만족하는 다른 비버
이 비버는번의 이동 만에 번의 을 작성한다.
이 바쁜 비버는 쓸 수 있는
여기서 위쪽 화살표는 테트레이션(Tetration)을 나타내는 기호로, 거듭제곱을 반복적으로 수행하는 연산입니다. 수학에서 이 표기법은 주로 빠르게 증가하는 함수나 수학적 정의를 단순화할 때 사용됩니다.
보시다시피 상태의 개수가 단지
바쁜 비버를 잡는게 중요한 이유
계산 이론에서는 시간 복잡도와 관련된 문제가 핵심이므로, 기계가 얼마나 많은 이동을 수행할 수 있는지가 특히 중요하게 다뤄집니다.
어떤 계산 문제에 대해 "계산 가능하지 않다"는 것을 증명하기 위해서는 해당 기계가 멈추지 않고 매우 많은 단계의 작업을 수행하게 만드는 상황을 제시하는 것이 유리하기 때문이죠. 그리고 이러한 성질은 중요한 미해결 수학 문제의 난이도를 측정하거나 무엇이 수학적으로 인식 가능한지를 판단하는 기준으로 사용합니다.
골드바흐 추측은
이 코드는
결국 이 말은 우리가
물론 이 뜻이 골드바흐의 추측을 증명하거나 해결했다는 것은 아닙니다.
이러한 결과는 수학문제의 복잡성 척도로 “바쁜 비버”를 사용할 수 있다는 가능성을 보여줍니다. 쉽게 말해 드래곤볼의 스카우터 처럼 수학 명제가 얼마나 어려운지 측정할 수 있지요. 예를 들어 에르되시의
그나마 다행인 것은 많은 수학자들의 노력으로 골드 바흐의 추측을 반증하는 기계는 현재
물론
[^1]: Michel, P. (2022). The Busy Beaver Competition: a historical survey
[^2]: Hopcroft, John; Ullman, Jeffrey. (1979). Introduction to Automata Theory, Languages, and Computation
[^3]: T. RADO. (1962). On Non-Computable Functions
[^4]: Computability and Recursion
[^5]: How the Slowest Computer Programs Illuminate Math’s Fundamental Limits
[^6]: Busy Beavers, Theoretical Computer Science (2021).
[^7]: Lin and Rado. (1965). Computer Studies of Turing Nlachine Problems
[^8]: C. G. Addict. No name, 2016.
[^9]: The Busy Beaver Challenge
[^10]: metamath-turing-machines/riemann-matiyasevich-aaronson.nql at master · sorear/metamath-turing-machines
[^11]: A Relatively Small Turing Machine Whose Behavior Is Independent of Set Theory
[^12]: lengyijun/goldbach_tm25
You know what's cooler than magic? Math.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!