METAHEURISTICAS Ideas, Mitos, Soluciones



Documentos relacionados
Un algoritmo genético híbrido para resolver el EternityII. Rico, Martin; Ros, Rodrigo Directora: Prof. Dra. Irene Loiseau

Temario III Algoritmos Combinatorios y Metaheurísticas

Scheduling Problem. Cuándo y dónde debo hacer cada trabajo?

Computación Evolutiva - Mutación: Cruza, Inversión y Mutación para Permutaciones

7. Conclusiones. 7.1 Resultados

Métodos evolutivos de Optimización. Prof. Cesar de Prada Dpto. Ingeneiria de Sitemas y Automática Universidad de Valladolid

Aplicación de la inteligencia artificial a la resolución del problema de asignación de estudiantes del departamento de PDI

Algoritmos sobre Grafos

Complejidad - Problemas NP-Completos. Algoritmos y Estructuras de Datos III

Métodos Heurísticos en Inteligencia Artificial

TEMA 3 PROFESOR: M.C. ALEJANDRO GUTIÉRREZ DÍAZ 2 3. PROCESAMIENTO DE CONSULTAS DISTRIBUIDAS

ETSIINGENIO 2009 DIBUJO DE GRAFOS MEDIANTE ALGORITMOS GENÉTICOS

Programación Genética

Análisis de los datos

Ingeniería del Software I Clase de Testing Funcional 2do. Cuatrimestre de 2007

Proyecto Help Desk en plataforma SOA Alcance del Sistema Versión 1.2. Historia de revisiones

Resumen de técnicas para resolver problemas de programación entera Martes, 9 de abril. Enumeración. Un árbol de enumeración

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología

Reglas del juego. 2 o más jugadores

TEMA 5. INTRODUCCIÓN AL MANEJO DE ORIGIN 6.1

Tema 7: Optimización sobre Redes Muchos de los problemas de Investigación Operativa pueden modelizarse y resolverse sobre un grafo: conjunto de

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

Qué es Scrum? Basado en el texto Explicando Scrum a mi abuela de Jorge Serrano - MVP Visual Developer - Visual Basic

CAPITULO 4 JUSTIFICACION DEL ESTUDIO. En este capítulo se presenta la justificación del estudio, supuestos y limitaciones de

Introducción a la Computación Evolutiva

Fundamentos de Investigación de Operaciones Investigación de Operaciones 1

Flujo Máximo. Agustín J. González ELO320: Estructura de Datos y Algoritmos 1er. Sem. 2002

DESCRIPCIÓN DE LA METODOLOGÍA UTILIZADA EN EL PROGRAMA DE CESTAS REDUCIDAS ÓPTIMAS

Métodos Iterativos para Resolver Sistemas Lineales

Explicación de la tarea 3 Felipe Guerra

PROGRAMACIÓN LINEAL Introducción Inecuaciones lineales con 2 variables

H E R R A M I E N T A S D E A N Á L I S I S D E D A T O S HERRAMIENTAS DE ANÁLISIS DE DATOS

Técnicas De Conteo. En este caso si k es grande, no es tan sencillo hacer un conteo exhaustivo de los puntos o resultados de S.

Unidad II: Análisis de Redes

Un programa entero de dos variables Jueves, 4 de abril. La región factible. Por qué programación entera? Variables 0-1

Tema 6: Problemas Especiales de Programación Lineal

ANÁLISIS DE DATOS NO NUMERICOS

Programa Tracker : Cómo generar Vectores y sumarlos

Introducción a la Teoría de Grafos

Búsqueda heurística Prof. Constantino Malagón

Capítulo 12: Indexación y asociación

GANTT, PERT y CPM. Figura 5.3: Carta GANTT 3.

COMBINATORIA VARIACIONES. Las variaciones son aquellas formas de agrupar los elementos de un conjunto teniendo en cuenta que:

Análisis Estadístico de Datos Climáticos

K2BIM Plan de Investigación - Comparación de herramientas para la parametrización asistida de ERP Versión 1.2

Diseño de bases de datos Diapositiva 1

Análisis de propuestas de evaluación en las aulas de América Latina

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere.

x y 8000 x + y a) La región factible asociada a las restricciones anteriores es la siguiente: Pedro Castro Ortega lasmatematicas.

4.3 INTERPRETACIÓN ECONÓMICA DE LA DUALIDAD

Estudiante: Mag. Ingeniero. Roberto Schovelin Surhoff Director: Dr. Arq. Josep Roca Cladera Tutor Dr. Ingeniero. Francisco Nuñez Cerda

EL PROBLEMA DE LOCALIZACIÓN DE SERVICIOS

Ejercicios de Programación Lineal

Datos del autor. Nombres y apellido: Germán Andrés Paz. Lugar de nacimiento: Rosario (Código Postal 2000), Santa Fe, Argentina

Q-flow Patrones básicos de Workflow

MEDIDAS DE TENDENCIA CENTRAL

Adaptación al NPGC. Introducción. NPGC.doc. Qué cambios hay en el NPGC? Telf.: Fax.:

1. Dominio, simetría, puntos de corte y periodicidad

Algoritmos Genéticos Y

ALGORITMO HILL CLIMBING

Unidad III: Programación no lineal

EJERCICIOS RESUELTOS SOBRE ERRORES DE REDONDEO

Capítulo 4 Procesos con estructuras de repetición

Ejemplos de conversión de reales a enteros

Programación Lineal: Modelos PLE

Redes de Kohonen y la Determinación Genética de las Clases

Proyecto Help Desk en plataforma SOA Modelo de Dominio Versión 1.3. Historia de revisiones

INGENIERÍA DEL SOFTWARE

MANUAL DE USUARIO SISTEMA DE ALMACEN DIF SONORA

Planeación de la Recolección de Datos. Planeacion de Recoleccion de Datos

Programación Lineal Entera

Figura 4.1 Clasificación de los lenguajes de bases de datos

SISI / TS / AG / SR SIMULADOR DE SISTEMAS DE INVENTARIOS ESTOCASTICOS

Ejercicio de estadística para 3º de la ESO

Tema 3. Medidas de tendencia central Introducción. Contenido

GUIA APLICACIÓN DE SOLICITUDES POR INTERNET. Gestión de Cursos, Certificados de Aptitud Profesional y Tarjetas de Cualificación de Conductores ÍNDICE

PREPROCESADO DE DATOS PARA MINERIA DE DATOS

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas.

Metaheurísticas: una visión global *

DETERMINACIÓN DEL VOLUMEN DE PEDIDO.

Los números racionales

Ecuaciones de primer grado con dos incógnitas

La ventana de Microsoft Excel

1. DML. Las subconsultas

Base de datos en Excel

Actividades con GeoGebra

Funciones, x, y, gráficos

Definición Se llama suceso aleatorio a cualquier subconjunto del espacio muestral.

Guía para la elaboración de Proyectos de Formación Sindical Ambiental e Investigación en Trabajo y Desarrollo Sustentable

Búsqueda Local. cbea (LSI-FIB-UPC) Inteligencia Artificial Curso 2011/ / 33

Manual del Usuario. Sistema de Help Desk

2002 Emerson Process Management. Todos los derechos reservados. Vea este y otros cursos en línea en

TÉCNICAS DE PLANIFICACIÓN Y CONTROL DE PROYECTOS 1

Introducción. Definición de los presupuestos

Optimización de Procesos

MÁQUINAS DE VECTORES DE SOPORTE

Unicenter Service Desk r11.1. Guía para el Usuario Final de Service Desk

Transcripción:

METAHEURISTICAS Ideas, Mitos, Soluciones

OPTIMIZACION COMBINATORIA Qué es un problema de optimización combinatoria?

Cómo se modela matemáticamente un problema de optimización combinatoria? Minimizar (o maximizar) f(x) sujeto a g (x i ) b i i=1...m 1 h (x i ) = c i i= m 1 +1,... M x i ε Z función objetivo variables de decisión restricciones (No siempre se puede modelar exactamente así un problema de optimización combinatoria)

Ejemplos de problemas de optimización combinatoria: Problema de la suma de subconjuntos Determinación de caminos mínimos en grafos Flujo en redes Asignación de tareas Problema de la mochila Problemas de ruteo de vehículos. El problema del Viajante de comercio Diseño de redes de comunicaciones Ruteo en redes de comunicaciones VLSI

Planificación de tareas Asignación de recursos y horarios en instituciones educativas Minimizaron de desperdicios en el corte de materiales Localización de plantas Planificación financiera Problemas de energía Biología Computacional (secuenciamiento de ADN, árboles filogenéticos, doblamiento de proteínas) etc.

Cómo se resuelve un problema de optimización combinatoria? Enumeración completa o algoritmo de fuerza bruta. Sirve? COMPLEJIDAD COMPUTACIONAL Qué hacer? SOLUCIONES EXACTAS HEURISTICAS

Heurísticas clásicas HEURISTICAS Metaheurísticas o heurísticas modernas o sistemas inteligentes Cuándo usarlas? Problemas para los cuales no se conocen buenos algoritmos exactos Problemas difíciles de modelar

Porqué usarlas? Adaptabilidad a modificaciones de los datos o del problema una vez que ya se obtuvo un resultado. Fáciles de implementar y programar Basadas en tener una gran capacidad de cálculo No sólo para problemas de optimización combinatoria

Cómo se evalúan? problemas test problemas reales problemas generados al azar cotas inferiores

ESQUEMA GENERAL DE UN ALGORITMO DE DESCENSO (O BUSQUEDA LOCAL) S= conjunto de soluciones N(s) =soluciones vecinas de la solución s ---------------------------------------------------------------- Elegir una solución inicial s 0 S Repetir Elegir s N(s 0 ) tal que f(s) < f(s 0 ) Reemplazar s 0 por s Hasta que f(s) > f(s 0 ) para todos los s N(s 0 ) ----------------------------------------------------------------

Cómo determinar las soluciones vecinas de una solución s dada? Qué se obtiene con este procedimiento? Sirve? Optimos locales y globales Espacio de búsqueda

Ejemplo: Supongamos que tenemos el problema de asignar tareas a un sola máquina de modo a minimizar el tiempo total de ejecución. Cada trabajo j tiene un tiempo de procesamiento p j y una fecha de entrega d j. El objetivo es entonces minimizar T = j max {(C j d j ),0} donde C j es el momento en que se completa el trabajo j.

Como elegir las soluciones iniciales. A priori se puede tomar cualquier permutación de las tareas. Determinación de los vecinos de una solución dada: en este caso podemos tomar los que se obtengan de la solución actual cambiando la posición de un trabajo con otro. En un problema con 4 trabajos por ejemplo los vecinos de (1,2,3,4) serán: N(s) = {(1,3,2,4),(3,2,1,4),(1,2,4,3), (1,4,3,2),(2,1,3,4),(4,2,3,1)}

TECNICAS METAHEURISTICAS Simulated annealing (primeros trabajos 1953, 1983) Algoritmos Tabú Search (primeras aplicaciones a optimización combinatoria en 1986, basado en algunas ideas de los 70) Algoritmos genéticos y evolutivos (primeras ideas en los 60, en ese momento mayormente aplicaciones a problemas de IA). Algoritmos meméticos, BRKGA (1994, 2007) Scatter search and path relinking (1998) GRASP (1989) ISL Colonia de hormigas (1992) Redes neuronales (primeras ideas en los 60, resurgieron en los 80) otras.. Híbridos

Origen, motivación, exceso de nomenclatura, similitudes forzadas con problemas de la física y la biología por ejemplo, etc. Se usan en otros problemas, que no son de optimización combinatoria también.

TABU SEARCH CONCEPTOS BASICOS: Permitir elegir una solución vecina que no sea estrictamente mejor que la actual para salir de un mínimo local. Usar una lista Tabú de soluciones (o movimientos) para evitar que el algoritmo cicle. Usar una función de aspiración que permita en algunos casos elegir un elemento o movimiento Tabú.

ESQUEMA GENERAL DE TABU SEARCH Inicialización Elegir una solución inicial s en S Niter:=0 bestiter:=0 bestsol:= s T:= Inicializar la función de aspiración A Mientras ( f(s) > f(s*) y (niter- bestiter < nbmax) hacer niter := niter + 1 generar un conjunto V* de soluciones sv en N(s) que no sean Tabu o tales que A(f(s)) f(sv) elegir una solución s* que minimice f en V* actualizar la función de aspiración A y la lista Tabú T si f(s*) < f(bestsol) entonces bestsol:= s* bestiter := niter s:=s* -------------------------------------------------------------------------

Qué hay que hacer para usar este esquema?: Determinar el conjunto de soluciones factibles S. Determinar la función objetivo f. Dar un procedimiento para generar los elementos de N(s), vecinos de s. Decidir el tamaño del conjunto V* N(s) que será considerado en cada iteración Definir el tamaño de la lista Tabú T. De ser posible definir una cota inferior para la función objetivo f. Definir la función de Aspiración A(z) para todos los valores z que puede tomar la función objetivo. Definir criterios de parada (nbmax y/o comparación con la cota inferior si la hay)

Ejemplo: seguimos con el ejemplo anterior de asignar tareas a un sola máquina de modo a minimizar el tiempo total de ejecución. Como construir el conjunto de soluciones posibles V*? En este caso, si, cuando la solución actual es (1,2,3,4) la lista Tabu, proveniente de los pasos anteriores del algoritmo es T= {(1,3,2,4),(3,1,2,4)(3,2,1,4)} Entonces V* tiene solo cuatro elementos (1,2,4,3), (1,4,3,2),(2,1,3,4),(4,2,3,1)}

Posibles reglas Tabu a usar en este caso: impedir todos los movimientos donde i ocupa la posición p(i) y j ocupa la posición p(j) impedir los movimientos donde alguna de las situaciones arriba suceda impedir que el trabajo i vuelva a una posición k con k < p(i) impedir que el trabajo i cambie de posición impedir que i y j cambien de posición Como elegir el tiempo de permanencia en la lista Tabu: valor fijo ( a ser ajustado en la experimentación) valor aleatorio entre un tmin y tmax dados a priori. valor variable de acuerdo al tamaño de la lista y las variaciones del valor de la función objetivo.

Ejemplos de criterios de aspiración: cuando todos los movimientos o vecinos posibles son Tabu, se elige alguno de ellos ( el menos tabu ) cuando con un movimiento tabu se obtiene una solución mejor que la mejor hasta ese momento (global o en la región)

MAS DETALLES de Tabu search... Uso de la memoria a largo plazo, en contraposición con la que se usa para manejar N(s), a corto plazo : Frecuencia : guardar información sobre atributos en una misma posición, movimientos que se repiten, datos sobre el valor de la solución cuando un atributo esta en una posición dada, etc. Lista de soluciones elite Intensificación Diversificación Camino de soluciones entre dos soluciones prometedoras. Etc.

GRASP (Feo, T.,Resende, M., Greedy randomized adaptive search procedures, Journal of Global Optimization, 1995, pp 1,27) Esquema de un algoritmo GRASP ------------------------------------------------------------------------ Mientras no se verifique el criterio de parada ConstruirGreedyRandomizedSolución ( Solución) Búsqueda Local (Solución) ActualizarSolución (Solución, MejorSolución) End -------------------------------------------------------------------------

Algoritmo ConstruirGreedyRandomizedSolución (Solución) En vez de usar un algoritmo goloso que elija el elemento más prometedor para agregar a la solución, en cada iteración se elige al azar entre los que cumplen que no pasan de un porcentaje α del valor del mejor elemento. Se puede limitar el tamaño de la lista de estos elementos. Algoritmo Búsqueda Local (Solución) Definición de intercambios

EJEMPLOS 1. Cubrimiento de conjuntos Dados n conjuntos P 1, P 2,..P n sea I = i P i y J ={1,2,.n} Un subconjunto J * de J es un cubrimiento si i J* P i = I El problema de recubrimiento mínimo (set covering problem) consiste en determinar un cubrimiento de I de cardinal mínimo ( o sea con la mínima cantidad de conjuntos P i )

Ejemplo: P 1 = { 1,2 }, P 2 = { 1,3 }, P 3 = { 2 }, P 4 = { 3 } Los cubrimientos mínimos tienen cardinal 2 y son: {P 1 P 2, } ó {P 1 P 4, } ó {P 2 P 3, }

Primer paso: ConstruirGreedyRandomizedSolución ( Solución) Un algoritmo goloso podría ser agregar al cubrimiento el conjunto que cubre la mayor cantidad de elementos de I sin cubrir. En este caso para el algoritmo GreedyRandomized consideramos como conjuntos candidatos a los que cubren al menos un porcentaje α del número cubierto por el conjunto determinado por el algoritmo goloso. También se puede limitar el tamño de la lista de candidatos a tener a lo sumo β elementos. Dentro de esta lista de conjuntos se elige uno al azar.

Segundo paso: Búsqueda Local (Solución) Para el algoritmo de descenso se definen los vecinos usando el siguiente procedimiento de intercambios: Un k,p-intercambio, con p < q, consiste en cambiar si es posible k-uplas del cubrimiento por p-uplas que no pertenezcan al mismo. Ejemplo: cambiar la 2-upla P 2 = { 1,3 } con la 1-upla P 4 = { 3 }

Ejemplo: P 1 = { 3,4 }, P 2 = { 3 }, P 3 = { 2 }, P 4 = { 2,3,4 }, P 5 = { 3,4,5 }, P 6 = { 1,4,5 }, P 7 = { 2,3 }, P 8 = { 4 } Tomamos α = 40% En la primer iteración la lista es {P 1, P 4, P 5,P 6, P 7 }. Supongamos que sale elegido al azar P 5.. Para el segundo paso la lista es {P 3, P 4,P 6, P 7 }. Si resultara elegido P 3 tendríamos el cubrimiento {P 3, P 5,P 6 } que no es óptimo y podriamos pasar al algoritmo de búsqueda local. Si en primer lugar hubiera resultado elegido P 6. y después hubiera salido P 4.hubieramos obtenido la solución óptima {P 4,P 6 }.

Resultados presentados en el trabajo de Feo y Resende: Testearon el algoritmo en problemas no muy grandes pero díficiles que aparecían en la literatura. Se lograron resolver problemas pequeños pero que aún no habían sido resueltos. Se hicieron 10 corridas para cada ejemplo con ß = 0.5,0.6,0.7,0.8,0.9. Se usaron solo 1,0 intercambios o sea sólo se eliminaron columnas superfluas.

Los ejemplos siguientes de GRASP los veremos más adelante después de ver los conceptos correspondientes de grafos.

2. Máximo conjunto independiente i) en este caso la medida para decidir que nodo agregar al conjunto independiente puede ser el grado. Se puede hacer un algoritmo goloso que en cada iteración agregue el nodo de menor grado. ii) En este caso el intercambio se hace de la siguiente forma: Si tenemos un conjunto independiente S de tamaño p, para cada k- upla de nodos en ese conjunto hacemos una búsqueda exhaustiva para encontrar el máximo conjunto independiente en el grafo inducido por los nodos de G que no son adyacentes a los nodos de S = S \ {v1...vk}. Si el conjunto N resultante es de cardinal mayor que S entonces S U N es un conjunto independiente mayor que S.

RESULTADOS Se testeó el algoritmo en grafos generados al azar de 1000 nodos (con ciertas condiciones). Se usó un máximo de 100 iteraciones y ß = 0.1. Se hizo un preprocesamiento para facilitar el trabajo de GRASP, que se corre en grafos más chicos que los originales.

3. Job Scheduling Problema: Un conjunto de tareas debe ser ejecutada en un único procesador. Hay tiempos no simétricos de transición entre tareas. Base del algoritmo: se construye un camino hamiltoniano en forma golosa. Se usa un procedimiento de intercambio de nodos para la búsqueda local.

4. A GRASP for graph planarization, (Resende, Ribeiro, 1995). Problema: Encontrar un subconjunto F de los ejes de G tal que el grafo G\F sea planar. Base: un algoritmo GRASP como primer paso de una heurística conocida que antes usaba un algoritmo goloso + heuristica de conjunto independiente + extension del subgrafo planar.

Tabu Search y GRASP se dan como ejemplo de técnicas metaheurísticas. Dar una idea de todas ellas y de sus numerosísimas aplicaciones abarca un curso completo o más. A continuación mencionamos dos referencias recientes de entra las muchas que dan un panorama completo sobre metaheurísticas: Gendreau, M., Potvin, J.»Handbook of Metaheuristics, Springer, 2010. Talbi, E.G. "Metaheuristics: from design to implementation", Wiley, 2009