Métodos de Optimización para la toma de decisiones

Documentos relacionados
Programación Entera. Nelson Devia C. IN Modelamiento y Optimización Departamento de Ingeniería Industrial Universidad de Chile

CAPÍTULO 4 PROGRAMACIÓN LINEAL ENTERA

Algoritmos de Planos de Corte

Análisis Post Optimal y Algoritmo de Ramificación y Acotamiento

Programación entera 1

Contenido. 1 Resolución mediante planos de corte. Resolución mediante planos de corte

Fundamentos de Programación Entera. 6. Planos de corte. Carlos Testuri Germán Ferrari

PROGRAMACIÓN LINEAL ENTERA

Teniendo en cuenta los valores de las variables se tienen 3 tipos de modelos lineales enteros:

Resolución del problema. Problema: Los puntos extremos no tienen por qué ser enteros

Práctica N o 8 Desigualdades Válidas - Algoritmos de Planos de Corte - Algoritmos Branch & Cut

Problemas de programación entera: El método Ramifica y Acota. Investigación Operativa, Grado en Estadística y Empresa, 2011/12

El método Ramifica y acota (Branch and Bound) (V)

máx 5x 1 + 7x 2 s.a 2x 1 + x x 1 + 9x 2 41 x 1 0, x 2 0, enteras, z opt z opt 38

Problemas resueltos C3 IN

RAMIFICAR-ACOTAR Y PLANOS DE CORTE

Programación lineal entera (PLE)

Programación lineal entera

Algoritmo de ramificación y acotación

Auxiliar 6 28 de Mayo, 2008

Dirección de Operaciones

TEMA 11: INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA CON VARIABLES DISCRETAS

UNIDAD 5. PROGRAMACIÓN ENTERA

9. Programación lineal entera.

Programación entera: Ejemplos, resolución gráfica, relajaciones lineales. Investigación Operativa, Grado en Estadística y Empresa, 2011/12

Programación Lineal Entera. Programación Entera

Nelson Devia C Basado en Bertsimas, D., Tsitsiklis, J. (1997) Introduction to Linear Optimization Capítulo 3

Fundamentos de Programación Entera. A. Revisión. Carlos Testuri Germán Ferrari

RELACIÓN DE PROBLEMAS DE CLASE DE PROGRAMACIÓN LINEAL ENTERA

Ejemplo: ubicación de estación de bomberos

INTRODUCCIÓN A LA PROGRAMACIÓN ENTERA

Examen de Investigación Operativa 2006/07

PROGRAMACIÓN LINEAL ENTERA

Tema 3: El Método Simplex. Algoritmo de las Dos Fases.

Optimización lineal entera mixta

Tema 2. Fundamentos Teóricos de la. programación dinámica Teorema de Optimalidad de Mitten

Introducción a la programación lineal y entera Una simple presentación

RESOLUCIÓN DE MODELOS DE PROGRAMACIÓN ENTERA

Formulando con modelos lineales enteros

1. Defina el problema de particionamiento. Escriba un ejemplo de este tipo de problema, junto con su formulación general en AMPL.

IN34A Optimización CTP Nº3 29 de Octubre, 2008

CAPÍTULO II METODOLOGÍA DE SOLUCIÓN. Este capítulo es de suma importancia ya que en él se explica la metodología de solución

INGENIERÍA DE SISTEMAS INVESTIGACIÓN OPERATIVA

max c T x s.a. Ax b x 0 y un diccionario general para dicho problema a rs x s, c s x s z = d + b r y r min b T y s.a. A T y c y 0

Simulación y Optimización de Procesos Químicos. Titulación: Ingeniería Química. 5º Curso Optimización

84 Tema 3. Dualidad. todas las restricciones son del tipo, todas las variables son no negativas.

Optimización bajo Incertidumbre. 0. Revisión. Depto. Investigación Operativa. Instituto de Computación. Facultad de Ingeniería, UdelaR

MLG521. Cristóbal Rojas MLG521

Dualidad. Dpto. Ingeniería Industrial, Universidad de Chile. 22 de abril de IN3701, Optimización

RESOLUCIÓN DE MODELOS DE PROGRAMACIÓN ENTERA MÉTODOS DE CORTE CORTES DE GOMORY

Tema 6: Programación entera: Bifurcación y planos de corte.

CO5411. Dantzig-Wolfe / Descomposición de Benders. Prof. Bernardo Feijoo. 06 de febrero de 2008

Optimización de Problemas no lineales.

Programación Lineal. El modelo Matemático

OPTIMIZACIÓN Y SIMULACIÓN PARA LA EMPRESA. Tema 3 Programación Entera

PLE: Ramificación y Acotamiento

Dualidad 1. 1 Formas simétricas. 2 Relación primal-dual. 3 Dualidad: el caso general. 4 Teoremas de dualidad. 5 Condiciones de holgura complementaria.

Ejercicios de Programación Entera

UNIDAD 6 PROGRAMACIÓN LINEAL ENTERA. de programación lineal entera. lineal entera.

UNIVERSIDAD CARLOS III DE MADRID Ingeniería Informática Examen de Investigación Operativa 10 de septiembre de 2008

Programación Entera. Investigación Operativa. Universidad. Nacional Facultad. Tecnológica. Regional. Mendoza

PROGRAMACION ENTERA: METODO DE BIFURCACIÓN Y ACOTAMIENTO

Dualidad y postoptimización

Programación Dinámica

José Manuel Arroyo Sánchez

Investigación Operativa I Hoja 2-1 Ing. Marcelo Moliterno

Programación Entera (PE)

El problema del agente viajero

Optimización lineal. Diego A. Patino. 2 de septiembre de Pontificia Universidad Javeriana 1/ 29

UNIVERSIDAD CARLOS III DE MADRID Ingeniería Informática Examen de Investigación Operativa 16 de febrero de 2007

En el siguiente capítulo se hablará del uso del método de generación de columnas para resolver el problema de corte ( cutting stock ).

Análisis y Diseño de Algoritmos

Modelización Avanzada en Logística y Transporte

Introduction to Optimization Ángel Marín. Integer Programming 3: Cutting plane technique.

PARTE II: ALGORÍTMICA

Jesús Getán y Eva Boj. Marzo de 2014

Programación NO Lineal (PNL) Optimización sin restricciones

Tema 5 Dualidad y condiciones de Karush-Kuhn-Tucker

Algoritmo de Karmarkar

Forma estándar de un programa lineal

Control 2 IN mayo 2009

Método de árbol de cubos para resolver problemas de optimización discreta en la toma de decisiones. CONTENIDO

Programa de teoría. Algoritmos y Estructuras de Datos II. 3. Algoritmos voraces. 1. Análisis de algoritmos 2. Divide y vencerás

Universidad Nacional de Ingeniería UNI-RUACS 01/09/11

Programación lineal: Algoritmo del simplex

Métodos iterativos para resolver sistemas de ecuaciones lineales

OPTIMIZACIÓN Y SIMULACIÓN PARA LA EMPRESA. Tema 4 Optimización no Lineal

Fiabilidad. Fiabilidad. María Isabel Hartillo Hermoso Granada, 25 de Mayo FQM-5849

Tema 3 Optimización lineal. Algoritmo del simplex

Repaso del algoritmo SIMPLEX

Casos especiales de la P. L.

El método simplex 1. 1 Forma estándar y cambios en el modelo. 2 Definiciones. 3 Puntos extremos y soluciones factibles básicas. 4 El método simplex.

ALN - Curso 2007 Gradiente Conjugado

Programación Lineal. - Si no: Sea j tal que c

Programación Lineal y Optimización Segundo Examen Parcial Respuesta: :Solución Profr. Eduardo Uresti, Agosto-Diciembre 2011

Introducción a la optimización con algoritmos. Ejercicios. 0 2 f(x + t(y x))(y x)dt. J(x + t(y x))(y x)dt siendo J la matriz Jacobiana de F.

Tema 2, 3 y 4 GRUPO 82 - INGENIERÍA INFORMÁTICA. Bernardo D Auria. 3 Diciembre Departamento de Estadística. Universidad Carlos III de Madrid

Optimización de Problemas de Producción

El Problema del Vendedor Viajero

Programación Lineal. Yolanda Hinojosa

Transcripción:

Facultad de Ingeniería Departamento de Ciencias de la Ingeniería Magíster en Logística y Gestión de Operaciones Métodos de Optimización para la toma de decisiones MLG-521 Programación Entera 1º Semestre 2017 Profesores: Pamela Alvarez M. Cristóbal Rojas. 1

En esta unidad veremos: Generalidades. Branch and Bound. Robustecimiento. 2

Nuestro problema original es: min T c x PE) s.a. Ax b x entero Sea P = { x: Ax b } el poliedro definido por las restricciones lineales. Sea S = {x: Ax b, x entero } el conjunto de soluciones factibles del problema entero. 3

Veamos P y S en la figura... Min c T x Ax b 4

- Gradiente de la función objetivo (-c) Min c T x Curvas de iso-costo Envoltura de convexa de soluciones enteras del problema, Conv{X1, Xp} S={X1, Xp} 5

Encontrar la formulación ideal es, en la gran mayoría de los casos, muy difícil. Pero la noción es importante, pues permite definir métodos prácticos con resultados satisfactorios: Es posible construir algunas de las desigualdades que definen facetas Construir desigualdades que, si bien no definen facetas, están muy próximas a la formulación ideal Modificar iterativamente el conjunto de desigualdades que definen el conjunto P (aproximándose a la F. ideal) Esto es la base para la idea algorítmica de planos cortantes y métodos que consideran en el uso de desigualdades válidas y cortes. 6

Sea el problema: PE ) z * = Min s.a. c T x Ax = b x 0 x j { 01, } j J { 1,...,n} Def.: El problema PR ) z 0 = Min s.a. c T x Ax = b x 0 0 x j 1 j J { 1,...,n} Se llama RELAJACION LINEAL del problema entero mixto binario original. 7

Veamos los siguientes ejemplos: ) = 21 1 + 11 2 PE Max z x x s. a. 7x + 4x 13 1 2 x, x 0 1 2 x, x enteros 1 2 ) = 4 1 + 2 PE Max z x x s. a. 2x + 3x 5 1 2 2x + 3x = 5 1 2 x, x 0 1 2 x, x enteros 1 2 ) = 4 1 + 2 PE Max z x x s. a. x 5 x 1 2 3 x, x 0 1 2 x, x enteros 1 2 8

Relación entre ambos problemas... ) T PE Min ze = c x ) s. a. Ax = b x 0, enteros T PR Min zr = c x s. a. Ax = b x 0 z z * * E R 9

Entonces. Cómo resolver los problemas enteros? Una primera idea intuitiva es resolver la relajación lineal y luego aproximar o redondear. Eventualmente se pueden construir métodos un poco más elaborados de redondear inteligentemente. Agregar cortes o restricciones que eliminen las soluciones fraccionales obtenidas. Construir iterativamente restricciones que eliminen las soluciones fraccionales, de modo de ir acercándose a un óptimo entero exploremos más esta idea. 10

Sea el problema: Y su relajación lineal T PE) z = min c x s. a : Ax b x 0 entero Sea R 0 = {x: Ax b, x 0 } T PR) z = min c x s. a : Ax b, x 0 Sea x 0 una solución óptima de PR, es decir, z 0 = c T x 0. 11

Qué pasa si x 0 es entero? En caso contrario, sea k un índice tal que x 0 k es fraccionario (no siempre todas las variables resultan fraccionarias). Idea Básica de B&B: Dada una solución optima fraccional de PR, x 0, dividir el problema en dos sub-problemas que NO contienen dicha solución fraccional: { : $ % 1} + R0 = R0 x xk & xk ' + { : } R0 = R0 x xk $ & xk %' 12

La idea es repetir este proceso, obteniendo sucesivamente subproblemas para regiones más y más acotadas. De esta forma se construye un árbol, donde cada nodo es un subproblema que contiene las restricciones que se van incorporando. Qué puede ocurrir? Alguna rama es un problema infactible, en cuyo caso se termina o se corta dicha rama. Alguna rama es un problema cuya solución es automáticamente entera. Esto entrega una cota superior para el valor óptimo del problema (caso min). No es necesario seguir explorando dicho árbol. Se dispone alguna cota inferior? Alguna rama entrega una nueva solución fraccional 13

Debemos ir guardando los valores óptimos de cada problema ya que nos sirven como cotas DEFINICION: El valor de la MEJOR solución entera disponible en cada iteración se llama INCUMBENTE. Este es el algoritmo de Ramificación y Acotamiento Si el problema original es de tipo BINARIO, entonces algunas cosas se simplifican un poco 14

En resumen: Método: Ramificación y Acotamiento o Branch & Bound 1. Inicialización: Establecer cota superior ( ) e inferior (- ) Resolver el PR Casos Actualizar cota inferior 2. Ramificación: Variable x k no entera (y debiera serlo) Si x k =a.b se generan 2 subproblemas a los que se le agregan las siguientes restricciones respectivamente: x k a x k a + 1 15

Método: Ramificación y Acotamiento o Branch & Bound 3. Solución subproblema correspondiente. 4. Actualización de cotas: Casos 5. Poda: Por integralidad Por cotas Por infactibilidad 6. Optimalidad: Quedan subproblemas por resolver? 16

Se tiene el siguiente problema: Una empresa procesa uranio (x) y plutonio (y) para vender a centrales nucleares como combustible, debe decidir cuánto producir de cada uno durante el próximo mes, de tal forma de obtener la mayor ganancia El precio de venta del uranio es de US$ 1.000.000 por kilo, mientras que el del plutonio es US$ 2.000.000 La producción de un kilo de cada uno de estos combustibles le toma a la empresa 1 semana Además, debido a la materia prima disponible, calculan que no podrán procesar más de 2,8 Kg. de plutonio durante dicho mes Debido al sistema de turnos con el que trabaja la planta, únicamente se puede cambiar el producto que están procesando los días domingo (es decir, deben estar una semana completa procesando el mismo producto antes de poder cambiarlo) 17

x y = Semanas produciendo uranio a producir durante un mes = Semanas produciendo plutonio a producir durante un mes Max x + 2y s. a x + y 4 y 2,8 + x, y! 18

y x 19

Problema Relajado Lineal P1) Max x + 2y s. a x + y 4 y 2,8 x, y 0 20

Problema Relajado Lineal y x 21

La solución óptima del problema relajado lineal es x=1,2, y=2,8 El valor de la función objetivo en este caso es 6,8 Claramente el problema no es entero Para encontrar una solución entera, se procede a aislar la solución obtenida 22

Problema Relajado Lineal y x 23

Es decir, ahora se tienen dos problemas P2) Max x + 2y s. a x + y 4 y 2,8 x 1 x, y 0 P3) Max x + 2y s. a x + y 4 y 2,8 x 2 x, y 0 Nuevamente, se deben resolver ambos problemas 24

Problema 2 y x 25

La solución óptima del P2 es x=1, y=2,8. el valor de la función objetivo es 6,6 Cómo varió la función objetivo respecto a P1? Por qué? 26

Problema 3 y x 27

La solución óptima del P3 es x=2, y=2 el valor de la función objetivo es 6 Cómo varió la función objetivo respecto a P1? Por qué? Hasta cuándo se debe acotar? 28

El algoritmo B&B tiene 3 criterios de parada en una rama : Si la solución encontrada en la rama es entera Si el valor objetivo de la solución de una rama es menor o igual al valor de otra rama donde se ha encontrado una solución entera Si el problema a resolver en una rama no tiene solución 29

El problema analizado quedaría de la siguiente forma: x<=1 x=1,2 y=2,8 F.O.:6,8 x>=2 y<=2 x=1 y=2,8 F.O.:6,6 y>=3 x=2 y=2 F.O.:6 x=1 y=2 F.O.:5 Infactible 30

Resolver por el método B&B el siguiente problema: P) Max 7x + 9y s. a x + y 8 6x + 11y 66 x, y 0 x, y enteros 31

En primer lugar se resuelve la relajación lineal de este problema PRL) Max 7x + 9y s. a x + y 8 6x + 11y 66 x, y 0 32

El problema analizado quedaría de la siguiente forma: x<=4 x=4,4 y=3,6 F.O.:63,2 x>=5 33

Al aislar la variable x, se obtienen dos ramas P1) Max 7x + 9y s. a x + y 8 6x + 11y 66 x 4 x, y 0 P2) Max 7x + 9y s. a x + y 8 6x + 11y 66 x 5 x, y 0 34

El problema analizado quedaría de la siguiente forma: x<=4 x=4,4 y=3,6 F.O.:63,2 x>=2 y<=3 x=4 y=3,8 F.O.:62,4 y>=4 x=5 y=3 F.O.:62 35

Al ramificar el P2) se obtiene: P21) Max 7x + 9y s. a x + y 8 6x + 11y 66 x 4 y 3 x, y 0 P22) Max 7x + 9y s. a x + y 8 6x + 11y 66 x 4 y 4 x, y 0 36

El problema analizado quedaría de la siguiente forma: x<=4 x=4,4 y=3,6 F.O.:63,2 x>=2 y<=3 x=4 y=3,8 F.O.:62,4 y>=4 x=5 y=3 F.O.:62 x=4 y=3 F.O.:55 x=3,7 y=4 F.O.:61,7 37

Por lo tanto, la solución óptima al problema será: (x,y)=(5,3) El valor óptimo es 62 38

Robustecimiento Robustecer la formulación de manera iterativa Consideramos el problema entero: Min T c x s. a. Ax b x entero Como siempre, S = { x : A x b, x entero }. 39

Robustecimiento Recordemos... Min c T x x 2 x 0 x 1 Desigualdad válida o plano cortante 40

Robustecimiento El algoritmo de planos cortantes sería: Sea S 0 = { x : Ax b }, k = 0. Etapa general k: Resolver el prob. lineal Min {c T x : x S k }. Sea x k sol. óptima. Si x k es entero, PARAR, tenemos una solución óptima. Si no, buscar una desigualdad válida α T k x β k tal que α T k x k > β k. S k+1 = S k { x : α k T x β k }. k k + 1, ir a 1. 41

Robustecimiento Cómo construir desigualdades válidas? Restricciones del tipo Knapsack x1 x2 x i { } 3 + 5 10 0,1 Cuál sería una desigualdad válida? Se pueden construir otro tipo de desigualdades para este tipo de restricciones? COVER 42

Robustecimiento COVER Consideremos un conjunto tipo knapsack de la forma: X = { x {0,1} n : n j= 1 a j x j b} Donde que a j > 0, y que b >0. Sea N = {1,2,,n} Definición: C N se llama COVER si: j C a j > b 43

Robustecimiento COVER Si C N es un COVER, entonces se puede construir la siguiente desigualdad válida: j C C 1 Ejemplo: Dada la siguiente restricción: x j 11x1 + 6x2 + 6x3 + 5x4 + 5x5 + 4x6 + x7 19, xi {0,1}, i Cuáles son cover y cuáles son sus desigualdades válidas asociadas? Se ve algo más?... 44

Robustecimiento Veamos por ejemplo el cover C={3,4,5,6} Se puede extender el cover a otras variables? Si fijamos x 2 = x 7 = 0, entonces para qué valores de un parámetro α 1 la siguiente desigualdad sigue siendo válida? α 1x1 + x3 + x4 + x5 + x6 3 45

Robustecimiento Se repite para las otras variables En general, sea I N-C y supongamos que se ha obtenido la desigualdad válida j I α j x + x C 1 j j C j Sea k N - C, k I. Para calcular el mayor valor de α k resolvemos un problema de mochila. Este procedimiento se llama levantamiento o lifting 46

Robustecimiento Cómo identificar un COVER en un problema real? Supongamos que tenemos una solución actual del problema, x* que NO es entera. Observemos primero que si C es un Cover, la desigualdad se puede rescribir: Queremos encontrar una desigualdad de Cover que NO sea satisfecha por el punto x* Es decir, identificar un conjunto C N tal que : Escribámoslo como un problema de optimización y veamos qué pasa 47

Robustecimiento Cortes de Gomory Consideremos el problema en forma estándar: Max T c x s. a Ax = b x 0 entero Tenemos una solución óptima de la relajación lineal, x 0. A se particiona en: A = [ B N ], x 0 se particiona en x 0 B 0 y x 0 N = 0. 48

Robustecimiento Cortes de Gomory Sea NB el conjunto de índices de las variables no básicas. Entonces en el óptimo se tiene: x + a x = b, i = 1,..., m 0 0 Bi ij j i j NB Si la solución óptima no es entera, entonces existe un índice k tal que b k es fraccionario. Obtengamos una desigualdad válida a partir de la ecuación k 49

Robustecimiento Cortes de Gomory Satisface x 0 esta restricción? x + " & a # ' x " & b # ' Bk kj j k j NB Reemplazando X Bi de la ecuación original j k ( " #) akj ' akj ( x j b " k ' b # k ( Gomory demostró que este procedimiento termina, después de generar un número FINITO de cortes, con una solución óptima entera o un problema infactible (caso en el cual el problema original es infactible). Ejemplo 50

Robustecimiento Branch and Cut Se puede eficientar el algoritmo de B&B agregando cortes T z = Min c x PE) s. a. Ax b x 0 entero Luego de resolver la relajación lineal se tiene una solución x k fraccionaria Se tienen 2 subproblemas. En cada subproblema se pueden agregar cortes, para qué? 51

Robustecimiento Branch and Cut Min c T x 52

Robustecimiento Branch and Cut INICIALIZACION Preprocesamiento y fijar incumbente. Elegir nodo para analizar Resolver relajación lineal. Sea z k,1 el valor. j = 1 CORTAR:Buscar corte para cortar el valor z k,j. Agregar corte a la formulación del nodo. Si no hay más cortes, continuar como en B&B FIN 53