Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Programación Heurı́stica
La heurı́stica está diseñada para encontrar buenas soluciones aproximadas de problemas combi-
natorios difı́ciles que de lo contrario no pueden resolverse mediante los algoritmos de optimización
disponibles.
Hasta ahora hemos visto cómo modelar problemas bien con programación entera bien como pro-
blema de redes, pero al mismo tiempo hemos visto sus limitaciones. Dichas limitaciones pueden
venir bien por el tamaño de las instancias que estamos resolviendo, o por la dificultad del problema
particular que queremos resolver. En general, problemas más apegados a situaciones reales suelen
cumplir con alguno de estos condicionantes, y por tanto no resulta práctico utilizar las técnicas
vistas hasta ahora. Una heurı́stica es una técnica de búsqueda directa que utiliza reglas favorables
prácticas para localizar soluciones mejoradas. La ventaja de la heurı́stica es que en general deter-
mina (buenas) soluciones con rapidez, utilizando reglas de solución simples. La desventaja es que
la calidad de la solución (con respecto a la óptima) suele desconocerse.
El mundo de las heurı́sticas está en continuo desarrollo, y hoy en dı́a es una de las técnicas
más utilizadas para resolver problemas complejos. En general, las heurı́sticas se diseñan en base
al problema que se va a resolver, pero existen heurı́sticas clásicas que son la base de cualquier
heurı́stica moderna que se genere.
Para estudiar las heurı́sticas, lo mejor es tener un problema modelo sobre el que se explicará cada
uno de los métodos que se verán en este tema: