Algoritmo codicioso

Un algoritmo codicioso es un proceso matemático que busca soluciones simples y fáciles de implementar para problemas complejos de varios pasos al decidir qué paso siguiente proporcionará el beneficio más obvio.

Dichos algoritmos se denominan codiciosos porque, si bien la solución óptima para cada instancia más pequeña proporcionará una salida inmediata, el algoritmo no considera el problema más grande como un todo. Una vez que se ha tomado una decisión, nunca se reconsidera.

Los algoritmos codiciosos funcionan construyendo recursivamente un conjunto de objetos a partir de las partes constituyentes más pequeñas posibles. La recursividad es un enfoque para la resolución de problemas en el que la solución a un problema particular depende de soluciones a instancias más pequeñas del mismo problema. La ventaja de utilizar un algoritmo codicioso es que las soluciones para casos más pequeños del problema pueden ser sencillas y fáciles de entender. La desventaja es que es muy posible que las soluciones más óptimas a corto plazo conduzcan al peor resultado posible a largo plazo.

Los algoritmos codiciosos se utilizan a menudo en redes móviles ad hoc para enrutar paquetes de manera eficiente con la menor cantidad de saltos y el menor retraso posible. También se utilizan en aprendizaje automático, inteligencia empresarial (BI), inteligencia artificial (IA) y programación.

Ver también: principio KISS, navaja de Ockham