algoritmaları hangi koşullarda


16

Her ϵ>0 , O ( n a + ϵ ) zamanında L diline karar veren bir Turing makinesi Mϵ olduğunu varsayın . Karar tek algoritma var L zamanlı O ( n, bir + o ( 1 ) ) ? (Burada, o ( 1 ) terimi n , giriş uzunluğu cinsinden ölçülür .)LO(na+ϵ)LO(na+o(1))o(1)n

Algoritmalar eğer fark eder Mϵ açısından, hesaplanabilir veya verimli hesaplanabilir olan ϵ ?

Motivasyon: birçok kanıtta, O(na+ϵ) zaman algoritmalarını sınırlayıcı algoritmadan ( n a + o ( 1 ) ) oluşturmak daha kolaydır O(na+o(1)). Özellikle, O ( n a + o ( 1 ) ) sınırına geçmek için cinsinden sabit terimi bağlamanızO(na+ϵ) gerekir . Doğrudan sınıra geçmek için çağırabileceğiniz genel bir sonuç varsa iyi olur.O(na+o(1))

Yanıtlar:


10

Soru, bir dizi (yapıcı) nesnenin sınırının yapıcı varlığı ile ilgili sorulara benzer. Genellikle bu nesneleri (burada Mϵ ) eşit şekilde verimli bir şekilde inşa edebiliyorsanız, sınırın varlığını yapıcı bir şekilde gösterebilirsiniz.

Örneğin, olduğunu varsayalım bir TM çalıştırır M | k | - x üzerinde 1N(k,x)M|k|−1x ve çalışma süresi olan burada sınırları örneğin, aynı zamanda böyle bir şey tekdüze ( O ( 2 k . N bir + | k | - 1 )O(na+|k|−1)+O(|k|)O(2k.na+|k|−1)işe yaramaz). Daha sonra , O ( n a + o ( 1 ) ) zamanında çalışan N ( x , x ) makinesini elde etmek için bu tek biçimli simülatörü fonksiyonuyla birleştirebiliriz .(k,x)↦xN(x,x)O(na+o(1))

Not: , asimptotik notasyonların iç içe geçmesi nedeniyle biraz belirsiz, bunu n a + o ( 1 ) olarak yorumluyorum . Ayrıca ihtiyacımız bir değil çok küçük, mesela en azından olması 1 .O(na+o(1))na+o(1)a1


8

Levin'in evrensel arama algoritmasını kullanabilirsiniz. Her nasılsa C k n a + 1 / k zamanında çalışan bir dizi L karar veren algoritmasını sıralayabileceğinizi varsayalım . Levin'in algoritması T zamanında çalışır (AkLCkna+1/k her için k , D K bağlı bir sabittir Cı k . Böylece her için k , τ ( n ) ≜T(n)≤Dkna+1/kkDkCkk Verilenε>0, seçimk=⌈2/ε⌉ve letN=⌈D 2 / ε k ⌉. Sonran≥N,τ(n)≤ϵ için. Bu nedenleτ(n)→0ve Levin'in algoritmasınınna+τ(n)=na+

τ(n)≜log⁡T(n)log⁡n−a≤log⁡Dk+(a+1/k)log⁡nlog⁡n−a=log⁡Dklog⁡n+1k.
ϵ>0k=⌈2/ϵ⌉N=⌈Dk2/ϵ⌉n≥Nτ(n)≤ϵτ(n)→0 .na+τ(n)=na+o(1)

Levin'in algoritmasını anlarsam, bu sadece arama algoritmaları için geçerlidir. Bu algoritma f işlevini tersine çevirmek için çalışırf , burada , O ( n o ( a ) ) zamanında hesaplanabilir . fO(no(a))
— David Harris

Levin'in algoritmasının kendisini kullanmanızı önermiyorum, sadece tüm algoritmaları dovetailing kullanarak paralel olarak çalıştırma fikri, böylece her biri sadece çarpımsal bir faktör tarafından yavaşlatılacak şekilde. Ak
— Yuval Filmus

@ Yuval, tüm algoritmaları kırdığınızda hangi cevabı kabul edeceğinize nasıl karar veriyorsunuz? Bir arama probleminde, her varsayılan çıktıyı test edebilirsiniz, ancak genel olarak bu mümkün değildir.
— David Harris

Görünen ilk cevabı kabul ediyorum. algoritmalarının L'ye doğru karar verdikleri belirtilmiştir . AkL
— Yuval Filmus
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.