Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Las heurísticas son criterios, métodos, ó principios para decidir cuál de varias alternativas de acción
promete ser la más efectiva para cumplir con una meta.
Representan un compromiso entre: (i) simplicidad y (ii) poder discriminatorio entre opciones buenas y
malas.
Las heurísticas no garantizan la acción más efectiva, pero muchas veces lo hacen.
En problemas complejos, las heurísticas juegan un papel fundamental para reducir el número de
evaluaciones y para obtener soluciones dentro de restricciones de tiempo razonables.
El problema de las 8 reinas: El problema consiste en colocar 8 reinas en un tablero de ajedrez (8× 8) sin
que se ataquen.
1. Preferir colocar reinas que dejen el mayor número de celdas sin atacar. En la figura 2.1 se
muestran tres puntos en el tablero (A, B, C). Por inspección, es posible verificar que heu1 (A) = 8
(ver figura 1.2), heu1 (B) = 9, heu1(C) = 10.
2. Ver cuál es el menor número de celdas no atacadas en cada renglón y escoger la que su número sea
menor. En este caso, también por inspección, es posible verificar que heu2 (A) = 1, heu2 (B) = 1,
heu2(C) = 2.
El problema del 8 – puzle: consiste en pasar de una configuración inicial a una final deslizando cuadros
aprovechando el espacio vacío.
1. Contar el número de cuadros que no corresponden a la meta (sin contar el blanco). En la figura 2.2,
se verifica por inspección que heu1 (A) = 2, heu1 (B) = 3, heu1 (C) = 4.
2. La suma de la distancia Manhattan de los cuadros que no corresponden a su lugar. Por inspección
de la figura 2.2, se verifica que heu2 (A) = 2, heu2 (B) = 4, heu2 (C) = 4.
3. Distancia del cuadro blanco al primer cuadro fuera de su lugar. En este caso, heu3 (A) = 1, heu3
(B) = 1, heu3 (C) = 3.
4. Distancia entre la posición final del blanco y su posición actual. En este caso, heu4 (A) = 2, heu4
(B) = 0, heu4 (C) = 2.
Figura 2.2. El problema del 8 puzzle
En toda disciplina, la optimización juega un papel importante en el diseño de las actividades a seguir; tales
disciplinas no se restringen a la ingeniería. Desde simples actividades rutinarias, en la vida se presentan
diversas situaciones que implican la optimización, incluso de manera intuitiva. Elegir la mejor ruta de la
casa la trabajo, o la mejor en el proceso de producción de artículos en una fábrica, a fin de minimizar
gastos de manufactura y mantener la calidad de tal producto. Frecuentemente la optimización se asocia
con el diseño, sea de un producto, servicio o estrategia; por ejemplo, en aeronáutica, el ahorro de
combustible mediante la planeación de trayectorias óptimas y altitudes de navegación es un problema que
sugiere por sí mismo la optimización de recursos.
La optimización puede verse como el proceso de obtener la mejor solución a un problema. En términos
generales, las características y requerimientos del problema determinan si la mejor solución de todas
(óptimo global) puede ser encontrado. Hay que ajustar las entradas del sistema o modelo matemático, para
encontrar el valor máximo o mínimo de la salida como resultado. La entrada consiste en variables, el
proceso o función se denomina función de evaluación. La salida es el costo o aptitud.
Ejemplo 2.2. El problema del agente viajero (TSP). Es un problema NP – duro (del acrónimo en inglés
de Polinómico No Determinista, o sea Non – Deterministic Polinomial time), y es de los más utilizados
en la literatura. Este problema trata de un agente viajero que debe visitar n ciudades y su objetivo es
encontrar el circuito hamiltoniano, es decir, que visite todas las ciudades una sola vez y regresar a casa;
pero con el mínimo costo posible (el viaje más corto). En la figura 2.3 se muestra se muestra un grafo
completo de 5 nodos (fully – connected) con pesos en cada arista. Dicho grafo es la representación
simplificada del mapa carretero entre 5 ciudades, donde el peso en cada arista representa la distancia en
km entre cada par de ciudades.
41 41
35 35
1 2 1 2
24 22 24 22
5 5
22 36 22 36
45 32 45 32
4 3 4 3
38 38
19 19
Figura 2.3. Problema del TSP para n = 5 nodos. El grafo completo a la izquierda, muestra la distancia que
existe entre cada pareja de nodos (pesos en las aristas). El grafo dirigido a la derecha, un circuito cuyo
nodo origen es el nodo 4. Las líneas punteadas en él, representan las aristas que son descartadas en el
recorrido.
Restricción. Las trayectorias deben ser circuitos (esto es nodo inicial = nodo final).
Variables. Pueden representarse de manera vectorial, donde cada componente represente la posición de
un nodo en el circuito, esto es,
C=C1,C2,…,Ci,…,C(n), (2.1)
fC=dC1,C2+…+dCi,Ci+1+…+dCn-1,Cn+dCn,C1, (2.2)
donde d(C(i), C(i + 1)) representa la distancia (en km) entre los nodos que ocupan la posición i – 1 e i en
el recorrido.
Ejercicio 2.1.
(a) Para el problema del TSP con n = 5 nodos del ejemplo 2.2., determine el costo o aptitud de los ciclos
C1 = [1, 2, 3, 4, 5] y C2 = [2, 4, 3, 1, 5].
(b) Diseñe una función en Matlab que se llame Eval_TSP.m que evalúe el costo de un circuito (ecuación
2.3).
(c) Invoque dicha función en el archivo de prueba (llámelo prueba_2_1.m) y compare con los resultados
del inciso (a).
% prueba 2_1
clear all
clc
%% declare e inicialice matriz de distancias (llame a esta variable d) %%
%% declare e inicialice los circuitos del inciso (a) (llámelos C1 y C2 respectivamente) %%
f1 = Eval_TSP(C1,d); % Costo para circuito 1
f2 = Eval_TSP(C2,d); % Costo del circuito 2
% Fin del programa prueba 2_1
Los algoritmos de optimización son métodos (heurísticas) de búsqueda, donde el objetivo es encontrar la
solución a un problema de optimización, tal que una cantidad dada sea optimizada, probablemente sujeta a
un conjunto de restricciones.
El espacio – estado (ó espacio de búsqueda) representa todos los posibles soluciones en un problema de
optimización, por lo general, esto representa un problema combinatorio. Las soluciones que arroja un
algoritmo de optimización pueden clasificarse de acuerdo a la calidad de la solución. Asumiendo que se
trata de un problema de minimización, se define formalmente el mínimo global (óptimo global para este
caso):
fx*<fx, ∀x ∈F (2.4)
fx*<fx, ∀x ∈N (2.5)
donde N ⊆ F es un conjunto de puntos factibles en la vecindad de x*. La figura 2.4 muestra los tipos de
óptimos en problemas sin restricciones.
Búsqueda exhaustiva. Es el método más simple dentro de la optimización discreta. Evalúa una solución
óptima para todas las combinaciones de las variables discretas. La mejor solución se obtiene a partir de la
búsqueda del valor mínimo dentro de la lista de soluciones factibles. Si el número de soluciones factibles
es muy grande, la búsqueda se vuelve un trabajo excesivo y engorroso. Presenta un crecimiento
exponencial en los cálculos con el número de variables discretas.
Ejercicio 2.2. Determine el número de configuraciones que existen en el espacio – estado del problema
del TSP
Objetivo: Aplicar el método de búsqueda exhaustiva para resolver el problema del TSP con n = 5 nodos.
Para llevar a cabo tal efecto, complete las tareas que se indican en el siguiente fragmento de código.
% Practica_1_Busqueda exhaustiva
clear all
clc
clf
%% declare e inicialice matriz de distancias (llámela d) %%
N = length(d);
CF = perms(1:N); % almacena en una matriz de tamaño N! x N las soluciones factibles
%% Evalúe cada circuito en CF mediante la función Eval_TSP.m y almacene los costos de cada uno en %
% un vector (llámelo EF) %%
plot(EF); % Grafica el costo de cada configuración factible
title(‘Espacio – Estado’);
xlabel(‘Configuracion’);
ylabel(‘Costo’);
%% Obtenga el mínimo del vector EF (a ésta variable llámela Eopt) %%
%% Obtenga la primer configuración de la matriz CF cuyo costo sea Eopt y llámela Copt %%
% Fin del programa
Búsqueda local consiste en un proceso iterativo que comienza en una solución y la mejora realizando
modificaciones locales. Básicamente empieza en una solución inicial y busca en su vecindad una mejor
solución y continúa con el proceso, hasta que no se pueda mejorar la solución actual. (el algoritmo de LS
de propósito general se muestra en la figura 2.5)
Se entiende por meta – heurística un conjunto de conceptos algorítmicos que pueden ser utilizados para
definir métodos heurísticos que se aplican a una amplia gama de problemas. Puede verse a una meta –
heurística como un algoritmo de propósito general, mientras que las heurísticas que se basan en ella son
algoritmos de propósito específico. A continuación se muestran las heurísticas más utilizadas y se
menciona una breve descripción de ellos.
2.3.2. Vecindad
Dada una solución inicial C0, se obtiene una nueva solución posible C1 al intercambiar dos nodos de la
solución inicial C0. El número máximo de vecinos que pueden obtenerse mediante esta heurística está
dado por la fórmula combinatoria,
No.Vecinos=NN-12 (2.7)
Lo anterior indica, que después de N(N – 1)/2 movimientos, si la solución C0 no es reemplazada (no
existe una mejor solución en su vecindad), el algoritmo de búsqueda local habrá terminado.
VECINDAD
5 4 1 2 3
1 5 4 2 3
2 5 1 4 3
3 5 1 2 4
C0 = SOLUCION INICIAL
4 1 5 2 3
4 5 1 2 3
4 2 1 5 3
4 3 1 2 5
4 5 2 1 3
4 5 3 2 1
4 5 1 3 2
Ejemplo 2.1. Dado el circuito C0 = [4, 5, 1, 2, 3], encuentre sus 10 vecinos correspondientes.
Figura 2.6. Vecindad correspondiente al circuito C0 = [4, 5, 1, 2, 3]. En la tabla a la izquierda, el número
marcado en azul se denomina pivote, observe como éste se mantiene fijo hasta que intercambia posición
con todos los nodos a su derecha. Una vez que esto ocurre, el pivote se mueve al siguiente nodo a la
derecha.
En la figura 2.7.se muestra el grafo dirigido correspondiente a cada circuito en la vecindad C0. Observe
que el efecto de intercambiar dos nodos en la solución inicial (ver figura 2.1), equivale a reemplazar dos
aristas en el grafo dirigido por dos nuevas rutas
41 41 41
35 35 35
1 2 1 2 1 2
24 22 24 22 24 22
5 5 5
22 36 22 36 22 36
45 32 45 32 45 32
4 3 4 3 4 3
38 38 38
19 19 19
41 41 41
35 35 35
1 2 1 2 1 2
24 22 24 22 24 22
5 5 5
22 36 22 36 22 36
45 32 45 32 45 32
4 3 4 3 4 3
38 38 38
19 19 19
C = [4,5,1,3,2]
41 41 41
35 35 35
1 2 1 2 1 2
24 22 24 22 24 22
5 5 5
22 36 22 36 22 36
45 32 45 32 45 32
4 3 4 3 4 3
38 38 38
19 19 19
41
35
1 2
24 22
5
22 36
45 32
4 3
38
19
Ejercicio 2.3. Determine la mejor solución que arroja el algoritmo de búsqueda local mediante la
heurística First Improvement Rule, si la solución inicial se propone como C0 = [4, 5, 1, 2, 3]. Apoye su
resultado mediante la realización de un programa en Matlab (llámelo prueba_2_2.m)
Ejemplo 2.2. Determine la mejor solución que arroja el algoritmo de búsqueda local mediante la
heurística best – improvement – rule, si la solución inicial está dada por C0 = [4, 5, 1, 2, 3].
La solución se muestra en la figura 2.8, se observa que la mejor solución encontrada por este algoritmo es
el vector [3, 5, 1, 4, 2] con una longitud total de su recorrido de 133. El número de vecindades visitadas
fue de 3, donde se revisaron un total de 30 configuraciones (esto es, 30 iteraciones).
C0 = Solución
Inicial C0 = Solución final
Figura 2.8. Algoritmo de búsqueda local con heurística best – imporvement – rule. Las configuraciones
marcadas en rojo representan el mejor vecino de cada localidad (mínimo local). Observe que en la última
vecindad visitada no existe ningún vecino que mejora la solución anterior, por lo que la búsqueda termina
arrojando el resultado [3, 5, 1, 4, 2].
Objetivo. Implementar la heurística best – improvement – rule para el problema del TSP con N = 5 nodos
y matriz de distancias correspondiente al grafo a la izquierda de la figura 2.3. Envíe sus resultados a un
archivo de texto llamado BIR.txt.
Los algoritmos de búsqueda local generalmente iteran partiendo de una solución aleatoria, generando un
vecino que sea mejor hasta que se llegue a una solución que no tiene mejores vecinos.
Desafortunadamente dichos algoritmos quedan atrapados en mínimos locales (soluciones sub – óptimas).
En cambio, recocido simulado se basa en aceptar en forma limitada transiciones que no mejoren la función
de evaluación, utilizando para ello un mecanismo no determinista (aleatorio).
Recocido simulado se llama así por su analogía con el proceso físico de recocido en sólidos, en el que:
Lo que hace recorrido simulado es establecer una conexión entre ese tipo de proceso termodinámico y la
búsqueda de un mínimo global (solución óptima)
La idea principal puede verse en la figura 2.9, donde T denota la temperatura y kB la constante de
Boltzmann.
Algoritmo Metropolis {
Lo que hace el algoritmo de Metrópolis es generar un vecino, calcularle su energía (función de evaluación
en problemas de optimización) y aceptar ese vecino si tiene menor energía o aceptarlo con mayor energía
pero con cierta probabilidad que depende de la temperatura (T).
Si el proceso se realiza durante muchas transiciones se puede llegar a lo que se conoce como un equilibrio
térmico. El equilibrio térmico está caracterizado por la distribución de Boltzmann.
La distribución de probabilidad de que el sólido se encuentre en el estado Ci con energía Ei a temperatura
T está dada por:
PTX=Ci=1ZTexp-EikBT (2.8)
donde X es la variable aleatoria estocástica que denota el estado actual del sólido, y Z(T) es la función de
partición definida como:
ZT=jexp-EjkBT (2.9)
La probabilidad de aceptar un estado Cj, dado que el sistema se encuentra en el estado Ci, está dada por la
regla no determinista:
Ejercicio 2.4. Suponga que, para cierto problema existen solo 3 configuraciones con energías E1 = 1, E5 =
5 y E10 = 10.
b. Determine la probabilidad de transición de los estados de mayor energía a los de menor energía, esto es,
P1{acepta 5}, P1{acepta 10} y P5{acepta 10} En T = 0.01 ¿Qué valor presentan las probabilidades de
transición? Indique su valor. En T = 200 ¿A qué valor convergen todas las probabilidades de transición?
Indique este valor
Solución: Deberá observar a la salida el par de gráficas que se muestra en la figura 2.10
1
E
1
Propabilidad [PT]
2/3 E
5
E
10
1/3
0
0 50 100 150 200
Temperatura [T]
1
P
15
2/3 P
110
P
Pij
510
1/3
0
0 50 100 150 200
Temperatura [T]
Figura 2.10
La analogía es la siguiente:
El algoritmo de recorrido simulado se puede ver como una iteración de algoritmos de Metrópolis (ver
figura 4.2). Si se baja la temperatura suficientemente lento se puede alcanzar el equilibrio térmico en cada
temperatura. Esto se hace mediante la generación de varias transiciones en cada temperatura.
Se puede mostrar que bajando suficientemente lento el parámetro asociado a la temperatura y generando
suficientes transiciones en cada una de ellas, se puede alcanzar la configuración óptima.
Inicialmente valores grandes de T aceptan cualquier estado. Al tender T a cero, se dejan de aceptar
estados. La velocidad de convergencia del algoritmo está determinada por Lk y T.
2.4.3.1. Aproximaciones
• Una secuencia finita de valores para el parámetro de control (T): (i) un valor inicial T0, (ii) una
función de decremento, y (iii) un valor final (condición de paro).
• Un número finito de transiciones para cada valor del parámetro de control (longitud finita de cada
cadena de Markov).
Mecanismo de enfriamiento propuesto por Kirpatrick:
• Valor inicial del parámetro de control: empezar con un entero positivo pequeño e irlo
multiplicando por un factor mayor a 1 hasta que las transiciones generadas sean casi todas
aceptadas.
• Decremento del parámetro de control T: Tk+1 = αTk, donde α es una constante cercana a 1 [0.8,
0.99].
• Valor final del parámetro de control (T): terminar cuando loa solución obtenida permanece igual
en un número determinado de cadenas de Markov consecutivas.
• Longitud de las cadenas de Markov: hacer longitud (L) fija (de otra forma Lk ∞, conforme Tk →
0)