Complexidade computacional

P, NP, reduções, certificados, autorredução e casos especiais tratáveis.

TLDR

Perguntar sobre esta página

ChatGPTClaudePerplexityGrokGeminiCopiar e abrirDeepSeekCopiar e abrir

Classes e certificados

  • P: conjunto de problemas de decisão resolvidos em tempo polinomial no tamanho da representação.
  • NP: problemas de decisão com certificado de tamanho polinomial que se verifica em tempo polinomial. Vale P⊆NPP\subseteq NP e a igualdade está por provar. NP significa não determinístico polinomial, não “não polinomial”.
  • NP-difícil: todo o problema de NP se reduz a ele em tempo polinomial. NP-completo: é NP-difícil e pertence a NP. A versão de otimização associada a um problema NP-completo diz-se NP-difícil; nem toda a otimização é difícil, pois MST e caminhos mínimos nesta cadeira são polinomiais.
  • Indecidível é sem algoritmo para todas as entradas, não apenas lento.

Reduzir na direção certa

x∈A  ⟺  f(x)∈B,f polinomial.x\in A\iff f(x)\in B,\quad f\text{ polinomial}.

Solver de BB resolve AA. Para provar BB difícil, reduz difícil conhecido para BB, com construção, custo e duas implicações. Mostrar B≤pSATB\le_p\text{SAT} não prova dificuldade.

ReduçãoIdeia
CIRCUIT-SAT a CNF-SATVariável por fio; cláusulas por porta
CNF-SAT a 3-CNF-SATDivide longas com auxiliares
SAT a CLIQUEVértice por ocorrência; clique com tamanho de cláusulas
CLIQUE a VERTEX-COVERComplemento; clique kk equivale a cobertura n−kn-k
3-SAT a 3 coresTriângulo T,F,BT,F,B; pares x,¬xx,\neg x; dispositivo por cláusula

Para z=x∧yz=x\land y: (¬z∨x)∧(¬z∨y)∧(z∨¬x∨¬y)(\neg z\lor x)\land(\neg z\lor y)\land(z\lor\neg x\lor\neg y).

Na construção de 3-SAT para 3 cores, cada cláusula tem um dispositivo OiO_i ligado às suas três literais. Se as três literais forem falsas, o dispositivo é forçado a usar a cor BB e bloqueia a coloração do seu triângulo interno. Se pelo menos uma literal for verdadeira, existe uma extensão válida. O guloso usa no máximo Δ+1\Delta+1 cores; um clique de tamanho kk exige kk cores distintas.

2-SAT em P: (a∨b)(a\lor b) dá ¬a→b\neg a\to b, ¬b→a\neg b\to a. Insatisfazível se xx partilha SCC com ¬x\neg x. O(n+q)O(n+q).

Autorredução e casos tratáveis

  • Mochila: fixa dentro ou fora com decisor e limites ajustados; até nn chamadas.
  • HAM-CYCLE: remove aresta se decisor continua sim; até mm chamadas.
  • Cobertura em árvore: C0(u)=∑C1C_0(u)=\sum C_1, C1(u)=1+∑min⁡(C0,C1)C_1(u)=1+\sum\min(C_0,C_1); folhas 0 e 1; O(n)O(n).
  • kk exceções com resto uniforme: 2k2^k seleções mais prefixos; polinomial para kk fixo.

Reduções e provas.

À tua maneira

Aparência

Modo de cor
Tema
Cor de destaque

Leitura

Fonte de leitura

Álgebra, lógica e uma ideia de cada vez.

Código

Fonte do código

Navegação

Cursor de leitura, sem edição. h, j, k, l movem; / pesquisa nesta página. v seleciona caracteres; V seleciona linhas; y copia. Tab permite destacar ou comentar. Espaço ou Enter abre blocos recolhíveis. Nos cartões, h, j, k, l mudam o foco.

CSS personalizado

Ativa uma sugestão ou guarda o teu CSS. Só muda este navegador.

Usa --page, --text e --accent para acompanhar o tema.

Seletores e recuperação

.site-header, .prose, .course-card, [data-reading-history], [data-playground] e .page-actions.

Abre a aparência com a tecla vírgula ou no rodapé. Se o CSS esconder os controlos, abre esta página sem CSS personalizado.

Pesquisar

Escreve para pesquisar em todo o site.

para escolher · Enter para abrir · Esc para fechar

Copiar fórmula

A cópia automática não está disponível. Copia o LaTeX abaixo.

Pesquisar nesta página

Enter procura · n / N repetem · Esc cancela. Ctrl / Cmd K pesquisa todo o site.

Atalhos de teclado

Clica numa tecla para a mudar. Esc cancela. Backspace desativa.

PesquisarCtrl / Cmd K

Os atalhos não interferem enquanto escreves. Tab e Enter funcionam sempre.