Główne zamieszanie polega na różnicy między „ rozmiarem ” a „ wartością ”.
„ Czas wielomianowy ” oznacza wielomian wrt wielkości wejściowej.
„ Czas pseudopolinomalny ” oznacza, że wielomian wrt wartości wejściowej. Można pokazać (poniżej), że jest to równoważne z wykładniczym względem wielkości danych wejściowych.
Innymi słowy: Niech reprezentuje rozmiar danych wejściowych, a reprezentuje wartość danych wejściowych.NsizeNval
Czas wielomianu: dlaO(Nxsize)x∈N
Pseudopol. Czas: dlaO(Nxval)x∈N
Teraz problem plecakowy ma rozwiązanie pseudopolomiczne, a nie wielomianowe , ponieważ rozwiązanie programowania dynamicznego daje czas działania zależny od wartości - tj. , gdzie jest wartością reprezentującą maksymalną pojemność.O(nW)W
Teraz wartość można przekonwertować na rozmiar , reprezentując ją w liczbie cyfr potrzebnych do jej przedstawienia. mówi, ile cyfr potrzeba do reprezentowania przy użyciu podstawy . Można to rozwiązać, aby dał:Nsize=Logb(Nval)NvalbNval
Nval=bNsize
Podłączenie tego do definicji czasu pseudopolomicznego pokazuje, że jest to wykładniczy wr_ :Nsize
Pseudopol. Czas: dlaO(bxNsize)b,x∈N