ScholarGate
Assistente

NP-Completude e Intratabilidade

A NP-completude identifica os problemas mais difíceis na classe NP — aqueles aos quais todo problema NP se reduz — e fornece a estrutura padrão para reconhecer problemas para os quais nenhum algoritmo eficiente é conhecido ou provável.

Encontrar tema com PaperMindEm breveFind papers & topics
Tools & resources
Baixar slides
Learn & explore
VídeoEm breve

Definition

Um problema de decisão é NP-completo se ele pertence a NP (suas instâncias 'sim' possuem certificados verificáveis eficientemente) e todo problema em NP se reduz a ele em tempo polinomial; tais problemas são os mais difíceis em NP, e um algoritmo de tempo polinomial para qualquer um resultaria em um para todos.

Scope

Este tópico abrange as classes de complexidade P e NP, reduções em tempo polinomial, as definições de NP-dureza e NP-completude, o teorema de Cook-Levin que estabelece a satisfatibilidade como NP-completa, o catálogo de problemas NP-completos de Karp e as consequências práticas da intratabilidade para o projeto de algoritmos. Aplica esses conceitos ao reconhecimento e manejo de problemas difíceis; a teoria formal mais ampla das classes de complexidade computacional é tratada no subcampo da teoria da computação.

Core questions

  • O que distingue as classes de complexidade P e NP?
  • Como uma redução em tempo polinomial transfere a dureza de um problema para outro?
  • O que o teorema de Cook-Levin estabelece e por que a satisfatibilidade é central?
  • Como um novo problema é provado NP-completo por redução de um já conhecido?
  • Uma vez que um problema é mostrado NP-difícil, quais estratégias algorítmicas permanecem?

Key concepts

  • classe de complexidade P
  • classe de complexidade NP
  • redução em tempo polinomial
  • NP-dureza
  • NP-completude
  • teorema de Cook-Levin
  • satisfatibilidade booleana (SAT)
  • questão P versus NP

Key theories

Teorema de Cook-Levin
O teorema de Cook-Levin prova que a satisfatibilidade booleana (SAT) é NP-completa: todo problema em NP se reduz a ela em tempo polinomial, fornecendo o primeiro problema NP-completo e a âncora para provar a dureza de outros.
Redutibilidade entre problemas combinatórios
Karp mostrou que reduções em tempo polinomial ligam muitos problemas naturais — clique, cobertura de vértice, ciclo hamiltoniano, partição e outros — em uma rede de problemas NP-completos, de modo que cada um pode ser provado difícil por redução de outro.

Clinical relevance

Reconhecer que um problema é NP-completo é um dos resultados mais úteis na computação: ele informa aos engenheiros para não esperarem um algoritmo exato rápido e, em vez disso, implantarem algoritmos de aproximação, heurísticas, resolvedores exatos ajustados para instâncias típicas, ou restrições a casos especiais tratáveis. Muitos problemas de agendamento, roteamento, empacotamento e design são NP-completos.

History

Stephen Cook introduziu a NP-completude em 1971, provando que SAT é NP-completo; Leonid Levin alcançou resultados semelhantes independentemente. O artigo de Richard Karp de 1972 mostrou 21 problemas naturais NP-completos, estabelecendo o alcance da estrutura. O livro de Garey e Johnson de 1979 catalogou centenas de problemas NP-completos e tornou-se a referência padrão.

Debates

P versus NP
Se P é igual a NP — se todo problema eficientemente verificável é também eficientemente solúvel — é o problema aberto mais proeminente na área; quase todos os pesquisadores conjecturam que P não é igual a NP, mas a questão permanece sem solução e é um problema do Prêmio Millennium.

Key figures

  • Stephen Cook
  • Richard Karp
  • Leonid Levin
  • Michael Garey
  • David Johnson

Related topics

Seminal works

  • cook1971
  • karp1972
  • cormen2009

Frequently asked questions

Qual a diferença entre NP-difícil e NP-completo?
Um problema é NP-difícil se todo problema NP se reduz a ele em tempo polinomial, mas ele próprio não precisa estar em NP e não precisa ser um problema de decisão. Um problema é NP-completo se ele é tanto NP-difícil quanto está em NP. Problemas NP-completos são os problemas mais difíceis que ainda estão em NP.
NP-completude significa que um problema nunca pode ser resolvido?
Não. Significa que nenhum algoritmo de tempo polinomial é conhecido para todas as entradas e provavelmente nenhum existe se P não for igual a NP. Na prática, tais problemas são abordados com algoritmos de aproximação, heurísticas, resolvedores de tempo exponencial que funcionam em instâncias realistas, ou restringindo-se a casos especiais.

Methods for this concept

Related concepts