Algoritmo guloso
📚 Introdução
É uma estratégia para resolver desafios de programação muito útil, a ideia de um algoritmo guloso é sempre escolher a opção que parecer ideal, sem se preocupar com as consequências dessa ação.
Algoritmos gulosos são muito úteis para resolver problemas de otimização, onde queremos maximizar ou minimizar alguma coisa.
🤷 Como funciona?
Imagine que você é o dono de um posts de gasolina e no final do mês tem que repor seu estoque.
Nesse dia, você recebe uma lista, com o número de fornecedores, a sua demanda, e o preço por litro de cada fornecedor e quantos litros eles tem para venda.
Você, como um bom dono de posto, quer satisfazer sua demanda, mas também quer gastar o mínimo possível.
Como você faria para resolver esse problema?
Uma solução possível seria:
Ordenar a lista de fornecedores pelo preço do litro
Comprar do fornecedor mais barato até que sua demanda seja satisfeita
Felizmente essa solução funciona e é eficiente! Mas por que?
A resposta é simples, se você comprar do fornecedor mais barato, você vai gastar menos dinheiro, e se você comprar até que sua demanda seja satisfeita, você não vai gastar dinheiro a mais.
Este programa resume muito bem a ideia de um algoritmo guloso
Nesse caso, tenho que escolher de quais fornecedores comprar, então ordeno as opções pelo preço, pois o melhor fornecedor é o mais barato, e vou comprando sempre do melhor até atingir a demanda necessária.
O código abaixo mostra uma implementação desse algoritmo em Python:
A ideia de um algoritmo guloso é sempre escolher a opção que parecer ideal, sem se preocupar com as consequências dessa ação, isso nos ajuda a reduzir a complexidade de um problema, enquanto ainda conseguimos uma solução eficiente.
No caso do exemplo, a opção ideal é sempre comprar do fornecedor mais barato, pois assim gastamos menos dinheiro.
🧑🏫 Exercícios
Last updated