Comprender algoritmos codiciosos

    En este tutorial, aprenderá qué es un algoritmo codicioso. Además, encontrará un ejemplo de un algoritmo codicioso.
    El algoritmo codicioso es una forma de resolver un problema eligiendo la mejor opción disponible actualmente, sin tener que considerar los resultados que traerá en el futuro. En otras palabras, a través de la mejor opción local, el objetivo es lograr la mejor opción global.
    Es posible que este algoritmo no sea la mejor opción para todos los problemas. En algunos casos, puede producir resultados incorrectos.
    El algoritmo utiliza un enfoque de arriba hacia abajo.
    Las principales ventajas de este algoritmo son:

  1. El algoritmo es más fácil de describir.
  2. El rendimiento de este algoritmo puede ser mejor que el de otros algoritmos (pero no en todos los casos).
Solución factible

    La solución factible proporciona la solución óptima para resolver el problema.

cómo estás
  1. Primero, el conjunto de soluciones que contiene la respuesta está vacío.
  2. En cada paso, se agrega un elemento al conjunto de soluciones.
  3. Si el conjunto de soluciones es factible, conserve el elemento actual.
  4. De lo contrario, el artículo será rechazado y ya no se considerará.
Ejemplo
问题:您必须使用最少数量的硬币进行零钱找零。
金额:28美元

可用硬币:
  5美元硬币
  2美元硬币
  1美元硬币

    Solución:

  1. Cree un conjunto de soluciones vacío solution-set = {}.
  2. monedas = {5, 2, 1}
  3. suma = 0
  4. Cuando sume ≠ 28, realice las siguientes operaciones.
  5. Elija una moneda C de las monedas que sumen + C <28.
  6. Si C + suma> 28, no devuelve ninguna solución.
  7. De lo contrario, sum = sum + C.
  8. Agregue C al conjunto de soluciones.

    Después de 5 iteraciones, el conjunto de soluciones contiene 5 monedas de 5 USD. Luego obtenga una moneda de 2 dólares y finalmente obtenga una moneda de 1 dólar.

Aplicación del algoritmo codicioso
  • Seleccionar ordenar
  • Problema de mochila
  • Árbol de expansión mínimo
  • Problema de ruta más corta de fuente única
  • Problema de programación de trabajos
  • El algoritmo de árbol de expansión mínimo de Prim
  • El algoritmo de árbol de expansión mínimo de Kruskal
  • Algoritmo de árbol de expansión mínimo de Dijkstra
  • Codificación de Huffman
  • Algoritmo Ford-Fulkson
Documentos de referencia

[1] Parewa Labs Pvt. Ltd. Algoritmo Greedy [EB / OL] .https: //www.programiz.com/dsa/greedy-algorithm,2020-01-01.
[2] Baidu. Algoritmo Greedy [EB / OL ] .https: //baike.baidu.com/item/ algoritmo codicioso / 5411800,2021-02-22.
[3] Gran pastel. Algoritmo clásico idea 5-algoritmo codicioso [EB / OL] .https: // zhuanlan. zhihu.com/p/72734416, 2020-11-05.

Supongo que te gusta

Origin blog.csdn.net/zsx0728/article/details/115062787
Recomendado
Clasificación