O algoritmo Greedy Search é uma abordagem de resolução de problemas que sempre escolhe a melhor opção disponível em cada etapa sem considerar o impacto de longo prazo da decisão. Embora não garanta encontrar a solução ideal globalmente, esse método geralmente funciona rapidamente e é simples de implementar.
Como funciona
- Inicialização: Comece com uma solução vazia ou inicial.
- Escolha ótima local: Em cada etapa, escolha a escolha ótima local com base na função objetivo ou critérios definidos.
- Aplicar escolha: aplica a escolha ideal à solução atual.
- Repita: itere pelas etapas 2 a 4 até que nenhuma escolha local melhor possa ser feita.
Exemplo: Knapsack Problem
Considere o Knapsack Problem, onde temos uma mochila com peso máximo e uma lista de itens com pesos e valores. O objetivo é selecionar itens para maximizar o valor total da mochila. Uma abordagem de pesquisa gananciosa para esse problema é selecionar itens com base na maior relação valor/peso.
Exemplo de código em C++
Neste exemplo, usamos a abordagem Greedy Search para resolver o problema Knapsack Problem. Classificamos os itens com base na relação valor/peso decrescente e selecionamos os itens com a proporção mais alta que ainda cabem no limite de peso da mochila.