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 : NN şekilde D T I M E ( f ( n ) ) = D T I M E ( g ( f ( n ) ) .g:NNf:NNDTIME(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)xgffω(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)lgf(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.