Gödel 1931 · Turing 1936 · Church 1936 · Cook 1971

계산의 한계 컴퓨터가 절대 풀 수 없는 문제들

충격적인 사실: 컴퓨터로 풀 수 있는 문제와 풀 수 없는 문제가 있다 — 계산 속도나 메모리의 문제가 아니라, 어떤 컴퓨터를 써도, 얼마나 오래 기다려도, 원리적으로 답을 낼 수 없는 문제가 존재한다.

배경 — 힐베르트의 꿈

1900년 독일의 수학자 다비트 힐베르트는 야심찬 프로그램을 제시했다: 수학을 완전하고 무모순적인 공리 체계 위에 세우자. 모든 참인 수학 명제는 증명될 수 있고, 모든 수학 문제는 원리적으로 풀 수 있어야 한다고 믿었다.

30년 후, 두 명의 젊은 수학자가 이 꿈을 산산조각 냈다.

괴델의 불완전성 정리 (1931)

쿠르트 괴델은 25살에 수학의 역사를 바꿨다. 그의 증명은 충격적이었다: 충분히 강력한 모든 공리 체계는 다음 두 성질을 동시에 가질 수 없다.

제1불완전성 정리

충분히 강력한 일관된 공리 체계에는 그 체계 안에서 증명도 반증도 할 수 없는 참인 명제가 반드시 존재한다.

즉 "수학은 완전할 수 없다". 항상 참이지만 증명할 수 없는 명제가 있다.

제2불완전성 정리

그 체계가 일관적이라면, 자기 자신의 일관성을 그 체계 안에서 증명할 수 없다.

즉 수학은 자기 자신이 모순이 없다는 것을 스스로 증명하지 못한다.

괴델의 핵심 트릭 — 자기 참조:
괴델은 수학 명제에 번호를 매기는 방법(괴델 수)을 발명해서, 수학이 자기 자신에 대해 이야기할 수 있게 만들었다. 그리고 다음과 같은 명제 $G$를 구성했다:

"이 명제 $G$는 증명 불가능하다."

$G$가 참이면 → 증명 불가능한 참인 명제가 존재 (불완전).
$G$가 거짓이면 → 거짓인 명제가 증명됨 (모순적).
일관된 체계라면 첫 번째 경우 → 항상 증명 안 되는 참인 명제가 있다.

튜링과 정지 문제 (1936)

앨런 튜링은 컴퓨터라는 개념 자체를 수학적으로 정의(튜링 기계)하고 나서, 계산 가능성의 한계를 탐구했다. 그는 괴델의 방법을 활용해 정지 문제(Halting Problem)를 정식화했다.

정지 문제: 임의의 프로그램 $P$와 입력 $I$가 주어졌을 때, $P(I)$가 유한한 시간 안에 종료하는지(halt) 아니면 무한 루프에 빠지는지를 결정하는 알고리즘이 존재하는가?

튜링의 답: 존재하지 않는다.

정지 문제가 풀리지 않는 이유 — 귀류법

HALT(P, I) 가정: 이 오라클이 존재한다고 가정 "halt" or "loop" WEIRD(P): if HALT(P, P) = halt: loop forever else: return "done" 결과 WEIRD(WEIRD) 실행 시 → 모순! WEIRD(WEIRD)가 halt한다면 → HALT는 "halt"를 리턴 → WEIRD는 무한 루프 → halt하지 않음 (모순!) WEIRD(WEIRD)가 loop한다면 → HALT는 "loop"를 리턴 → WEIRD는 "done" 리턴 → halt함 (모순!)

어느 쪽 가정을 해도 모순이 발생한다. 따라서 HALT 오라클 자체가 존재할 수 없다. 정지 문제는 결정 불가능(undecidable)하다.

직접 느껴보기 — 이 프로그램은 멈출까?

아래 예시들 중 어느 것이 멈추는지 컴퓨터는 일반적으로 판단할 수 없다. 물론 개별 케이스는 분석 가능하지만, 임의의 프로그램에 대한 일반적 알고리즘이 없다는 것이 핵심이다.

P vs NP — 100만 달러 짜리 미해결 문제

정지 문제는 "아예 풀 수 없는" 문제다. 그런데 "빠르게 풀 수 없는" 문제도 있다. P vs NP 문제는 이것을 다룬다.

결정 불가능 정지 문제, 포스트 대응 문제... PSPACE NP 외판원 문제, SAT, 소인수분해, 바둑... P 정렬, 최단경로, 패턴 매칭, GCD NP-완전 (P=NP이면 P와 합쳐짐) P = NP?
P와 NP의 차이:
대부분의 전문가는 P ≠ NP라고 믿지만, 60년째 증명하지 못하고 있다. 클레이 밀레니엄 문제 중 하나로 상금 100만 달러.

왜 P ≠ NP가 중요한가

P = NP이면 (아마 거짓)

  • RSA 암호 즉시 붕괴 (소인수분해가 P에 속하게 됨)
  • 신약 개발이 폭발적 가속 (단백질 접힘 등이 P에)
  • 모든 창의적 문제가 기계적으로 풀림
  • 수학의 증명 자동화 완성

P ≠ NP이면 (현재 믿음)

  • 암호학이 안전한 이론적 기반 확보
  • 많은 최적화 문제는 근사해로 만족해야 함
  • 인간의 창의성과 기계의 계산은 근본적으로 다름
  • AI가 모든 것을 해결할 수는 없음

계산 가능성의 계층

1931
괴델 불완전성 정리 수학에는 참이지만 증명 불가능한 명제가 있다. 힐베르트의 꿈 붕괴.
1936
튜링/처치의 정지 문제 & λ-계산 컴퓨터가 원리적으로 풀 수 없는 문제 발견. 튜링 기계로 계산 가능성을 수학적으로 정의.
1971
쿡의 NP-완전성 SAT(논리 충족 가능성)가 NP-완전임을 증명. 이후 수천 개의 문제가 NP-완전으로 분류됨.
1994
쇼어 알고리즘 양자 컴퓨터는 소인수분해를 다항 시간에 풀 수 있다. 현재 암호학 위협. 단, 실용적 양자컴퓨터는 아직 없음.
현재
P vs NP 미해결 컴퓨터 과학 역사상 가장 중요한 미해결 문제. 클레이 밀레니엄 문제, 상금 100만 달러.
실용적 함의: 정지 문제의 결정 불가능성은 소프트웨어 자동 검증의 한계를 의미한다. "이 프로그램이 무한 루프에 빠지는 경우가 있는가?"를 항상 자동으로 검사하는 도구는 존재할 수 없다. 정적 분석 도구들이 보수적인 근사 분석에 그치는 이론적 이유다.