Completude fraca e forte

7

O que um algoritmo pseudo-polinomial nos diz sobre o problema que resolve? Não vejo como o tempo de execução melhora se o algoritmo for exponencial no comprimento da entrada e polinomial no valor da entrada; Então, como explicar essa mudança de exponencial para polinomial?

saadtaame
fonte
O que você quer dizer com "melhora"? Em relação a quê?
Raphael
@Raphael De onde vem a parte polinomial?
Saadtaame

Respostas:

6

Como afirmado em " Computadores e Intratabilidade: um Guia para a Teoria da Completude NP " Um algoritmo de tempo pseudo-polinomial exibirá ' comportamento exponencial ' somente quando confrontado com instâncias que contêm números ' exponencialmente grandes ', o que pode ser raro para as aplicações em que estamos interessados. Nesse caso, esse tipo de algoritmo pode servir a nossos propósitos quase tão bem quanto um algoritmo de tempo polinomial. ”

Você pode considerar a mochila como um bom exemplo de problema de Np completo fraco . Nesse caso, a complexidade da solução de programação dinâmica éO(nW)o que é bom na maioria dos casos práticos .

Sabe-se que não há algoritmo de tempo pseudo-polinomial para problemas de Strong NP-Complete (como Steiner Tree ), a menos que P = NP.

Reza
fonte
Isso significa que os algoritmos pseudopolinomiais funcionam para problemas que recebem entradas numéricas (como está implícito na sua resposta)?
saadtaame 14/02
@ saadtaame: Sim, o ponto principal é que são problemas numéricos nos quais o tempo de execução está relacionado aos dados de entrada numéricos.
Reza
1

Esta resposta refere-se a algoritmos quase- polinomiais, e não a algoritmos pseudopolinomiais .

Um algoritmo quasipolinomial nos diz que o problema provavelmente não é difícil para o NP. A (certa) Hipótese de Tempo Exponencial (ETH) comumente conhecida afirma que a 3SATn variáveis ​​requer tempo 2Ω(n). Como o 3SAT está no NP, o ETH implica que qualquer problema de NP completo requer tempo2nΩ(1 1), que cresce mais rápido do que o quase-polinomial (supondo que o último seja 2registroO(1 1)n)

Yuval Filmus
fonte
Mas existem muitos problemas difíceis de NP com algoritmos pseudo-polinomiais.
Raphael
Você pode dar um exemplo?
Yuval Filmus
11
pseudo-polinomial não está assumindo: 2registroO(1 1)ntem uma definição muito clara. Também não vi essa suposição em nenhum lugar, você forneceria alguma referência? Raphael também está certo: para todos os problemas que pertencem a fracamente np-compelete (significa que eles também são np-hard), existe um algoritmo de tempo pseudo-polinomial.
Pseudo-polinomial significa coisas diferentes para pessoas diferentes. Quanto à hipótese do tempo exponencial, o google possui bastante arquivo.
Yuval Filmus
11
Na verdade não 2O(registron)=nO(1 1), 2registroO(1 1)né quase-polinomial (ah - esse é o termo correto!). A classe de complexidade2nO(1 1)é geralmente chamado de subexponencial.
Yuval Filmus