Tema 1 Heurísticos
Tema 1 Heurísticos
Tema 1 Heurísticos
Modelos avanzados de IO
Que no se Heurísticos, Tema 1
pueden resolver
de forma óptima Metaheurísticos, Tema 2
Problemas de
optimización
Métodos para
Multiobjetivo
resolverlo, Tema 3
Desarrollo por
Con incertidumbre
e
escenarios, Tema 4
Clases y evaluación:
• Usaremos el portátil para usar Excel o Lingo.
• Podemos necesitar el PC de las aulas de ordenador. Aprended usuario y
contraseña!
• Colgaré ejercicios para que los hagáis. Colgaré las soluciones.
Modelos avanzados de IO
Evaluación:
• Examen final: 6 puntos, es obligatorio aprobar este examen (3/6)
• Ejercicios teórico-prácticos, modelizar, sintaxis indexada, utilización de
Excel, diseño de algoritmos, gráficas
• Evaluación continua: 4 puntos
• Pruebas teórico-prácticas y con ordenador (2 puntos)
• Trabajo en grupo (1 punto)
• Parte de la evaluación continua se puede recuperar, pero toda junta,
en un examen el día del examen final (3 puntos).
• El trabajo en grupo no se puede recuperar (1 punto).
• Se puede restar evaluación continua por hablar/molestar en clase
Recuperación de clases:
11/10: recuperarla jueves 26/9 ó 3/10
Modelos avanzados de IO
Tema 1. Algoritmos Heurísticos
6
Problemas de optimización
Ejemplo: Problema de la Mochila (Knapsack problem)
Problemas de optimización: ¿Qué son y cómo resolverlos?
Restricciones que dan lugar a soluciones factibles. Queremos la mejor de ellas, que
maximice o minimice la función objetivo.
ݔ { א0,1} i
7
¾“¿ P = NP ?" es uno de los problemas "del Milenio", 1 millón $ por resolverlo
• Algoritmos heurísticos: Repetitivos, la manera de obtener las soluciones sigue el mismo guión.
Sólo estudian una zona del conjunto de soluciones factibles. No aprovechan la solución obtenida
en una iteración para el resto de iteraciones.
• Dado un problema, primero hay que intentar resolverlo óptimamente antes de aplicar un algoritmo
heurístico.
“Pasos” = Algoritmo 10
Ejemplo – Problema de la Mochila
Si definimos xi = 1 si cogemos el proyecto i-ésimo, bi el rendimiento del i-ésimo
proyecto, ci el coste, peri el nº de personas por proyecto, Pres el presupuesto
que tenemos y Nper el nº de personas en la plantilla, obtenemos el siguiente
problema:
ݔܽܯσୀଵ ܾ · ݔ
Max ܾଵ ݔଵ + ܾଶ ݔଶ +…+ܾ ݔ
s.a. ܿଵ ݔଵ + ܿଶ ݔଶ +…+ܿ ݔ ܲݏ݁ݎ s.a. σୀଵ ܿ · ݔ ܲݏ݁ݎ
ݎ݁ଵ ݔଵ + ݎ݁ଶ ݔଶ + ڮ+ ݎ݁ ݔ ܰݎ݁
ݔ א0,1 ݅ σୀଵ ݎ݁ · ݔ ܰݎ݁
11
12
Algoritmos Constructivos
En cada problema una solución factible estará formada por un número de ‘elementos’.
Tenemos que detectar esos elementos.
Soluciones
13
Codificación
¾ Es el 1er paso antes de cualquier algoritmo. Es un paso esencial.
¾ Tiene que estar completamente claro cómo obtener una solución del problema a
partir de una codificación y viceversa.
¾ A veces son todas factibles y otras tenemos que comprobarlo con cada
codificación.
¾ Ejemplos de codificación
¾ Un vector binario, de 0’s y 1’s
¾ Una permutación de números de 1 a n
14
¾ En ocasiones son necesarios dos o más vectores para la codificación
Método constructivo
Elemento esencial en el problema de mochila (piezas): Proyectos.
¿Qué es el pseudo-código?
• Son los pasos que hay que seguir para realizar el algoritmo.
• Tiene que servir para diferentes ejemplos (instancias) del mismo problema.
• Tiene mucho que ver con los diagramas de flujo y diagramas de control, que
habréis visto o veréis en otras asignaturas.
Algoritmo Constructivo
1. L = {1,…,n} lista de proyectos. V(i) = 0 i = 1, …, n;
2. Costeacum=0, Trabacum = 0, función objetivo f = 0.
3. Mientras L z
3.1. Escoger un proyecto i L.
3.2. Si (Costeacum + ci d Presup , Trabacum + ntrabi d Ntrabmax)
3.2.1. V(i) = 1. f = f + bi.
3.2.2. Costeacum = Costeacum + ci . Trabacum = Trabacum + ntrabi.
3.3. Eliminamos i de L.
4. Proporcionamos V y la función objetivo f.
1er Bucle paso 3: Elegimos el proyecto 7 pq tiene mayor beneficio. Cabe en la solución,
pk 0+12 d 30 y 0+20 d 130. V(7)=1, Costeacum = 12, Trabacum = 20, f = 2.5
2º Bucle paso 3: Elegimos el proyecto 1. No cabe, por culpa del personal, 20+120 no es
d 130. La solución no cambia.
3er Bucle paso 3: Elegimos el proyecto 4. 12+10 d 30 y 20+60 d 130. Solución: {4,7},
Costeacum = 22, Trabacum = 80, f = 2.5 + 1.2 = 3.7, V(4)=1.
4º Bucle paso 3: Elegimos el proyecto 2. Cabe en la solución. 22+5 d 30 y 80+25 d 130.
Solución: {2,4,7}, Costeacum = 27, Trabacum = 105, f = 3.7+1=4.7 , V(2)=1.
4º Bucle paso 3: Elegimos el proyecto 6. No cabe en la solución por coste.
5º Bucle paso 3: Elegimos el proyecto 3. No cabe en la solución por coste.
6º Bucle paso 3: Elegimos el proyecto 5. No cabe en la solución por coste.
La solución final es que realizamos los proyectos 2, 4 y 7, con función objetivo 4.7.
18
Constructivo mochila
Aleatorio, Inteligente, Inteligente aleatorizado
¿Cómo escoger el proyecto?
19
¾ Una solución es incompleta cuando se pueden añadir, quitar una pieza a la solución
sin modificar otras piezas, mejorando la función objetivo y que la solución siga
siendo factible. En en aquellos problemas que las piezas tengan varias posibilidades
de realizarse, una solución será incompleta si se puede cambiar la manera de
realizar la pieza, que se mejore la función objetivo y la solución siga siendo factible.
¾ Que una solución sea completa o incompleta dependerá del problema específico
con el que trabajemos. Si el problema lo permite, la solución final que proporcione un
algoritmo tiene que ser completa.
20
Estructura de un algoritmo (pseudo-código)
Antes del algoritmo
Definir el significado de las variables y constantes que el algoritmo utiliza.
Inicialización
Se inicializan las listas, vectores y acumuladores.
Finalización
Pasos finales para finalizar la solución (si son necesarios)
Devolver la solución y función objetivo.
21
22
Componentes de un algoritmo (pseudo-código)
Datos: Si dependen de los elementos llevarán un subíndice o dos asociados
ci = coste del proyecto i; bi = beneficio de realizar el proyecto i-ésimo
23
25
Diseño de algoritmos
¾ Tiene que ser claros y que se entienda fácilmente lo que hacen.
¾ Tienen que servir para cualquier instancia. Ojo con los datos que haya que
generalizar.
26
1.3.– El problema del agento viajero
27
29
30
Formulación Matemática del TSP
ݔ = 1 ܸ א ݅
ୀଵ
ݔ = 1 ܸ א ݅
ୀଵ
31
Dada una lista de 5 ciudades y las distancias entre cada par de ellas se
muestra en la tabla, ¿Cuál es la ruta más corta posible que visita cada
ciudad exactamente una vez y regresa a la ciudad origen?
C1 C2 C3 C4 C5
C1 999 16 63 21 20
C2 57 999 40 46 69
C3 23 11 999 55 53
C4 71 53 58 999 47
C5 27 79 53 35 999
32
Ejemplos de problemas modelizados como un TSP
EJEMPLO TSP1:
La producción diaria en la compañía Rainbow incluye lotes de pintura blanca (B), amarilla (A), roja (R), negra
(N) y verde (V). Las instalaciones de producción se deben limpiar entre uno y otro lote. La tabla muestra en
minutos los tiempos de limpieza. El objetivo es determinar la secuencia de producción para los lotes de
colores que minimice el tiempo de limpieza total.
Blanca 10 17 15 14
Amarilla 20 19 18 15
Negra 50 44 22 25
Roja 45 40 20 26
Verde 30 32 33 35
EJEMPLO TSP2:
Tenemos 4 trabajos que tenemos que realizar en una máquina. En las tablas siguientes se muestra el tiempo
de ejecución de los trabajos y el tiempo de preparación de la máquina en función del trabajo que se realice
antes. El objetivo es determinar la secuencia de producción para las piezas que minimice el tiempo de
ejecución total.
t1 t2 t3 t4
0 1 2 1 1 Sería otras instancias del TSP. Nuestro
t1 3 4 4 algoritmo tiene que ser capaz de poder
t2 1 3 3 Aplicarse a cualquier instancia.
t3 2 2 3
t4 2 4 6
33
34
Ejemplo - Constructivos para el TSP
Esquema básico
Antes del algoritmo
Elementos/piezas para construir la solución: ciudades
n = nº ciudades; cij = coste de ir de la ciudad i a la ciudad j
35
36
Ejemplo - Constructivos inteligente para el TSP
Vecino más próximo
C1 C2 C3 C4 C5
C1 999 16 63 21 20
C2 57 999 40 46 69
C3 23 11 999 55 53
C4 71 53 58 999 47
C5 27 79 53 35 999
Pasos 1-3: Elegimos una ciudad, por ejemplo el 2. V(1) = 2. Solución: (2…), L = {1, 3, 4, 5}
1er Bucle paso 4: Elegimos la ciudad más cercana a 2 en L: 3. V(2) = 3. Solución: (2,3…) f = 40. L = {1,
4, 5}
2º Bucle paso 4: Elegimos la ciudad más cercana a 3 en L: 1 . V(3)= 1Solución: (2,3,1…) f = 40+23 = 63.
L = {4, 5}
3er Bucle paso 4: Elegimos la ciudad más cercana a 1 en L: 5. V(4) = 5. Solución: (2,3,1,5…)
f = 63+20=83. L ={4}
Recordemos que del vértice 4 se pasaría al vértice inicial, el vértice 2. f = 118 + 53 = 171
Solución (2,3,1,5,4)
37
38
¿Qué es una búsqueda local?
ெଵ ெଶ ெଷ ெସ
S1 S2 S3 S4 S5
39
40
¿Qué es una búsqueda local?
Hay varias formas principales de realizar esta búsqueda en el vecindario,
veremos dos:
41
43
44
Ejemplo – Búsqueda Local para el TSP
Inserción
MOVIMIENTO: Seleccionar un nodo del tour y probar a ponerlo en cualquier otro lugar
Iteración 1 1
Solución Actual: (1,2,5,3,4) C=264
Vértice (elegido al azar) para aplicar BL: 1
Vecindario del 1: (2,1,5, 3,4) C=238 2 5
(2,5,1, 3,4) C=267
(2,5,3,1,4) C=219
3 4
En una búsqueda local exhaustiva generaríamos todo el vecindario y nos quedaríamos con la mejor solución (la de C=219).
En una búsqueda no exhaustiva iríamos generando y nos quedaríamos con la primera mejor que encontráramos (la de
C=238 en este caso).
Iteración 2
Solución Actual: (2,5,3,1,4) C=219
Vértice (elegido al azar) para aplicar BL: 3
Vecindario del 3: (3,2,5,1,4) C=186 Mejora la solución por tanto actualizamos la mejor solución y seguimos.
45
Iteración 3
Solución Actual: (3,2,5,1,4,3) C=186
Vértice (elegido al azar) para aplicar BL: 2
Vecindario del 2: (2,3,5,1,4,2) C=194
(3,5,2,1,4,3) C=268
(3,5,1,2,4,3) C=200
Como no mejoramos pasamos a estudiar la vecindad de otro vértice.
Vértice (elegido al azar) para aplicar BL: 4
Vecindario del 4: (3,4,2,5,1,3) C=267
(3,2,4,5,1,3) C=194
(3,2,5,4,1,3) C=200
Como no mejoramos pasamos a estudiar la vecindad de otro vértice.
Vértice (elegido al azar) para aplicar BL: 5
Vecindario del 5: …………………
.
46
Comparación de métodos
Bibliografía
¾ Jünger, M., Reinelt, G., Giovanni, R. (1995), The traveling salesman problem, Chapter 4,
Handbooks in Operations Research and Management Science, Volume 7, Pages 225–330,
doi:10.1016/S0927-0507(05)80121-5
48