Combinatoria
Nivel 5–8

Algoritmos voraces

Tomar la mejor opción local en cada paso.

Algoritmos Greedy

Teoría

Un algoritmo greedy es una estrategia para resolver problemas de optimización donde tomas la opción localmente óptima en cada paso, esperando encontrar un óptimo global. En optimización combinatoria, el algoritmo construye una solución paso a paso, eligiendo siempre la pieza que te dé el beneficio más inmediato. A diferencia de la programación dinámica o el backtracking, un algoritmo greedy nunca reconsidera sus elecciones; una vez que tomas una decisión, ya no hay vuelta atrás. Esto hace que los algoritmos greedy sean muy eficientes, pero ojo, no funcionan para todos los problemas.

En competencias matemáticas como el AIME o la USAMO, vas a usar enfoques greedy seguido para construir configuraciones específicas (pruebas de existencia) o para encontrar valores máximos o mínimos. La mayor dificultad en estos problemas no es ejecutar el algoritmo, sino demostrar que la estrategia greedy de verdad te da el resultado óptimo. Esto lo puedes hacer seguido usando un Argumento de Intercambio. Un argumento de intercambio supone que hay una solución óptima diferente a la greedy, y luego demuestra que si "intercambias" elementos para que se parezca más a la solución greedy, el resultado no empeora (y muchas veces hasta mejora).

Para que te des una idea, los algoritmos greedy funcionan mejor en estructuras llamadas matroides, o en problemas que tienen la "propiedad de elección greedy" y "subestructura óptima". Un ejemplo clásico es la Desigualdad de Reordenamiento, donde emparejar los números más grandes te da la suma más grande.

Problemas

0 problemas
No hay problemas vinculados a este tema todavía.