Aula 9: Método Guloso
20/01/2003
Também disponível nos formatos pdf e no formato ps.
Como apresentado, algoritmos gulosos são utilizados para resolver
problemas de otimização. Os algoritmos que se baseiam em uma estratégia
gulosa são, em geral, simples e de fácil implementação. É possível
definir elementos que comumente fazem parte de uma solução gulosa, na
tentativa de definir uma cara genérica para uma solução gulosa.
Vamos considerar o
exemplo do cálculo do trôco, em um sistema monetário que apresenta o seguinte
conjunto de moedas
. Uma possível solução que
utiliza estratégia gulosa é apresentada abaixo:
A solução é obtida partindo-se de um conjunto vazio de moedas e, em cada etapa, escollhendo a maior moeda possível. É possível identificar neste algortimo os seguintes elementos:
Além dos elementos listados, em algumas soluções é possível identificar mais dois elementos: um conjunto de candidatos rejeitados e uma função que define o valor de uma solução (serve para definir a eficiência de uma solução. No exemplo do cálculo do trôco, essa função retorna o número de moedas utilizadas para fornecer o trôco).
Um algoritmo guloso genérico define inicialmente um conjunto vazio de candidatos escolhidos. Em cada etapa um novo elemento é escolhido da lista de candidatos e adicionado ao conjunto de candidatos escolhidos. Esta escolha é guiada pela função SELEÇÃO que através do crivo da função VIABILIDADE define se o elemento selecionado deve ser considerado ou rejeitado. Se o elemento for rejeitado ele não deve ser considerado novamente. Se o elemento é adicionado ao conjunto dos elementos escolhidos, a função SOLUÇÃO verifica se o novo conjunto corresponde a solução do problema.