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.