Google의 Turing Doodle은 어떤 유형의 오토 마톤입니까?


10

Alan Turing의 생일을 축하하기 위해 Google 은 기계를 보여주는 기념일 로고 를 게시했습니다 . 기념일 로고는 어떤 기계입니까? 튜링 컴플리트 언어를 표현할 수 있습니까?

고전적인 튜링 기계와는 명백한 차이점이 있습니다. 유한 테이프, 상태 연결 방법의 제약, ...

기념일 로고는 여기에서 계속 사용할 수 있습니다 낙서의 스크린 샷

(오른쪽 상단의 디스플레이는 예상 출력을 보여줍니다.)

가운데의 테이프는 빈, 0 또는 1을 넣을 수있는 사각형으로 나뉩니다. 머리는 사각형 중 하나 위에 위치하고 읽기 및 쓰기에 사용됩니다.

테이프 아래에는 기계를 시작하기 위해 클릭 할 수있는 녹색 화살표가 있습니다. 그 옆에는 두 줄의 원이 있으며 그중 일부는 연결되어 있습니다. 나는 그들을 "상태"라고 부를 것이다.

기기가 시작되면 녹색 버튼 오른쪽의 첫 번째 상태가 켜지고 그 다음에 오른쪽이 켜집니다. 각 상태에는 다음 명령 중 하나가 포함됩니다.

  • 공백 = 아무것도하지 마십시오 (다음 상태로 이동)
  • 1 = 헤드의 현재 위치에서 테이프에 1 쓰기
  • 0 = 헤드의 현재 위치에서 테이프에 0을 씁니다.
  • 화살표를 왼쪽으로 = 머리를 한 단계 왼쪽으로 이동
  • 오른쪽 화살표 = 머리를 한 단계 오른쪽으로 이동
  • 조건 : 헤드 아래의 값이 사각형에 표시된 값과 같은 경우 두 번째 상태 행으로 이동합니다. 그렇지 않은 경우 오른쪽의 다음 상태로 이동
  • 왼쪽 점프 : (고정) 이전 상태로 돌아가지만 맨 위 행에서만 [원래는 그 것을 잊었습니다. @Marzio!]

두 번의 점프 (하나는 다른 점프)를 "겹치게"할 수있는 방법이 없습니다. 기계가 상태를 벗어나고 오른쪽에 다음 상태가 없으면 기계가 정지합니다.

(기계가 멈 추면 테이프의 내용이 디스플레이의 내용과 비교되지만 기계의 의도 된 기능의 일부라고 생각하지 않습니다.)


9
물론 튜링 머신! en.wikipedia.org/wiki/Turing_machine 전환 시스템이 펑키하기 때문에 혼란 스러웠을 수 있습니다.
— Huck Bennett

또한 제어 엔진에는 "왼쪽 점프 연산자"가있어 이전 위치로 되돌아 갈 수 있지만 상단 행에서만 가능합니다. 또한 두 점프 (하나는 다른 점프)를 "겹치게"하는 방법이 없습니다. 점프 연산자가 없으면 기계는 DFA와 동일합니다 (제어 엔진의 동작은 왼쪽에서 오른쪽으로 "실행"됩니다). 또한 제한된 왼쪽 점프 연산자를 사용하면 LBA를 시뮬레이트하기에 기계가 충분히 강력하지 않은 것 같습니다. 그것에 대해 너무 많이 생각하십시오). 테이프가 유한하기 때문에 모든 경우에 튜링을 완료 할 수 없습니다.
— Marzio De Biasi 2016 년

1
@Marzio De Biasi :이 퍼즐에는 점프 명령이 포함되어 있으며, 그렇지 않으면 기계가 일정한 시간 동안 만 실행될 수 있기 때문에 모델이 매우 약합니다. "DFA와 동등한"의 의미가 무엇인지 잘 모르겠습니다. 점프 명령에 대한 제한으로 인해 답변이 변경 될 수 있습니다. “테이프가 유한하다”는 아마도 잘못된 가정 일 것입니다.
— Ito Tsuyoshi

Google은 기념일 로고를 제공합니다 (항상 대화 형 버전은 아니지만).
— Raphael

@TsuyoshiIto : 루프가없는 머신을 사용하면 시뮬레이션하는 DFA를 만들 수 있습니다. 양방향으로 임의의 점프를 허용하고 겹칠 수있는 경우, 기계는 두 행만있는 상태에서도 즉시 "완료"(무한 테이프 가정) 상태입니다 (상태를 수평으로 "평평하게"할 수 있음). 겹칠 수있는 왼쪽 점프 (첫 번째 행에서만)와 임의의 행 수 (그러나 아래쪽 행의 컨트롤은 위 또는 아래로만 가능)를 허용하면 어떻게되는지 모르겠습니다 . 아마 그것은 cs.stackexchange.com에 대한 좋은 질문 일 것입니다
— Marzio De Biasi

답변:


10

가정 :

  • 임의로 많은 수의 행 ( "상태 라인")을 추가 할 수 있습니다
  • 행은 임의로 길 수 있습니다
  • 테이프는 무한하다

나는 " 작은 튜링 머신과 일반화 된 바쁜 비버 경쟁 "에 설명 된 머신 를 에뮬레이트하는 Alan Turing의 Doodle 머신 구성을 만들려고 시도했는데 , 이는 오픈 (나의 지식까지) Collatz와 유사한 문제에 따른 중지 문제가 있습니다. 전체 사진은 여기에서 볼 수 있습니다 .M4

atdoodle

... 그래서 심지어 AT의 낙서가되어있는 경우 아마도 (때문에 첫 번째 행에서 사용할 수있는 비 중첩 왼쪽 전용 점프 운영자에게) 완전한 튜링하지, 그것은 (UN) decidability의 미세 라인을 도보로 충분히 강력한입니다 - 디

편집 : TURING DOODLE이 완전히 TURING입니다

(이 부분이 올바른지 확실하지 않기 때문에 위의 이전 답변을 남겨 둡니다. :-)

한 번의 왼쪽 겹치지 않는 점프로도 Turing Doodle이 완료되었습니다. . (간단한) 아이디어는 테이프 자체를 사용하여 현재 상태를 저장하고 여러 셀을 사용하여 더 큰 알파벳을 나타내는 것입니다.

예를 들어, 다음 테이프 표현을 사용하여 2 상태 8 기호 TM을 시뮬레이션 할 수 있습니다.

    HEAD POSITION
    v
...[s][b2 b1 b0] [_][b2 b1 b0] [_][b2 b1 b0] ....
   ^^^^^^^^^^^^^
    "macro cell"

튜링 낙서는 다음을 수행 할 수 있습니다.

  1. s
  2. b2,b1,b0
  3. 다음 기호를 쓰고 머리를 왼쪽 또는 오른쪽의 "매크로 셀"로 이동하고 다음 상태로 저장하십시오. 아래 그림에서 이러한 동작 (왼쪽 / 오른쪽으로 이동 및 쓰기 동작을 사용하여 일련의 셀에서 수행 할 수 있음)을 "MW"라고합니다.
  4. 마지막으로 한 번의 왼쪽 점프로 컨트롤을 다시 1 단계로 가져 오는 컨트롤을 상단 행으로 옮깁니다.

전체 사진은 여기에서 볼 수 있습니다 .

TdoodleTC

TMDM


누! 당신은 나를 이길! 방금 테이프 대신 상태 공간에서 임의의 TM을 만드는 방법을 쓰고있었습니다. 그러나 한 번의 점프 만 사용하므로 접근 방식이 더 좋습니다. 잘 했어! 잠깐, 기계는 어떻게 입력을 받습니까?
— Artem Kaznatcheev

@ marzio-de-biasi 좋은 일입니다!
— pepper_chico 2016 년

1
@ArtemKaznatcheev : 테이프에 입력을받습니다. 분명히 에뮬레이션하는 TM의 원래 알파벳 기호에 따라 인코딩하고 상태 표현을 위해 공백을 남겨 두어야합니다.
— Marzio De Biasi

주니어의 마크 alen turing. 나는 이것을 읽는 것을 즐겼다
— iDroid

TM 완전성을 완전히 확신하지 못했습니다. TM이 이전에 입력 테이프에 정의되지 않은 새로운 빈 사각형에 쓰는 경우를 처리했다고 생각하지 마십시오. TM 완전성에 필요한 반면 그렇지 않으면 유한 계산입니다.
— vzn

5

기계에는 "테이프"(종이의 유사체)가 통과하고 각각 "기호"를 지닐 수있는 섹션 ( "사각형")으로 나뉩니다. "기계에있는"기호 S (r)을 갖는, r 번째와 같이, 단지 하나의 정사각형이 언제든지 존재한다. 이 정사각형을 "스캔 된 정사각형"이라고 부를 수 있습니다. 스캔 한 사각형의 심볼을 "스캔 된 심볼"이라고합니다. "스캔 된 기호"는 기계가 "직접 인식"하는 유일한 것입니다. 그러나 기계는 m 구성을 변경하여 이전에 "본"(스캔) 된 일부 기호를 효과적으로 기억할 수 있습니다. 기계의 가능한 동작은 언제든지 m- 구성 qn 및 스캔 된 기호 S (r)에 의해 결정됩니다. 이 쌍 qn, S (r)을 "구성"이라고합니다. 따라서 구성에 따라 기계의 가능한 동작이 결정됩니다. 스캔 된 사각형이 비어있는 일부 구성 (예 : 기호 없음)에서는 기계가 스캔 된 사각형에 새 기호를 기록합니다. 다른 구성에서는 스캔 된 기호를 지 웁니다. 기기는 스캔중인 사각형을 변경할 수 있지만 오른쪽이나 왼쪽으로 한 위치 만 이동하면됩니다. 이러한 작업 외에도 m 구성을 변경할 수 있습니다. {232}로 작성된 일부 기호는 계산중인 실수의 10 진수 인 그림의 순서를 구성합니다. 다른 사람들은“기억을 돕는다”는 대략적인 메모 일뿐입니다. 소거하기 쉬운 거친 음표 일뿐입니다. 기계는 스캔 된 사각형에 새로운 기호를 기록합니다. 다른 구성에서는 스캔 된 기호를 지 웁니다. 기기는 스캔중인 사각형을 변경할 수 있지만 오른쪽이나 왼쪽으로 한 위치 만 이동하면됩니다. 이러한 작업 외에도 m 구성을 변경할 수 있습니다. {232}로 작성된 일부 기호는 계산중인 실수의 10 진수 인 그림의 순서를 구성합니다. 다른 사람들은“기억을 돕는다”는 대략적인 메모 일뿐입니다. 소거하기 쉬운 거친 음표 일뿐입니다. 기계는 스캔 된 사각형에 새로운 기호를 기록합니다. 다른 구성에서는 스캔 된 기호를 지 웁니다. 기기는 스캔중인 사각형을 변경할 수 있지만 오른쪽이나 왼쪽으로 한 위치 만 이동하면됩니다. 이러한 작업 외에도 m 구성을 변경할 수 있습니다. {232}로 작성된 일부 기호는 계산중인 실수의 10 진수 인 그림의 순서를 구성합니다. 다른 사람들은“기억을 돕는다”는 대략적인 메모 일뿐입니다. 소거하기 쉬운 거친 음표 일뿐입니다. {232}로 작성된 일부 기호는 계산중인 실수의 10 진수 인 그림의 순서를 구성합니다. 다른 사람들은“기억을 돕는다”는 대략적인 메모 일뿐입니다. 소거하기 쉬운 거친 음표 일뿐입니다. {232}로 작성된 일부 기호는 계산중인 실수의 10 진수 인 그림의 순서를 구성합니다. 다른 사람들은“기억을 돕는다”는 대략적인 메모 일뿐입니다. 소거하기 쉬운 거친 음표 일뿐입니다.

이러한 연산에는 숫자 계산에 사용되는 모든 연산이 포함된다는 것이 필자의 주장입니다. 머신 이론이 독자에게 친숙 할 때이 경합의 방어가 더 쉬워 질 것입니다. 다음 섹션에서 나는 이론의 발전을 진행하고 그것이“기계”,“테이프”,“스캔”등의 의미를 이해한다고 가정한다.

이것은 원본 Turing 논문 "계산 가능한 숫자, Entscheidungs ​​문제에 대한 응용 프로그램"에서 발췌 한 것입니다.

내가 추천 한 논문의 현대적인 좋은 동반자는 Charles Petzold 의 Annotated Turing 입니다.

보시다시피 Google은 Turing의 설명과 매우 유사한 기계를 닮았습니다.

편집 : Google TM 완전한 알파벳이 토끼 아이콘 을 클릭 한 후 게임이 끝날 때 표시되는 것으로 가정 하고 무한 시퀀스를 생성하고 더 많은 행과 열을 얻는다 는 사실에서 가져옵니다. ), 모든 행에서 왼쪽 점프 (및 겹치는 왼쪽 점프) 가 있고 인접한 행 사이에 조건부 및 무조건 점프가 있습니다 .Turing complete 라고 생각합니다 .


그러나 그들은 튜링 머신을 완전히 구현 했습니까? 이 테이프에는 유한 테이프가 있으므로 쉽게 식별 할 수있는 차이입니다. 차이를 만드는 것이 차이점입니까? 그들은 실제로 더 약한 기계를 구현 했습니까?
— bjelli

2
@bjelli 글쎄, 나는 그것을 디자인하지 않았기 때문에 그들의 기계에 관한 모든 규칙을 모른다는 것을 확신 할 수 없다. 그러나 게임의 마지막에 도달하면 더 긴 테이프로 연결되는 토끼 아이콘을 클릭 할 수 있습니다. 여기에서 분석을 확인하십시오 : sbf5.com/~cduan/technical/turing . 따라서 기계가 얻을 수있는 줄 수에 제한이 없으므로 모든 크기의 테이프로 이어질 수 있습니다.
— pepper_chico

plz는 Turing이 완료되었다는 증거를 스케치합니다.
— vzn

4

퍼즐에서 점프는 두 라인 모두에서 허용되지만 겹칠 수는 없습니다. 게임이 끝날 때 마지막 토끼 순서 낙서에서는 모든 줄에서 점프를 허용하고 대괄호로 묶을 수 있으며 [()]는 허용되지만 ([)]는 허용되지 않는 것 같습니다.

다음 가정을 사용합니다.

  1. 01ϵ
  2. 기계는 고정 된 수의 라인을 사용할 수 있습니다
  3. 모든 라인에서 왼쪽 점프가 허용됩니다 (라인 당 하나의 왼쪽 점프를 사용합니다)
  4. ϵ01

이러한 가정을 바탕으로 Google Doodle Machine은 Turing Complete 입니다.

01ϵ01엔

삼(엔−1)+15엔+1

구글 기념일 로고 머신

ϵ01ϵ0101

GDM은 다음과 같이 TM을 시뮬레이션합니다.

  1. 1
  2. 제이
  3. ϵ01
  4. 빨간색 상자 (실제로 두 개의 상자 임)는 현재 GDM 행에 해당하는 읽기 문자를 기록합니다 ( ϵ
  5. 01
  6. 01

유니버설 GDM을 얻으려면 즐겨 사용하는 Universal TM을 선택하고 위의 절차에서 구현하십시오.

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