Neden daha büyük giriş boyutları daha zor örnekler içeriyor?


12

Aşağıda, sonsuz bantlı bir Turing makinesi ile çalıştığımızı varsayalım.

Birine zaman karmaşıklığı kavramını ve bir örneğin giriş boyutuna göre neden ölçüldüğünü açıklarken, aşağıdaki iddiada karşılaştım:

[..] Örneğin, iki tamsayıyı 100000 bit ile çarpmak için, örneğin iki tamsayıyı 3 bit ile çarpmaktan daha fazla adıma ihtiyacınız olması doğaldır.

İddia ikna edici, ancak bir şekilde el sallıyor. Karşılaştığım tüm algoritmalarda, giriş boyutu büyüdükçe daha fazla adım gerekir. Daha kesin bir ifadeyle, zaman karmaşıklığı girdi boyutunun monoton olarak artan bir fonksiyonudur .

Zaman karmaşıklığının girdi boyutunda her zaman artan bir işlev olduğu bir durum mu? Öyleyse, neden böyle? El sallamanın ötesinde bir kanıt var mı ?


"Doğrudan orantılı", temelde doğrusal zaman anlamına gelen belirli bir matematiksel anlama sahiptir. Başka bir deyişle, girdinizde boyutu varsa, zaman doğru orantılıysa algoritma c n zamanında çalışır . Pek çok algoritmanın doğrusal zamanda, yani sıralamada çalışmadığından, kastettiğinizin bu olmadığını hayal ediyorum. Daha fazla açıklayabilir misiniz? ncn
SamM

Yani zamanda çalışan bir algoritma mı soruyorsunuz ? O ( 1 ) , giriş boyutuna bakılmaksızın algoritmanın aynı zamanda çalıştığı anlamına gelir, o ( 1 ) giriş büyüdükçe daha hızlı çalıştığı anlamına gelir. O zaman kafamın üstünde çalışan birini düşünemiyorum, ama gösterim oldukça yaygın çünkü algoritma genellikle O ( n 2 ) + o ( 1 ) zamanı gibi bir şeyde çalışacak - başka bir deyişle , O ( n 2 ) alıro(1)O(1)o(1)O(n2)+o(1)O(n2)girdi büyüdükçe küçülen başka terimler de vardır.
SamM

İyi soru. Bazı büyük c için ana faktörlerini hesaplamanın karşı örneğine ne dersiniz (bu sadece n c için artan bir fonksiyondur )? @Sam Artan bir fonksiyonun, zamanın gerçek çizgi boyunca bir noktada azalması gerektiğini söylediğini (örneğin, f ( b ) < f ( a ) , a < b ). c/ncncf(b)<f(bir),bir<b
Casey Kuball

@Darthfett Korkarım takip etmiyorum. Artan işlevlerin tümü gerçek çizgi boyunca bir noktada azalmıyor.
SamM

@ Jennifer Evet, anlıyorum, bu mantıklı. Aradığın anlamı olduğu için terimini kullanmanızı tavsiye ederim . Doğrudan orantısallığın doğrusallığı ima ettiğini yeniden vurgulamak istiyorum; Neye ulaştığınızı görüyorum, ancak soruyu ilk kez okuyanlar için kafa karıştırıcı olabilir. Ö(1)
SamM

Yanıtlar:


13

Zaman karmaşıklığının girdi boyutunda her zaman artan bir işlev olduğu bir durum mudur? Öyleyse, neden böyle?

Hayır durduktan sonra bir Turing makinesi göz önünde adımları giriş boyutu ne zaman , n , hatta ve durduktan sonra , n 2 olduğunda adımları n garip.nnn2n

Bir sorunun karmaşıklığını kastediyorsanız, cevap hala hayırdır. Öncelik testinin karmaşıklığı, çift sayılar için tek sayılardan çok daha küçüktür.


4

Zaman karmaşıklığının girdi boyutunda her zaman artan bir işlev olduğu bir durum mudur? Öyleyse, neden böyle? El sallamanın ötesinde bir kanıt var mı?

Let giriş boyutu belirtir. Girişin tamamını okumak için, bir turing makinesinin zaten n adıma ihtiyacı vardır . Yani bir algoritma o tüm giriş var okumaya olduğunu varsayalım (veya n / c bazı sabit için c ), her zaman en az doğrusal çalışma süresi ile sona erecek.nnn/cc


"Monoton olarak azalan çalışma süresi fonksiyonu" ile algoritmaları tanımlamaktaki sorun, için çalışma süresini bir şekilde tanımlamanızdır . Bunu sonlu bir değere ayarlamanız gerekir . Ancak n > 1 için sonsuz olası değerler vardır , bu nedenle sonsuz birçok değer için sabit olan bir işlev elde edersiniz.n=1n>1


Muhtemelen alt doğrusal algoritmalar , tüm girdiyi okumayan sizin için ilgi çekicidir. Bkz. Örneğin http://www.dcs.warwick.ac.uk/~czumaj/PUBLICATIONS/DRAFTS/Sublinear-time-Survey-BEATCS.pdf .


Alt doğrusal algoritmalar vardır. Örneğin, people.csail.mit.edu/ronitt/sublinear.html adresine bakın . Oldukça yeni bir alan ama çok ilginç. Buna başka karşı örnekler de var. Sıralı bir liste verilen bir elemanın bulunması RAM modelinde süresi alır . Gönderinin arkasındaki fikre katılıyorum. Girişin büyüdükçe bir algoritmanın daha az zaman alması mantıklı değildir, çünkü tüm girdiyi okumak için zamanı yoktur (daha az zaman almayı nasıl bilir?). Ama var olmadıklarını ve bir hile yapamadığını nasıl kanıtlayacağımı bilmiyorum o ( 1 ) . O(logn)o(1)
SamM

@Sam: Üzgünüm, düzenlememden önce yorumunuzu görmedim (alt doğrusal algoritmalar ekleyerek).
Christopher

tam tersi; Yorumumu eklemeden önce düzenlemenizi görmedim. Ben
silerdim

1
bir karşı örnek: gibi sabit bir işlev . Açıkladığınız, girdilerini okuması gereken işlevler için çalışır . f(x)=0
Kaveh

1

İlişkisi olduğu iyi kurulmuş doğal sayılar hiçbir sonsuz düşen dizileri vardır, yani. (En kötü durum) çalışma zamanı fonksiyonları naturals eşlemek için, bütün çalışma zamanı işlevleri dolayısıyla sahip olmak Q ( 1 ) olmayan azalan (limiti) tüm çalışma zamanı fonksiyonları olduğunu.(N,)Ω(1)

Bununla birlikte, ortalama çalışma süreleri, örneğin Mergesort gibi salınımlı bileşenler içerebilir .


Bu cevabın soru ile nasıl ilişkili olduğunu anlamıyorum.
A.Schulz

@ A.Schulz "Zaman karmaşıklığının girdi boyutunda her zaman artan bir işlev olması durumudur?" Ana sorusunun bir kanıtıdır, "" azalan "olarak" artan "olarak okunur, yani zorunlu olarak artmaz.
Raphael

1

@ A.Schulz: Yine de, yorumum Jennifer'ın ilgilendiği şey gibi görünüyor .
Raphael
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.