Escolar Documentos
Profissional Documentos
Cultura Documentos
Introduo
Aplicado a problemas de otimizao. Seja o algoritmo para encontrar o caminho mais curto entre dois vrtices de um grafo:
Escolhe a aresta que parece mais promissora em qualquer instante.
Assim,
independente do que possa acontecer mais tarde, nunca reconsidera a deciso. no necessita avaliar alternativas, ou usar procedimentos sofisticados para desfazer decises tomadas previamente.
PAA - Adaptado de Prof. Loureiro dcc/ufmg 2
O algoritmo guloso para resolver o problema geral consiste em um processo iterativo em que S construdo adicionando-se ao mesmo elementos de C um a um.
PAA - Adaptado de Prof. Loureiro dcc/ufmg 3
O principal passo do algoritmo a seleo de um vrtice da borda e de uma aresta incidente a este vrtice. O algoritmo de DijkstraPrim sempre escolhe uma aresta entre um vrtice da rvore e um vrtice da borda que tenha peso mnimo. A estrutura geral do algoritmo pode ser descrita do seguinte modo:
Idia bsica:
Tomando como vrtice inicial A, crie uma fila de prioridades classificada pelos pesos das arestas conectando A. Repita o processo at que todos os vrtices tenham sido visitados.
10
Objetivo:
A soluo final ser tima tambm.
Sempre funciona?
No. Por exemplo, 0 1 Knapsack Problem.
Estratgia da prova que a escolha gulosa leva a uma soluo global tima:
Examine a soluo global tima. Mostre que a soluo pode ser modificada de tal forma que uma escolha gulosa pode ser aplicada como primeiro passo. Mostre que essa escolha reduz o problema a um similar mas menor. Aplique induo para mostrar que uma escolha gulosa pode ser aplicada a cada passo.
13
Sub-estrutura tima
Um problema exibe sub-estrutura tima se uma soluo tima para o problema formada por solues timas para os subproblemas. Tcnicas de escolha gulosa e programao dinmica possuem essa caracterstica.
14
Tcnica gulosa:
Trabalha na forma top-down
15
17
Problema fracionrio:
Problema inteiro:
No resolvido usando a tcnica gulosa.
Problema fracionrio:
resolvido usando a tcnica gulosa.
20
21
Consideraes:
Levar o item 1 faz com que a mochila fique com espao vazio Espao vazio diminui o valor efetivo da relao v/w Neste caso deve-se comparar a soluo do subproblema quando:
Item includo na soluo vs. Item excludo da soluo
Passam a existir vrios sub-problemas Programao dinmica passa a ser a tcnica adequada
22
23
Algoritmos aproximados
Problemas que somente possuem algoritmos exponenciais para resolv-los so considerados difceis. Problemas considerados intratveis ou difceis so muito comuns, tais como:
Problema do caixeiro viajante cuja complexidade de tempo O(n!).
Diante de um problema difcil comum remover a exigncia de que o algoritmo tenha sempre que obter a soluo tima. Neste caso procuramos por algoritmos eficientes que no garantem obter a soluo tima, mas uma que seja a mais prxima possvel da soluo tima
24