Her hesaplanabilir fonksiyon


19

Her hesaplanabilir bir fonksiyon için, iyi çözülebilir bir sorun vardır halen mevcut İçeride ISTV melerin RWMAIWi'nin ( f ( n ) ) zaman ya da hesaplanabilir bir işlevi yoktur f bu şekilde çözülebilir her sorunun O ( f ( n ) ) , aynı zamanda olabilir çözülmesi o ( f ( n ) ) zaman?fΘ(f(n))fO(f(n))o(f(n))

Bu soru dün aklıma geldi. Bunu bir süredir düşünüyorum ama anlayamıyorum. Bunun için Google'ı nasıl yapacağımı gerçekten bilmiyorum, bu yüzden burada soruyorum. İşte ben geldim:

Her hesaplanabilir fonksiyon için: İlk düşüncem cevabı evet idi sorunu "Çıktı f ( n ) noktalar" (veya bir dize oluşturmak f ( n ) nokta veya her neyse) besbelli içinde çözülemez o ( f ( n ) ) zaman. Bu yüzden sadece O ( f ( n ) ) zamanda çözülebildiğini göstermemiz gerekiyor . Sorun değil, sadece aşağıdaki sahte kodu alın:ff(n)f(n)o(f(n))O(f(n))

x = f(n)
for i from 1 to x:
    output(".")

Açıkçası bu algoritma belirtilen sorunu çözüyor. Ve çalışma zamanı açıkça , bu yüzden problem çözüldü. Kolaydı, değil mi? Hayır hariç, ilk satırın maliyetini göz önünde bulundurmanız gerekmiyor. Yukarıdaki algoritmanın çalışma zamanı içinde sadece İçeride ISTV melerin RWMAIWi'nin ( f ( n ) ) hesaplamak için gereken zaman ise f ( n ) olan O ( f ( n ) ) . Açıkçası bu tüm fonksiyonlar 1 için doğru değildir .Θ(f(n))Θ(f(n))f(n)O(f(n))

Yani bu yaklaşım beni hiçbir yere götürmedi. Bunu doğru bir şekilde anlayabilmem için beni doğru yönde işaret eden herkes için minnettar olurum.


1 n  , aksi takdirde n asal 2 ise  fonksiyonunu düşünün . Açıkça O ( s ( n ) ) = O ( 1 ) , ancak bir algoritma bu hesaplar vardır s olarak O ( 1 ) zaman.p(n)={1if n is prime2otherwiseO(p(n))=O(1)pO(1)


1
Ben ilk paragraflarda da iki ifadeler mutlaka birbirlerine en contrapositives sanmıyorum: Bir varsa neyi böyle çözülebilecek bazı problem olduğunu O ( f ( n ) ) değil, içinde o ( f ( n ) ) veya Θ ( f ( n ) ) sürede? fO(f(n))o(f(n))Θ(f(n))
— Alex ten Brink

@Alex Bunu dikkate almadığım iyi bir nokta.
— sepp2k

Yanıtlar:


13

Tarafından boşluk teoremi (formülasyonu kullanılarak burada hesaplanabilir bir sınırsız işlev için, 'boşluk' için arama) , bazı artan (aslında keyfi olarak büyük) hesaplanabilir işlevi vardır f : N → N şekilde D T I M E ( f ( n ) ) = D T I M E ( g ( f ( n ) ) .g:N→Nf:N→NDTIME(f(n))=DTIME(g(f(n))

Bu tür bir var olduğu da sorunun cevabının (aslında sonsuz sayıda): Her hesaplanabilir fonksiyon için g öyle ki g = o ( n ) , bazı artan işlevi vardır f tüm sorunlar çözülebilir şekilde O ( f ( n ) ) süresi de çözülebilir olan o ( g ( f ( n ) ) = o ( f ( n ) ), zaman. Not ffgg=o(n)fO(f(n))O(g(f(n))=o(f(n))f zorunlu olarak zamanla yapılandırılabilir değildir - zamanla yapılandırılabilir durum için @RanG'nin cevabına bakınız.

(Gerektirir Vikipedi formülasyonunda ), sonra g ∘ f , sizin örnek olur ve f ihtiyaçları olduğu ω ( n ) Eğer tersi gitmek böylece (- 'sorunlar çözülebilir içinde Ç ( gr ( f ( n ) ) de çözülebilir O ( g ( n ) ) 'ilginç kısımdır).g(x)≥xg∘ffω(n)O(g(f(n))O(g(n))

Belirtmemektedir Wikipedia makalesi (artmaktadır ve aslında teneke keyfi büyük olması f ( n ) ≥ g ( n ) mesela). Boşluk teoremini ispatlar makale yapar söz ve bu ispat (bkz burada örneğin).ff(n)≥g(n)


olabilir olmak O ( n ) ? G ( x ) ≥ x olması gerekli değil mi? İfadeniz hala doğru, ancak kanıt başka yöne gidiyor, değil mi? go(n)g(x)≥x
— Ran G.

@RanG. Her iki formülasyon için bir kanıt vermek için güncellendi (formülasyonu gazetede kullandım) :)
— Alex ten Brink

"g = o (n) olacak şekilde her hesaplanabilir fonksiyon g için, O (f (n)) zamanında çözülebilen tüm problemlerin O (g (f (n)) = o ( f (n)) time "Ya o g için varolan tüm fs O (1) 'de ise? O zaman O (g (f (n)) hala O (1) ve dolayısıyla o (1) değilse.
— sepp2k

@ sepp2k: iyi yakalama, bu gerçekten formüle edilen bir konudur. Cevabımı güncelledim.
— Alex ten Brink

12

Her hesaplanabilir bir fonksiyon için, iyi çözülebilir bir sorun vardır halen mevcut İçeride ISTV melerin RWMAIWi'nin ( f ( n ) ) zaman ya da hesaplanabilir bir işlevi yoktur f bu şekilde çözülebilir her sorunun O ( f ( n ) ) , aynı zamanda olabilir çözülmesi o ( f ( n ) ) zaman?fΘ(f(n))fO(f(n))o(f(n))

Eğer zamana bağlı bir fonksiyonsa , Zaman Hiyerarşisi Teoremi O ( f ( n ) ) zamanı gerektiren ve o ( f ( n ) zamanıyla çözülemeyen problemler olduğunu söylerfO(f(n)). Özellikle, DTIME(o(f(n))o(f(n)log⁡(f(n)))

DTIME(o(f(n)log⁡(f(n))))⊊DTIME(f(n))

Bu sadece karar sorunlarını göz önünde bulundurur ve çıktıyı üretmek için gereken süreyi dikkate almaz.


Zamana bağlı olmayan fonksiyonları ele alırsak sorumun cevabının "hayır" olduğunu varsaymakta haklı mıyım? Veya ilgili olarak: işlevi zamanla yapılandırılamazsa ve bu nedenle f ( n ) adımlarından sonra duran Turing makinesi yoksa, Θ ( f ( n ) ) adımlarından sonra duran Turing makinesi olmadığı anlamına mı gelir? Çünkü bundan ötürü, sorumun cevabının hayır olmaması önemsiz bir şekilde takip edecektir. ff(n)Θ(f(n))
— sepp2k

Değişir. Varsayalım zaman inşa edilebilir değildir ancak başka bir işlev tarafından sınırlanan edilebilir g zaman inşa edilebilir olduğunu. f = Θ ( g ) ve hala O ( f ) zamanı ile çözülebilen fakat bundan çok daha az olmayan problemler vardır . fgf=Θ(g)O(f)
— Ran G.8

ve birden fazla teyp TM kullanarak sonucu ilao(f(n)) arasındadır. o(f(n)lg⁡f(n))o(f(n))
— Kaveh

3

Daha derin bir kavrayış sağladığı umuduyla bir çerçeve çerçeve sağlamaya çalışacağım.

Bu temel bir şeye ulaştığınızda, her yerde beklenmedik tuzaklar var. Örneğin: bir problemi “çözmek” nedir? Bilgisayar bilimlerinde genellikle bir girdi verilen ve yalnızca Doğru veya Yanlış çıktısını almamız gereken "karar" varyantını düşünürüz. "İşlev" sorununa odaklanıyorsunuz.

O (f (n)) notasyonunu bir sorunu çözmek için ne kadar "iş" gerektiğini yakalamaya çalıştığını düşünüyorsanız, hesaplamayı çıktı biçimlendirmesinden temiz bir şekilde ayırdığınız için işlev yerine (çıktı gerekli) karar kullanmak daha iyi görünür. .

Bunun sorunuzu cevaplayacağını sanmıyorum, ancak bununla ilgilenebilirsiniz: http://en.wikipedia.org/wiki/Time_hierarchy_theorem

Ayrıca, hızlanma teoremine de dikkat edin .

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.