“K-tape” Turing Makinesinin bantları “1-tape” Turing Makinesinin tek bandına nasıl eşlenir


11

Okuduğum Sipser ve ben zor süreç beni k kasetleriyle Turing makineleri k verirseniz, sadece bir bantla eşdeğer Turing makinesi tükürmek ki gibi anlamaya buluyorum. Bir örnek güzel olurdu. Aslında, bantları olan TM'den 1 kaseti olana nasıl geçileceğini gösteren bir çalışma örneği gerçekten aradığım şey. Şimdiye kadar bir tane bulamadım. Ben de delil aramıyorum.k


"Eşdeğer bir makine" ile ne demek istiyorsun? Girdi nedir ve çıktı nedir? (Belki de bantlı bir Turing makinesi mi demek k
istediniz

Evet. K bantlı bir tornalama makinesi.
user678392

Yanıtlar:


17

Utanmadan kopyalanmış bir cevap kendim :

Çok bantlı Turing Makinesi çoğunlukla tek bantlı bir makineyle aynıdır, ancak burada , bant sayısıdır. Yani her durumda, geçiş fonksiyonu her kasetin içeriğini okur, yeni bir duruma geçer, (belki) her kasete bir şeyler yazar ve her kafayı hareket ettirir - tıpkı okumak, yazmak için daha fazla şeyimiz olması dışında, normal bir TM gibi ve taşıyın. kQ×ΓkQ×Γk×{L,R}kk

Sorunuzun önerdiği gibi, böyle bir makine tek bantlı bir TM ile simüle edilebilir . Daha da iyisi, sadece kuadratik yavaşlama ile yapılabilir (bu yüzden polinom olarak kapalı sınıflar için, tek bantlı makineler hakkında konuşmak yeterlidir).

Bunun kanıtı biraz dahil ve basit bir web aramasıyla kolayca elde edilebilir, bu yüzden sadece bantlarının anahtar eşlemesini tek bir banda çizeceğim.k

Temel fikir oldukça basittir; sadece birkaç yeni sembol ekliyoruz ve her bandı takip ediyor ve birbiri ardına başlıyoruz. Hesaplamanın her adımında, bantlardan herhangi birinin yalnızca sınırlı bir miktarını ziyaret edebiliriz, bu yüzden sadece her bant hakkında bu kadar çok bilgiyi depolamamız gerekir. Böylece her biri için yeni bir sembol eklemek için (her bant için) baş hesaplamasında herhangi bir noktada olduğu gösterecektir. Ayrıca "sanal" kasetlerin başlangıcını ve bitişini gösterecek bir to ayırıcı karakteri de sunuyoruz . Verilenγ _ Γ # Γ ω = ω 1ω n # ω 1 _ω n # _ # _ # # _ # k  bölümler, bant başına bir taneγΓγ_Γ#Γω=ω1ωn(çok bantlı makinede bile tüm girdilerin ilk bantta olduğunu varsayalım - neden iyi bir egzersiz olduğunu kanıtlıyoruz) çok bantlı makinede, tek bantlı makinemizin

#ω1_ωn#_#_##_#k sections, one per tape

Daha sonra çoklu bant makinesinin hangi durumda olduğunu ve kafaların neye baktığını kodlamak için tek bant makinesinin durumunu kullanırız. Tek bantlı makinenin geçiş fonksiyonu, çok bantlı geçiş fonksiyonunun çok aşamalı bir simülasyonudur, burada farklı bant hareketlerini uygun şekilde gerçekleştiririz, tek bir bandı sırayla her bölüme taşırız. Kalan tek kırışıklıklar, bir bölümdeki alanımız bittiğinde her şeyi değiştiriyor (ancak böyle bir alt makine basit bir egzersizdir) - her bölümün boyutunu asla azaltmıyoruz.k

(Umarım) basit bir örnek:

Diyelim ki giriş alfabesi sadece , bant alfabesi ve giriş . Makinenin ilk bant durumu şöyle görünür: " ", okuma / yazma kafasının her bantta nerede olduğunu belirtmektir.Σ={0,1}Γ={0,1,}ω=10101

Tape 1:10101Tape 2:Tape 3:

Birleştirilmiş tek bant makinesini oluşturmak için bant alfabesine yeni semboller eklememiz gerekir:

  1. Simüle edilmiş bantların başlangıcını ve sonunu belirten bir sembole ihtiyacımız var
  2. her sembol için ayrıca simüle edilmiş bant kafasının simüle edilmiş banttaki karakterde olduğunu gösteren bir sürüme ihtiyacımız var.Γ

Tek bantlı makine için yeni bant alfabemiz . Kasetin ilk durumu: Makinenin kafası ( ) ile 3 simüle edilmiş bandın simüle edilmiş kafaları (altı çizili karakterler) arasındaki farka dikkat edin . Tabii ki bant her zamanki gibi sonsuz miktarda sağa doğru uzanır. Ayrıca teyp kafasını ilk dizgideki ilk karaktere taşıyarak hafifçe aldattım; kesinlikle en soldaki hücrede başlamalıdır, ancak bu önemsiz bir tekniktir.# 1 _ 0101 # _ # _ # Γ={0,1,,0_,1_,_,#}

#1_0101#_#_#

Bu nedenle , orijinal makinenin 3 kasetine karşılık gelen üç işaretli bölümümüz var ( işaretleri arasında ).#

Şimdi makine için bir eylem yapalım. Orijinal makinenin ilk kasetten okuduğunu varsayalım, eğer görürse , ikinci kasette yazar , görürse üçüncü kasette yazar . Her okuma veya yazmada, kafa sağa hareket eder.1101

Bu nedenle, ilk "adım" dan sonra (belki de gerçek makinede birkaç durum ve geçiş gerektirir), bantlar ikinci bantta olmalıdır ve ilk ve ikinci kafalar bir adım sağa hareket etmiş olacaktır:1

Tape 1:10101Tape 2:1Tape 3:

İkincisi, ilk kaset okur , bu yüzden bunun yerine üçüncü kasete yazıyoruz:0

Tape 1:10101Tape 2:1Tape 3:1

Tek bantlı makine bunu alt çizgiyi hareket ettirerek ( daki karakterlerin alternatif sürümünü kullanarak ve uygun simüle edilmiş banda yazarak simüle eder. Böylece ilk adımdan sonra, birleştirilmiş bant şöyle görünür:Γ

#10_101#1_#_#

İkinci adımdan sonra:

#101_01#1_#1_#

Tabii ki bu sürecin üst düzey bir görünümü - devletlerin nasıl inşa edileceğini veya her simüle edilmiş bandın nasıl uzadığını açıklamaya çalışmadım (bunun için, sonra her şeyi sağa doğru bir adım öteye taşır ve yeni bir boşlukta sıkar - yani yalnızca ihtiyaç duyulduğunda simüle edilmiş bant hücrelerini ekler).


2
Alternatif olarak, ayrı bantları aynı alana yan yana yazmak için ayrı " parçalar " kullanın. Ancak bu yeni bir alfabenin kullanılmasını içerir.
Hendrik Jan

2
@ user678392 İnşaatı ayrıntılı olarak incelemek ve hepsini buraya yazmak en az birkaç saat sürecektir. Hangi kısmı anlamadığınızı bile açıklamayacaksanız, neden bu kadar çok kişi sizin adınıza işe koyulsun? Ya biri yaparsa? Sadece "Anlamıyorum. Başka biri yapıyor" mu diyeceksiniz?
David Richerby

1
@ user678392 Teşekkürler. Ve sadece açıklığa kavuşturmak için, zorluk çektiğiniz İngilizce mi (yani, yeniden ifade etme yardımcı olabilir mi) veya açıklamada daha fazla ayrıntıya mı ihtiyacınız var?
David Richerby

1
@ user678392, dönüşümün ilk adımlarının üst düzey görünümüne ve teyplere pratik çıktıya bir örnek ekledim. Yeni devlet setini nasıl inşa edeceğimi tartışmaktan kaçındım, çünkü bu çok karmaşık ve Sipser veya benzeri şeylerden daha iyi bir açıklama alamayacaksınız - doğal olarak fiddly ve matematiksel.
Luke Mathieson

1
@RomaKarageorgievich Görünüşe göre son 5 yıl içinde daha açık kanıtlar kayboldu (internete güvenmeyin: D). Bulduğum en açık burada (uyarı, .doc dosyası!). Bu kitaba erişiminiz varsa Martin'in "Dillere Giriş ve Hesaplama Teorisi" ndeki kanıt oldukça iyidir (4. Baskıda s. 244). Sipser'in "Hesaplama Teorisine Giriş" İspatı yeterlidir (3. Baskıda s. 177).
Luke Mathieson
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.