Google'ın Turing Doodle'ı ne tür bir otomat?


10

Alan Turing'in doğum gününü kutlayan Google, bir makine gösteren bir doodle yayınladı . Doodle nasıl bir makinedir? Turing Complete dilini ifade edebilir mi?

Klasik turing makinesinde bariz farklılıklar var: sonlu bir bant, durumun nasıl bağlanabileceği konusunda kısıtlamalar, ...

Doodle hala kullanılabilir olduğunu burada Doodle ekran görüntüsü

(Sağ üstteki ekran beklenen çıktıyı gösterir.)

Ortadaki bant, boş, sıfır veya bir tutabilecek karelere bölünmüştür. Kafa karelerden birinin üzerine yerleştirilir ve okuma ve yazma için kullanılır.

Bandın altında, makineyi başlatmak için tıklayabileceğiniz yeşil bir ok görebilirsiniz. Yanında, bazıları birbirine bağlı iki daire çizgisi vardır. Onlara "devletler" diyeceğim.

Makine başladıktan sonra, yeşil düğmenin sağındaki ilk durum yanar, sonra sağdaki sonraki durum vb. Yanar ... Her durum aşağıdaki komutlardan birini içerir:

  • blank = hiçbir şey yapma (sadece bir sonraki duruma geç)
  • 1 = kafanın mevcut pozisyonundaki banda bir tane yazın
  • 0 = kafanın geçerli konumunda kasete sıfır yazın
  • ok sola = kafayı bir adım sola kaydır
  • ok sağa = kafayı bir adım sağa hareket ettir
  • Koşul: Kafanın altındaki değer karede gösterilen değere eşitse, ikinci durum satırına inin. değilse, sağdaki bir sonraki duruma geç
  • sol atlama: (sabit) bir önceki duruma geri dönün, ancak sadece üst satırda [Aslında bunu unuttum, teşekkürler @Marzio!]

İki sıçramayı (üst üste) “örtüşmenin” bir yolu yoktur. Makine bir durum bıraktığında durur ve sağında bir sonraki durum yoksa.

(Makine durduktan sonra, bandın içeriği ekranın içeriğiyle karşılaştırılır, ancak bunun makinenin amaçlanan işlevselliğinin bir parçası olduğunu düşünmüyorum.)


9
Elbette bir Turing makinesi! en.wikipedia.org/wiki/Turing_machine Belki geçiş sistemi korkak olduğu için kafanız karışmıştı.
Huck Bennett

Ayrıca, kontrol motorunda bir önceki konuma geri dönmeye izin veren ancak sadece üst sırada bulunan bir "sol atlama operatörü" vardır; ayrıca iki sıçramayı (üst üste) “örtüşmenin” yolu yoktur. Atlama operatörü olmadan makine bir DFA'ya eşdeğerdir (kontrol motorundaki eylemler soldan sağa "yürütülür"), ancak aynı zamanda sınırlı sol atlama operatörü ile makine bir LBA'yı simüle etmek için yeterince güçlü görünmemektedir (ama yapmadım çok fazla düşünmeyin). Her durumda, bant sonlu olduğu için Turing tamamlanamaz.
Marzio De Biasi

1
@Marzio De Biasi: Bu bulmacanın atlama talimatları içerdiği konusunda haklısınız ve onlar olmadan modelin çok zayıf olduğu açıktır, çünkü bir makine sadece sabit bir süre boyunca çalışabilir. (“DFA'ya eşdeğer” ile kastettiğinizden emin değilim.) Atlama talimatlarını hangi kısıtlamaya koyduğunuz cevabı değiştirebilir. “Kaset sonlu” muhtemelen yanlış bir varsayımdır.
Tsuyoshi Ito

Google doodle'larını kullanılabilir durumda (görünüşte her zaman etkileşimli sürümlerde olmasa da).
Raphael

@TsuyoshiIto: Yani (ama belki de yanılıyorum), döngüsüz bir makine verildiğinde, onu simüle eden bir DFA oluşturabilirsiniz. Her iki yönde de keyfi sıçramalara izin verirseniz ve bu üst üste gelebilirse, makine yalnızca iki satırla (durumlar yatay olarak "düzleştirilebilir") bile hemen "tamamlanır" (sonsuz bir bant olduğu varsayılır). Üst üste binebilen sol atlayışlara (ancak yalnızca ilk satırda) ve sıraların arbiter sayısına izin verirseniz ne olacağını bilmiyorum (ancak alt satırlardaki kontrol sadece yukarı veya aşağı gidebilir). Belki de cs.stackexchange.com için güzel bir soru
Marzio De Biasi

Yanıtlar:


10

Varsayım:

  • keyfi olarak çok sayıda satır ekleyebiliriz ("durum satırları")
  • satırlar keyfi olarak uzun olabilir
  • kaset sonsuz

M4

atdoodle

... yani AT'nin Doodle'ı belki de Turing tamamlanmamış olsa bile (yalnızca ilk sırada bulunan çakışmayan yalnızca sol atlama operatörü nedeniyle), (un) karar verilebilirliğinin ince çizgisini yürüyecek kadar güçlüdür: - D

DÜZENLEME: DOODLE DÖNÜŞ TAMAMLANDI

(Yukarıdaki cevabı yukarıda bırakıyorum, çünkü bu bölümün doğru olduğundan emin değilim :-)

Tek bir sol üst üste binmeyen atlamada bile Turing Doodle'ın Turing tamamlandığını düşünüyorum! . (Basit) fikir, mevcut durumu saklamak için bandın kendisini kullanmak ve daha büyük bir alfabeyi temsil etmek için birden fazla hücre kullanmaktır.

Örneğin, 2 durumlu 8 sembol TM aşağıdaki bant gösterimi kullanılarak simüle edilebilir:

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

Turing doodle'ı şunları yapabilir:

  1. s
  2. b2,b1,b0
  3. bir sonraki sembolü yazın, kafayı sol veya sağdaki "makro hücreye" taşıyın ve bir sonraki duruma kaydedin; aşağıdaki şekilde bu işlemlere (sola / sağa hareket etme ve yazma eylemleri kullanılarak bir hücre dizisi üzerinde yapılabilen) "MW" denir;
  4. son olarak tek bir sol atlama ile kontrolü 1. adıma geri getirecek şekilde üst satıra aktarın.

Resmin tamamını burada bulabilirsiniz .

TdoodleTC

TMDM


hayır! beni dövüyorsun! Durum alanında teyp yerine keyfi bir TM nasıl yapıldığını yazıyordum. Ancak, yaklaşımınız daha iyi çünkü sadece bir sıçrama kullanıyor. Aferin! Bekleyin, makineniz nasıl girdi alıyor?
Artem Kaznatcheev

@ marzio-de-biasi Güzel iş!
pepper_chico

1
@ArtemKaznatcheev: kasete girdi alır; Açıkçası, taklit ettiğiniz TM'nin orijinal alfabe sembollerine göre kodlamanız ve durum gösterimi için boşluk bırakmanız gerekir.
Marzio De Biasi

Junior işareti alen turing. Bunu okumaktan zevk aldım
iDroid

tam olarak ikna olmadım. TM'nin daha önce giriş bandında tanımlanmamış yeni boş karelere yazdığı davayı ele aldığınızı düşünmeyin. TM bütünlüğü için gerekli, aksi takdirde sadece sonlu bir hesaplamadır.
vzn

5

Makine, içinden geçen bir “bant” (kağıt analogu) ile birlikte verilir ve her biri bir “sembol” taşıyabilecek bölümlere (“kareler” denir) ayrılır. Herhangi bir anda sadece bir kare var, diyelim ki r-th, “makinede” olan S (r) sembolünü taşıyan. Bu kareye “taranmış kare” diyebiliriz. Taranan karedeki sembol “taranan sembol” olarak adlandırılabilir. “Taranan sembol”, makinenin sadece “doğrudan farkında” olduğu tek semboldür. Bununla birlikte, makine m-konfigürasyonunu değiştirerek, daha önce “gördüğü” (tarandığı) bazı sembolleri etkin bir şekilde hatırlayabilir. Makinenin herhangi bir anda olası davranışı, m-konfigürasyonu qn ve taranan S (r) sembolü ile belirlenir. Bu qn, S (r) çifti “yapılandırma” olarak adlandırılacaktır: böylece yapılandırma, makinenin olası davranışını belirler. Taranan karenin boş olduğu bazı yapılandırmalarda (yani sembol içermez), makine taranan kareye yeni bir sembol yazar: diğer yapılandırmalarda taranan sembolü siler. Makine ayrıca taranan kareyi de değiştirebilir, ancak yalnızca bir yeri sağa veya sola kaydırarak. Bu işlemlerin herhangi birine ek olarak, m-konfigürasyonu değiştirilebilir. {232} yazılan sembollerden bazıları, hesaplanan gerçek sayının ondalık değeri olan rakam dizisini oluşturacaktır. Diğerleri “belleğe yardım etmek” için kabaca notlar. Sadece silmekle yükümlü olacak bu kaba notlar olacaktır. sembol yok) makine taranan kareye yeni bir simge yazar: diğer yapılandırmalarda taranan sembolü siler. Makine ayrıca taranan kareyi de değiştirebilir, ancak yalnızca bir yeri sağa veya sola kaydırarak. Bu işlemlerin herhangi birine ek olarak, m-konfigürasyonu değiştirilebilir. {232} yazılan sembollerden bazıları, hesaplanan gerçek sayının ondalık değeri olan rakam dizisini oluşturacaktır. Diğerleri “belleğe yardım etmek” için kabaca notlar. Sadece silmekle yükümlü olacak bu kaba notlar olacaktır. sembol yok) makine taranan kareye yeni bir simge yazar: diğer yapılandırmalarda taranan sembolü siler. Makine ayrıca taranan kareyi de değiştirebilir, ancak yalnızca bir yeri sağa veya sola kaydırarak. Bu işlemlerin herhangi birine ek olarak, m-konfigürasyonu değiştirilebilir. {232} yazılan sembollerden bazıları, hesaplanan gerçek sayının ondalık değeri olan rakam dizisini oluşturacaktır. Diğerleri “belleğe yardım etmek” için kabaca notlar. Sadece silmekle yükümlü olacak bu kaba notlar olacaktır. {232} yazılan sembollerden bazıları, hesaplanan gerçek sayının ondalık değeri olan rakam dizisini oluşturacaktır. Diğerleri “belleğe yardım etmek” için kabaca notlar. Sadece silmekle yükümlü olacak bu kaba notlar olacaktır. {232} yazılan sembollerden bazıları, hesaplanan gerçek sayının ondalık değeri olan rakam dizisini oluşturacaktır. Diğerleri “belleğe yardım etmek” için kabaca notlar. Sadece silmekle yükümlü olacak bu kaba notlar olacaktır.

Benim görüşüm, bu işlemlerin bir sayının hesaplanmasında kullanılanları içermesidir. Makinelerin teorisi okuyucuya aşina olduğunda bu tartışmanın savunulması daha kolay olacaktır. Bu nedenle bir sonraki bölümde teorinin gelişimine devam ediyorum ve “makine”, “bant”, “taranan” vb. İle kastedildiğini anlıyorum.

Bu orijinal Turing gazetesi "Entscheidungsproblem bir Uygulama ile Hesaplanabilir Sayılar Üzerinde" bir alıntıdır.

Tavsiye ettiğim makalenin modern iyi bir arkadaşı Charles Petzold tarafından Annotated Turing .

Gördüğünüz gibi Google, Turing'in açıklamasına çok benzeyen bir makineye benzemeye çalıştı.

DÜZENLEME: Google'ın TM tam alfabesinin, tavşan simgesine tıkladıktan sonra oyunun sonunda gösterilen ve sonsuz bir dizi oluşturduğu gerçeğinden yola çıkarak daha fazla satır ve sütun aldığını varsayarsak (herhangi bir satır ekleyebiliriz ), herhangi bir satırda atlar yaptı (ve ayrıca üst üste binen sol atlamalar) , bitişik satırlar arasında koşullu ve koşulsuz atlama var, sanırım Turing tamamlandı .


ama bir turing makinesini acutal olarak uyguladılar mı? bunun sonlu bir bandı var, bu yüzden kolayca fark edilebilir bir fark var. fark yaratan bir fark var mı? aslında daha zayıf bir makine uyguladılar mı?
bjelli

2
@bjelli Bunu garanti edemiyorum çünkü tasarlamadığım için, makinelerinin tüm kurallarını bilmiyorum. Ancak, oyunun finaline ulaşırsanız, sizi daha uzun bir banda götüren Bunny simgesini tıklayabilirsiniz, analizi buradan kontrol edin: sbf5.com/~cduan/technical/turing . Bu nedenle, makinenin alabileceği hat sayısı üzerinde herhangi bir kısıtlama olmayabilir, bu da sizi herhangi bir boyuttaki bir banda götürür.
pepper_chico

plz, Turing'in tamamlandığına dair bir kanıt
çizdi

4

Bulmacalarda, her iki satırda da atlamalara izin verilir, ancak üst üste binemezler. Oyunun sonundaki son tavşan dizisi doodle'ında, her hatta atlamaya izin veriyorlar ve braket yuvalanabiliyorlar ve böylece [()] izin veriliyor, ancak ([)] izin verilmiyor gibi görünüyor.

Aşağıdaki varsayımları kullanacağım:

  1. 01ϵ
  2. Makine herhangi bir sayıda sabit hat kullanabilir
  3. Herhangi bir hatta sol atlamaya izin verilir (her satıra bir sol atlama kullanacağım)
  4. ϵ01

Bu varsayımlarla Google Doodle Makinesi Tamamlanıyor .

01ϵ01n

3(n1)+15n+1

Google Doodle Makinesi

ϵ01ϵ0101

GDM, TM'yi aşağıdaki gibi simüle eder:

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

En sevdiğiniz evrensel TM'yi seçin ve evrensel bir GDM almak için yukarıdaki prosedürde uygulayın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.