knapsack problem можно решить в O(n²V)
, где V = max(v[i], i = 1,..,n)
обозначает максимальное значение любого элемента. Если мы «сменим единицы» параметром округления θ = ε/n * V
и рассмотрим измененные значения y[i] = ceil(v[i]/θ)
, мы получим время работы O(n³/ε)
для любого фиксированногоε > 0
.Полиномиальное приближение времени на рюкзак
В книге Алгоритм проектирования по Джон Клейнбергом, они заявляют:
Зависимость от требуемой точности
ε
не многочленом, так как время работы включает в себя1/ε
, а неlog 1/ε
.
Прежде всего, вся идея термина псевдо-полином не совсем ясно для меня, несмотря на то, что я читал несколько статей о нем. Однако, помимо этого пробела в знаниях, я в основном спрашиваю себя, почему зависимость от ε
будет полиномиальной, если время работы будет включать log 1/ε
вместо 1/ε
.
'log 1/ε' - это приблизительно количество бит, необходимых для хранения' 1/ε' в двоичном формате. Это абсолютно ясно для меня, но почему это проблема? Не могли бы мы спорить так же о любом 'n' в' O (n^k) '? Даже когда 'n' является просто счетчиком циклов, мы должны сохранить это значение (в общем). Итак, что отличает 'n' от' 1/ε'? [Более того, почему мы рассматриваем унарное представление любого параметра?] – 0xbadf00d
@ 0xbadf00d Если 'n' - это, скажем, количество элементов в списке, то сами элементы списка занимают линейное число бит, что делает его сортировкой нерелевантного представления 'n'. Если 'n' - просто число (например, для факторинга), то оно обрабатывается так же, как' 1/ε'. –
@ 0xbadf00d Причиной думать об унарных представлениях является то, что они формально определяются псевдополиномиальным временем. Люди часто спрашивают о вариантах рюкзака здесь на переполнении стека; одним из комментариев или ответов часто является «это NP-жесткий, вам не повезло». Однако, поскольку рюкзак только слабо NP-жесткий, существует алгоритм, который хорошо работает на малых целых входах, что очень полезно на практике. [3-partition] (http://en.wikipedia.org/wiki/3-partition_problem), с другой стороны, легче для небольших целых входов. –