OPTIMIZACIÓN Y SIMULACIÓN PARA LA EMPRESA Tema 3 Programación Entera ORGANIZACIÓN DEL TEMA • Sesiones: • Introducción y formulación • Variables binarias • Métodos de solución OPTIMIZACIÓN DE MODELOS DISCRETOS • Los modelos discretos son una extensión de los modelos lineales, donde algunas variables toman valores enteros • Habitualmente estas variables toman los valores 0-1: variables binarias • • Estas variables se usan para representar condiciones lógicas Estos modelos permiten representar mejor situaciones complejas • Economías de escala • Discontinuidades en el problema • Incluso aproximaciones de soluciones globales OPTIMIZACIÓN DE MODELOS DISCRETOS • En cambio, el cálculo de soluciones es mucho más costoso • Ya no podemos usar las propiedades “suaves” de las funciones para obtener información útil cerca de la solución • • Ahora es necesario explorar muchos más candidatos a óptimo Algunos problemas con decenas de variables son casi imposibles de resolver en un tiempo razonable MODELOS DISCRETOS: FORMULACIÓN • La formulación es similar a la de los modelos lineales: • Si I={1,…, n}, el problema es lineal entero puro • Si I≠{1,…, n}, el problema es lineal entero mixto • Si xi ∈ {0,1} ∀i ∈ I, el problema es binario o 0-1 MODELOS DISCRETOS: FORMULACIÓN • En general, un modelo discreto se usa por distintas razones: • Directas: las variables de interés deben tomar valores enteros • Codificación: las variables enteras (usualmente 0-1) se usan para representar el cumplimiento (o no) de algunas condiciones • Transformación: las variables enteras son útiles para representar ciertas condiciones (implicaciones, condiciones lógicas, etc.) SELECCIÓN DE ALTERNATIVAS • Primer caso: selección entre alternativas • Usaremos variables binarias yi para escoger subconjuntos entre una serie de alternativas • • • Si las variables yi toman el valor1, la alternativa se escoge, en caso contrario no se escoge (o no se realiza) Estas variables se multiplican por sus correspondientes costes, uso de recursos, etc. • Si la variable toman el valor 1, asumimos el correspondiente coste • Si toma el valor 0, no incurrimos en el coste Las variables se pueden usar para contar el número de proyectos seleccionados, etc. • Sumando los valores de yi EJEMPLO 1: SELECCIÓN DE PROYECTOS • Descripción: • Una compañía quiere evaluar 5 proyectos a ejecutar en próximos 3 años • Estos proyectos requieren de inversiones durante los próximos 3 años • Si se ejecuta un proyecto, se deben realizar todas las inversiones anuales asociadas al mismo • Hay un presupuesto total, que no se debe exceder • ¿Qué proyectos seleccionar para aumentar lo más posible los beneficios? EJEMPLO 1: SELECCIÓN DE PROYECTOS • Datos: • Cada año, se dispone de 25 millones de euros para realizar inversiones • El beneficio esperado (en mill de euros) para cada proyecto, y las cantidades a invertir cada año para ejecutar los proyectos son: Inversión Proyecto Año 1 Año 2 Año 3 Beneficio 1 5 1 8 20 2 4 7 10 40 3 3 9 2 20 4 7 4 1 15 5 8 6 10 30 EJEMPLO 1: SELECCIÓN DE PROYECTOS • Modelo: • Variables de decisión • • Función objetivo • • Dónde invertir el presupuesto Maximizar el beneficio total Restricciones • No exceder el presupuesto anual EJEMPLO 1: SELECCIÓN DE PROYECTOS • Modelo: • Variables de decisión • Una variable binaria xi asociada a cada proyecto xi = • ⇢ 1 0 si se selecciona el proyecto i, si no se lleva a cabo el proyecto i. i = 1, . . . , 5 Función objetivo • Maximizar el beneficio esperado max 20x1 + 40x2 + 20x3 + 15x4 + 30x5 x EJEMPLO 1: SELECCIÓN DE PROYECTOS • Restricciones: • Presupuestos anuales: 5x1 + 4x2 + 3x3 + 7x4 + 8x5 25 1x1 + 7x2 + 9x3 + 4x4 + 6x5 25 8x1 + 10x2 + 2x3 + 1x4 + 10x5 25 • Definición de variables binarias: xi 2 {0, 1}, • (presupuesto año 1) (presupuesto año 2) (presupuesto año 3) i = 1, . . . , 5 Cálculo de solución en Excel PROBLEMAS DE ASIGNACIÓN • Segundo caso: problemas de asignación • Se trata de encontrar asignaciones eficientes de algunos recursos a un conjunto de tareas • Ejemplos: • Planificación de horarios, de tareas a máquinas, rotas de trenes o aviones, asignación de comerciales a regiones, etc. • Problema binario 0-1 • El objetivo es generalmente minimizar costes, tiempo de viaje, o maximizar eficiencia • Aparece como submodelo de modelos más complejos • Las variables binarias yij toman valor 1 si recurso i se asigna a tarea j • El número de tareas o recursos a asignar se controla sumando yij EJEMPLO 2: PROBLEMA DE ASIGNACIÓN • Descripción: • John es el director un bufete de abogados y está interesado en asignar de la forma más eficiente posible sus abogados a los casos (clientes) en este momento • Actualmente, el bufete tiene 4 casos (clientes) distintos • Para atender esos casos, cuenta con 4 abogados: Ann, Brian, Casey y Don • • Cada uno de ellos puede ser asignado a un único caso • Un único abogado debe llevar cada caso La asignación se realizará en función de alguna medida de eficiencia EJEMPLO 2: PROBLEMA DE ASIGNACIÓN • Datos: • John ha recogido datos sobre la eficiencia de cada abogado y tipo de caso (en una escala de 1 a 9): Medida de eficiencia Abogado Divorcios (1) Fusiones (2) Robos (3) Donaciones (4) Ann (1) 6 2 8 5 Brian (2) 9 3 5 8 Casey (3) 4 8 3 4 Don (4) 6 7 6 4 • Estos datos son estimaciones basadas en el éxito en casos pasados • Y tienen en cuenta la especialización/experiencia de cada abogado EJEMPLO 2: PROBLEMA DE ASIGNACIÓN • Modelo: • Variables de decisión • Una variable binaria xij para cada posible asignación xij = • ⇢ 1 0 si se asigna al abogado i el caso j, si no se asigna. Función objetivo • Maximizar la calidad de la asignación maximize 6x11 + 2x12 + 8x13 + 5x14 + 9x21 + 3x22 + 5x33 + 8x44 + 4x31 + 8x32 + 3x33 + 4x34 + 6x41 + 7x42 + 6x43 + 4x44 EJEMPLO 2: PROBLEMA DE ASIGNACIÓN • Restricciones • Cada caso debe tener un (único) abogado asignado: 4 X xij = 1, j = 1, . . . , 4 i=1 • Cada abogado debe estar asignado a un (único) caso: 4 X xij = 1, i = 1, . . . , 4 j=1 • Condición de variables binarias: xij 2 {0, 1}, i = 1, . . . , 4, j = 1, . . . , 4 CONDICIONES LÓGICAS • Tercer caso: condiciones lógicas • Variables binarias que se pueden usar para forzar asociaciones entre variables • Si una actividad se lleva a cabo, otras tareas se deben llevar a cabo (o no) • Una compañía debe decidir qué proyectos abordar en próximos años: • Algunos proyectos requieren de la ejecución de otros previamente • Algunos proyectos pueden no ser compatibles • Algunos proyectos no pueden empezarse hasta que no pase un tiempo tras la finalización de otros CONDICIONES LÓGICAS • Aparecen cuando el valor de una variable binaria impone condiciones sobre otras • La condición y = 0 • • • x = 0 es equivalente a x ≤ 1 - y Si el proyecto y se lleva a cabo, el proyecto x no se puede llevar a cabo La condición y = 1 • x = 1 es equivalente a x ≥ 1 - y Si el proyecto y no se lleva a cabo, el proyecto x se debe llevar a cabo La condición y = 1 • • Si el proyecto y no se lleva a cabo, el proyecto x tampoco La condición y = 0 • x = 0 es equivalente a x ≤ y x = 1 es equivalente a x ≥ y Si el proyecto y se lleva a cabo, el proyecto x también EJEMPLO 3: PRESUPUESTO NASA • Descripción: • La NASA debe decidir qué proyectos espaciales ejecutar en próximos años • Periodo 2015-2039 • Cada proyecto tiene un beneficio o interés científico determinado • Cada proyecto requiere de una inversión durante periodos específicos • Los proyectos presentan dependencias complejas entre sí • Algunos no se pueden llevar a cabo hasta que otros se hayan ejecutado • Algunos proyectos son incompatibles entre sí: solo uno se puede llevar a cabo EJEMPLO 3: PRESUPUESTO NASA • Datos: Inversión Proyecto 2015/19 2020/24 2025/29 2030/34 2035/39 Beneficio esperado no con depende de 50 5 3 70 4 3 1 Satélite de comunicaciones 6 200 2 Enlace microondas orbital 2 3 3 3 Aterrizaje en Io 3 5 20 4 Misión Urano 2042 10 5 Misión Urano 2027 5 6 Aterrizaje en Mercurio 7 Misión a Saturno 8 1 1 5 4 10 Grandes estructuras orbitales 5 8 11 Imágenes en color AR 12 Tecnología médica espacial 4 8 8 Imágenes infrarrojas AR 9 SETI desde la Tierra 8 4 2 5 20 3 5 3 10 11 200 14 150 7 18 7 8 13 Plataforma en órbita polar 1 4 1 1 300 14 SETI satélites geosíncronos 4 5 3 3 185 12 14 14 14 Presupuestos 10 8 9 2 EJEMPLO 3: PRESUPUESTO NASA • Modelo: • Variables de decisión • Una variable binaria xi para cada proyecto xi = • ( 1 0 si la misión i se aprueba, si se rechaza. Función objetivo • Maximizar el beneficio (científico) esperado de los proyectos seleccionados max 200x1 + 3x2 + 20x3 + 50x4 + 70x5 + 20x6 + 5x7 + 10x8 x + 200x9 + 150x10 + 18x11 + 8x12 + 300x13 + 185x14 EJEMPLO 3: PRESUPUESTO NASA • Modelo: • Restricciones: • Límites presupuestarios en cada periodo de 5 años 6x1 + 2x2 + 3x3 + 1x7 + 4x9 + 5x12 10 3x2 + 5x3 + 5x5 + 7x8 + 5x9 + 8x10 + 7x12 + x13 + 4x14 12 8x5 + x6 + 4x10 + 2x11 + 4x13 + 5x14 14 8x6 + 5x8 + 7x11 + 1x13 + 3x14 14 10x4 + 4x6 + 1x13 + 3x14 14 • Condición de variables binarias xi 2 {0, 1}, i = 1, . . . , 14 EJEMPLO 3: PRESUPUESTO NASA • Modelo: • Restricciones: • Incompatibilidades: • Los proyectos Misión Urano 2042 (4) y Misión Urano 2027 (5) son incompatibles x4 + x5 1 • Los proyectos 8 y 11, o 9 y 14, también son incompatibles x8 + x11 1 x9 + x14 1 EJEMPLO 3: PRESUPUESTO NASA • Modelo: • Restricciones: • Dependencias: • Si el proyecto Aterrizaje en Io (3) no se lleva a cabo, los proyectos 4, 5, 6 y 7 tampoco pueden realizarse: x4 x3 , • x5 x3 , x6 x3 , x7 x3 O alternativamente, x4 + x5 + x6 + x7 4x3 • Para seleccionar el proyecto 11, el proyecto 2 debe haber sido completado previamente x11 x2 VALORES DISCONTINUOS • Cuarto caso: valores discontinuos • Las variables binarias se pueden usar para representar discontinuidades en funciones o variables • Costes fijos: • Cuando ejecutar una determinada tarea conlleva un gasto fijo, independientemente de su nivel • • Comisiones mínimas al cambiar de moneda (de euros a dólares p.e.), o al sacar dinero en un cajero del extranjero, o al comprar acciones en bolsa, etc. Variables semicontinuas: • Si una tarea se lleva a cabo, se debe realizar a un nivel mínimo • Por ejemplo, una variable vale 0 o bien 20, 21,..., 100 VALORES DISCONTINUOS • Modelización • En estos casos definimos tanto variables continuas como discretas • Sea xi una variable continua con coste fijo, o semicontinua • Sea yi una variable binaria asociada, que toma el valor 1 cuando xi es distinta de 0 y el valor 0 en otro caso • Una función con coste fijo K y coste variable d se representará como • Una variable semicontinua xi ∈ {0,[a,b]} se representará como VALORES DISCONTINUOS • Representación de discontinuidades con variables binarias • Necesitamos asegurar que las variables xi e yi estén relacionadas • Si xi es 0, yi debe ser 0, y si xi es positivo entonces yi debe valer 1 • En el caso de variables semicontinuas esto es automático • Para costes fijos, necesitamos restricciones adicionales • Las constantes C y c se deben escoger como cotas inferiores y superiores para xi EJEMPLO 4: PROBLEMA DE PRODUCCIÓN • Descripción: • La compañía X produce ketchup en 5 plantas • Estas plantas tienen distintos costes • • • • Costes de operación fijos y variables Y capacidades de producción El producto se transporta a 4 grandes centros de distribución • Con contratos que definen las cantidades anuales a proporcionar • Con diferentes costes de producción y de distribución El objetivo es determinar la producción óptima y el plan de distribución • Minimizando el coste total EJEMPLO 4: PROBLEMA DE PRODUCCIÓN • Datos: • • Capacidades de plantas y costes fijos: Planta P1 P2 P3 P4 P5 Capacidad 300 200 300 200 400 Coste fijo 35000 45000 40000 42000 40000 Costes de producción y transporte/Demandas: A: Costes De: C1 C2 C3 C4 P1 1180 1160 1190 1200 P2 810 800 850 760 P3 850 830 890 840 P4 770 750 810 780 P5 800 770 820 830 Demanda C1 C2 C3 C4 200 300 200 250 EJEMPLO 4: PROBLEMA DE PRODUCCIÓN • Modelo: • Variables: xij = toneladas de ketchup producidas en la planta j y entregadas al cliente i ( 1 si la planta j está produciendo yj = i = 1, . . . , 4, j = 1, . . . , 5 0 si no lo está • Función objetivo: EJEMPLO 4: PROBLEMA DE PRODUCCIÓN • Modelo • Restricciones • Demanda: • Capacidad de las plantas y relaciones entre x e y : • No negatividad y definición de variables binarias: MODELOS DISCRETOS: SOLUCIÓN • Herramienta básica: • • Resolver problemas relajados (ignorando condición de variables enteras): PLs Estrategias naif: • Redondeo • Redondear los valores que han de ser enteros en la solución • Muchas alternativas de redondeo (cantidad exponencial) • No hay garantías de optimalidad • Peor aún: no hay garantías de factibilidad MODELOS DISCRETOS: SOLUCIÓN • Algoritmos eficientes: • Cutting planes (Planos de corte) • No se redondea directamente el vértice solución del PL relajado • Se introducen restricciones que fuerzan a la solución entera a ser un vértice del problema modificado • En el proceso se eliminan puntos que no pueden ser soluciones • Existen técnicas sofisticadas basadas en las propiedades de la solución • • Gomory cuts O en propiedades de las restricciones del problema • Las aproximaciones convexas contienen las soluciones enteras MODELOS DISCRETOS: SOLUCIÓN • Algoritmos eficientes: • Branch and bound • • Dividir el problema introduciendo condiciones simples sobre los valores de las variables • Esto fuerza a las soluciones de las distintas partes a ser enteras • Aparte, esto permite enumerar implícitamente todas las posibles soluciones enteras • Para ganar eficiencia, se calculan cotas sobre la función objetivo para eliminar subproblemas donde no puede estar la solución • Dividir el problema en subproblemas más pequeños: “branching” o ramificar • Descartar muchos de ellos: “bounding” o acotar Branch and cut • Una combinación eficiente de ambos métodos (branch and bound and cutting planes)