Vídeo: SteemFest 4 - 3speak, steempress, steemplus, steemit, coingecko, waivio 2024
O raciocínio ganancioso é freqüentemente usado como parte de um processo de otimização. O algoritmo visualiza o problema um passo de cada vez e se concentra apenas no passo à mão. Todo algoritmo ganancioso faz dois pressupostos:
- Você pode fazer uma única escolha ideal em uma determinada etapa.
- Ao escolher a seleção ideal em cada etapa, você pode encontrar uma solução ideal para o problema geral.
Você pode encontrar muitos algoritmos gananciosos, cada um otimizado para executar tarefas específicas. Aqui estão alguns exemplos comuns de algoritmos gananciosos usados para análise de gráficos e compressão de dados e o motivo pelo qual você pode querer usá-los:
- Árvore de extensão mínima de Kruskal (MST): Este algoritmo realmente demonstra um dos princípios de algoritmos gananciosos que as pessoas podem não pensar imediatamente. Nesse caso, o algoritmo escolhe a borda entre dois nós com o menor valor, e não o maior valor, pois a palavra gananciosa pode transmitir inicialmente. Esse tipo de algoritmo pode ajudá-lo a encontrar o caminho mais curto entre dois locais em um mapa ou executar outras tarefas relacionadas ao gráfico.
- MST de Prim: Este algoritmo divide um gráfico não direcionado (um em que direção não é considerada) ao meio. Em seguida, seleciona a borda que liga as duas metades, de modo que o peso total das duas metades é o menor que pode ser. Você pode encontrar este algoritmo usado em um jogo de labirinto para localizar a menor distância entre o início e o final do labirinto.
- Codificação de Huffman: Este algoritmo é bastante famoso em computadores, pois constitui a base para muitas técnicas de compressão de dados. O algoritmo atribui um código a cada entrada de dados exclusiva em um fluxo de entradas, de modo que a entrada de dados mais comumente recebida receba o código mais curto. Por exemplo, a letra E normalmente receberia o código mais curto ao comprimir texto em inglês, porque você o usa com mais freqüência do que qualquer outra letra no alfabeto. Ao alterar a técnica de codificação, você pode comprimir o texto e torná-lo consideravelmente menor, reduzindo o tempo de transmissão.