Tek bantlı Turing makinesinde giriş uzunluğunu hesaplama


13

Bu soru ile bağlantılı olarak merak ettim: Tek bantlı tek kafalı bir Turing makinesinin girdisinin uzunluğunu hesaplaması için zaman karmaşıklığı nedir? Spesifik olarak, bant alfabesinin , girdinin boşluklarla çevrili bir dize olduğunu , makinenin en soldaki giriş sembolünde başladığını ve giriş uzunluğunun ikili temsilini veren (yine boşluklarla çevrili bir dizenin en solundaki sembolle sonlandırın . Bu aynı zamanda bir sayıyı birliğinden ikiliye dönüştürme problemi olarak da düşünülebilir.{0,1,b}(0+1)(0+1)

Bunu iki bantlı bir makinede veya iki kafalı bir makinede doğrusal zamanda çözmek kolaydır (bir sayacı art arda artırmak için diğer kafayı kullanırken girişi bir kafa ile tarayın; artış sabit bir amortismanlı zaman işlemidir). Ama bulabildiğim tek kafalı çözümler sadece (örneğin bir sayacı art arda arttırır ve daha sonra bant boyunca bir konum kaydırır). Eşleşen bir alt sınır var mı?O(nlogn)

Bazı aramaları denedim, ancak "bir kafa" ve "giriş uzunluğu" gibi ifadeler bu soruna ilişkin bilinen sonuçları literatürde aramayı zorlaştıracak kadar yaygındır.


İlginç .. Bu göründüğünden daha az açıktır. Bunun için daha düşük bir sınır ile habersiz TM simülasyonu için bir alt sınır arasında bir ilişki olup olmadığını merak ediyorum. (Bu sorunu çözen herhangi bir TM, tanım gereği, kayıtsız olacaktır (veya gereksiz kodlara sahip olacaktır).)
Daniel Apon

Yanıtlar:


11

O zamanında hesaplanamaz .o(nlgn)

, kaset üzerinde ikili olarak yazılmış boyutunda durma dizesi veren bir makine olsun .Mxx

Giriş boyutunun iki güç olup olmadığını kontrol etmek için basit (sıfır boşluklu doğrusal zaman) bir DFA ekleyebiliriz : sadece ilk bitin 1 ve geri kalanının sıfır olup olmadığını kontrol edin.M

Diyelim ki zamanı . Sonra zamanında girdi büyüklüğünün iki güç olduğuna karar verebiliriz . Başka bir deyişle, aşağıdaki dil içinde karar verilebilir . Bu izler o düzenli olmalıdır. Ancak dilin düzenli olup olmadığını kontrol etmek kolaydır. Böylece zamanında çalışamaz .Mo(nlgn)o(nlgn)DTime(nlgn)

L={0ik i=2k}
DTime(o(nlgn))=RegLMo(nlgn)

Burada bir şey özledim: , tek bantlı bir makinede hesaplamalar yapmayı düşünüyor musunuz? Genellikle karmaşıklık sınıflarını tanımlamak için iki bantlı makineler kullanılır. Çok ilgili bir soru, yukarıdaki sonuç nereden geliyor? DTime(o(nlgn))=Reg
Bruno

@ Bruno, evet, tek bantlı Turing makinelerinden bahsediyorum. Karmaşıklık sınıflarını tanımlayan standardın ne olduğundan emin değilim, çeşitli kitaplar farklı modeller kullanıyor. Karmaşıklık teorisinin orijinal kağıtları Bence ama o değişti görünüyor çoklu bant olanları kullanıyorlardı, bkz bu . İçin siz "Klasik Özyineleme Kuramı" vol bulabilirsiniz. II ve "Teorik Bilgisayar Bilimleri El Kitabı". DTime(nlgn)=Reg
Kaveh

İşaretçiler için teşekkürler, "Klasik Özyineleme Teorisi" cilt. II. Değiştiği için benim için çok açık değil. Örneğin, Sipser'in kitabı zaman karmaşıklığı sınıflarını tanımlamak için tek bantlı TM'ler kullanır, ancak Hopcroft-Ullman'ın kitabı ve en son Arora-Barak'ın ve Goldreich'in çok bantlı TM'leri kullanır.
Bruno

1
@Bruno, ben daha yaygın tanımının ne düşünüyorsunuz DTime daha karmaşıktır. Örneğin, "zaman hiyerarşisi teoreminin sıkı olduğu bilinmemektedir" genel olarak belirtilen iddia, tek bantlı makineler için geçerlidir, iki bantlı makineler için 1982'den beri sıkı olduğu bilinmektedir.
Kaveh

Aslında, zaman hiyerarşisi teoremine ilişkin bu düşünce sadece model olarak tek bantlı TM (örn. Sipser) kullanan ders kitaplarında mevcuttur. Ancak diğerlerinde, sızdırmazlık konusunda hiçbir şey yoktur (Arora-Barak, Goldreich, vb ...). Tabii ki, tüm bunlar çok önemli değil, ama bana öyle geliyor ki genellikle tek bantlı kullanılarak tanımlanıyor doğru değil: bazı yazarlar tek bantlı TM'ler kullanıyor, bazıları ise çoklu bant kullanıyor TM'ler ve birçok yazar bu konuda belirsiz ... Başka bir deyişle, bu soru üzerinde bir fikir birliği var gibi görünmüyor. DTime
Bruno
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.