Algoritmos com Tempo Exponencial E. G. M. de Lacerda UFRN/DCA Maio de 2006
O Problema do Caixeiro Viajante Dado N cidades, achar a caminho mais curto passando por todas as cidades uma única vez.
O Problema do Caixeiro Viajante Matriz distância Fonte: Devlin, K. Problemas do Milênio. Record, 2004.
O Problema do Caixeiro Viajante Há um total de 3 x 2 x 1 = 6 rotas.
O Problema do Caixeiro Viajante Para N cidades há (N-1)! rotas. Para 11 cidades, há 10! = rotas. Para 12 cidades, há 11! = rotas. Para 26 cidades, há 25! = rotas.
Número de Passos para Resolver um Problema. A complexidade de um algoritmo é medido pela quantidade de operações básicas (e.g., comparação de dois números) necessárias para resolver o problema. Exemplos Examinar todas as possibilidades do PCV, requer visitar N cidades em (N-1)! rotas. Logo requer N x (N-1) = N! operações básicas. Ordenar um vetor de tamanho N (usando o algoritmo da bolha) requer: N 2 - 2N + 1 operações básicas.
A Explosão Combinatória Obs: usando um computador capaz de realizar um milhão de operações aritméticas básicas por segundo.
Problemas com Tempo Exponencial Muitos problemas de engenharia são problemas de otimização combinatória que não podem ser resolvidos com um algoritmo de tempo polinominal. Estes problemas são computacionalmente intratáveis. NP-completude é a teoria que estuda estes problemas. Esta teoria chama alguns desses problemas de NP- Difícil (do inglês, NP-hard).
Algoritmos Exatos e Heurísticas Duas classes de algoritmos são usados para resolver problemas de otimização combinatória: Algoritmos exatos. Técnicas heurísticas (ou algoritmos aproximados).
Algoritmos Exatos e Heurísticas Algoritmos Exatos: Garante a solução exata. Tempo exponencial. Incapaz de resolver grandes instâncias de problemas NP- Díficil. Exemplos: Branch-and-bound; Programação dinâmica.
Algoritmos Exatos e Heurísticas Técnica Heurística (ou simplesmente, heurística) É um método que procura uma boa solução com um custo computacional aceitável sem garantia de encontrar a solução ótima (ou a factibilidade). Há heurísticas que também não informam o quão próximo a solução encontrada está do ótimo. Muitas heurísticas, contudo, fornecem soluções de alta qualidade.
Algoritmos Exatos e Heurísticas Heurísticas: Há duas abordagens básicas: Busca local; Algoritmos construtivos.