El algoritmo Greedy Search es un enfoque de resolución de problemas que siempre elige la mejor opción disponible en cada paso sin considerar el impacto a largo plazo de la decisión. Si bien no garantiza encontrar la solución globalmente óptima, este método a menudo funciona rápidamente y es fácil de implementar.
Cómo funciona
- Inicialización: Comience con una solución vacía o inicial.
- Elección óptima local: en cada paso, elija la opción óptima localmente en función de la función objetivo o los criterios definidos.
- Aplicar opción: aplica la opción óptima a la solución actual.
- Repita: repita los pasos 2 a 4 hasta que no se pueda hacer una mejor elección local.
Ejemplo: Knapsack Problem
Considere el Knapsack Problem, donde tenemos una mochila con un peso máximo y una lista de artículos con pesos y valores. El objetivo es seleccionar artículos para maximizar el valor total en la mochila. Un enfoque de Greedy Search para este problema es seleccionar elementos en función de la mayor relación valor-peso.
Ejemplo de código en C++
En este ejemplo, usamos el enfoque de búsqueda codiciosa para resolver el problema Knapsack Problem. Clasificamos los artículos en función de la relación valor-peso descendente y seleccionamos los artículos con la relación más alta que aún se ajustan al límite de peso de la mochila.