맨위로가기

계산 가능한 수

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

계산 가능한 수는 앨런 튜링이 정의한 개념으로, 튜링 머신을 사용하여 정의될 수 있는 실수를 의미한다. 이 수는 0과 1 사이의 십진 소수로 간주될 수 있는 수열로 정의되며, 튜링 머신에 의해 계산 가능한 함수의 형태로 근사될 수 있다. 계산 가능한 실수는 사칙 연산에 닫혀 있으며, 체를 형성하지만, 순서 관계의 계산은 불가능하다. 계산 가능한 수는 가산 집합이지만, 거의 모든 실수는 계산 불가능하며, 계산 가능한 해석학 분야에서 연구된다.

더 읽어볼만한 페이지

  • 수 - 작은 수의 이름
    작은 수의 이름은 한자 수사, 국제단위계 접두어, 롱 스케일과 숏 스케일 등 다양한 방식으로 표현되며, 현대에는 SI 접두어를 사용하는 것이 일반적이다.
  • 수 - 소수점
    소수점은 숫자의 정수 부분과 소수 부분을 구별하는 기호로, 십진법 표기에서 주로 사용되며 국가별로 마침표 또는 쉼표를 구분 기호로 사용한다.
  • 계산 가능성 이론 - 처치-튜링 논제
    처치-튜링 논제는 모든 효과적인 계산 과정이 튜링 기계로 수행될 수 있다는 가설로, 알고리즘과 계산 가능성의 본질에 대한 논의를 촉발하며 컴퓨터 과학과 철학 분야에서 활발히 연구되고 있다.
  • 계산 가능성 이론 - 튜링 기계
    튜링 기계는 앨런 튜링이 제시한 계산 모델로, 테이프 위에서 기계적으로 작동하며, 유한한 상태, 테이프, 헤드, 명령 표를 통해 작동하고, 계산 가능성과 알고리즘의 한계를 연구하는 데 사용된다.
계산 가능한 수

2. 비공식적 정의

마빈 민스키앨런 튜링의 1936년 정의와 유사하게 튜링 머신을 사용하여 계산 가능한 수를 정의했다. 계산 가능한 수는 0과 1 사이의 십진 분수로 해석되는 일련의 숫자로 표현된다.[1][2]

민스키는 정의의 핵심 개념으로 다음을 제시했다.


  • 처음에 어떤 *n*이 주어지고 모든 *n*에 대한 계산은 유한하다.
  • 머신은 *n*번째 숫자를 출력하고 정지한다.
  • 튜링 머신을 통해 유한한 정의가 무한한 십진수를 정의할 수 있다.


그러나 이러한 비공식적 정의는 표 작성자의 딜레마라는 반올림 문제에 영향을 받는다.

2. 1. 튜링 머신을 이용한 정의

마빈 민스키앨런 튜링이 1936년에 정의한 것과 유사한 방식으로 계산 가능한 숫자를 정의했다.[1] 즉, 0과 1 사이의 "십진 분수로 해석되는 일련의 숫자"로 정의한다.[2]

계산 가능한 숫자는 초기 테이프에 ''n''이 주어지면 해당 숫자의 ''n''번째 숫자를 [테이프에 인코딩하여] 종료하는 튜링 머신이 있는 숫자이다.

정의의 핵심 개념은 다음과 같다.

# 처음에 어떤 ''n''이 지정된다.

# 모든 ''n''에 대해 계산은 유한한 수의 단계만 거치며, 그 후 머신은 원하는 출력을 생성하고 종료한다.

(2)의 다른 형태는 머신이 테이프에 모든 ''n''개의 숫자를 차례로 인쇄하고, ''n''번째 숫자를 인쇄한 후 멈춘다는 것이다. 이는 튜링 머신을 사용함으로써, 머신의 상태 테이블 형태의 ''유한'' 정의가 잠재적으로 ''무한'' 일련의 십진 숫자를 정의하는 데 사용되고 있다는 마빈 민스키의 관찰을 강조한다.

그러나 이것은 주어진 정확도 내에서 결과가 정확하기만 하면 되는 현대적인 정의는 아니다. 위의 비공식적인 정의는 표 작성자의 딜레마라고 하는 반올림 문제에 영향을 받지만, 현대적인 정의는 그렇지 않다.

3. 형식적 정의

실수 ''a''가 계산 가능한 함수 f:\mathbb{N}\to\mathbb{Z}에 의해 다음 조건을 만족하면 '''계산 가능'''하다고 한다. 임의의 양의 정수 ''n''에 대해, 다음을 만족하는 정수 ''f''(''n'')을 생성한다.

:{f(n)-1\over n} \leq a \leq {f(n)+1\over n}.

복소수는 실수부와 허수부가 모두 계산 가능하면 계산 가능하다고 한다.

3. 1. 동치 정의

계산 가능한 수는 다음 두 가지 정의와 동치이다.

  • 임의의 양의 오차 한계 \varepsilon가 주어지면 |r - a| \leq \varepsilon를 만족하는 유리수 ''r''을 생성하는 계산 가능한 함수가 존재한다.
  • 각 ''i''에 대해 |q_i - q_{i+1}| < 2^{-i}\,를 만족하고 a로 수렴하는 계산 가능한 유리수열 q_i가 존재한다.


계산 가능한 데데킨트 컷을 통해 계산 가능한 수를 정의할 수도 있다. '''계산 가능한 데데킨트 컷'''은 유리수 r을 입력받아 D(r)=\mathrm{true}\; 또는 D(r)=\mathrm{false}\;를 반환하며 다음 조건을 만족하는 계산 가능한 함수 D\;이다.

:\exists r D(r)=\mathrm{true}\;

:\exists r D(r)=\mathrm{false}\;

:(D(r)=\mathrm{true}) \wedge (D(s)=\mathrm{false}) \Rightarrow r

:D(r)=\mathrm{true} \Rightarrow \exist s>r, D(s)=\mathrm{true}.\;

예를 들어 3의 세제곱근을 정의하는 프로그램 ''D''는 q>0\;일 때 다음과 같이 정의된다.

:p^3<3 q^3 \Rightarrow D(p/q)=\mathrm{true}\;

:p^3>3 q^3 \Rightarrow D(p/q)=\mathrm{false}.\;

실수는 해당 실수에 해당하는 계산 가능한 데데킨트 컷 ''D''가 존재할 때만 계산 가능하다. 함수 ''D''는 각 계산 가능한 수에 대해 유일하다(단, 서로 다른 두 프로그램이 동일한 함수를 제공할 수는 있다).

4. 성질

튜링 머신 정의에 괴델 수를 할당하면 계산 가능한 수에 해당하는 자연수 부분 집합 S가 생성되고, S에서 계산 가능한 수로의 전사가 식별된다. 튜링 머신은 셀 수 있을 만큼만 존재하므로, 계산 가능한 수는 가산 이하임을 알 수 있다. 그러나 괴델 수의 집합 S는 계산 가능 열거 가능하지 않은데, 이는 어떤 괴델 수가 계산 가능한 실수를 생성하는 튜링 머신에 해당하는지 결정하는 알고리즘이 없기 때문이다. 계산 가능한 실수를 생성하려면 튜링 머신이 전체 함수를 계산해야 하지만, 해당 결정 문제는 튜링 차수 '''0′′'''에 있다. 따라서 자연수에서 계산 가능한 실수를 나타내는 머신 집합 S로의 전사 계산 가능 함수는 없으며, 칸토어의 대각선 논법으로는 계산 가능한 실수가 무수히 많음을 구성적으로 증명할 수 없다.

실수 집합은 비가산 집합이지만, 계산 가능한 수 집합은 가산 집합이므로 거의 모든 실수는 계산 가능하지 않다. 주어진 계산 가능한 수 x에 대해, 정렬 원리에 따라 x에 해당하는 S의 최소 원소가 존재하며, 따라서 맵이 전단사 함수인 최소 원소로 구성된 부분 집합이 존재한다. 이 전단사 함수의 역함수는 계산 가능한 수에 대한 자연수로의 단사 함수이며, 이는 계산 가능한 수가 가산 집합임을 증명한다. 그러나 계산 가능한 실수가 자체적으로 정렬되어 있음에도 이 부분 집합은 계산 가능하지 않다.

4. 1. 체(Field)로서의 성질

계산 가능한 실수 ''a''와 ''b''가 있을 때, ''a + b'', ''a - b'', ''ab'', 그리고 ''b''가 0이 아닐 때 ''a/b'' 또한 계산 가능하다. 이 연산들은 균일하게 계산 가능하다. 예를 들어, 튜링 기계는 입력 (''A'',''B'',\epsilon)에 대해 출력 ''r''을 생성하는데, 여기서 ''A''는 ''a''를 근사하는 튜링 기계에 대한 설명이고, ''B''는 ''b''를 근사하는 튜링 기계에 대한 설명이며, ''r''은 ''a''+''b''의 \epsilon 근사값이다.

계산 가능한 실수가 를 형성한다는 사실은 1954년 헨리 고든 라이스에 의해 처음 증명되었다.

그러나 계산 가능한 실수는 계산 가능한 체를 형성하지 않는다. 계산 가능한 체의 정의는 효과적인 등식을 요구하기 때문이다.

4. 2. 정렬의 계산 불가능성

계산 가능한 수에 대한 순서 관계는 일반적으로 계산 불가능하다. 튜링 기계를 사용하여 설명하자면, 숫자 *a*를 근사하는 튜링 기계의 설명을 'A'라고 할 때, 입력 'A'에 대해 *a* > 0이면 "YES"를 출력하고, *a* ≤ 0이면 "NO"를 출력하는 튜링 기계는 존재하지 않는다.

예를 들어, 'A'로 설명되는 기계가 ε(엡실론) 근삿값으로 0을 계속 출력한다고 가정해 보자. 이 기계가 *a*가 양수가 되도록 하는 근삿값을 ''결코'' 출력하지 않을 것이라고 결정하기 전에 얼마나 오래 기다려야 할지 알 수 없다. 따라서 기계는 출력을 생성하기 위해 결국 숫자가 0과 같다고 추측해야 하지만, 나중에 0과 다른 값으로 바뀔 수 있다. 이러한 이유로, 튜링 기계가 전역 함수를 계산하는 경우 일부 수열에서 잘못된 결과를 낼 수 있다. 데데킨트 절단으로 계산 가능한 실수를 표현할 때도 유사한 문제가 발생하며, 등식 검사 역시 계산 불가능하다.

하지만, 서로 다른 두 계산 가능한 수의 크기 비교는 가능하다. 즉, *a*와 *b*를 근사하는 두 튜링 기계 'A'와 'B'를 입력으로 받아, *a* ≠ *b*일 때 *a* < *b*인지 *a* > *b*인지를 출력하는 프로그램은 존재한다. 이는 ε < |*b* - *a*|/2 인 ε 근삿값을 사용하고, ε을 점점 더 작게(0에 접근) 만들면서 *a* < *b*인지 *a* > *b*인지 결정할 수 있기 때문이다.

4. 3. 기타 성질

계산 가능한 실수는 해석학에서 사용되는 실수와 모든 성질을 공유하지는 않는다. 예를 들어, 계산 가능한 실수로 구성된 유계 증가 계산 가능 수열의 최소 상한은 계산 가능한 실수가 아닐 수 있다.[1] 이러한 성질을 가진 수열은 슈페커 수열로 알려져 있는데, 최초의 구성은 1949년 에른스트 슈페커에 의해 이루어졌다.[2] 이러한 반례의 존재에도 불구하고, 미적분학과 실수 해석학의 일부는 계산 가능한 수의 분야에서 발전될 수 있으며, 이는 계산 가능한 해석학 연구로 이어진다.

모든 계산 가능한 수는 산술적으로 정의 가능한 수이지만, 그 반대는 성립하지 않는다. 계산 불가능하지만 산술적으로 정의 가능한 실수는 많이 있다. 예를 들면 다음과 같다.

  • 정지 문제(또는 다른 결정 불가능 문제)의 해를 선택된 인코딩 방식에 따라 인코딩하는 모든 수.
  • 차이틴 상수 \Omega는 정지 문제와 튜링 차수가 같은 종류의 실수이다.

이 두 예는 실제로 정의 가능하고 계산 불가능한 무한 집합의 수를 정의하며, 각 범용 튜링 기계에 대해 하나씩 존재한다.

실수는 해당 실수가 나타내는 자연수의 집합(이진법으로 표기되고 특성 함수로 간주될 때)이 계산 가능할 경우에만 계산 가능하다.

계산 가능한 실수 집합 (및 종점이 없는 계산 가능한 실수 집합의 모든 가산 조밀 순서 부분 집합)은 유리수 집합과 순서 동형이다.

5. 숫자열과 칸토어 공간 및 베르 공간

앨런 튜링의 원래 정의는 계산 가능한 수를 십진법 전개로 정의했지만, 이는 현대적인 정의와 동등하다. 실수의 위상적 속성이 중요하지 않은 경우, [0, 1] 구간의 실수 대신 2^ω영어 (이진 함수 공간) 또는 ω^ω영어 (자연수 함수 공간)의 원소를 다루는 것이 편리할 수 있다.

2^ω영어의 원소는 이진 십진법 전개와 동일시될 수 있지만, 십진법 전개 .d_1d_2… d_n0111…영어와 .d_1d_2… d_n10영어은 동일한 실수를 나타내므로, 간격 [0, 1]은 모든 1로 끝나지 않는 2^ω영어의 부분 집합과 전단사적으로 동일시될 수 있다.

계산 가능성 이론가들은 종종 2^ω영어의 구성원을 실수라고 부르며, 2^ω영어는 완전 불연결이지만, Π^0_1영어 클래스 또는 무작위성에 대한 질문의 경우 2^ω영어에서 작업하는 것이 더 쉽다. ω^ω영어의 원소도 때때로 실수라고 불리며, ω^ω영어국소 콤팩트조차 아니다.

6. 실수 대신 사용

계산 가능한 수는 대수적 수뿐만 아니라, ''e'', ''π'' 및 많은 다른 초월수를 포함하여 실제로 나타나는 대부분의 실수를 포함한다. 계산 가능한 실수는 우리가 계산하거나 근사할 수 있는 실수를 모두 포함하지만, 모든 실수가 계산 가능하다는 가정은 실수에 대해 실질적으로 다른 결론으로 이어진다. 모든 실수 집합을 없애고 모든 수학에 계산 가능한 수를 사용할 수 있는지에 대한 질문이 제기되며, 이 아이디어는 구성주의 관점에서 매력적이며, 러시아 구성 수학 학파에서 추구해 왔다.[5]

계산 가능한 수에 대한 해석학을 개발하는 데는 주의가 필요하다. 예를 들어, 고전적인 수열의 정의를 사용하면, 계산 가능한 수의 집합은 유계 수열의 상한을 취하는 기본 연산에 대해 닫혀 있지 않다(예를 들어, 슈페커 수열 참고). 이러한 어려움은 계산 가능한 수렴 계수를 갖는 수열만 고려함으로써 해결된다. 결과적인 수학 이론은 계산 가능 해석학이라고 불린다.

7. 정확한 산술 구현

실수를 근사값으로 계산하는 프로그램을 나타내는 컴퓨터 패키지는 1985년 이전에 "정확한 산술"이라는 이름으로 제안되었다.[6] 현대적인 예로는 CoRN 라이브러리(Coq)[7], RealLib 패키지(C++)[8] 등이 있다. 이와 관련된 작업은 iRRAM영어 패키지와 같이 충분한 정밀도의 유리수 또는 부동 소수점 숫자로 실수 RAM 프로그램을 실행하는 것을 기반으로 한다.[8]

참조

[1] 서적 Computable analysis https://eudml.org/do[...] Institute of Mathematics of the Polish Academy of Sciences
[2] 논문 Noncomputability in analysis and physics: a complete determination of the class of noncomputable linear operators
[3] 논문 The present theory of Turing machine computability
[4] 서적 Classical Recursion Theory North-Holland
[5] 논문 The constructive mathematics of A. A. Markov
[6] 서적 Proceedings of the 1986 ACM conference on LISP and functional programming - LFP '86 1986-08-08
[7] 서적 Theorem Proving in Higher Order Logics 2008
[8] 서적 Computability and Complexity in Analysis Springer 2001
[9] 논문 Exact real arithmetic: a case study in higher order programming http://fricas-wiki.m[...] 1986-08-08
[10] 논문 Certified Exact Transcendental Real Number Computation in Coq https://arxiv.org/pd[...] 2008
[11] 논문 A Survey of Exact Arithmetic Implementations https://link.springe[...] Springer 2001



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com