Основна плутанина полягає в різниці між " розміром " і " значенням ".
" Поліномний час " передбачає поліном wrt розмір вводу.
" Псевдополіномічний час " має на увазі поліноміальне wrt значення вводу. Можна показати (нижче), що це еквівалентно розміру вхідного wrt .
Іншими словами: Нехай представляє розмір вхідного сигналу, а являє собою значення вводу.NsizeNval
Поліном час: дляO(Nxsize)x∈N
Псевдополія. Час: дляO(Nxval)x∈N
Тепер проблема з рюкзаком має рішення псевдополіномічного, а не поліноміального , оскільки рішення динамічного програмування дає час роботи залежно від значення - тобто , де - значення, що представляє максимальну потужність.O(nW)W
Тепер значення можна перетворити у розмір , представивши його у вигляді # цифр, необхідних для його представлення. вказує, скільки цифр потрібно для представлення за допомогою бази . Це може бути вирішено для щоб отримати:Nsize=Logb(Nval)NvalbNval
Nval=bNsize
Підключення цього до визначення псевдополіномічного часу показує, що це експоненціальна wrt :Nsize
Псевдополія. Час: дляb , x ∈ NO(bxNsize)b,x∈N