정지 문제(停止問題, Halting Problem)는 판정 문제의 일종으로, 특정 프로그램과 입력값이 주어졌을 때 해당 프로그램이 계산을 끝내고 멈출지 아니면 영원히 계속 실행될지를 판정하는 문제이다. 1936년 앨런 튜링은 모든 가능한 입력값에 대해 정지 문제를 해결할 수 있는 일반적인 알고리즘은 존재하지 않는다는 사실을 수학적으로 증명하였다. 이는 컴퓨터 과학에서 해결 불가능한 문제가 존재함을 보여주는 대표적인 사례이다.

배너 광고

개요

정지 문제는 임의의 컴퓨터 프로그램과 그 프로그램에 들어갈 입력값이 주어졌을 때, 이 프로그램이 실행을 마친 후 정지할 것인지 아니면 무한히 실행될 것인지를 미리 알아낼 수 있는지를 묻는다. 앨런 튜링은 튜링 기계를 통해 이 문제를 분석하였으며, 어떠한 단일 알고리즘으로도 모든 프로그램의 정지 여부를 판정할 수 없음을 밝혀냈다. 이를 '정지 문제는 튜링 기계에서 판정할 수 없다'고 표현한다.

증명 방법

정지 문제의 불가능성은 귀류법을 통해 증명된다. 만약 모든 프로그램의 정지 여부를 판정할 수 있는 프로그램 HH가 존재한다고 가정하면 다음과 같은 모순이 발생한다.

  1. 프로그램 H(P,I)H(P, I)는 프로그램 PP에 입력 II를 넣었을 때 정지하면 '참', 정지하지 않으면 '거짓'을 반환한다.
  2. HH를 이용해 새로운 프로그램 SS를 설계한다. SSHH가 '참'을 반환하면 무한 루프를 돌고, '거짓'을 반환하면 즉시 정지한다.
  3. 이제 SS에 자기 자신인 SS를 입력으로 넣는 경우(S(S)S(S))를 가정한다.
  4. 만약 S(S)S(S)가 정지한다면 HH는 '참'을 반환하고, 설계에 따라 SS는 무한 루프를 돌아야 하므로 모순이다.
  5. 반대로 S(S)S(S)가 정지하지 않는다면 HH는 '거짓'을 반환하고, 설계에 따라 SS는 정지해야 하므로 역시 모순이다.

이러한 모순에 따라 정지 여부를 완벽히 판정하는 프로그램 HH는 존재할 수 없다.

의의와 영향

정지 문제는 역사상 처음으로 컴퓨터로 해결할 수 없는 문제가 존재함을 증명한 사례이다. 이는 인간의 사고나 수학적 증명 과정이 기계적인 계산으로 모두 대체될 수 있는지에 대한 질문에 중요한 답을 제시하였다. 또한 계산 가능성 이론의 기초가 되었으며, 현대 컴퓨터 과학에서 알고리즘의 한계를 규정하는 핵심적인 원리로 작용한다. 컴파일러의 최적화나 프로그램의 오류 검증 등 실무적인 영역에서도 정지 문제의 판정 불가능성은 중요한 제약 조건이 된다.

참고 자료

5
정지 문제정지 문제 [계산 복잡도 이론](https://ko.wikipedia.org/wiki/%EA%B3%84%EC%82%B0_%EB%B3%B5%EC%9E%A1%EB%8F%84_%EC%9D%B4%EB%A1%A0)에서 정지문제(停止問題, halting problem)는 [판정 문제](https://ko.wikipedia.org/…https://ko.wikipedia.org/wiki/%EC%A0%95%EC%A7%80_%EB%AC%B8%EC%A0%9C정지 문제 (r60 판) - 나무위키정지 문제 (r60 판) - 나무위키 [최근 변경](https://namu.wiki/RecentChanges) [최근 토론](https://namu.wiki/RecentDiscuss) 특수 기능 # 정지 문제(r60 판) [주의!] 문서의 이전 버전(2020-10-10 11:47:16에 수정)을 보고 있습니다. [최신…https://namu.wiki/w/%EC%A0%95%EC%A7%80%20%EB%AC%B8%EC%A0%9C?uuid=47a4eb84-0ddd-4c3d-90a3-8b4c2f2995de정지 문제 - 읽기전용위키정지 문제 - 읽기전용위키 # 정지 문제 ## 1. 개요 --- '''정지 문제'''([停](https://www.readonly.wiki/w/%E5%81%9C) [止](https://www.readonly.wiki/w/%E6%AD%A2) [問](https://www.readonly.wiki/w/%E5%95%8F) [題…https://www.readonly.wiki/w/%EC%A0%95%EC%A7%80%20%EB%AC%B8%EC%A0%9C[자료구조] The Halting Problem (정지 문제)[자료구조] The Halting Problem (정지 문제) CS/Data Structure (2021-1) # [자료구조] The Halting Problem (정지 문제) 목차 해당 본문은 학교수업시간에 배운 강의내용을 기반으로 정리하는 요약글 입니다. 정확하지 않은 점이 있으면 지적해주시면 감사하겠습니다. ##…http://blogshine.tistory.com/648튜링과 정지문제: 인간, 수학, 컴퓨터 – 고등과학원 HORIZON튜링과 정지문제: 인간, 수학, 컴퓨터 – 고등과학원 HORIZON .columns" style=" position: relative;"> 17954,17916 ##### 김상현 test EN Description: EN Position: EN Display Name: ###### 전) HORIZON 편집위원, 고등과학…https://horizon.kias.re.kr/19364/

관련 문서