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?


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.


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)


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.