Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Escuela de Ingeniería
Eléctrica
Investigación de Operaciones
Ing. Rodrigo
Sempértegui A.
Introducción a la Heurística & Complejidad
Algorítmica
Introducción a la Heurística y Complejidad
Algorítmica
Contenido:
➢ Resumen
➢ Introducción
➢ Breve Historia
➢ Definiciones de Heurística
➢ Teoría de la Complejidad
➢ Algoritmos Heurísticos
➢ Conclusiones
➢ Referencias
Introducción a la Heurística y Complejidad
Algorítmica
Contenido:
➢ Resumen
➢ Introducción
➢ Breve Historia
➢ Definiciones de Heurística
➢ Teoría de la Complejidad
➢ Algoritmos Heurísticos
➢ Conclusiones
➢ Referencias
Introducción a la Heurística y Complejidad
Algorítmica
o Resumen
En Optimización Clásica, se asume que los problemas a tratarse deben cumplir algunas
exigencias que garanticen la convergencia hacia el óptimo global. Sin embargo, la mayoría de
los problemas del mundo real no satisfacen estas exigencias. Es por ello que hoy en día para
resolver problemas con un alto grado de complejidad tenemos la necesidad de utilizar
computadoras desarrollando algoritmos, dado que el cerebro humano no puede realizar esta
tarea. Además, los algoritmos exactos (búsqueda exhaustiva) pueden necesitar mucho tiempo
inclusive siglos para administrarse con desafíos formidables. En tales casos, los algoritmos
heurísticos juegan un papel importante en encontrar soluciones aproximadas, pero tienen una
aceptable complejidad de tiempo y espacio.
Introducción a la Heurística y Complejidad
Algorítmica
Contenido:
➢ Resumen
➢ Introducción
➢ Breve Historia
➢ Definiciones de Heurística
➢ Teoría de la Complejidad
➢ Algoritmos Heurísticos
➢ Conclusiones
➢ Referencias
Introducción a la Heurística y Complejidad
Algorítmica
o Introducción
▶ Los más importantes entre una variedad de temas que se relacionan con la computación
optimización.
▶ Debido a esto empiezan a emerger algoritmos capaces de ofrecer posibles soluciones que
aunque no consigan un resultado óptimo sí se acercan en un tiempo de cálculo razonable.
Contenido:
➢ Resumen
➢ Introducción
➢ Breve Historia
➢ Definiciones de Heurística
➢ Teoría de la Complejidad
➢ Algoritmos Heurísticos
➢ Conclusiones
➢ Referencias
Introducción a la Heurística y Complejidad
Algorítmica
o Breve Historia
▶ Al principio esta forma de resolver problemas (Heurística) no fue bien vista en los círculos
académicos, debido fundamentalmente a su escaso rigor matemático.
▶ Sin embargo, gracias a su interés práctico para solucionar problemas reales fue abriendo
poco a poco las puertas de los métodos heurísticos, sobre todo a partir de los años 60
cuando estudiantes y profesores necesitaban clasificar la naturaleza y objetivos del trabajo
en el laboratorio de ciencias.
▶ La popularización del término Heurística se debe al matemático George Pólya en 1957 con
su libro “Cómo Resolverlo” o (How to Solve It). Habiendo estudiado tantas pruebas
matemáticas desde su juventud, quería saber cómo los matemáticos llegan a ellas.
Introducción a la Heurística y Complejidad
Algorítmica
o Breve Historia
Introducción a la Heurística y Complejidad
Algorítmica
o Breve Historia
demasiado complejos o grandes para las anteriores generaciones de este tipo de algoritmos.
Introducción a la Heurística y Complejidad
Algorítmica
Contenido:
➢ Resumen
➢ Introducción
➢ Breve Historia
➢ Definiciones de Heurística
➢ Teoría de la Complejidad
➢ Algoritmos Heurísticos
➢ Conclusiones
➢ Referencias
Introducción a la Heurística y Complejidad
Algorítmica
o Definiciones de Heurística
▶ Heurística proviene del griego “εὑρίσκειν” o “Eureka”, “Heuriskein”. Que significa buscar, encontrar,
descubrir.
▶ Una estrategia, método, criterio o truco usado para hacer más sencilla la solución de problemas
difíciles.
▶ La capacidad de un sistema para realizar de forma inmediata innovaciones positivas para sus fines.
▶ Ciencia que estudia los proceso de decisión respecto a un campo de conocimiento concreto, como
▶ Proceso que puede resolver un problema dado pero no ofrece garantías de que lo hará.
▶ …procesador de información que (…) ignora cierta información. (…), y de este modo no se ve
afectada por cambios en tal información. (…), esto es, computacionalmente caro de explotar y
▶ El significado del término ha variado históricamente, pero todas las definiciones tienen algo en común:
encontrar y descubrir. En definitiva, las definiciones más precisas que se han venido utilizando en varios
Sin embargo, una definición más adecuada y precisa es la proporcionada por Reeves (1993):
“Una heurística es una técnica que busca soluciones buenas (es decir, casi óptimas) a un costo
algunos casos, ni siquiera puede determinar qué tan cerca del óptimo se encuentra una solución
factible en particular.”
Introducción a la Heurística y Complejidad
Algorítmica
Contenido:
➢ Resumen
➢ Introducción
➢ Breve Historia
➢ Definiciones de Heurística
➢ Teoría de la Complejidad
➢ Algoritmos Heurísticos
➢ Conclusiones
➢ Referencias
Introducción a la Heurística y Complejidad
Algorítmica
Contenido:
➢ Teoría de la Complejidad
▪ Introducción
▪ Complejidad Algorítmica o Computacional
▪ Objetivos
▪ Complejidad Temporal o Tiempo de Ejecución
▪ Complejidad Espacial
▪ Órdenes de Complejidad
▪ Eficiencia de un Algoritmo
▪ Clases de Complejidad
Introducción a la Heurística y Complejidad
Algorítmica
Contenido:
➢ Teoría de la Complejidad
▪ Introducción
▪ Complejidad Algorítmica o Computacional
▪ Objetivos
▪ Complejidad Temporal o Tiempo de Ejecución
▪ Complejidad Espacial
▪ Órdenes de Complejidad
▪ Eficiencia de un Algoritmo
▪ Clases de Complejidad
Teoría de la Complejidad
o Introducción
▶ Predecir un comportamiento futuro, es decir, los efectos que se producirán mediante cambios
o Introducción
▶ Se debe seleccionar el algoritmo más eficiente, con el mejor conjunto de pasos, que tarde
menos en ejecutarse, y que tenga menos líneas de código.
▶ La elección en algunas ocasiones puede ser realizada con una simple observación de la
cantidad de líneas del programa, pero a medida que el programa crece se requiere de mediciones
más exactas, para lo cual se emplea determinadas operaciones matemáticas que establecen
la eficiencia teórica del programa, al estudio de estos casos se denomina Complejidad
Algorítmica o Computacional.
Introducción a la Heurística y Complejidad
Algorítmica
Contenido:
➢ Teoría de la Complejidad
▪ Introducción
▪ Complejidad Algorítmica o Computacional
▪ Objetivos
▪ Complejidad Temporal o Tiempo de Ejecución
▪ Complejidad Espacial
▪ Órdenes de Complejidad
▪ Eficiencia de un Algoritmo
▪ Clases de Complejidad
Teoría de la Complejidad
Contenido:
➢ Teoría de la Complejidad
▪ Introducción
▪ Complejidad Algorítmica o Computacional
▪ Objetivos
▪ Complejidad Temporal o Tiempo de Ejecución
▪ Complejidad Espacial
▪ Órdenes de Complejidad
▪ Eficiencia de un Algoritmo
▪ Clases de Complejidad
Teoría de la Complejidad
o Objetivos
Contenido:
➢ Teoría de la Complejidad
▪ Introducción
▪ Complejidad Algorítmica o Computacional
▪ Objetivos
▪ Complejidad Temporal o Tiempo de
Ejecución
▪ Complejidad Espacial
▪ Órdenes de Complejidad
▪ Eficiencia de un Algoritmo
▪ Clases de Complejidad
Teoría de la Complejidad
S1;
for (x = 0; x < N; x++)
S2;
Demanda: T(N) = t1 + t2 * N
Donde t1 es el tiempo que lleva ejecutar la serie S1 de sentencias, y t2 es el que lleva la serie S2.
Teoría de la Complejidad
▶ Estos extremos son llamados "el peor caso" y "el mejor caso" y entre ambos se puede hallar "el
caso promedio" o el más frecuente.
Teoría de la Complejidad
Consideración.
▶ No mide tiempo, se cuenta las instrucciones (bucles) que realiza el algoritmo para
Segundo, Milisegundo
Introducción a la Heurística y Complejidad
Algorítmica
Contenido:
➢ Teoría de la Complejidad
▪ Introducción
▪ Complejidad Algorítmica o Computacional
▪ Objetivos
▪ Complejidad Temporal o Tiempo de Ejecución
▪ Complejidad Espacial
▪ Órdenes de Complejidad
▪ Eficiencia de un Algoritmo
▪ Clases de Complejidad
Teoría de la Complejidad
o Complejidad Espacial
▶ Tiene mucho menos interés comparado con el temporal. (Tiempo es más valioso que el
Espacio).
“SI tienes dinero puedes comprarte un carro más lujoso de último modelo, pero no puedes
comprarte unos cuantos años de vida.”
Introducción a la Heurística y Complejidad
Algorítmica
Contenido:
➢ Teoría de la Complejidad
▪ Introducción
▪ Complejidad Algorítmica o Computacional
▪ Objetivos
▪ Complejidad Temporal o Tiempo de Ejecución
▪ Complejidad Espacial
▪ Órdenes de Complejidad
▪ Eficiencia de un Algoritmo
▪ Clases de Complejidad
Teoría de la Complejidad
o Órdenes de Complejidad
▶ Las funciones de complejidad algorítmica más habituales en las cuales el único factor del
eficiencia son:
Teoría de la Complejidad
o Órdenes de Complejidad
O(1) Orden Constante Cuando las instrucciones se ejecutan una vez. Ejm; hallar el Max de 2 valores.
o Órdenes de Complejidad
O(na) Orden Polinómico Si a > 3 (crece), la complejidad del programa es bastante mala.
o Órdenes de Complejidad
Notas:
▶ Los Algoritmos Polinomiales son proporcionales a na. Son en general factibles o aplicables, y
o Órdenes de Complejidad
Notas:
o Ejemplo de Complejidad
o Ejemplo de Complejidad
Total Instrucciones = n+2n+1
Es decir 3n+1
▶ Dos de bucles
Contenido:
➢ Teoría de la Complejidad
▪ Introducción
▪ Complejidad Algorítmica o Computacional
▪ Objetivos
▪ Complejidad Temporal o Tiempo de Ejecución
▪ Complejidad Espacial
▪ Órdenes de Complejidad
▪ Eficiencia de un Algoritmo
▪ Clases de Complejidad
Teoría de la Complejidad
o Eficiencia de un Algoritmo
▶ Sea un problema que sabemos resolver con algoritmos de diferentes complejidades. Para
compararlos entre sí, supongamos que todos ellos requieren 1 hora de ordenador para resolver
un problema de tamaño N=100, pero si queremos resolver el mismo problema pero de tamaño
2N tenemos:
o Eficiencia de un Algoritmo
Notas:
▶ Los algoritmos de complejidad O(n) y O(n log n) son los que muestran un comportamiento
más "natural", prácticamente a doble de tiempo, doble de datos procesables.
o Eficiencia de un Algoritmo
Notas:
▶ Los algoritmos de tipo polinómico no son una maravilla, y se enfrentan con dificultad a
problemas de tamaño creciente. La práctica viene a decirnos que son el límite de lo "tratable".
▶ Sobre la “tratabilidad” de los algoritmos con O(n2) y O(n3) suelen ser abordables, aunque por
▶ Cualquier algoritmo por encima de una complejidad polinómica se dice "intratable" y sólo será
o Eficiencia de un Algoritmo
Notas:
▶ Por esto, los programadores buscan algoritmos de complejidad lineal, ya que si se tiene algo
▶ Si se encuentran soluciones polinomiales se puede vivir con ellas; pero ante soluciones de
Contenido:
➢ Teoría de la Complejidad
▪ Introducción
▪ Complejidad Algorítmica o Computacional
▪ Objetivos
▪ Complejidad Temporal o Tiempo de Ejecución
▪ Complejidad Espacial
▪ Órdenes de Complejidad
▪ Eficiencia de un Algoritmo
▪ Clases de Complejidad
Teoría de la Complejidad
o Clases de Complejidad
Contenido:
▪ Clases de Complejidad
Contenido:
▪ Clases de Complejidad
▶ Consiste en todos aquellos problemas que pueden resolverse en una Máquina de Turing
▶ Esto es, aquellas en las que para cada estado y símbolo exista a lo sumo una posibilidad
Contenido:
▪ Clases de Complejidad
elegir).
▶ Como tal máquina no existe, prácticamente significa que se puede escribir un algoritmo
Contenido:
▪ Clases de Complejidad
▶ Se puede entender como la clase de problemas que son NP-completos o más difíciles.
pertenecen a la clase NP, es decir, la clase NP-hard incluye también problemas para los
Contenido:
▪ Clases de Complejidad
▶ Es una subclase de NP que incluye problemas tales que un algoritmo polinomial para uno de
ellos podría transformarse en algoritmos polinomiales para resolver todos los demás problemas de
NP.
▶ En definitiva, estos problemas se caracterizan por ser todos "iguales" en el sentido de que si se
descubriera una solución para alguno de ellos, esta solución sería fácilmente aplicable a todos
ellos.
▶ En la actualidad, todos los algoritmos conocidos para problemas NP-complete utilizan tiempo
exponencial con respecto al tamaño de la entrada.
Clases de Complejidad
➢ Aproximación
➢ Probabilístico
➢ Restricciones
➢ Casos particulares
➢ Algoritmo genético
➢ Heurísticas
Introducción a la Heurística y Complejidad
Algorítmica
Contenido:
➢ Resumen
➢ Introducción
➢ Breve Historia
➢ Definiciones de Heurística
➢ Teoría de la Complejidad
➢ Algoritmos Heurísticos
➢ Conclusiones
➢ Referencias
Introducción a la Heurística y Complejidad
Algorítmica
Contenido:
➢ Algoritmos Heurísticos
▪ Generalidades
▪ Función Heurística
▪ ¿Cuándo utilizar las Heurísticas?
▪ Propiedades
▪ Ventajas y Desventajas
▪ Métodos o Técnicas Heurísticas
▪ Evaluación de la Calidad de las Heurísticas
▪ Tipo de Algoritmos Heurísticos
▪ Metaheurísticas
▪ Futuros Desafíos de Investigación
Introducción a la Heurística y Complejidad
Algorítmica
Contenido:
➢ Algoritmos Heurísticos
▪ Generalidades
▪ Función Heurística
▪ ¿Cuándo utilizar las Heurísticas?
▪ Propiedades
▪ Ventajas y Desventajas
▪ Métodos o Técnicas Heurísticas
▪ Evaluación de la Calidad de las Heurísticas
▪ Tipo de Algoritmos Heurísticos
▪ Metaheurísticas
▪ Futuros Desafíos de Investigación
Algoritmos Heurísticos
o Generalidades
▶ Los algoritmos que dan casi la respuesta correcta o proporcionan una solución no para todas
▶ Se usan para problemas que no se pueden resolver fácilmente, y pueden expresar buenas
▶ La solución aunque sea hallada en un tiempo corto, también puede ser errónea.
Contenido:
➢ Algoritmos Heurísticos
▪ Generalidades
▪ Función Heurística
▪ ¿Cuándo utilizar las Heurísticas?
▪ Propiedades
▪ Ventajas y Desventajas
▪ Métodos o Técnicas Heurísticas
▪ Evaluación de la Calidad de las Heurísticas
▪ Tipo de Algoritmos Heurísticos
▪ Metaheurísticas
▪ Futuros Desafíos de Investigación
Algoritmos Heurísticos
o Función Heurística
▶ Es una correspondencia entre las descripciones de estados del problema hacia alguna
medida de deseabilidad, normalmente representada por números. Quiere decir que mide cada
estado del problema (solución) y dice qué tan cerca de la solución óptima está.
o Función Heurística
Contenido:
➢ Algoritmos Heurísticos
▪ Generalidades
▪ Función Heurística
▪ ¿Cuándo utilizar las Heurísticas?
▪ Propiedades
▪ Ventajas y Desventajas
▪ Métodos o Técnicas Heurísticas
▪ Evaluación de la Calidad de las Heurísticas
▪ Tipo de Algoritmos Heurísticos
▪ Metaheurísticas
▪ Futuros Desafíos de Investigación
Algoritmos Heurísticos
A más de resolver problemas muy complejos, el uso de las Heurísticas es aconsejable utilizar
cuando:
➢ Los datos son poco fiables y por tanto no tiene sentido el tratar de encontrar el óptimo
global para dichos datos.
Algoritmos Heurísticos
Cuando…
➢ Si bien las combinaciones que se logran con una heurística pueden no ser muy buenas en
los peores casos, estos peores casos raramente ocurren en el mundo real.
Introducción a la Heurística y Complejidad
Algorítmica
Contenido:
➢ Algoritmos Heurísticos
▪ Generalidades
▪ Función Heurística
▪ ¿Cuándo utilizar las Heurísticas?
▪ Propiedades
▪ Ventajas y Desventajas
▪ Métodos o Técnicas Heurísticas
▪ Evaluación de la Calidad de las Heurísticas
▪ Tipo de Algoritmos Heurísticos
▪ Metaheurísticas
▪ Futuros Desafíos de Investigación
Algoritmos Heurísticos
o Propiedades
Un buen algoritmo heurístico debe cumplir (no necesariamente) con las siguientes propiedades.
➢ Son muy robustos. Se puede aplicar cualquier técnica Heurística a una gran clase de
problemas de optimización.
➢ La probabilidad de obtener una mala solución (lejos de ser óptima) debería ser baja.
Algoritmos Heurísticos
o Propiedades
Contenido:
➢ Algoritmos Heurísticos
▪ Generalidades
▪ Función Heurística
▪ ¿Cuándo utilizar las Heurísticas?
▪ Propiedades
▪ Ventajas y Desventajas
▪ Métodos o Técnicas Heurísticas
▪ Evaluación de la Calidad de las Heurísticas
▪ Tipo de Algoritmos Heurísticos
▪ Metaheurísticas
▪ Futuros Desafíos de Investigación
Algoritmos Heurísticos
o Ventajas y Desventajas
Ventajas
:
• Más comprensibles e intuitivos (en general) que los métodos exactos. (simples de
entender y fáciles de implementar).
o Ventajas y Desventajas
Desventajas:
• Imposible conocer la cercanía con respecto del óptimo global de la solución obtenida.
Contenido:
➢ Algoritmos Heurísticos
▪ Generalidades
▪ Función Heurística
▪ ¿Cuándo utilizar las Heurísticas?
▪ Propiedades
▪ Ventajas y Desventajas
▪ Métodos o Técnicas Heurísticas
▪ Evaluación de la Calidad de las Heurísticas
▪ Tipo de Algoritmos Heurísticos
▪ Metaheurísticas
▪ Futuros Desafíos de Investigación
Algoritmos Heurísticos
▶ Existen muchos métodos heurísticos que son muy diferentes en naturaleza, por lo que es
complicado dar una clasificación completa.
▶ Además, muchos de ellos han sido diseñados para resolver un problema específico sin
posibilidad de generalización o aplicación a otros problemas similares.
Contenido:
▪ Métodos o Técnicas Heurísticas
❑ Métodos de Descomposición
❑ Métodos Inductivos
❑ Métodos de Reducción
❑ Métodos Constructivos
❑ Métodos Combinados
Introducción a la Heurística y Complejidad
Algorítmica
Contenido:
▪ Métodos o Técnicas Heurísticas
❑ Métodos de Descomposición
❑ Métodos Inductivos
❑ Métodos de Reducción
❑ Métodos Constructivos
❑ Métodos Combinados
Métodos o Técnicas Heurísticas
o Métodos de Descomposición
o Métodos de Descomposición
▶ De manera que al resolver los sub-problemas se obtenga una solución para el problema
global.
Contenido:
▪ Métodos o Técnicas Heurísticas
❑ Métodos de Descomposición
❑ Métodos Inductivos
❑ Métodos de Reducción
❑ Métodos Constructivos
❑ Métodos Combinados
Métodos o Técnicas Heurísticas
o Métodos Inductivos
completo.
▶ Las propiedades o técnicas que se han identificado en estos casos (que son más fáciles
Contenido:
▪ Métodos o Técnicas Heurísticas
❑ Métodos de Descomposición
❑ Métodos Inductivos
❑ Métodos de Reducción
❑ Métodos Constructivos
❑ Métodos Combinados
Métodos o Técnicas Heurísticas
o Métodos de Reducción
▶ El riesgo obvio es que las soluciones óptimas del problema original pueden quedar fuera.
Introducción a la Heurística y Complejidad
Algorítmica
Contenido:
▪ Métodos o Técnicas Heurísticas
❑ Métodos de Descomposición
❑ Métodos Inductivos
❑ Métodos de Reducción
❑ Métodos Constructivos
❑ Métodos Combinados
Métodos o Técnicas Heurísticas
o Métodos Constructivos
▶ Implican construir literalmente paso a paso desde cero una solución al problema.
▶ Dentro de este método también existen los siguientes algoritmos: Algoritmos Greedy
Contenido:
▪ Métodos o Técnicas Heurísticas
❑ Métodos de Descomposición
❑ Métodos Inductivos
❑ Métodos de Reducción
❑ Métodos Constructivos
❑ Métodos Combinados
Métodos o Técnicas Heurísticas
comienza con alguna solución factible del problema e intenta mejorarlo progresivamente.
▶ Cada paso del procedimiento lleva a cabo un movimiento de una solución a otra con un mejor
valor.
▶ El método termina cuando, para una solución, no hay otra solución accesible que lo mejore.
Introducción a la Heurística y Complejidad
Algorítmica
Contenido:
▪ Métodos o Técnicas Heurísticas
❑ Métodos de Descomposición
❑ Métodos Inductivos
❑ Métodos de Reducción
❑ Métodos Constructivos
❑ Métodos Combinados
Métodos o Técnicas Heurísticas
o Métodos Combinados
▶ Aunque todos los métodos precedentes han contribuido a ampliar nuestro conocimiento
Contenido:
➢ Algoritmos Heurísticos
▪ Generalidades
▪ Función Heurística
▪ ¿Cuándo utilizar las Heurísticas?
▪ Propiedades
▪ Ventajas y Desventajas
▪ Métodos o Técnicas Heurísticas
▪ Evaluación de la Calidad de las Heurísticas
▪ Tipo de Algoritmos Heurísticos
▪ Metaheurísticas
▪ Futuros Desafíos de Investigación
Algoritmos Heurísticos
Contenido:
▪ Evaluación de la Calidad de las Heurísticas
Contenido:
▪ Evaluación de la Calidad de las Heurísticas
método exacto para obtener una solución óptima o consume demasiado tiempo, a veces hay
▶ Este conjunto de ejemplos se puede usar para evaluar la calidad del método heurístico.
Introducción a la Heurística y Complejidad
Algorítmica
Contenido:
▪ Evaluación de la Calidad de las Heurísticas
▶ Hay situaciones en las que no hay solución ni siquiera para un conjunto limitado de
ejemplos.
Contenido:
▪ Evaluación de la Calidad de las Heurísticas
Contenido:
▪ Evaluación de la Calidad de las Heurísticas
▶ Es uno de los métodos más utilizados para problemas difíciles que se han trabajado durante
▶ Además, se puede comparar los valores obtenidos entre las diferentes heurísticas para
Contenido:
➢ Algoritmos Heurísticos
▪ Generalidades
▪ Función Heurística
▪ ¿Cuándo utilizar las Heurísticas?
▪ Propiedades
▪ Ventajas y Desventajas
▪ Métodos o Técnicas Heurísticas
▪ Evaluación de la Calidad de las Heurísticas
▪ Tipo de Algoritmos Heurísticos
▪ Metaheurísticas
▪ Futuros Desafíos de Investigación
Algoritmos Heurísticos
En una primera clasificación podemos decir que los algoritmos heurísticos pueden ser simples
o complejos.
▶ Los Algoritmos Simples tienden a tener reglas de terminación bien definidas, y se detienen en
un óptimo local, mientras que los algoritmos más complejos pueden no tener reglas de
arbitrario.
Algoritmos Heurísticos
▶ Dentro de los Algoritmos Heurísticos Complejos podemos hacer una segunda clasificación, esta
vez orientada a la funcionalidad de los mismos.
✓ En primer lugar podemos encontrarnos con algoritmos que fueron diseñados para dar
✓ Por otro lado tenemos los algoritmos que tratan de deducir conocimiento a partir de un
conocimiento.
Algoritmos Heurísticos
Contenido:
➢ Algoritmos Heurísticos
▪ Generalidades
▪ Función Heurística
▪ ¿Cuándo utilizar las Heurísticas?
▪ Propiedades
▪ Ventajas y Desventajas
▪ Métodos o Técnicas Heurísticas
▪ Evaluación de la Calidad de las Heurísticas
▪ Tipo de Algoritmos Heurísticos
▪ Metaheurísticas
▪ Futuros Desafíos de Investigación
Algoritmos Heurísticos
o Metaheurísticas
Heurística “buenas soluciones”
▶ Otros como Fred Glover en 1986 considera a las Metaheurísticas como “Heurísticas de nivel
más alto”
Algoritmos Heurísticos
o Metaheurísticas
Contenido:
▪ Metaheurísticas
❑ Intensificación y Diversificación
❑ Técnicas Metaheurísticas
Algoritmos Heurísticos
Contenido:
▪ Metaheurísticas
❑ Intensificación y Diversificación
❑ Técnicas Metaheurísticas
Metaheurísticas
o Intensificación y Diversificación
o Intensificación y Diversificación
o Intensificación y Diversificación
En definitiva…
Contenido:
▪ Metaheurísticas
❑ Intensificación y Diversificación
❑ Técnicas Metaheurísticas
Metaheurísticas
▶ Existen dos categorías en las que se basan las Metaheurísticas como son: Búsqueda
▶ En el primero, el método itera sobre una única solución, mientras que en el segundo el
Búsqueda local
• Las soluciones en el vecindario de una solución deben estar cerca de esta solución de
alguna manera.
• La topología inducida por la FO en el espacio del barrio no debe ser demasiado "plana".
Búsqueda de población
Contenido:
▪ Metaheurísticas
❑ Intensificación y Diversificación
❑ Técnicas Metaheurísticas
Metaheurísticas
o Técnicas Metaheurísticas
combinatoria.
las siguientes:
Metaheurísticas
o Técnicas Metaheurísticas
Búsqueda Tabú.
▶ Tabu Search (Glover and Laguna, 1998) es una MH con un procedimiento que debe
acoplarse a otra técnica, ya que no funciona por sí sola.
▶ Usa una memoria para guiar la búsqueda, de tal forma que algunas soluciones examinadas
recientemente son memorizadas y tomadas como tabú (prohibidas) a la hora de tomar
decisiones acerca del siguiente punto de búsqueda.
o Técnicas Metaheurísticas
Simulated Annealing
▶ El algoritmo requiere de una temperatura inicial, una final y una función de variación de la
temperatura.
o Técnicas Metaheurísticas
Hill Climbing
El algoritmo de Escalando la Colina o Hill Climbing (Russell and Norvig, 2002) es una técnica
simple de búsqueda local y optimización aplicado para una función f de un único objetivo en un
espacio de problema X. Este algoritmo no tiene retroceso ni lleva ningún tipo de registro
histórico (aunque estos y otros aditamentos son susceptibles de ser incorporados). Es
importante resaltar que Hill Climbing busca maximizar o minimizar la función f (x) donde x es
discretizado. Hill Climbing es una forma simple de búsqueda de la dirección de gradiente, por
esto fácilmente puede quedar atrapado en óptimos locales.
Introducción a la Heurística y Complejidad
Algorítmica
Contenido:
➢ Algoritmos Heurísticos
▪ Generalidades
▪ Función Heurística
▪ ¿Cuándo utilizar las Heurísticas?
▪ Propiedades
▪ Ventajas y Desventajas
▪ Métodos o Técnicas Heurísticas
▪ Evaluación de la Calidad de las Heurísticas
▪ Tipo de Algoritmos Heurísticos
▪ Metaheurísticas
▪ Futuros Desafíos de Investigación
Algoritmos Heurísticos
Existe una gran cantidad de información acerca de la Heurística, tanto así que los retos de
investigación tienden a estudios más profundos acerca del tema como:
algoritmos aproximados.
▶ Profundizar temas tan prominentes para los algoritmos heurísticos como la teoría de
planificación y programación.
Introducción a la Heurística y Complejidad
Algorítmica
Contenido:
➢ Resumen
➢ Introducción
➢ Breve Historia
➢ Definiciones de Heurística
➢ Teoría de la Complejidad
➢ Algoritmos Heurísticos
➢ Conclusiones
➢ Referencias
Introducción a la Heurística y Complejidad
Algorítmica
o Conclusiones
▶ Este trabajo de investigación presenta una visión general de las heurísticas, que son
técnicas aproximadas para resolver problemas de optimización.
▶ Por lo general, los algoritmos heurísticos se desarrollan para tener una complejidad de
tiempo baja y se aplican a los problemas complejos.
▶ Aunque no exista una definición normalizada acerca del término Heurística, varios autores
de libros y artículos del área científica de las matemáticas y computación persiguen el
objetivo de encontrar la solución más óptima de un problema, aunque no signifique una
calidad total del mismo.
Introducción a la Heurística y Complejidad
Algorítmica
o Conclusiones
▶ Debido a sus propiedades eminentes, las Heurísticas han ganado una gran popularidad a
lo largo del tiempo. Los resultados de investigación recientemente presentados confirman el
hecho de que sus aplicaciones pueden ampliarse significativamente en el futuro, o a su vez
en la informática moderna.
Ingeniería Eléctrica.
▶ Sistemas de Distribución
▶ Crecimiento de la Carga
▶ SEP (Sistemas Eléctricos de Potencia)
▶ Operación y Control del SEP
▶ Operación del Sistema de G. Minimizar las Pérdidas G,T,D,C
▶ Flujo de Potencia Óptimo Minimizar el Costo Operativo
▶ Despacho Económico de Diferentes Centrales
▶ Programación Horaria
▶ Operación del Sistema de T.
▶ Planificación de la Expansión del SEP
Introducción a la Heurística y Complejidad
Algorítmica
Contenido:
➢ Resumen
➢ Introducción
➢ Breve Historia
➢ Definiciones de Heurística
➢ Teoría de la Complejidad
➢ Algoritmos Heurísticos
➢ Conclusiones
➢ Referencias
Introducción a la Heurística y Complejidad
Algorítmica
o Referencias
[1] N. Kokash, «An introduction to heuristic algorithms,» pp. 1-8.
[2] X.-S. Yang, Introduction to Mathematical Optimization. From Linear Programming to Metaheuristics, Reino Unido: Cambrige
International Science Publishing, 2008.
[3] J. Hromkovic, Algorithmics for Hard Problems, New York: Springer, 2004.
[4] R. Martí y G. Reinelt, The Linear Ordering Problem, Exact and Heuristic Methods in COmbinational Optimization, Berlín: Springer, 2011.