공백 기호가 튜링 기계의 입력 알파벳의 일부로 간주되지 않는 이유는 무엇입니까?


12

튜링 기계의 정의 는 항상 입력 알파벳의 일부가 아닌 빈 기호에 대해 명시 적입니다.

난 당신이 때 무엇이 잘못되었는지 궁금 효과적으로 빈 기호가 이미 입력의 일부가 될 것 때문에, 그것은 입력 알파벳의 일부합니다.

마지막 문장에서 '인상'을 설명하려면 다음을 고려하십시오.

기본 설정에서 입력 오른쪽에 무한한 수의 빈 기호가 나타납니다. 테이프 헤드가 첫 번째 공백 기호 위로 이동하면 수락 또는 거부 상태 일 필요가 없으므로 계산을 계속할 수 있습니다.

이제 계산에서 입력 알파벳에서 첫 번째 빈 기호의 오른쪽으로 기호를 쓴 다음 가장 왼쪽 위치로 돌아 가면서 시작 상태로 돌아갑니다. 그런 다음 다른 테이프로 '다시 시작'합니다. 실제로 이제는 다른 입력으로 시작합니다. 여기에는 이전에 없었던 공백 오른쪽에 입력 기호가 있습니다. 입력에 공백 기호가 효과적으로 포함 된 것 같습니다. 기계의 추가 동작은 이제 다를 수도 있습니다. 블랭크를 다시 만나면 오른쪽에 다른 기호가 나타납니다.

이 시나리오가 실제로 가능하다고 가정하면 왜 입력 알파벳의 공백 기호 부분을 고려하지 않고 '초기'입력의 일부로 공백 기호를 포함시키지 않겠습니까?

아마도 입력이 항상 무한하지 않도록 입력을 정의하는 방법일까요?


수업 시간에 튜링 머신을 설계하여 입력에 β (로컬 블랭크 심볼)를 필드 구분 기호로 사용할 수있었습니다.
Joshua

답변:


23

주된 이유는 기계가 입력의 끝을 감지 할 수 있기 때문입니다. 첫 번째 공백입니다 (이전 문자). 입력에 공백을 허용하면 기계는 오른쪽으로 더 멀리 스캔하여 더 많은 입력을 찾을 수 있는지 알 수 없었습니다. 물론, 당신은 문자 특별한 "입력의 끝을"함으로써 그것을 해결할 수 있지만, 당신은 주장해야 그게 그냥 깊은 문제가 하나의 레벨을 이동했습니다, 그래서 입력에 나타나지 않을 수 있습니다.

또한 초기 조건을 훨씬 쉽게 지정할 수 있습니다. 입력은 초기 테이프의 공백이 아닌 섹션이며 유한하고 연속적이어야합니다. 빈 문자를 입력 알파벳의 일부로 사용하려면 항상 여분의 문자를 추가하고 ( "공백"또는 무언가라고 함) 기계가 원하는대로 작동하도록 할 수 있습니다.


2
물론, 초기 입력의 끝을 결정할 수 없으면 일부 계산이 불가능합니다. 그러나 그렇지 않으면 기호에 특별한 것이 없습니다. 그리고 어쨌든 알파벳으로 빈 기호가 필요하기 때문에 공백 기호를 사용하는 것이 용어 경제의 문제라고 생각합니다. 처음에 명시적인 입력 끝 기호와 정의가 엄격하게 필요하지 않았으며 종종 생략 된 말로 정의 할 때 더 분명했을 것이라고 생각합니다.
혼란

1
{00}0,{11}1,{10,01}

2
튜링 기계가 빈칸을 읽는 경우의 행동을 지배하는 규칙이 필요하다는 것을 알 수 있으며, 빈칸을 쓰라고 지시하는 규칙이있을 수 있습니다. 입력에 공백이없는 이유는 알 수 없습니다. 공백이 아닌 문자와 단일 공백을 구분 기호로 사용하여 입력 항목을 인코딩하는 것은 어떻습니까? 그런 다음 여러 개의 연속 공백이 입력의 끝을 나타냅니다.
Rosie F

3
@YonatanN 물론입니다. "간단"하지만 공백 기호를 사용하는 것이 더 간단합니다.
David Richerby 12

3
@RosieF 공백은 테이프 알파벳의 일부입니다. 입력 알파벳은 그것의 일부입니다. 그리고, 특정 상황에서 (당신이했던 것처럼) 입력에 공백이 포함될 수있는 규칙을 설정할 수는 있지만 정의를 더 복잡하게 만듭니다. 더 복잡한 정의는 튜링 머신에 대한 것을 증명하기가 더 어렵다는 것을 의미합니다. 그리고 튜링 머신은 실제로 실제 컴퓨터를 설계하려는 경우 TM이 아닌 것을 증명하는 데만 사용되므로 좋은 절충안이 아닙니다.
David Richerby

6

공백 기호를 알파벳의 일부로 정의 할 수 있습니다. 문제는 입력 b010010b가있는 Turing 머신 (b는 공백을 나타냄)이 두 번째 b를 지나치지 않으면 b010010b로 시작하는 모든 입력에서 정확하게 동일한 방식으로 작동한다는 것입니다.

이 튜링 기계를 접두사 튜링 기계 라고하며 Kolmogorov 복잡성에 대한 일부 이론을 증명하는 데 매우 유용합니다.


5

매우 짧은 대답 : 테이프 알파벳테이프에 나타날 수있는 기호 세트이며 빈 기호를 포함합니다. 입력 알파벳 나타날 수있는 상징의 집합이다 초기 입력에 , 그리고 빈 기호를 포함하지 않습니다. 기계가 관심을 갖는 주요 알파벳은 테이프 알파벳입니다. 예를 들어, 공백이 보이면 어떻게해야하는지에 대한 규칙이 필요합니다.

이 구별은 다른 사람들이 말했듯이 기계가 입력이 끝나는 곳을 알 수 있도록 중요합니다. C에서 문자열 중간에 0 문자를 넣을 수없는 것과 같은 이유입니다. 0 문자는 "데이터가 끝나기 전에 0이 아닌 마지막 문자를 의미하도록 예약되어 있습니다. 당신이 이것을 볼 때, 당신은 끝났습니다. " 문자열 중간에 0자가 필요하면 쓰기 strlen가 훨씬 어려워집니다.

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