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 × Γk→ Q × Γ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:Tape 2:Tape 3:1∧0101⊔⊔⊔…⊔∧⊔⊔⊔⊔⊔…⊔∧⊔⊔⊔⊔⊔…
∧
Birleştirilmiş tek bant makinesini oluşturmak için bant alfabesine yeni semboller eklememiz gerekir:
- Simüle edilmiş bantların başlangıcını ve sonunu belirten bir sembole ihtiyacımız var
- 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:Tape 2:Tape 3:10∧101⊔⊔⊔…1⊔∧⊔⊔⊔⊔…⊔∧⊔⊔⊔⊔⊔…
İkincisi, ilk kaset okur , bu yüzden bunun yerine üçüncü kasete yazıyoruz:0
Tape 1:Tape 2:Tape 3:101∧01⊔⊔⊔…1⊔∧⊔⊔⊔⊔…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).