Problemas de mochila são facilmente resolvidos por programação dinâmica. A programação dinâmica é executada em tempo polinomial; é por isso que fazemos, certo?
Eu li que, na verdade, é um problema NP-completo, o que significa que provavelmente é impossível resolver o problema no problema polinomial.
Onde está meu erro?
Respostas:
Problema da mochila éNP-complete quando os números são dados como binários números. Nesse caso, a programação dinâmica levará exponencialmente muitos passos (no tamanho da entrada, isto é, o número de bits na entrada) para finalizar † .
Por outro lado, se os números na entrada forem dados em unário, a programação dinâmica funcionará em tempo polinomial (no tamanho da entrada).
Esse tipo de problema é chamado fracamenteNP-complete .
Esse tipo de algoritmo, ou seja, polinômio no maior número que faz parte da entrada, mas exponencial no comprimento da entrada é chamado pseudo-polinômio .
fonte
m
(tamanho da embalagem) en
(número de itens) é totalmente desconhecida, certo? E re "quando os números são dados como números binários" ... mas você não pode dizer isso para nada? Na maioria dos algoritmos, falamos sobre o tamanho da entrada na base 10. Por que falar sobre o binário aqui? E se você codifica em binário, octal, decimal, etc ... oactual
número de vezes que você itera pelo loop principal do algoritmo depende diretamente de ambosn
eW
.A principal confusão está na diferença entre " tamanho " e " valor ".
" Tempo polinomial " implica em polinômio o tamanho da entrada.
" Tempo pseudopolinomial " implica em polinômio o valor da entrada. Pode ser mostrado (abaixo) que isso é equivalente a ser exponencial em relação ao tamanho da entrada.
fonte
Existem, no entanto, diferentes variantes (por exemplo, 0-1 Mochila e outras ) que podem ou não ter soluções em tempo polinomial ou boas aproximações. Mas isso não é o mesmo que o problema geral da mochila. Além disso, pode haver algoritmos eficientes que funcionam para instâncias específicas (famílias de) , mas esses algoritmos levarão mais tempo em outras instâncias.
fonte