Який тип автомата - Doodle Turing від Google?


10

На святкування дня народження Алана Тьюрінга Google опублікував логотип із зображенням машини. Що це за машина - каракуль? Чи може він виражати мову Тьюрінга?

У класичної машини тюрінга очевидні відмінності: обмежена стрічка, обмеження в тому, як можна підключити стан, ...

Бовдур все ще доступний тут Скріншот каракулі

(Дисплей у верхньому правому куті показує очікуваний вихід.)

Стрічка посередині поділяється на квадрати, на яких може бути порожній, нульовий або одиничний. Голова розташована над одним із квадратів і використовується для читання та письма.

Внизу стрічки ви бачите зелену стрілку, яку можна натиснути, щоб запустити машину. Поруч є два рядки кіл, деякі з яких з'єднані. Я буду називати їх "державами".

Після запуску машини засвічується перший стан праворуч від зеленої кнопки, потім наступне праворуч і так далі ... Кожен стан містить одну з таких команд:

  • blank = нічого не робити (просто перейдіть до наступного стану)
  • 1 = запишіть один на стрічку в поточному положенні голови
  • 0 = запишіть нуль на стрічку в поточному положенні голови
  • стрілка вліво = перемістіть голову на один крок вліво
  • стрілка вправо = перемістіть голову на один крок вправо
  • умова: якщо значення під заголовком дорівнює значенню, показаному в квадраті, опускається до другого рядка станів. якщо ні, перейдіть до наступного стану праворуч
  • лівий стрибок: поверніться до (фіксованого) попереднього стану, але лише у верхньому ряду [Спочатку я забув це, спасибі @Marzio!]

Немає способу "перекрити" два стрибки (один над іншим). Машина зупиняється, коли вона залишає стан, а праворуч від неї немає наступного стану.

(Після зупинки машини вміст стрічки порівнюється із вмістом дисплея, але я не вважаю це частиною передбаченої функціональності машини.)


9
Машина Тьюрінга, звичайно! en.wikipedia.org/wiki/Turing_machine Можливо, вас збентежили, оскільки система переходу є прикольною.
Гек Беннетт

У двигуні управління також є «лівий оператор стрибка», який дозволяє повернутися до попереднього положення, але тільки у верхньому ряду; крім того, немає способу "перекрити" два стрибки (один над іншим). Без оператора стрибка машина еквівалентна DFA (дії в двигуні управління "виконуються" зліва направо), але також з обмеженим лівим оператором стрибка машина здається недостатньо потужною для імітації LBA (але я не став " не надто думати про це). У кожному випадку це не може бути Тьюрінга завершеним, оскільки стрічка є кінцевою.
Марціо Де Біасі

1
@Marzio De Biasi: Ви праві, що ця головоломка містить інструкції зі стрибків, і без них модель, очевидно, дуже слабка, тому що машина може працювати лише протягом постійного часу. (Я не впевнений, що ви маєте на увазі під "еквівалентом DFA".) Яке обмеження, яке ви накладаєте на інструкції зі стрибків, може змінити відповідь. "Стрічка кінцева", ймовірно, неправильне припущення.
Цуйосі Іто

Google зберігає їх логотипи доступними (хоча, мабуть, не завжди інтерактивні версії).
Рафаель

@TsuyoshiIto: Я маю на увазі (але, можливо, я помиляюся), що за допомогою машини без циклів ви можете створити DFA, який імітує її. Якщо ви допускаєте довільні стрибки в обох напрямках і це може перекриватися, то машина одразу «завершує завершення» (припускаючи нескінченну стрічку) навіть лише з двох рядів (стани можуть бути «згладжені» по горизонталі). Я не знаю, що станеться, якщо ви дозволите ліві стрибки, які можуть перекриватися (але тільки в першому ряду) і довільну кількість рядків (але управління на нижніх рядах може бути лише вгору або вниз). Можливо, це приємне питання для cs.stackexchange.com
Marzio De Biasi

Відповіді:


10

Якщо припустити, що:

  • ми можемо додати довільно велику кількість рядків ("рядки статусу")
  • ряди можуть бути довільно довгими
  • стрічка нескінченна

M4

придур

... так що навіть якщо Doodle AT, можливо, не є Тюрінгом повним (через неперекриваються оператора стрибка лише вліво, доступних лише в першому ряду), він досить потужний, щоб пройти тонку лінію (не) розбірливості: - D

РЕДАКТУВАННЯ: ТУРИНГ ДЕРЖАВИ ПОВЕРНЕНО

(Я залишаю попередню відповідь вище, тому що я не впевнений, що ця частина правильна :-)

Я думаю, що навіть з одним лівим стрибком, що не перекривається, каракулі Тьюрінга закінчуються! . (Проста) ідея полягає у використанні самої стрічки для зберігання поточного стану та використання декількох комірок для подання більшого алфавіту.

Наприклад, 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


nooo! ти побив мене до цього! Я тільки писав, як зробити довільну ТМ у просторі стану замість стрічки. Однак ваш підхід приємніший, оскільки він використовує лише один стрибок. Молодці! Зачекайте, як ваша машина отримує вхід?
Артем Казнатчеєв

@ marzio-de-biasi Приємна робота!
pepper_chico

1
@ArtemKaznatcheev: він отримує вхід на стрічку; очевидно, ви повинні кодувати його відповідно до початкових символів алфавіту TM, який ви емулюєте, і залишити порожні пробіли для представлення стану.
Marzio De Biasi

Знак молодшого alen turing. Мені подобалось читати це
iDroid

не повністю переконаний у повноті ТМ. не думайте, що ви вирішили справу, коли TM записує нові порожні квадрати, які раніше не були визначені на вхідній стрічці. що потрібно для повноти ТМ, інакше є лише кінцевим обчисленням.
vzn

5

Машина поставляється з «стрічкою» (аналогом паперу), що проходить через неї, і поділяється на секції (звані «квадрати»), кожна з яких може носити «символ». У будь-який момент є лише один квадрат, скажімо, r-й, що містить символ S (r), який "знаходиться в машині". Ми можемо назвати цю площу «відсканованим квадратом». Символ на відсканованому квадраті може називатися «сканованим символом». "Сканований символ" - єдиний з яких машина, так би мовити, "безпосередньо усвідомлює". Однак, змінюючи свою m-конфігурацію, машина може ефективно запам’ятати деякі символи, які вона раніше „бачила” (відсканувала). Можлива поведінка машини в будь-який момент визначається m-конфігурацією qn і відсканованим символом S (r). Ця пара qn, ​​S (r) буде називатися "конфігурація": таким чином конфігурація визначає можливу поведінку машини. У деяких конфігураціях, в яких відсканований квадрат порожній (тобто не містить символу), машина записує новий символ на відсканований квадрат: в інших конфігураціях він стирає відсканований символ. Машина може також змінювати квадрат, який сканується, але лише переміщуючи його на одне місце вправо або вліво. На додаток до будь-якої з цих операцій конфігурація m може бути змінена. Деякі записані символи {232} утворюватимуть послідовність цифр, яка є десятковою частиною реального числа, що обчислюється. Інші - це лише грубі нотатки, які допомагають пам'яті. Стерти лише ті грубі ноти, які підлягатимуть. не містить символу) машина записує новий символ на відсканований квадрат: в інших конфігураціях він стирає відсканований символ. Машина може також змінювати квадрат, який сканується, але лише переміщуючи його на одне місце вправо або вліво. На додаток до будь-якої з цих операцій конфігурація m може бути змінена. Деякі записані символи {232} утворюватимуть послідовність цифр, яка є десятковою частиною реального числа, що обчислюється. Інші - це лише грубі нотатки, які допомагають пам'яті. Стерти лише ті грубі ноти, які підлягатимуть. не містить символу) машина записує новий символ на відсканований квадрат: в інших конфігураціях він стирає відсканований символ. Машина може також змінювати квадрат, який сканується, але лише переміщуючи його на одне місце вправо або вліво. На додаток до будь-якої з цих операцій конфігурація m може бути змінена. Деякі записані символи {232} утворюватимуть послідовність цифр, яка є десятковою частиною реального числа, що обчислюється. Інші - це лише грубі нотатки, які допомагають пам'яті. Стерти лише ті грубі ноти, які підлягатимуть. Деякі записані символи {232} утворюватимуть послідовність цифр, яка є десятковою частиною реального числа, що обчислюється. Інші - це лише грубі нотатки, які допомагають пам'яті. Стерти лише ті грубі ноти, які підлягатимуть. Деякі записані символи {232} утворюватимуть послідовність цифр, яка є десятковою частиною реального числа, що обчислюється. Інші - це лише грубі нотатки, які допомагають пам'яті. Стерти лише ті грубі ноти, які підлягатимуть.

Я стверджую, що ці операції включають усі ті, які використовуються при обчисленні числа. Захист цієї суперечки буде простішим, коли теорія машин знайома читачеві. У наступному розділі я продовжую розробку теорії і припускаю, що розуміється, що розуміється під "машиною", "стрічкою", "відсканованою" тощо.

Це уривок з оригіналу документа Тьюрінга "Про обчислювані номери з додатком до Entscheidungsproblem".

Сучасним хорошим супутником до статті, який я рекомендую, є «Анотоване Тюрінг» від Чарльза Петцольда.

Як ви бачите, Google просто спробував нагадати машину, яка дуже схожа на опис Тьюрінга.

EDIT: Якщо припустити, що алфавіт Google TM є повним алфавітом, який відображається в кінці гри після натискання значка зайчика , і, беручи до уваги той факт, що він створює нескінченну послідовність, отримав більше рядків і стовпців (тож можна припустити, що ми можемо додати будь-які ), має ліві стрибки (а також перекривання лівих стрибків) у будь-якому ряду , має умовний та безумовний стрибок між сусідніми рядами, я думаю, що це Тьюрінг завершений .


але вони акутно реалізували машину для твердіння? у цієї є кінцева стрічка, тож це легко помітна різниця. це різниця, яка має значення? чи насправді вони реалізували слабку машину?
bjelli

2
@bjelli Ну, я не можу це запевнити, оскільки, оскільки я не створив це, я не знаю всіх правил щодо їхньої машини. Але, якщо ви досягнете фіналу гри, ви зможете натиснути значок зайчика, який веде вас до довшої стрічки, перевірте аналіз тут: sbf5.com/~cduan/technical/turing . Отже, може не виникати обмежень щодо кількості ліній, які може отримати машина, що призвело б до стрічки будь-якого розміру.
pepper_chico

плз ескіз докази того, що його Тюрінг завершений
взн

4

У загадках дозволені стрибки на обох лініях, але вони не можуть перетинатися. У кінцевій логотипі кролівничої послідовності в кінці гри вони дозволяють стрибати на кожному рядку, і вони можуть бути вкладені в дужку, і [()] дозволено, але ([)], здається, не дозволено.

Я буду використовувати наступні припущення:

  1. 01ϵ
  2. Машина може використовувати будь-яку фіксовану кількість ліній
  3. Стрибки вліво дозволені на будь-якій лінії (я буду використовувати один лівий стрибок на лінію)
  4. ϵ01

З урахуванням цих припущень машина Doodle Google завершується .

01ϵ01n

3(n1)+15n+1

Google Doodle Machine

ϵ01ϵ0101

GDM моделює TM таким чином:

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

Виберіть свою улюблену універсальну ТМ та реалізуйте її у вищевказаній процедурі, щоб отримати універсальний GDM.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.