Você está na página 1de 10

Algoritmos Gulosos

Simone Costa

Referncia: Cormen, Thomas H.; et al. Introduction to Algorithms. MIT Press, 2001.

Algoritmos Gulosos
Programao Dinmica: tenta todas as escolhas, resolve todos os subproblemas de cada escolha, e pega a escolha cuja soluo melhor Exagero? em alguns casos sim... Algoritmos Gulosos: simplifica e aumenta a eficincia para muitos problemas de otimizao. Faz a escolha tima para condies locais, esperando que essa escolha leve a uma situao tima para a situao global.
Referncia: Cormen, Thomas H.; et al. Introduction to Algorithms. MIT Press, 2001.

Algoritmos Gulosos - Aplicao


Nem sempre produzem solues timas, mas teis para muitos problemas:

Problema da seleo de atividade; Projeto de cdigo de compresso de dados (Huffman); Algoritmos de rvore espalhada mnima (algoritmos de Kruskal e Prim). Outros.

Referncia: Cormen, Thomas H.; et al. Introduction to Algorithms. MIT Press, 2001.

Elementos da Estratgia Gulosa


Obtm-se uma soluo tima para o problema atravs de uma seqncia de escolhas. Para cada ponto de deciso, escolhe-se o que parece melhor no momento. uma estratgia de heurstica, que funciona em alguns casos.

Referncia: Cormen, Thomas H.; et al. Introduction to Algorithms. MIT Press, 2001.

Processo para desenvolver um Algoritmo Guloso


1.

Moldar o problema de otimizao como um problema no qual fazemos uma escolha e ficamos com um nico subproblema a resolver. Provar que sempre existe uma soluo tima para o problema original que faz a escolha gulosa (localmente tima), de modo que a escolha gulosa sempre segura. Demonstrar que a escolha gulosa e a soluo tima para o subproblema soluo tima para o problema original.

2.

3.

Referncia: Cormen, Thomas H.; et al. Introduction to Algorithms. MIT Press, 2001.

Como saber se um algoritmo guloso timo?


No sabemos... Duas caractersticas dos problemas que indicam que a estratgia gulosa adequada: Propriedade da escolha gulosa; Subestrutura tima.

Referncia: Cormen, Thomas H.; et al. Introduction to Algorithms. MIT Press, 2001.

Propriedade da Escolha Gulosa


Uma escolha globalmente tima pode ser alcanada fazendo-se uma escolha localmente tima (gulosa).

Referncia: Cormen, Thomas H.; et al. Introduction to Algorithms. MIT Press, 2001.

Programao Dinmica x Algoritmos Gulosos Programao Dinmica


Algoritmos Gulosos

Faa uma escolha a cada passo; Escolhas dependem das solues dos subproblemas. Resolva os subproblemas primeiro; Resolva bottom-up.

Faa uma escolha a cada passo; Faa a escolha antes de resolver os subproblemas (escolha pode depender de escolhas anteriores, mas no de escolhas futuras ou de solues de subproblemas); Resolva top-down.

Existem sutilezas entre as duas tcnicas, podendo levar-nos a utilizar a problema da mochila. estratgia errada. Leitura Complementar: Referncia: Cormen, Thomas H.; et al. Introduction to Algorithms. MIT Press, 2001.

Propriedade da Escolha Gulosa


Para mostrar esta propriedade:

Olhe para a soluo globalmente tima; Se ela inclui a escolha gulosa, feito; Seno, modifique-a para incluir a escolha gulosa, resultando em um subproblema similar.

Podemos ganhar eficincia ao fazer a escolha em um subproblema:


Pr-processamento da entrada; Estrutura de dados apropriada (muitas vezes, fila de prioridades).

Referncia: Cormen, Thomas H.; et al. Introduction to Algorithms. MIT Press, 2001.

Subestrutura tima
Soluo tima para o problema contm dentro dela solues timas para subproblemas. Mostre que a soluo tima para o subproblema e a escolha gulosa levam a soluo tima do problema.

Referncia: Cormen, Thomas H.; et al. Introduction to Algorithms. MIT Press, 2001.

Você também pode gostar