Loại Turing Doodle của Google là gì?


10

Để kỷ niệm sinh nhật của Alan Turing, Google đã xuất bản một hình tượng trưng cho thấy một chiếc máy. Những loại máy của doodle là gì? Nó có thể diễn đạt một ngôn ngữ Turing Complete không?

Có sự khác biệt rõ ràng đối với máy turing cổ điển: một băng hữu hạn, các ràng buộc về cách kết nối trạng thái, ...

Hình tượng trưng vẫn còn có sẵn ở đây Ảnh chụp màn hình của doodle

(Màn hình ở phía trên bên phải hiển thị đầu ra dự kiến.)

Băng ở giữa được chia thành các hình vuông có thể giữ trống, không hoặc một. Đầu được đặt phía trên một trong những hình vuông và được sử dụng để đọc và viết.

Bên dưới băng bạn có thể thấy một mũi tên màu xanh lá cây mà bạn có thể nhấp vào để khởi động máy. Có hai dòng vòng tròn bên cạnh, một số trong số đó được kết nối. Tôi sẽ gọi họ là "tiểu bang".

Sau khi máy khởi động, trạng thái đầu tiên bên phải nút màu xanh lá cây sẽ sáng lên, sau đó trạng thái tiếp theo bên phải, v.v ... Mỗi trạng thái chứa một trong các lệnh sau:

  • để trống = không làm gì cả (chỉ cần chuyển sang trạng thái tiếp theo)
  • 1 = ghi một cái vào băng ở vị trí hiện tại của đầu
  • 0 = ghi số 0 vào băng ở vị trí hiện tại của đầu
  • mũi tên sang trái = di chuyển đầu một bước sang trái
  • mũi tên sang phải = di chuyển đầu một bước sang phải
  • điều kiện: nếu giá trị dưới đầu bằng giá trị hiển thị trong hình vuông đi xuống dòng trạng thái thứ hai. nếu không, chuyển sang trạng thái tiếp theo bên phải
  • nhảy trái: trở về trạng thái trước (cố định) nhưng chỉ ở hàng trên [Ban đầu tôi quên mất trạng thái đó, cảm ơn @Marzio!]

Không có cách nào để "chồng chéo" hai lần nhảy (lần này qua lần khác). Máy dừng lại khi có trạng thái và không có trạng thái tiếp theo bên phải của nó.

(Sau khi máy dừng nội dung của băng được so sánh với nội dung của màn hình, nhưng tôi không coi đó là một phần của chức năng dự định của máy.)


9
Một máy Turing, tất nhiên! vi.wikipedia.org/wiki/Turing_machine Có thể bạn đã nhầm lẫn vì hệ thống chuyển đổi là sôi nổi.
Huck Bennett

Ngoài ra còn có một "toán tử nhảy trái" trong công cụ điều khiển cho phép quay trở lại vị trí trước đó nhưng chỉ ở hàng trên; hơn nữa, không có cách nào để "chồng chéo" hai lần nhảy (lần này qua lần khác). Không có toán tử nhảy, máy tương đương với DFA (các hành động trong công cụ điều khiển được "thực thi" từ trái sang phải), nhưng với toán tử nhảy trái hạn chế , máy dường như không đủ mạnh để mô phỏng LBA (nhưng tôi đã không ' t nghĩ về nó quá nhiều). Trong mọi trường hợp, nó không thể là Turing hoàn chỉnh vì băng là hữu hạn.
Marzio De Biasi

1
@Marzio De Biasi: Bạn nói đúng rằng câu đố này chứa các lệnh nhảy và nếu không có chúng, mô hình rõ ràng rất yếu vì một cỗ máy chỉ có thể chạy trong một thời gian không đổi. (Tôi không chắc ý của bạn là gì khi có ý nghĩa tương đương với DFA. Cấm) Những hạn chế nào bạn đưa ra cho các hướng dẫn nhảy có thể thay đổi câu trả lời. Băng đĩa là hữu hạn, có lẽ là một giả định không chính xác.
Tsuyoshi Ito

Google giữ hình tượng trưng của họ có sẵn (mặc dù dường như không phải lúc nào cũng là phiên bản tương tác).
Raphael

@TsuyoshiIto: Ý tôi là (nhưng có lẽ tôi đã sai) khi cho một chiếc máy không có vòng lặp, bạn có thể xây dựng một DFA mô phỏng nó. Nếu bạn cho phép nhảy tùy ý theo cả hai hướng và có thể trùng nhau, thì máy ngay lập tức "hoàn thành" (giả sử một băng vô hạn) ngay cả khi chỉ có hai hàng (trạng thái có thể được "làm phẳng" theo chiều ngang). Tôi không biết điều gì xảy ra nếu bạn cho phép các bước nhảy trái có thể trùng nhau (nhưng chỉ ở hàng đầu tiên) và số lượng hàng tùy ý (nhưng điều khiển ở các hàng thấp hơn chỉ có thể tăng hoặc giảm). Có lẽ đó là một câu hỏi hay cho cs.stackexchange.com
Marzio De Biasi

Câu trả lời:


10

Giả sử rằng:

  • chúng ta có thể thêm một số lượng lớn các hàng tùy ý ("dòng trạng thái")
  • các hàng có thể dài tùy ý
  • băng là vô hạn

M4

atdoodle

... Vì vậy, ngay cả khi Doodle của AT có lẽ chưa hoàn thành Turing (do toán tử nhảy chỉ trái không chồng chéo chỉ có sẵn ở hàng đầu tiên), nó đủ mạnh để vượt qua giới hạn (không) có thể quyết định: - D

EDIT: TURING DURLE LÀ TURING HOÀN THÀNH

(Tôi để lại câu trả lời trước ở trên, vì tôi không chắc rằng phần này là đúng :-)

Tôi nghĩ rằng ngay cả với một bước nhảy không chồng chéo duy nhất, Turing Doodle vẫn hoàn tất! . Ý tưởng (đơn giản) là sử dụng chính băng để lưu trữ trạng thái hiện tại và sử dụng nhiều ô để thể hiện một bảng chữ cái lớn hơn.

Ví dụ, 2 trạng thái 8 ký hiệu TM có thể được mô phỏng bằng cách sử dụng biểu diễn băng sau:

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

Hình tượng trưng Turing có thể:

  1. s
  2. b2,b1,b0
  3. viết ký hiệu tiếp theo, di chuyển đầu đến "ô vĩ mô" ở bên trái hoặc bên phải và lưu trữ trên trạng thái tiếp theo; trong hình bên dưới các thao tác này (có thể được thực hiện trên một chuỗi các ô bằng cách sử dụng các hành động di chuyển sang trái / phải và ghi) được gọi là "MW";
  4. cuối cùng chuyển điều khiển sang hàng trên với một bước nhảy trái sẽ đưa điều khiển quay lại bước 1.

Hình ảnh đầy đủ có sẵn ở đây .

TdoodleTC

TMDM


không! Bạn đánh bại tôi vào nó! Tôi chỉ viết cách tạo một TM tùy ý trong không gian trạng thái thay vì băng. Tuy nhiên, cách tiếp cận của bạn đẹp hơn vì nó chỉ sử dụng một bước nhảy. Làm tốt! Chờ đã, làm thế nào để máy của bạn nhận được đầu vào?
Artem Kaznatcheev

@ marzio-de-biasi Làm việc tốt!
pepper_chico

1
@ArtemKaznatcheev: nó nhận đầu vào trên băng; rõ ràng bạn phải mã hóa nó phù hợp với các ký hiệu bảng chữ cái ban đầu của TM mà bạn đang mô phỏng và để trống các khoảng trống để thể hiện trạng thái.
Marzio De Biasi

Dấu ấn của đàn em alen turing. Tôi rất thích đọc nó
iDroid

không hoàn toàn thuyết phục hoàn thành TM. đừng nghĩ rằng bạn đã xử lý trường hợp TM ghi vào các ô vuông mới chưa được xác định trước đó trên băng đầu vào. đó là cần thiết cho sự hoàn thiện TM nếu không nó chỉ là một tính toán hữu hạn.
vzn

5

Cỗ máy này được cung cấp một băng dính băng, (tương tự như giấy) chạy qua nó, và được chia thành các phần (được gọi là các ô vuông hình chữ nhật), mỗi bộ phận có khả năng mang biểu tượng Riên. Tại bất kỳ thời điểm nào, chỉ có một hình vuông, giả sử r-th, mang ký hiệu S (r) là chữ khắc trong máy. Chúng ta có thể gọi quảng trường này là hình vuông được quét trên đường phố. Biểu tượng trên hình vuông được quét có thể được gọi là biểu tượng quét Quét. Biểu tượng được quét của người Viking là người duy nhất trong số đó, có thể nói, trực tiếp nhận thức được. Tuy nhiên, bằng cách thay đổi cấu hình m của nó, máy có thể ghi nhớ một cách hiệu quả một số biểu tượng mà nó đã thấy trước đây (đã quét). Hành vi có thể của máy bất cứ lúc nào được xác định bởi qn cấu hình m và ký hiệu được quét S (r). Cặp này qn, S (r) sẽ được gọi là cấu hình của LỚN do đó cấu hình xác định hành vi có thể của máy. Trong một số cấu hình trong đó hình vuông được quét trống (nghĩa là không có ký hiệu), máy ghi lại một biểu tượng mới trên hình vuông được quét: trong các cấu hình khác, nó sẽ xóa biểu tượng được quét. Máy cũng có thể thay đổi hình vuông đang được quét, nhưng chỉ bằng cách dịch chuyển nó một nơi sang phải hoặc trái. Ngoài bất kỳ thao tác nào, cấu hình m có thể được thay đổi. Một số ký hiệu được viết xuống {232} sẽ tạo thành chuỗi các số liệu là số thập phân của số thực đang được tính toán. Những cái khác chỉ là những ghi chú sơ bộ để hỗ trợ bộ nhớ. Nó sẽ chỉ là những ghi chú thô sẽ có thể bị xóa. không có ký hiệu) máy ghi lại một biểu tượng mới trên hình vuông được quét: trong các cấu hình khác, nó sẽ xóa biểu tượng được quét. Máy cũng có thể thay đổi hình vuông đang được quét, nhưng chỉ bằng cách dịch chuyển nó một nơi sang phải hoặc trái. Ngoài bất kỳ thao tác nào, cấu hình m có thể được thay đổi. Một số ký hiệu được viết xuống {232} sẽ tạo thành chuỗi các số liệu là số thập phân của số thực đang được tính toán. Những cái khác chỉ là những ghi chú sơ bộ để hỗ trợ bộ nhớ. Nó sẽ chỉ là những ghi chú thô sẽ có thể bị xóa. không có ký hiệu) máy ghi lại một biểu tượng mới trên hình vuông được quét: trong các cấu hình khác, nó sẽ xóa biểu tượng được quét. Máy cũng có thể thay đổi hình vuông đang được quét, nhưng chỉ bằng cách dịch chuyển nó một nơi sang phải hoặc trái. Ngoài bất kỳ thao tác nào, cấu hình m có thể được thay đổi. Một số ký hiệu được viết xuống {232} sẽ tạo thành chuỗi các số liệu là số thập phân của số thực đang được tính toán. Những cái khác chỉ là những ghi chú sơ bộ để hỗ trợ bộ nhớ. Nó sẽ chỉ là những ghi chú thô sẽ có thể bị xóa. Một số ký hiệu được viết xuống {232} sẽ tạo thành chuỗi các số liệu là số thập phân của số thực đang được tính toán. Những cái khác chỉ là những ghi chú sơ bộ để hỗ trợ bộ nhớ. Nó sẽ chỉ là những ghi chú thô sẽ có thể bị xóa. Một số ký hiệu được viết xuống {232} sẽ tạo thành chuỗi các số liệu là số thập phân của số thực đang được tính toán. Những cái khác chỉ là những ghi chú sơ bộ để hỗ trợ bộ nhớ. Nó sẽ chỉ là những ghi chú thô sẽ có thể bị xóa.

Tôi tranh luận rằng các hoạt động này bao gồm tất cả những hoạt động được sử dụng trong tính toán của một số. Việc bảo vệ sự tranh chấp này sẽ dễ dàng hơn khi lý thuyết về máy móc quen thuộc với người đọc. Do đó, trong phần tiếp theo, tôi tiến hành phát triển lý thuyết và cho rằng nó được hiểu là gì bởi máy Máy, băng, băng, quét quét, v.v.

Đây là một đoạn trích từ bài báo Turing ban đầu "Về các số có thể tính toán được, với một Ứng dụng cho Entscheidungsprobols".

Một người bạn đồng hành hiện đại với bài báo mà tôi giới thiệu là The Annotated Turing của Charles Petzold.

Như bạn có thể thấy, Google chỉ cố gắng giống với một cỗ máy rất giống với mô tả của Turing.

EDIT: Giả sử bảng chữ cái hoàn chỉnh TM của Google là bảng chữ cái được hiển thị ở cuối trò chơi sau khi nhấp vào biểu tượng chú thỏ và lấy thực tế là nó tạo ra một chuỗi vô hạn , có thêm hàng và cột (vì vậy chúng tôi có thể giả sử chúng tôi có thể thêm bất kỳ ), đã nhảy trái (và cũng nhảy chồng trái) ở bất kỳ hàng nào , có bước nhảy có điều kiện và vô điều kiện giữa các hàng liền kề, tôi nghĩ rằng nó đã hoàn thành .


Nhưng họ đã thực hiện một cách khéo léo một máy Turing? cái này có một băng hữu hạn, vì vậy đó là một sự khác biệt dễ nhận thấy. nó là một sự khác biệt mà làm cho một sự khác biệt? họ thực tế đã thực hiện một máy yếu hơn?
bjelli

2
@bjelli Tôi không thể đảm bảo rằng vì tôi không thiết kế nên tôi không biết tất cả các quy tắc về máy của họ. Nhưng, nếu bạn đến trận chung kết của trò chơi, bạn có thể nhấp vào biểu tượng Bunny dẫn bạn đến một cuộn băng dài hơn, kiểm tra phân tích ở đây: sbf5.com/~cduan/technical/turing . Vì vậy, có thể không có giới hạn về số lượng dòng máy có thể nhận được, điều này sẽ dẫn bạn đến một cuộn băng có kích thước bất kỳ.
pepper_chico

Xin hãy phác thảo một bằng chứng cho thấy Turing của nó đã hoàn thành
vzn

4

Trong các câu đố, các bước nhảy được phép trên cả hai dòng, nhưng chúng không thể trùng nhau. Ở lần vẽ nguệch ngoạc chuỗi thỏ cuối cùng vào cuối trò chơi, chúng cho phép nhảy trên mọi dòng và chúng có thể được lồng vào nhau và [()] được cho phép, nhưng ([)] dường như không được phép.

Tôi sẽ sử dụng các giả định sau:

  1. 01ϵ
  2. Máy có thể sử dụng bất kỳ số dòng cố định
  3. Nhảy trái được phép trên bất kỳ dòng nào (tôi sẽ sử dụng một bước nhảy trái trên mỗi dòng)
  4. ϵ01

Với những giả định này, Google Doodle Machine là Turing Complete .

01ϵ01n

3(n1)+15n+1

Máy Google Doodle

ϵ01ϵ0101

GDM mô phỏng TM như sau:

  1. 1
  2. j
  3. ϵ01
  4. ϵ
  5. 01
  6. 01

Chọn TM phổ quát yêu thích của bạn và thực hiện nó trong quy trình trên để có được một GDM phổ quát.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.