튜링 기계는 어떤 시점에서 무한한 것을 가정합니까?


9

이전 질문 에서 알고리즘은 정확히 무엇입니까? 사전 계산 된 값의 배열을 기반으로 함수의 값을 반환하는 "알고리즘"이 알고리즘인지를 물었습니다.

내 관심을 끈 대답 중 하나는 다음과 같습니다.

계승 예제는 비 균일 계산이라고하는 다른 계산 모델로 들어갑니다. 튜링 머신은 균일 한 계산 모델의 예입니다. 하나의 유한 한 설명이 있으며 임의로 큰 크기의 입력에 작동합니다. 다시 말해, 모든 입력 크기에 대한 문제를 해결하는 TM이 있습니다.

이제 다음과 같이 계산을 고려할 수 있습니다. 각 입력 크기에 대해 문제를 해결하는 TM (또는 다른 계산 장치)이 있습니다. 이것은 매우 다른 질문입니다. TM에는 유한 설명이 있기 때문에 단일 TM이 모든 단일 정수의 계승을 저장할 수는 없습니다. 그러나 1000 이하의 모든 숫자의 계승을 저장하는 TM (또는 C의 프로그램)을 만들 수 있습니다. 그런 다음 1000과 10000 사이의 모든 숫자의 계승을 저장하는 프로그램을 만들 수 있습니다.

모든 TM이 실제로 무한대를 다루는 방법을 가정하지는 않습니까? 알고리즘을 통해 숫자 N의 계승을 컴퓨터로 표현하는 유한 한 설명을 가진 TM조차도

 int fact(int n) 
 { 
 int r = 1; 
 for(int i=2;i<=n;i++) 
 r = r*i; 
 return r; 
 } 

TM은 임의의 숫자 I을 증가하는 것도 가산기를 "<="비교를 통해, 임의의 크기의 수를 비교하고 "하드웨어"를 가지고 있다는 가정이 포함 더욱이를 임의의 크기의 숫자를 표현하는 능력.

뭔가 빠졌습니까? 다른 질문에 제시 한 접근 방식이이 방법보다 무한대에 비해 실현 가능한 이유는 무엇입니까?


5
"무한"과 "임의로 큰"의 차이점에 유의하십시오.
Raphael

이것은 매우 좋은 질문이지만 잘못 언급되었습니다. Turing Machines를 언급 할 때 가장 간단한 계산 모델을 기반으로 답을 얻습니다. 그리고 이것은 대부분 알고리즘이 매우 임의로 제약 된 종류의 기계의 표현력의 한계에 기초 할 것이기 때문에 알고리즘이 무엇인지 이해하기위한 당신의 탐구에 약간의 빛을 가져올 것입니다. 유한 한 설명이 무엇인지에 달려 있으며, 실제로는 계산 가능한 설명이어야합니다. 중요한 것은 계산 가능하게 열거 가능하다는 것입니다. 유한은 계산 가능하지만 계산 가능한 것이 반드시 유한 한 것은 아닙니다.
babou

@Raphael Infinite는 임의로 큰 것과 다릅니다. 그러나 무한 엔티티가이 시퀀스의 한계로 적절하게 정의 될 수 있다면, 임의로 증가하는 시퀀스를 무한대로 고려하는 것이 더 간단 할 수 있습니다. 우리는 정의 가능한 무한한 무한 객체를 항상 처리합니다.
babou

귀하의 질문에 대한 부정적인 대답은 추상적 수학의 미묘한 영역을 넘어서는 무한하다는 가정에 근거한 것 같습니다. 이 경우 질문은 무례합니다. 튜링 머신은 단순히 무한한 것이 없기 때문에 "무한한 것을 가정"할 수 없습니다.
babou

답변:


9

튜링 기계는 않습니다 하지 "를 통해 임의의 크기의 번호를 비교할 수있는 능력이 <=튜링 기계는"이 없기 때문에 비교를 " <=비교"를. 튜링 머신에는 고정 된 유한 세트  상태 및 고정 된 유한 테이프 알파벳 Σ. 계산의 각 단계에서 튜링 머신은 현재 상태와 읽기 / 쓰기 헤드 아래의 기호를보고 다음에 수행 할 작업 : 입력 할 상태, 테이프에 쓸 기호 및 테이프 이동 방법을 결정합니다. 머리.

이로 인해 튜링 머신은 단일 <=명령으로 임의로 많은 수를 비교할 수 없습니다 . 상태를 사용하면 최대로 기억할 수 있습니다|| 다른 숫자와 알파벳을 사용하면 최대로 쓸 수 있습니다 |Σ|단일 테이프 셀에서 다른 숫자 (각 숫자를 나타내는 데 가능한 각 기호 사용) 따라서 튜링 머신에서 임의로 큰 숫자를 비교하려면 각 숫자를 테이프에 일련의 숫자로 기록하고이 두 숫자를 비교하기 위해 여러 단계를 수행하는 알고리즘을 작성해야합니다. 상상할 수 있듯이 튜링 머신 프로그램 작성은 다소 까다로운 노력입니다.

튜링 머신은 실제로 "무한대를 다루지"않습니다. 그들은 최소한 표준 정의에서 무한한 유한 한 것들을 다룹니다. 입력은 유한 문자열이며 유한 단계 수 후에 기계는 한정된 수의 테이프 셀에 대해서만 검사 또는 기록됩니다. 입력의 크기 나 계산 단계의 수에는 제한이 없지만, 입력은 유한하며 유한 한 수의 단계 후에는 한정된 양의 출력 만 생성되었습니다.


7

중요한 차이점은 튜링 머신에 대한 설명은 머신에 대한 입력과 마찬가지로 유한하며 메모리로 사용하는 테이프는 무한하다는 것입니다. TM은 유한 테이프를 사용하는 대부분 유한 기계입니다. 각 셀이 단일 값을 포함 할 수있는 테이프를 셀로 구성하십시오. TM 입력은 테이프에 기록됩니다.

TM의 설명은 유한 한 튜플 세트입니다 <current state, input, output, move, next state>.

각 단계에서 수행 할 작업은 현재 상태와 입력을 일치시켜 찾습니다. 예를 들어, 우리는 상태 0에 있고 1을 읽으므로 시작하는 튜플을 <0, 1, ...>찾은 다음 현재 셀에 새 값을 쓰고 왼쪽이나 오른쪽으로 이동합니다 (클래식 정의는 동일한 셀에 머무를 수 있다고 생각합니다) 또한 새 상태로 변경하십시오.

예를 들어, TM에 대한 무한한 설명 (무한한 수의 <current state, input, output, move, next state>튜플)이 필요하거나 TM에 대한 입력에 조회 정보를 포함해야합니다. TM에 대한 입력은 유한 한 것으로 정의됩니다. 따라서 이것은 고전적으로 정의 된 튜링 머신으로 할 수있는 것이 아닙니다.

반대로 피보나치 예제는 TM을 설명하기 위해 유한 한 수의 튜플과 함께 이진수로 계산 될 수 있으며 유한 입력 값을 갖습니다.


5
테이프는 무한 할 필요 가 없습니다 ! 필요에 따라 확장 할 수 있습니다. 필요한 것은 테이프가 임의로 커질 수 있다는 것 입니다.
reinierpost

5

간단히 말해서 : 튜링 머신은 무한 데이터에 대해 무한 계산을 수행하고 무한 결과를 생성 할 수 있습니다. 기본 아이디어는 그러한 무한대가 수학적으로 적절한 방식으로 정의 된 유한 엔티티의 한계로 정의 될 수 있다는 것입니다. 이것은 계산의 수학적 의미론의 기초입니다. Turing Machine이 아닌 프로그램을 고려할 경우 이러한 프로그램에는 무한 데이터 구조가 포함될 수도 있습니다. fact가능한 알고리즘으로서의 도표화 된 함수의 경우는 무한한 물체의 게으른 평가와의 관계에 대한 힌트와 함께 최종적으로, 프로그램 또는 TM 모델로서 분석됩니다.

더 많은 세부 사항으로

마지막 질문과 관련하여 TM은 임의의 숫자를 계산하지 않지만이 숫자를 임의로 나타내는 (제한되지 않은) 긴 문자열로 표시합니다. 모듈로 적절한 인코딩, 이러한 표현을 통해 그러한 숫자와 비교하거나 산술을 수행 할 수있는 것이 맞습니다.

그러나 원래의 질문은 일반적으로 Turing Machines에서 무한대의 역할에 관한 것입니다.

이 질문에 대한 일반적인 답변은 Turing Machines이 무한대를 다루지 않는다는 것입니다. 그것들은 유한하게 정의되며, 계산하는 것은 무엇이든 테이프의 유한 부분에서 유한 시간 내에 계산됩니다 (따라서 더 큰 유한 테이프이면 충분합니다). 진실은 TM의 공간 소요 시간이 무한하다는 것입니다. 이는 무한대와 다릅니다.

따라서 TM에 의해 계산 된 모든 답변은 유한 상태 오토 마톤 (FSA)에 의해 계산 될 수 있는데, 이는 FAB (Finite-State Automaton)로, 어느 정도까지는 표를 보는 방법입니다. 어려운 점은 일부 입력 크기 (입력을 읽을 경우에만 거의 항상 입력 크기)가 오토 마톤의 크기를 초과한다는 것입니다. 그러나 더 큰 것을 사용할 수 있습니다. 따라서 무한 입력 크기를 고려하려면 계산을 수행 할 수있는 무한한 FSA 시퀀스가 ​​필요합니다. 실제로 우리는 전통적인 FSA보다 약간 더 복잡한 유한 상태 기계가 필요할 수 있습니다 (답이 아닌 대답이 아닌) 출력이 계산 될 수 있기 때문에 유한 상태 변환기는 아마도 가능합니다.

따라서 GCD를 계산하거나 임의의 크기의 정수에 대한 산술을 사용하는 것과 같이 무한한 인스턴스 집합이있는 문제를보고 있다면 무한대로 백도어를 통해 우리에게 다시 오는 것을 볼 수 있습니다. FSA 세트.

그러나 또 다른 문제가 있습니다. 위의 분석은 결과로 끝나는 계산을 고려할 때만 작동합니다. 그러나 모든 TM이 그렇게하는 것은 아닙니다. 일부는 무한 세트의 멤버를 열거 할 수 있습니다. 이것은 일반적으로 소수점 이하 자릿수를 계산하는 TM의 경우입니다.π계속해서 새로운 것을 계속 추가하십시오. 물론, 그것은 유한 한 시간 안에 유한 한 대답만을 계산하지만, 우리가 관심을 갖는 것은 실제로 무한 계산에 의해 생성 된 무한 시퀀스입니다. 이제 무한의 두 가지 측면, 즉 계산의 무한대와 결과의 무한대 (예 : 일부 계산 된 데이터)가 있습니다. 실제로 그것은 심지어 무한 입력을 고려하게 만들 수도 있습니다 ... 그러나 무한한 데이터 스트림을 다루는이 합병증을 무시합시다. 또한 yes 이외의 출력을 제공하는 계산은

다시, 우리는 유한 한 기계로 무한한 유한 계산 시퀀스로이를 대체 할 수 있습니다. 하지만 우리는 바람을 피우고 있습니다.

물리적 관점에서 볼 때 우리가 할 수있는 최선입니다. 우리는 최소한 물리학 분야의 최신 기술에 따르면 유한 한 기계를 만드는 방법 만 알지만, 가까운 시일 내에 그 문제에 대해서는 너무 많이 변하지 않을 것으로 예상됩니다.

그러나 수학적 관점에서 이러한 무한 성을 어떻게 일관되고 다루기 쉬운 방식으로 처리 할 수 ​​있습니까?

무한한 응답 세트를 계산하기 위해 협력 할 수있는 무한한 FSA 세트를 고려할 때 임의로 수행 할 수 없습니다. 현재하고있는 일이 이해되도록 몇 가지 보호 조치가 필요합니다. 정규 세트의 무한한 결합으로, 실제로 싱글 톤 세트의 무한한 결합으로 모든 세트를 간단하게 작성할 수 있다는 것은 잘 알려져 있습니다. 따라서 제한없이 임의의 무한한 오토마타 조합을 고려하면 아무데도 도움이되지 않습니다. 일관된 답변을 제공하는 동일한 오토마타 세트를 고려할 수도 있습니다.

실제로 원하는 것은 일관성 개념을 정의하는 것입니다. 그러나 몇 가지 예방 조치가 필요합니다. 예 또는 아니오로 대답하거나 멈추지 않는 TM을 시뮬레이션하기 위해 무한한 오토마타 시퀀스를 사용한다고 가정 해 봅시다. 문제는 FSA가 항상 예 또는 아니오와 같은 대답으로 중단된다는 것입니다. 그러나 실제로 선택한 입력에 대해 충분히 큰 크기가 아닌 FSA를 사용하는 경우 어떻게 대답해야합니까? FSA가 실제로 TM 계산을 종료 한 경우에는 yes와 no가 예약되어 있으며,이 답변 중 하나를 완료되지 않은 계산과 함께 사용하면 혼란을 초래할뿐입니다. 당신이 원하는 것은 " 죄송합니다. 너무 작아서 말할 수 없습니다. 가족의 더 큰 남자와 함께 시도하십시오 "라는 대답입니다 . 다시 말해 overflow 와 같은 답변을 원 하거나 모름. 실제로 이것은 의미 론자들에 의해 " 정의되지 않은 "또는 " 하단 " 으로 불리며 종종 "".

따라서 수락, 수락하지 않음 및 정의되지 않은 상태의 3 가지 상태가있는 오토마타가 필요합니다. 정의되지 않은 상태는 계산을 중지시키는 오토 마톤의 누락 된 부분을 나타내는 상태로 볼 수 있습니다. 따라서 계산이 중단되면 정지 상태에 따라 yes , no 또는 undefined 응답이 표시 됩니다.

이제 원하는 것은 일관된 무한한 오토마타 시퀀스 라는 것을 알 수 있습니다 . 두 아니오 과 일치하지 않습니다 정의되지 않은 ,하지만 와 일치하지 않습니다 없음 . 그런 다음 두 입력이 동일한 입력에 대해 일관된 답변을 제공 할 때 일관됩니다.

이것은 다른 종류의 답변을 계산하는 오토마타로 확장 될 수 있습니다. 예를 들어 빨강, 파랑, 녹색 등의 색상을 계산하는 경우 다른 모든 색상과 일치하는 정의되지 않은 색상을 추가 할 수 있습니다. 대답이 다음과 같은 무한 자릿수 인 경우π그런 다음 각 숫자를 일관되고 독립적으로 undefined로 바꿀 수 있습니다. 3.14... ~와 일치하다 3.1415....5159..., 그러나 후자의 두 가지는 3.1416.... 실제로 이런 의미에서3.1416... 근사치가 아닙니다 π. 다른 답변에서 찾을 수있는 모든 정보를 포함 할 때 다른 답변보다 답변이 더 잘 정의되어 있다고합니다. 이것은 실제로 부분적인 순서입니다.

나는 이러한 이론적 측면을 더 발전시키지 않을 것인데, 이것은 Turing Machines에 기반을 둔다면 약간 어색합니다. 요점은 이러한 개념은 계산 영역 (데이터 또는 기계)이 격자와 같은 수학적 구조를 형성한다는 아이디어로 이어진다는 점에서 무한 객체는 무한히 증가하는 (즉, 더 좋고 더 잘 정의 된) 시퀀스의 한계로 적절하게 정의 될 수 있습니다. 유한 객체. 무한 시퀀스를 정의하려면 더 많은 장치와 연속성 개념이 필요합니다. 이것은 기본적으로 Dana Scott의 의미론 이론에 관한 것이며 계산 가능성 개념에 대해 약간 다른 관점을 제공합니다.

그런 다음 튜링 머신 또는 "무한 계산"을 수행 할 수있는 다른 공식적인 장치는 머신의 유한 근사치 시퀀스의 한계로 정의 될 수 있으며, 이는 더 좋고 더 잘 정의됩니다. 입력이든 출력이든 기계가 계산하는 모든 데이터에 대해서도 마찬가지입니다.

내가 읽은 가장 간단한 문서는 Dana Scott이 손으로 쓴 강의 노트 세트이며 종종 암스테르담 강의 노트라고도합니다. 그러나 웹에서 찾을 수 없습니다. 사본에 대한 모든 포인터 (내가 가지고있는 불완전하더라도)는 환영받을 것입니다. 그러나 Scott 의 수학 계산 개요 개요 와 같은 다른 초기 출판물을 볼 수 있습니다 .

질문의 초기 예로 돌아 가기

이러한 근사 개념은 프로그램뿐만 아니라 데이터에도 적용됩니다. 이 함수 fact는 재귀 적으로 정의됩니다. 이는 유한 근사값을 수렴하는 시퀀스를 계산하는 데 사용할 수있는 함수의 최소 고정 소수점임을 의미합니다 fact. 이처럼 점점 더 정의 된 유한 함수 시퀀스는 함수라고하는 무한 엔티티로 수렴됩니다 fact.

그러나 배열 조회를 사용하는 경우 사전 계산 된 값이 무한대의 무한대 테이블에 대한 유한 근사값 인 더 큰 테이블과 더 큰 테이블을 포함하는 코드를 사용하여 정확히 동일한 작업을 수행 할 수 있습니다 fact. 이러한 각 배열은 실제로 모든 정수에 대한 답변을 제공 할 수 있지만 대답은테이블이 충분히 정의 되지 않은 경우 ( undefined ) 테이블 조회 알고리즘도 무한 테이블로 계산되므로 근사치 순서로 정의해야합니다.

기본 TM 계산 모델을 고려하면 그러한 무한 배열을 그 형식으로 표현할 수는 없습니다. 타당하지 않다는 의미는 아닙니다. 튜링 머신에는와 같은 일부 기능의 테이블 값으로 초기화되는 두 번째 테이프가있을 수 있습니다 fact. 함수가 계산 가능한 함수 인 한, 즉 관련 함수에 대한 모든 인수-값 쌍을 계산할 수있는 다른 TM의 무한 계산으로 테이블을 초기화 할 수있는 한 TM의 계산 능력을 변경하지 않습니다.

그러나 실제로는 무한 계산을 완료 할 수 없습니다. 따라서 올바른 방법은 테이블을 느리게 계산하는 것입니다. 즉, 필요할 때만 항목을 채우는 것입니다. 이것이 바로 메모로 수행 된 것입니다. 이는 이전 질문에 대해 다른 근거로 제시 한 답변입니다.


3

이 답변의 요점은 Turing Machines가 우리가 프로그래밍 할 수있는 모든 것을 모방 할 수 있고 무한한 물체를 사용하여 프로그래밍 계산을 수행한다는 것입니다.

이것은 대답을 정당화하는 일반적인 이론적 틀보다 질문에 대한 특정 질문에 더 초점을 맞추고 질문의 더 일반적인 제목에 대답하는 데 결정적으로 필요합니다. OP의 질문에 대한 이전 답변과 완전히 호환됩니다. 둘 다 알고리즘은 정확히 무엇입니까? 마 튜링 기계는 어떤 점에서 뭔가 무한을 가정? , 나는 이론적 맥락을 더 발전시킨 답변들이다. 이것은 두 가지 질문에 모두 대답하는 것으로 보일 수 있습니다.

튜링 기계는 무한대를 처리 할 수있는 능력을 가지고 있으며 , 모든 튜링은 계산 가능한 무한대만으로도 전체 계산 모델을 완성 할 수 있습니다. 우리의 문제는 우리가이 무한대의 일부만을 관찰 할 수 있지만, 우리가 관찰 할 수있는 부분이 제한적이지 않기 때문에 전체를 고려해야한다는 것입니다.

다른 문제는 우리가 유한하게 지정된 실체만을 다룰 수 있다는 것입니다. 실제로, 우리가 아는 한 과학의 전체 구조는 유한하게 명시되지 않은 실체를 고려하면 무너집니다. 유한 한 시간.

무한한 노동 조합의 폐쇄가 원하는 조합을 정의한다는 사실과 다소 유사한 또 다른 근본적인 문제가있을 수 있습니다. 단, 그러한 노동 조합에서 허용되는 것을 적절하게 제한 할 수 없다면 말입니다. 그러나이 문제를 완전히 이해하고 있는지 확실하지 않습니다.

내가 말했듯이, 튜링 기계는 무한대를 다루는 능력이 있습니다 . 나는 그런 초보적인 주제에 대해 그들이 무엇을 말해야하는지에 관해 일부 유명한 사용자들에 대해 잘 찬성 된 다른 답변과 모순된다.

문제는 Turing이 이론적 목적을 달성하기 위해 매우 기본적인 계산 모델을 선택했다는 것입니다. 간단할수록 좋습니다. 그것은 기계 언어가 프로그래밍과 거의 같은 고급 / 정교한 계산 모델에 대한 것입니다. 고수준 프로그래밍에서 의미가있는 개념을 인식 할 수없는 매우 모호한 것입니다. 기계 언어와 마찬가지로 TM은 직접 표현할 수있는 것보다 훨씬 더 많이 모방 할 수 있습니다.

또한 튜링 머신의 이러한 한계를 실제로 믿는 사람은 없으며, 다소 이국적인 특징을 가진 많은 종류의 TM이 고안되었습니다. 일부 무한 세트가 호출되는 경우 재귀 열거 TM 실제로 무한 계산을 요구하는 것은 열거 (의 표현)들은 부재 (볼 수 때문이다 열거 자로서 튜링 기계Hopcroft-Ullman은 1,979, 167 페이지 ). 물론 우리는 항상 다음과 같은 질문에 대답하는 유한 계산으로 인코딩 할 수 있습니다 .23아르 자형 당신의 열거에 따라 세트의 멤버? 그러나 정답을 얻었을 때 인위적으로 중단되는 무한 계산으로 종종 구현되는 경우가 많습니다.

실제로 모든 것이 유한하지만 TM에 제한이 없다고 말하는 모든 사용자는 표준 정의에서 Turing Machines 을 고려한다고 매우 신중합니다 . 문제는 표준 정의가 이론을 단순화하기위한 장치 일 뿐이지 만 계산 구조를 이해하려고 할 때 거의 관련이 없다는 것입니다.

실제로, 계산에서 중요한 것은 모든 것이 유한 한 것이 아니라 계산 가능한 방식으로 유한하게 지정되어야한다는 것 입니다.

우리는 튜링 머신이 유한 한 대상이어야한다고 가정합니다. 그러나 그것은 사실이 아닙니다. 읽기 전용이고 두 번째 테이프를 사용하여 튜링 머신의 모델을 정의 할 수 있으며, 모든 정수 값에 대해 제한없이 함수가 포함되어 있습니다. 그것은 무한합니다. 그러나 해당 테이프의 내용이 계산적으로 지정되어있는 한 (계산 가능성이 유한하게 지정됨) 추가 컴퓨팅 성능을 구입하지는 않습니다. 여분의 테이프는 다른 기계에 내장 된 TM 기계로 대체 할 수 있으며 여분의 테이프에서 찾는 대신 답을 제공합니다. 높은 수준에서 차이가 보이지 않습니다.

실제적인 실현 관점에서 우리는 fact 튜링 머신이 팩토리얼을 계산하여 여분의 테이프에서 테이블 묶을 , 다른 TM은 여분의 테이프에서 테이블로 된 팩토리얼을 사용하여 테이블이 여전히 누락 될 때마다 첫 번째 TM을 기다릴 수 있습니다 기입. 그러나 두 번째 시스템은 테이프의 내용이 궁극적으로 무한하다고 가정합니다. 테이블 머신은 항상 작동하지 않아도되지만 테이블에서 데이터를 요청하여 찾을 수 없을 때마다 계산을 다시 시작해야합니다.

다시 한 번, 언 바운드 정수와 무한 테이블의 주요 차이점은 정수가 유한하고 제한이 없지만 유한 시간 내에 완전히 계산된다는 것입니다. 무한 테이블은 무한으로 계산되지만 여전히 무한대로 증가합니다. 그것은 문제가 아니지만 차이점입니다. 무한 객체는 유한 근사값을 통해서만 액세스 할 수 있지만 ... 무한합니다. 이러한 의미에서 계산 가능한 비합리적인 숫자는 적어도 이진 숫자로 표현하기 위해 무한한 대상입니다.

모든 알고리즘은 일부 수학적 이론의 맥락에서 정의됩니다. 그리고 무한 테이블과 함께 테이블 조회는 알고리즘입니다. 그러나 그것은 각각의 정수 인수에 대해 axiomatize하는 함수의 값을 광범위하게 (집중적이지 않고) 지정하는 유한하게 정의 된 무한한 공리 세트를 갖는 수학적 이론의 알고리즘입니다. (참조 내 대답이전 질문 ). 그렇다면 이론의 공리에 항상 진실한 진술을 추가 할 수 있기 때문에 항상 그렇게하는 것이 합법적입니다.

귀하의 현재 질문에 재현 된 Usul 진술은 내 의견으로는 올바르지 않습니다 (모든 것이 정의의 문제 임에도 불구하고). 그의 대답에서 , 당신이 재현하지 않았다는 그의 결론 은 무한 테이블의 사용은 비 균일 계산 모델, 다른 기계의 수집에 의해 구현 될 수 있기 때문에 알고리즘으로 간주 될 수 없다는 것입니다. 용도는 " 모든 입력 크기에 대한 전체"이 문제를 해결하기 위해 구현할 수있는 유한 설명이 없습니다 "". 이것은 잘못이다. 분리 된 정의 영역을 가진 분리 된 기계로 분할하는 것은 잘못된 일이다. 올바른 방법은 정의 영역이 더 크고 더 큰 무한대의 일관된 기계를 갖는 것이 적절하게 수렴 될 수있다. 그것은 Dana Scott에 의해 정의 된 계산의 의미론에 대한 수학적 이론의 필수 목적 중 하나입니다. 적절한 수학적 장치를 사용하면, 무한한 표현을 가진 정밀한 기계, 값 (예 : e 또는π) 또는 무한한 데이터 구조로, 모두 계산 가능합니다. ( 이 질문에 대한 첫 번째 답변 참조 ).

실제로 이러한 무한한 엔티티가 계산되는 방식은 지연 평가 를 통해 언제든지 필요한 부분 만 계산하고 더 필요할 때마다 나머지 부분에 대한 계산을 재개하는 것입니다. 이것은 fact테이블에서 더 많은 데이터가 필요할 때마다 테이블에 저장 될 계승 컴퓨팅 머신에서 정확히 제안 된 것입니다 .

어떤 방식으로, 지연 평가는 실제로 일부 유한 코드를 기반으로하기 때문에 코드 공간이 유한해야한다는 주장 ( DanielV의 답변에서 ) 을 입증하는 것 같습니다 . 그러나 계산 가능성은 널리 퍼져있는 인코딩 게임이므로 데이터와 코드를 구별하는 것은 항상 보는 사람의 눈에 달려 있습니다. 실제로, 많은 현대 프로그래밍 언어는 별 차이하지 않는 내포 하고 신장 값의 사양 및 Denotational 의미는 정말 "4"에서 "2 + 2"를 구분하지 않습니다. 의미론은 실제로 " X 란 무엇인가 ? " 와 같은 질문을 할 때 우리가 말하는 것 입니다.

정적이라고도하는이 코드의 유한 뷰는 데이터로 사용되는 무한정 정수를 가진 동일한 기반에 무한 테이블 (코드의 일부로 간주 됨)이 보이지 않는 또 다른 이유입니다. 그러나 이것은 메타 프로그래밍 , 재귀 언어, 그리고 eval함수 의 사용 에서 알려진 프로그래밍 실습에서 살아남지 못한 또 다른 환상입니다 . 이러한 언어에서 컴퓨터가 실행되는 한 실행중인 프로그램 자체에 의해 제한없이 코드를 확장 할 수 있습니다. 실제로 자체 전환 규칙을 수정하여 제한없이 개수를 늘리는 Turing Machine을 고려할 수 있습니다. 이는 Universal Turing 장비가 작동하는 방식과 매우 유사합니다.

이론적 프레임 워크를 설계 할 때 단순성과 퍼시피 시티 또는 표현력 사이에는 항상 긴장이 있습니다. 단순성은 특히 특정 속성을 입증하거나 다른 프레임 워크로 축소 할 때 프레임 워크 분석을 더 단순하게 만듭니다. 그러나 인코딩해야하는 높은 수준의 개념을 표현하는 것은 종종 불편합니다. 우리는 Turing Machines를 사용하여 프로그래밍하지는 않지만 훨씬 표현적이고 눈에 잘 띄는 고급 언어를 사용하여 의미 론적 동등성을 기반으로 코드와 데이터의 구별과 같은 일부 장벽을 지울 수 있습니다. 튜링 기계는 단순 해 보이지만 기본 정의를 훨씬 뛰어 넘을 수 있습니다.


3

짧은 대답 : 아니오 . 튜링 기계는 어떤 시점에서도 무한한 것을 가정 하지 않습니다 .

이것이 계산 모델로 유효한 이유 중 하나입니다. 계산을 무한 장치에 의해 수행되는 것으로 묘사하는 것은 의미가 없습니다.

그러나 작업 이 무한 할 수 있습니다. 종료되지 않을 수 있습니다. 이것이 계산 모델로 유효한 또 다른 이유입니다. 항상 종료되도록 보장 된 작업 만 수행 할 수있는 장치는 가능한 모든 계산을 표현할 수 없습니다.

더구나 : 작업에는 무제한 메모리 가 필요합니다. 사용중인 실제 메모리 양은 항상 유한하지만 임의로 커질 수 있습니다. 따라서 모든 작업에 미리 필요한 메모리를 모두 공급할 수는 없습니다. 특정 고 정량 이상의 메모리를 사용하지 않는 작업 만 수행 할 수있는 장치는 가능한 모든 계산을 표현할 수 없습니다.


-1

튜링 머신의 추상화의 핵심에 도달하고 아직 응답하지 않은 다른 각도를 생각해내는이 질문에 대한 "상자에서 벗어나 생각"과 일반화 : 그렇습니다. 이 개념은 수학에 내재되어 있으므로 TM은 물리적 머신의 추상화입니다. Time and Space의 물리적 개념은 TM 이론에서 의도적으로 사용되지만 실제 대응의 측면과 함께 추상화로도 사용됩니다.

간단히 말해서 TM은 이론상 영원히 정지 될 수 있으며 , 이는 정지 문제 일 수 있습니다. 테이프는 무한하지만 주어진 시간에 한정된 양의 테이프 만 쓸 수 있습니다. 영원히 실행되는 TM은 기본적으로 시간과 공간이 무제한, 즉 "무한"한 것으로 가정합니다. 실제로 해당 시간공간 계층 구조 / "연속체"가 무한합니다.

그러나 물리적 우주가 구속되어 있다고 가정하면 (이는 마지막 공간이 튜링 머신의 "기호"또는 "잉크"와 다소 유사 함) 가정하면이 추상 개념을 물리적으로 실현할 수는 없습니다. 다소 유사하거나 유사하게 물리학에서 때때로 우주는 무한한 / 무한으로 간주되지만 추상화로만 간주됩니다. 이것을 뒤집기 위해, 그것은 또한 컴퓨터가 유한 한 메모리만을 가질 수 있기 때문에 튜링 머신으로서 현대 컴퓨터의 "모델링"자체가 추상화 된 이유입니다.

또 다른 유용한 비교는 것입니다 수직선 수학이다. 숫자 줄은 무한하지만 유한 숫자를 나타냅니다. 숫자 라인의 모든 숫자는 유한 수량을 나타내지 만이 유한 수량은 무한합니다. 튜링 머신 테이프는 수학의 수선 개념과 매우 유사합니다. 튜링은 쉽게 한 방향으로 무한한 것으로 정의 할 수 있었지만, 수학 숫자 라인과 같이 테이프에서 음의 위치가 "왼쪽"이고 양의 위치가 "오른쪽"인 양방향으로 무한으로 정의했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.