Optimización Combinatoria Algoritmos de Optimización con búsqueda de árbol Problemas de Optimización Combinatoria Modelado de restricciones especiales Modelos de Set Covering, Packing y Partitioning Modelos con Generación de Columnas Modelos de Problemas de Asignación Optimización Combinatoria Algoritmos de Optimización con búsqueda de árbol Problemas de Optimización Combinatoria Modelado de restricciones especiales Modelos de Set Covering, Packing y Partitioning Modelos con Generación de Columnas Modelos de Problemas de Asignación Inteligencia Artificial 1 Semestre 2009 Campus Santiago Elizabeth Montero Ureta 1 Optimización Combinatoria 2 Algoritmos de Optimización con búsqueda de árbol 3 Problemas de Optimización Combinatoria 4 Modelado de restricciones especiales 5 Modelos de Set Covering, Packing y Partitioning Departamento de Informática Universidad Técnica Federico Santa Marı́a 6 Modelos con Generación de Columnas 1er Semestre 2009 7 Modelos de Problemas de Asignación 1/31 Optimización Combinatoria Algoritmos de Optimización con búsqueda de árbol Problemas de Optimización Combinatoria Modelado de restricciones especiales Modelos de Set Covering, Packing y Partitioning Modelos con Generación de Columnas Modelos de Problemas de Asignación 2/31 Optimización Combinatoria Algoritmos de Optimización con búsqueda de árbol Problemas de Optimización Combinatoria Modelado de restricciones especiales Modelos de Set Covering, Packing y Partitioning Modelos con Generación de Columnas Modelos de Problemas de Asignación Idea Introducción Criterio a optimizar Función de costo a minimizar. Función de ganancia a maximizar. Encontrar una solución factible y óptima de acuerdo a algún criterio definido. Ejemplos de criterios: Principio Una solución es una hoja de árbol de búsqueda con el mejor criterio a optimizar. Scheduling (Calendarización): Minimizar la fecha de término Asignement (Asignación): Minimizar el número de recursos utilizados Diseño: Minimizar el costo de la solución Marco de aplicación Diversos problemas de optimización. Dificultades Pueden producirse infinitas ramas o redundancia (varios nodos representando el mismo estado). La idea es evitar esta situación. En problemas sobre-restringidos se busca una solución que satisface al menos las restricciones prioritarias. 3/31 4/31 Optimización Combinatoria Algoritmos de Optimización con búsqueda de árbol Problemas de Optimización Combinatoria Modelado de restricciones especiales Modelos de Set Covering, Packing y Partitioning Modelos con Generación de Columnas Modelos de Problemas de Asignación Optimización Combinatoria Algoritmos de Optimización con búsqueda de árbol Problemas de Optimización Combinatoria Modelado de restricciones especiales Modelos de Set Covering, Packing y Partitioning Modelos con Generación de Columnas Modelos de Problemas de Asignación Formulación de Modelos Modelos con restricciones para las variables Todo-o-nada Para el problema lineal: La formulación de Modelos de Optimización requiere la definición de: máx 18 · x1 + 3 · x2 + 9 · x3 Función Objetivo / Objetivo Medida cuantitativa del funcionamiento del sistema que se desea optimizar (maximizar o minimizar). 2 · x1 + x2 + 7 · x3 ≤ 150 Variables Representan las decisiones que se pueden tomar para afectar el valor de la Función Objetivo. 0 ≤ x1 ≤ 60 0 ≤ x2 ≤ 30 Restricciones Representan el conjunto de relaciones (ecuaciones e inecuaciones) que las variables están obligadas a cumplir. 0 ≤ x3 ≤ 20 Constantes Valores de ciertos atributos del problema conocidos a priori y fijos que permiten simplificar la formulación del modelo. Nuevo requerimiento: Cada xi puede ser utilizado ya se en su cota superior o no ser utilizado. 6/31 5/31 Optimización Combinatoria Algoritmos de Optimización con búsqueda de árbol Problemas de Optimización Combinatoria Modelado de restricciones especiales Modelos de Set Covering, Packing y Partitioning Modelos con Generación de Columnas Modelos de Problemas de Asignación Optimización Combinatoria Algoritmos de Optimización con búsqueda de árbol Problemas de Optimización Combinatoria Modelado de restricciones especiales Modelos de Set Covering, Packing y Partitioning Modelos con Generación de Columnas Modelos de Problemas de Asignación Modelos con restricciones para las variables Todo-o-nada Disyunción Restricción: Disyunción: De 2 restricciones al menos una debe darse. Debe cumplirse una de las restricciones, no necesariamente las dos. Sea Yi = 1 0 Si xi es utilizado si no {f (x) ≤ 0} ó {g (x) ≤ 0} Variables: máx 18 · 60 · Y1 + 3 · 30 · Y2 + 9 · 20 · Y3 2 · 60 · Y1 + 30 · Y2 + 7 · 20 · Y3 ≤ 150 x1 ≤ 60 · Y 1 x2 ≤ 30 · Y 2 x3 ≤ 20 · Y 3 δ= 1 0 obliga a g (x) ≤ 0 y relaja la otra restricción obliga a f (x) ≤ 0 y relaja la otra restricción Restricciones: f (x) ≤ M1 · δ g (x) ≤ M2 · (1 − δ) 7/31 8/31 Optimización Combinatoria Algoritmos de Optimización con búsqueda de árbol Problemas de Optimización Combinatoria Modelado de restricciones especiales Modelos de Set Covering, Packing y Partitioning Modelos con Generación de Columnas Modelos de Problemas de Asignación Optimización Combinatoria Algoritmos de Optimización con búsqueda de árbol Problemas de Optimización Combinatoria Modelado de restricciones especiales Modelos de Set Covering, Packing y Partitioning Modelos con Generación de Columnas Modelos de Problemas de Asignación Cumplir k de N ecuaciones Seleccionar el valor de una función entre N valores posibles Restricción: Seleccionar entre N valores: Una ecuación con múltiples valores posibles. v1 ... f (x) = vN Restricción: Cumplir k de N ecuaciones: De N ecuaciones se deben cumplir al menos k, siendo k < N {f1 (x) ≤ 0}, ..., {fN (x) ≤ 0} Variables: yi = 1 0 si la restricción i se cumple si no Variables: yi = Restricciones: yi si la ecuación toma el valor i-ésimo si no Restricciones: fi (x) ≤ Mi · (1 − yi ) N X 1 0 f (x) = k = N X v1 · yi i=1 i=1 N X yi = 1 i=1 9/31 Optimización Combinatoria Algoritmos de Optimización con búsqueda de árbol Problemas de Optimización Combinatoria Modelado de restricciones especiales Modelos de Set Covering, Packing y Partitioning Modelos con Generación de Columnas Modelos de Problemas de Asignación 10/31 Optimización Combinatoria Algoritmos de Optimización con búsqueda de árbol Problemas de Optimización Combinatoria Modelado de restricciones especiales Modelos de Set Covering, Packing y Partitioning Modelos con Generación de Columnas Modelos de Problemas de Asignación Modelos tipo Problema de la Mochila Modelos de Presupuesto [Mochila Multidimensional] El lı́mite total de recursos disponibles consumidos por los proyectos seleccionados e inversiones en cada perı́odo de tiempo no deben exceder la cantidad de tiempo disponible. Problema de optimización combinatoria puro: Variables binarias y una sola restricción. xi = 1 0 La actividad i se realiza si no Las restricciones son: máx 8000 · x1 + 3000 · x2 + 1500 · x3 + 7000 · x4 + 1000 · x5 + 1200 · x6 5 · x1 + 3 · x2 + 2 · x3 + 4,5 · x4 + 1,5 · x5 + 1 · x6 ≤ 10 6 · x1 + 2 · x2 + 3 · x3 + 1 · x7 + 4 · x9 + 5 · x12 ≤ 10 (2000-200 x1 , x2 , x3 , x4 , x5 , x6 ∈ {0, 1} 3 · x2 + 5 · x3 + 5 · x5 + 8 · x7 + 5 · x9 + 8 · x10 + 7 · x12 + 1 · x13 + 4 · x14 ≤ 12 (2003-200 8 · x5 + 1 · x4 + 4 · x10 + 2 · x11 + 4 · x13 + 5 · x14 ≤ 14 (2006-200 8 · x6 + 5 · x8 + 7 · x11 + 1 · x13 + 3 · x14 ≤ 14 (2009-201 xi ∈ {0, 1} 11/31 12/31 Optimización Combinatoria Algoritmos de Optimización con búsqueda de árbol Problemas de Optimización Combinatoria Modelado de restricciones especiales Modelos de Set Covering, Packing y Partitioning Modelos con Generación de Columnas Modelos de Problemas de Asignación Optimización Combinatoria Algoritmos de Optimización con búsqueda de árbol Problemas de Optimización Combinatoria Modelado de restricciones especiales Modelos de Set Covering, Packing y Partitioning Modelos con Generación de Columnas Modelos de Problemas de Asignación Modelos de Presupuesto [Mochila Multidimensional] Modelos de Set Covering, Packing y Partitioning Trabajan con un conjunto de elementos, la idea es contruir sub-conjuntos de elementos considerando diversos puntos de vista respecto a las restricciones: Restricciones en un Modelo de Presupuesto: Actividades mutuamente excluyentes La actividad 4 no se puede realizar si se realiza la actividad 5 y viceversa x4 + x5 ≤ 1 Set Covering Requieren que cada elemento pertenezca a al menos un sub-conjunto. Dependencia entre actividades La actividad 11 requiere que la actividad 2 se realice Set Packing Requieren que cada elemento aparezca en a lo más un sub-conjunto. Set Partitioning Requieren que cada elemento aparezca en exactamente un sub-conjunto. x11 ≤ x2 13/31 Optimización Combinatoria Algoritmos de Optimización con búsqueda de árbol Problemas de Optimización Combinatoria Modelado de restricciones especiales Modelos de Set Covering, Packing y Partitioning Modelos con Generación de Columnas Modelos de Problemas de Asignación 14/31 Optimización Combinatoria Algoritmos de Optimización con búsqueda de árbol Problemas de Optimización Combinatoria Modelado de restricciones especiales Modelos de Set Covering, Packing y Partitioning Modelos con Generación de Columnas Modelos de Problemas de Asignación Set Covering Set Covering Instalar la menor cantidad de Estaciones de Bomberos de manera que puedan satisfacer las demandas de las 11 comunas de una ciudad. Se considera que una Estación de Bomberos es capaz de satisfacer las demandas de la comuna en la que se encuentra y de las inmediatamente adyacentes a dicha comuna. Variables: 1 xi = 0 Si se instala una Estación de Bomberos en la comuna i si no Objetivo: Mı́n x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9 + x10 + x11 Restricciones: x1 + x2 + x3 + x4 ≥ 1 (Comuna 1) x1 + x2 + x3 + x5 ≥ 1 (Comuna 2) x1 + x2 + x3 + x4 + x5 + x6 ≥ 1 (Comuna 3) x1 + x3 + x4 + x6 + x7 ≥ 1 (Comuna 4) x2 + x3 + x5 + x6 + x8 + x9 ≥ 1 (Comuna 5) ... 15/31 16/31 Optimización Combinatoria Algoritmos de Optimización con búsqueda de árbol Problemas de Optimización Combinatoria Modelado de restricciones especiales Modelos de Set Covering, Packing y Partitioning Modelos con Generación de Columnas Modelos de Problemas de Asignación Optimización Combinatoria Algoritmos de Optimización con búsqueda de árbol Problemas de Optimización Combinatoria Modelado de restricciones especiales Modelos de Set Covering, Packing y Partitioning Modelos con Generación de Columnas Modelos de Problemas de Asignación Set Covering Set Covering Variables: 1 xi = 0 Instalar cuatro Estaciones de Bomberos de manera que puedan satisfacer las demandas de las comunas más importantes de una ciudad. La importancia de la comuna viene dada por la cantidad de ciudadanos que viven en dicha comuna. Se considera que una Estación de Bomberos es capaz de satisfacer las demandas de la comuna en la que se encuentra y de las inmediatamente adyacentes a dicha comuna. Si se instala una Estación de Bomberos en la comuna i si no yi = 1 Si la comuna i no será servida 0 si no Constantes: Pi = Población de la comuna i Objetivo: Mı́n 11 X Pi · yi i=1 Restricciones: x1 + x2 + x3 + x4 + y1 ≥ 1 (Comuna 1) x1 + x2 + x3 + x5 + y2 ≥ 1 (Comuna 2) ... 11 X xi = 4 (Sólo cuatro Estaciones) i=1 17/31 Optimización Combinatoria Algoritmos de Optimización con búsqueda de árbol Problemas de Optimización Combinatoria Modelado de restricciones especiales Modelos de Set Covering, Packing y Partitioning Modelos con Generación de Columnas Modelos de Problemas de Asignación 18/31 Optimización Combinatoria Algoritmos de Optimización con búsqueda de árbol Problemas de Optimización Combinatoria Modelado de restricciones especiales Modelos de Set Covering, Packing y Partitioning Modelos con Generación de Columnas Modelos de Problemas de Asignación Set Covering Set Covering Variables: Considere un conjunto S de personas. xj = S = {1, 2, 3, 4, 5} 1 0 Si se elije el equipo j si no Constantes: Suponga que desea organizar dichas personas en varios equipos conocidos: aij = 1 Si la persona i está en el equipo j 0 si no cj = Costo de elegir el equipo j El conjunto de equipos posibles es s Objetivo: Por ejemplo: s = {{1, 2}, {4, 5}, {1, 3, 5}, {2, 4, 5}, {1}, {3}} Cada equipo tiene un costo cj Se desea elegir los equipos que permiten tener ocupadas a todas las personas con un costo mı́nimo Mı́n 6 X c j · xj j=1 Restricciones: No importa que la misma persona este en más de un equipo 6 X aij · xj ≥ 1 ∀i j=1 19/31 20/31 Optimización Combinatoria Algoritmos de Optimización con búsqueda de árbol Problemas de Optimización Combinatoria Modelado de restricciones especiales Modelos de Set Covering, Packing y Partitioning Modelos con Generación de Columnas Modelos de Problemas de Asignación Optimización Combinatoria Algoritmos de Optimización con búsqueda de árbol Problemas de Optimización Combinatoria Modelado de restricciones especiales Modelos de Set Covering, Packing y Partitioning Modelos con Generación de Columnas Modelos de Problemas de Asignación Set Partitioning Set Partitioning Variables: xj = Considere un conjunto S de personas. 1 0 Si se elije el equipo j si no Constantes: S = {1, 2, 3, 4, 5} aij = Suponga que desea organizar dichas personas en varios equipos conocidos: 1 Si la persona i está en el equipo j 0 si no bj = Beneficio de elegir el equipo j El conjunto de equipos posibles es s Objetivo: Por ejemplo: s = {{1, 2}, {4, 5}, {1, 3, 5}, {2, 4, 5}, {1}, {3}} Máx Cada equipo tiene un beneficio bj 6 X bj · xj j=1 Se desea elegir los equipos que permiten que cada persona este en sólo un equipo con un beneficio máximo Restricciones: 6 X aij · xj = 1 ∀i j=1 21/31 Optimización Combinatoria Algoritmos de Optimización con búsqueda de árbol Problemas de Optimización Combinatoria Modelado de restricciones especiales Modelos de Set Covering, Packing y Partitioning Modelos con Generación de Columnas Modelos de Problemas de Asignación 22/31 Optimización Combinatoria Algoritmos de Optimización con búsqueda de árbol Problemas de Optimización Combinatoria Modelado de restricciones especiales Modelos de Set Covering, Packing y Partitioning Modelos con Generación de Columnas Modelos de Problemas de Asignación Set Packing Set Packing Variables: Considere un conjunto S de personas. xj = S = {1, 2, 3, 4, 5} 1 0 Si se elije el equipo j si no Constantes: Suponga que desea organizar dichas personas en varios equipos conocidos: aij = 1 Si la persona i está en el equipo j 0 si no bj = Beneficio de elegir el equipo j El conjunto de equipos posibles es s Objetivo: Por ejemplo: s = {{1, 2}, {4, 5}, {1, 3, 5}, {2, 4, 5}, {1}, {3}} Cada equipo tiene un beneficio bj Se desea elegir los equipos que proporcionen el beneficio máximo sin que exista solape Máx 6 X bj · xj j=1 Restricciones: No importa que una persona no esté en ningún equipo 6 X aij · xj ≤ 1 ∀i j=1 23/31 24/31 Optimización Combinatoria Algoritmos de Optimización con búsqueda de árbol Problemas de Optimización Combinatoria Modelado de restricciones especiales Modelos de Set Covering, Packing y Partitioning Modelos con Generación de Columnas Modelos de Problemas de Asignación Optimización Combinatoria Algoritmos de Optimización con búsqueda de árbol Problemas de Optimización Combinatoria Modelado de restricciones especiales Modelos de Set Covering, Packing y Partitioning Modelos con Generación de Columnas Modelos de Problemas de Asignación AA Crew Scheduling Definición Generación de Columnas Problema: Encontrar la secuencia de vuelos para cada tripulación sobre un perı́odo mı́nimo de 2 dı́as y máximo de 3 dı́as. La secuencia debe comenzar y terminar en la ciudad donde vive la tripulación. El objetivo es minimizar los costos. La generación de columnas se utiliza como una estrategia de dos pasos para enfrentar la resolución de problemas combinatorios altamente complejos. Suponga la siguiente secuencia de viajes de American Airlines. Consiste en la generación de una secuencia de columnas donde cada columna representa una solución factible y luego, resolver el problema como un set Partitioning (o Covering o Packing) para seleccionar un conjunto óptimo de esas alternativas. Ventaja: Flexibilidad Desventaja: Dificultad para enumerar todas las posibilidades. 25/31 Optimización Combinatoria Algoritmos de Optimización con búsqueda de árbol Problemas de Optimización Combinatoria Modelado de restricciones especiales Modelos de Set Covering, Packing y Partitioning Modelos con Generación de Columnas Modelos de Problemas de Asignación Optimización Combinatoria Algoritmos de Optimización con búsqueda de árbol Problemas de Optimización Combinatoria Modelado de restricciones especiales Modelos de Set Covering, Packing y Partitioning Modelos con Generación de Columnas Modelos de Problemas de Asignación Generación de Columnas en AA Crew Scheduling Generación de Columnas en AA Crew Scheduling Paso 2: Resolver el problema como un Set [Covering/ Packing/ Partitioning] Variables: 1 Si se elije la columna j xj = 0 si no Paso 1: Generación de una secuencia de columnas j 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Secuencia de Vuelos 101 - 203 - 406 - 308 101 - 203 -407 101 - 204 - 305 - 407 101 - 204 - 308 203 - 406 - 310 203 - 407 - 109 204 - 305 - 407 - 109 204 - 308 - 109 305 - 407 - 109 - 212 308 - 109 - 212 310 - 212 402 - 203 402 - 204 - 305 402 - 204 - 310 - 211 406 - 308 - 109 - 211 406 - 310 - 211 407 - 109 - 211 26/31 Costo 2900 2700 2600 3000 2600 3150 2550 2500 2600 2300 2000 2100 2400 2550 2750 2600 2550 Constantes: aij = 1 0 Si el vuelo i está en la columna j si no Cj = Costo de la columna j Objetivo: Máx 17 X Cj · xj j=1 Restricciones: 17 X aij · xj = 1 ∀i j=1 Solución x1 = x9 = x14 = 1 a un costo total de 8050 27/31 28/31 Optimización Combinatoria Algoritmos de Optimización con búsqueda de árbol Problemas de Optimización Combinatoria Modelado de restricciones especiales Modelos de Set Covering, Packing y Partitioning Modelos con Generación de Columnas Modelos de Problemas de Asignación Optimización Combinatoria Algoritmos de Optimización con búsqueda de árbol Problemas de Optimización Combinatoria Modelado de restricciones especiales Modelos de Set Covering, Packing y Partitioning Modelos con Generación de Columnas Modelos de Problemas de Asignación Modelos de Problema de Asignación Modelos de Problema de Asignación Cuadrática Descripción Ejemplo: Mall Layout Encontrar la mejor asignación máquina-trabajo, personal-cliente,..., para minimizar costos Variables: 1 Si i esta asignado a j xij = 0 si no Constantes: Cij = Costo de asignar i a j Se tienen 4 posibles ubicaciones para departamentos en un shopping mall. Se conocen las distancias (en metros) entre las ubicaciones. Se conoce además el número de clientes a la semana que desearı́an visitar los diferentes pares de departamentos. Por ejemplo, se proyecta que 500 clientes a la semana visitarı́an la tienda de ropa (Tienda 1) y computación (Tienda 2). El objetivo del problema es determinar la unicación de las tiendas minimizando la molestia de los clientes. Objetivo: Mı́n XX i Cij · xij j Restricciones: X xij = 1 ∀i xij = 1 ∀j j X i 29/31 Optimización Combinatoria Algoritmos de Optimización con búsqueda de árbol Problemas de Optimización Combinatoria Modelado de restricciones especiales Modelos de Set Covering, Packing y Partitioning Modelos con Generación de Columnas Modelos de Problemas de Asignación Modelos de Problema de Asignación Cuadrática Modelado Variables: 1 Si i esta asignado a j 0 si no xij = Constantes: Cijkl = Costo de asignar i a j y k a l Objetivo: Mı́n XXXX i j Cijkl · xij · xkl k≥i l6=j Restricciones: X xij = 1 ∀i xij = 1 ∀j j X i 31/31 30/31