Savitch teoremi

testwiki sitesinden
22.11, 11 Haziran 2024 tarihinde imported>SpdyBot tarafından oluşturulmuş 1189 numaralı sürüm (Kaynakça: Bot: kaynak ve şablon dz. (hata bildir))
(fark) ← Önceki sürüm | Güncel sürüm (fark) | Sonraki sürüm → (fark)
Gezinti kısmına atla Arama kısmına atla

Şablon:Çoklu sorun Savitch Teoremi, uzay karmaşıklığını konu edinen ve bu hususta sonuca varan en eski teoremlerden biridir. Belirlenimsiz makinelerin belirlenimli makinelere dönüştürülmesinde, gerekli olan uzay karmaşıklığını incelemiştir ve beklenenden çok daha küçük uzay gereksinimi olduğunu ortaya koymuştur. Daha formal bir ifadeyle, f(n) uzay kullanan bir belirlenimsiz Turing makinesi (nondeterministic turing machine NTM), belirlenimli bir turing makinesine (deterministic turing machine TM) dönüştürülürken f(n)2 uzay gerektirir.[1]

Teorem

Herhangi bir f:NR+ fonksiyonu için, f(n)n gereksinimi karşılamak koşuluyla,
NSPACE(f(n))SPACE(f(n)) dir.

İspat fikri

f(n) uzay kullanan bir NTM simule ederken, akla ilk gelen yol NTM'nin tüm kollarını tek tek hesaplayarak, işlemi ilerletmektir. Bu yolu kullanırken, işlenen kola ait bilgilerin tutulması gerekmektedir. f(n) uzay kullanan bir kol, en kötü ihtimalle 2O(f(n)) adımda, hesaplanabilir. Bütün kolların sırayla hesaplanması ise, hepsinin kayıt altında tutulması manasına gelir ki bu 2O(f(n)) uzay gerektirir. Üssel bir ilişki kuran bu yöntem, Savitch teoreminin iddia ettiği uzaydan çok daha fazla uzay gerektirmiş olur.

Bunun yerine, çözümü yinelemeli bir algoritma olan, yieldability probleminin yöntemi uygulanmıştır. c1'i başlangıç, c2'yi kabul konfigurasyonu ve t'yi NTM'nin kullanabileceği maksimum adım sayısı olarak kabul edersek, yieldability probleminin çözümü, NTM'nin verilen katarı kabul edip etmediğine karar verebilir.

Yieldability problemi

Yinelemeli bir algoritma mantığıyla çözülebilecek olan yieldability probleminin çözümünde aşağıdaki algoritma kullanılır.
CANYIELD(c1,c2,t) #c1vec2 başlangıç ve kabul konfigürasyonları, t adım sayısı

  • 1. Eğer t=1 ise c1=c2 olup olmadığına veya c1'den c2'ye tek bir adımda geçip geçmediğine bakılır. Eğer ikisinden biri doğru ise kabul, ikisi de yanlış ise ret döner
  • 2. Eğer t>1 ise bütün f(n) uzay kullanan ara konfigürasyonlar(cm) için:
  • 3. CANYIELD(c1,cm,t/2) çağır
  • 4. CANYIELD(cm,c2,t/2) çağır
  • 5. Eğer 3. ve 4. adım kabulse, kabul eder
  • 6. Eğer kabul değilse ret döner

İspat

N makinesi f(n) uzayda A diline karar veren bir NTM olsun. A diline karar veren bir belirlenimli TM M makinesi oluşturalım. M makinesi, N makinesinin herhangi bir konfigürasyonunun belirli adımda çözülüp çözülmediğini test etmek için yukarıda bahsedilen CANYIELD algortimasını kullanır.
w katarı N makinesi için bir girdi katarı olsun.w katarı üzerinde c1 ve c2 konfigürasyonları için, N makinesi c1'den c2'ye t veya daha az adımda geliyorsa, CANYIELD algoritması kabul döner, değilse ret döner.
Şimdi de N makinesini simüle eden bir M makinesi oluşturalım:

M(w)

  • 1. CANYIELD(c1, c2, 2f(n)) sonucu çıktı olarak döner.


CANYIELD algoritması kendisini yinelemeli olarak çağırdığında, mevcut durumu; c1 ve c2 değerlerini tutmak zorunda kalır. Öyleyse her bir yineleme adımında, ekstra O(f(n)) uzay gereklidir. Ayrıca, her bir yineleme adımında, t adım yarıya düştüğünden, toplamda, log22f(n)=f(n) uzay gereklidir. O zaman bütün simüle için gerekli olan uzay, f(n)f(n)=f(n)2 olur. Bu da Savitch'in iddia ettiği gibi O(f(n)2) uzayda, bir O(f(n)) uzay NTM bir TM'e dönüştürülebilir.

Kaynakça

Şablon:Kaynakça

Dış bağlantılar

  1. Sipser 2006 Introduction to the Theory of Computation, Second