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 sabittirk . Böylece her için k , τ ( n ) T(n)Dkna+1/kkDkCkk Verilenε>0, seçimk=2/εve letN=D 2 / ε k. SonranN,τ(n)ϵ için. Bu nedenleτ(n)0ve Levin'in algoritmasınınna+τ(n)=na+

τ(n)logT(n)lognalogDk+(a+1/k)lognlogna=logDklogn+1k.
ϵ>0k=2/ϵN=Dk2/ϵnNτ(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.