Cheat sheet
Condições, invariantes, recorrências e custos para rever os algoritmos da cadeira.
Em grafos, conta vértices e conta arestas. Noutras entradas, conta elementos. Custos de grafos assumem listas de adjacência. Cada secção liga à explicação completa para derivar fórmulas e reconstruir soluções.
Qual algoritmo de grafos
| Objetivo | Usa | Só se | Custo |
|---|---|---|---|
| Menos arestas desde | BFS | Pesos iguais ou ignorados | |
| Explorar e ciclos dirigidos | DFS | Cinzento indica ciclo | |
| Ordenar dependências | Kahn ou DFS | DAG; Kahn emite | |
| Regiões mútuas | Kosaraju ou Tarjan | Dirigido | |
| Ligar tudo pelo mínimo | Kruskal | Não dirigido; negativos permitidos | |
| Ligar tudo pelo mínimo | Prim | Não dirigido; reinicia por componente | , denso |
| Uma origem, sem negativos | Dijkstra | Pesos não negativos | |
| Uma origem, com negativos | Bellman-Ford | Deteta ciclo negativo alcançável | |
| Uma origem em DAG | Ordem topológica | Sem ciclos; admite negativos | |
| Todos os pares, denso | Floyd-Warshall | Diagonal negativa denuncia ciclo | |
| Todos os pares, esparso | Johnson | Sem ciclos negativos | |
| Fluxo máximo | Edmonds-Karp | Capacidades não negativas; BFS residual | |
| Emparelhar bipartido | Emparelhamento | Capacidades 1; até aumentos |
Heap com duplicados em Dijkstra guarda pares e custa . Nunca alteres chave na heap sem reorganizar. MST minimiza soma total; árvore de Dijkstra minimiza distâncias à raiz.
Invariantes que decidem
- BFS: marca cada vértice quando o insere na fila, e a fila sai por ordem de distância. O vetor de pais reconstrói o caminho; um vértice inalcançável mantém distância desconhecida, nunca zero.
- DFS: cada vértice está branco (por descobrir), cinzento (chamada ativa) ou preto (chamada terminada). Num grafo não dirigido, a aresta de regresso ao pai não conta como ciclo.
- Kosaraju: primeira DFS completa guarda términos; segunda em por término decrescente.
- Tarjan: ao seguir a aresta , se ainda não foi visitado, explora e propaga
low[v]; se está na pilha, atualiza comindex[v]; se já saiu da pilha, ignora porque pertence a uma componente fechada. Quandolow[u]==index[u], desempilha até e fecha uma componente. - Corte MST: respeita corte sem o atravessar; mais leve é segura. Acíclico só não chega.
- Bellman-Ford: após passagens, todos os caminhos com até arestas já foram contemplados; se uma passagem extra ainda melhora um vértice alcançável desde a origem, há um ciclo negativo alcançável.
- Fluxo: residual direta , inversa ; aumenta pelo gargalo. Sem caminho, alcançáveis de dão corte mínimo.
- Valor e corte: fluxo é saída líquida de ; corte soma só . Igualdade certifica ótimo, sem provar unicidade.
Relaxação e transformações
Relaxa quando finito e ; atualiza distância e predecessor.
Floyd-Warshall: exterior.
Guarda next[i][j] com primeiro passo. Par com em ciclo negativo sem mínimo finito.
Johnson: origem com zeros, por Bellman-Ford, , recupera . Somar constante a todas as arestas não preserva mínimos.
Emparelhamento: com capacidade 1. Fluxo inteiro equivale a arestas sem extremos repetidos. O emparelhamento máximo tem a maior cardinalidade possível no grafo; um emparelhamento maximal só resiste a acrescentar mais uma aresta, mas pode não ser máximo. Com dois vértices de cada lado e uma só aresta, o máximo é 1, enquanto é apenas um limite superior.
Técnica e justificação
| Técnica | Prova que | Exemplos |
|---|---|---|
| Força bruta | Enumera tudo; valida antes de comparar | Subconjuntos, intervalos, TSP |
| Guloso | Ótimo com escolha local; resto conserva estrutura | Fim mais cedo, densidade, Huffman |
| Divisão | Partição cobre casos; combinação reconstrói | Merge, cruzamento, Hanoi |
| DP | Estado suficiente; base e dependências | Mochila, trocos, LCS, edição |
| Retrocesso | Ramo podado sem válida possível | Excesso com positivos, rainhas |
| Branch and bound | Limite otimista para continuações | Fracionária ou LP |
Maximizar: incumbente é piso, nó tem teto; poda . Minimizar: incumbente é teto, nó tem piso; poda sem melhoria. Para listar ótimos, conserva empates.
Recorrências
Teorema mestre, com , e . No caso 3, a regularidade vale para alguma constante e suficientemente grande:
| Fora das chamadas | Solução |
|---|---|
| com |
Hanoi fora do formato. Quadrados: multiplicações. Máscaras com somas por máscara ; com acumulados . TSP com origem fixa ordens, . Coloração com rótulos , não . Clique exige cores; coloração mostra que chegam.
Estados de DP
| Problema | Transição | Custo |
|---|---|---|
| Mochila 0-1 ( peso, valor, capacidade) | se ; senão | |
| Trocos ilimitados ( facial, alvo) | ; ignora a segunda se | |
| Trocos com stock ( stock, máximo) | com | |
| Soma ( existência) | ||
| Subvetor ( melhor terminado em ) | , ; resposta é o máximo global | |
| LCS | Iguais diagonal ; senão máximo | |
| Edição | Mínimo de remover, inserir, manter e trocar | |
| Matrizes | ||
| CYK | Não-terminais por segmento e divisão |
Bases: mochila zero; trocos com zero e infinito; LCS zero; edição com comprimentos. Sem pais não há reconstrução. e pseudopolinomiais em binário. Vários símbolos em CYK não provam ambiguidade.
Kleene: . Inicia diretas e na diagonal; une até finais.
Complexidade e garantias
P resolve em polinomial; NP verifica certificado polinomial. Autorredução usa até chamadas ao decisor. transforma em ; para provar difícil, reduz difícil para . NP-completo é NP e NP-difícil.
Três cores: com codificam opostos; dispositivo admite se algum literal verdadeiro. em simples.
| Aproximação | Garantia | Condição |
|---|---|---|
| Cobertura por dois extremos | Repetir até não haver aresta descoberta; escolhidas formam emparelhamento maximal | |
| Mochila por prefixo e maior | Descarta objeto que não cabe; compara prefixo por densidade com melhor objeto isolado | |
| TSP por MST duplicada | Completo, simétrico, não negativos, triangular | |
| Conjuntos por ganho | é o tamanho do maior conjunto; |
PTAS polinomial na entrada para precisão fixa; FPTAS também em . Heurística sem prova não é garantia. Somar por aresta conserva ótimos de TSP mas muda razões.
LP e ILP
LP: , , . Slack para igualdades. No simplex, entra a variável com custo reduzido que melhora o objetivo e sai a restrição que primeiro limita essa entrada pela menor razão válida; depois substitui em todas as equações. Se a variável que melhora não tem limite em nenhuma restrição, o objetivo é ilimitado. Folga negativa inicial exige fase I. Bland evita ciclos.
Dual , , . Admissíveis com mesmo valor certificam ótimo. Região ilimitada pode ter ótimo finito.
ILP: relaxação dá teto em max e piso em min. Ramifica em e . Cada corte conserva todos os pontos inteiros e exclui a solução fracionária atual. Arredondar a solução fracionária pode sair do poliedro ou piorar o objetivo.
Gomory para uma linha do tableau cuja variável básica é inteira e todas as variáveis da linha são inteiras e não negativas: dá , com . Se algum for fracionário por natureza contínua, não há corte fracionário garantido.