Programación entera En muchos problemas reales las variables sólo pueden tomar valores enteros Ejemplos: decisiones sobre inversiones, compras, arranques,

Slides:



Advertisements
Presentaciones similares
MOVIMIENTO JOVENES DE LA CALLE CIUDAD DE GUATEMALA chi siamo quienes-somos qui sommes-nous who we are attività actividades activités activities scuola.
Advertisements

1 Datos sobre webloggers Datos extraidos de la encuesta a webloggers disponibles en la web de los autores.
Seminario El Futuro del Seguro de Vida
1 PRINCIPALES INDICADORES DEL DESARROLLO DE LA SOCIEDAD DE LA INFORMACIÓN EN GALICIA CUADRO DE MANDO Apartado: Empresas Septiembre de 2004.
1 INFORME RESUMEN SOBRE EL NIVEL DE UTILIZACION DE LAS TIC EN EL COMERCIO GALLEGO (Resumen COMERCIO AL DETALLE) Noviembre de 2004.
1 INFORME RESUMEN SOBRE EL NIVEL DE UTILIZACION DE LAS TIC EN LAS EMPRESAS GALLEGAS ( Resumen PYMES ) Noviembre de 2004.
1 INFORME RESUMEN SOBRE EL NIVEL DE UTILIZACION DE LAS TIC EN LAS EMPRESAS GALLEGAS (MICROEMPRESAS, resultados provisionales) 29 de julio de 2004.
MODELO DE REGRESIÓN LINEAL SIMPLE
Matemática Financiera 1º ADEUtilización de la Función TIR en el cálculo del tanto efectivo 1 de 37 Cálculo de tantos efectivos Utilización de la función.
TEMA 2 MÚLTIPLOS Y DIVISORES
Aranda Fernández, Miguel Ángel García Redondo, Luis Miguel
Programación entera En muchos problemas reales las variables sólo pueden tomar valores enteros Ejemplos: decisiones sobre inversiones, compras, arranques,
Introducción Programación Matemática Objetivos:
Respuestas Buscando a Nemo.
ABECEDARIO FIGURAS GEOMÉTRICAS NÚMERO
SISTEMA DE NUMEROS NÚMEROS ENTEROS DIVISIBILIDAD NÚMEROS PRIMOS
Resultado 1.3 con actividad 1.3.1
Álgebra 2010 Clase N° 1 Conjuntos numéricos I
ECUACIONES LINEALES.
Otra forma es representando lo que hay de cada lado
MOVIMIENTO JOVENES DE LA CALLE CIUDAD DE GUATEMALA chi siamo quienes-somos qui sommes-nous who we are attività actividades activités activities alimentazione.
Unidad 1: Funciones, Límite y Continuidad
MÉTODO SIMPLEX.
Los elementos invertibles de Z6 son 1 y 5
1. Apoyo exterior sobre ala inferior de viga de acero
Distribuciones de probabilidad bidimensionales o conjuntas
UPC Tema: ESPACIO VECTORIAL Rn
Funciones Excel. Parte 1. Introducción 2 Una función Excel es una fórmula o un procedimiento que se realiza en el ambiente de Visual Basic, fuera de.
ENCUESTAS.
INFORME USDA NOVIEMBRE TRIGO 2 MERCADO INTERNACIONAL (Millones de Toneladas) 3.
Sistemas de Ecuaciones
Tema 1.- Aritmética. 1.-Usar el algoritmo de Euclides para calcular el máximo común divisor de a y b y expresarlo en función de a y b para: a) a= 56,
UNIDAD 2: FUNCIONES.
FUNCIONES DE UNA VARIABLE REAL
EL OSO APRENDIZ Y SUS AMIGOS
Operaciones con expresiones algebraicas
Proyecto para Centros que trabajan una vez por semana.
UNIDAD 3 Progresiones.
Profr. Ricardo A. Castro Rico
Ecuaciones Cuadráticas
Ecuaciones y Resolución de Ecuaciones Lineales
Expresiones Racionales
RAZONAMIENTO MATEMATICO Mg. CORNELIO GONZALES TORRES
Complementos en Investigación de Operaciones
La minimización de los costes
CÁLCULOS ESTEQUIOMÉTRICOS
3. Métodos de resolución Ecuaciones algebraicas lineales
Expresiones Algebraicas
¿Qué es un conjunto? Un conjunto es una colección de objetos considerada como un todo. Los objetos de un conjunto son llamados elementos o miembros del.
Similar al ejercicio 1 propuesto Método de sustitución
CULENDARIO 2007 Para los Patanes.
Números enteros.
Investigación Operativa
La transformada de Laplace
BEATRIZ LAFONT VILLODRE
SUCESIONES Y PROGRESIONES.
Sistemas de Ecuaciones lineales
Señales y sistemas de tiempo discreto
1 BALONCESTO PARA NOVATOS Alcobendas 15 de mayo de 2008 GUILLERMO HERNANDEZ PEÑALBA.
Los 17 grupos cristalográficos planos
Manual de Procedimientos Procedimiento de ejecución del programa de
LA RECTA Y SUS ECUACIONES
1 LOS PROBLEMAS DE DISEÑO EN INGENIERÍA: CONCEPTO Y FORMULACIÓN NELSON VÍLCHEZ UNIVERSIDAD TECNOLÓGICA DEL CENTRO COORDINACIÓN DE INGENIERÍA.
Simulacion de sistemas dinamicos
Programación Lineal Entera Antonio H. Escobar Z Universidad Tecnológica de Pereira – Colombia Posgrado en Ingeniería – Maestría/Doctorado.
Universidad de los Andes-CODENSA
Programación entera y optimización combinatoria Mayo 2007 Módulo 2:
Sabemos reconocerlas, y calcularlas como soluciones de sistemas de ecuaciones, o de desigualdades Buscamos métodos de cálculo generales y eficientes Problemas.
Dualidad Multiplicadores Dualidad Aplicación práctica:
Transcripción de la presentación:

Programación entera En muchos problemas reales las variables sólo pueden tomar valores enteros Ejemplos: decisiones sobre inversiones, compras, arranques, etc. Cantidades de productos no divisibles, personas, etc. Problemas con el método Simplex: soluciones no están en vértices ¿cómo saber si tenemos una solución? Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 1

Programación entera Problema entero puro: Problema entero mixto: min c Tx s.a Ax = b x  0 xi entera i Problema entero mixto: xi entera i  I Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 2

Programación entera Por simplicidad: problema entero puro Métodos también aplicables al problema mixto Dificultad principal: no podemos emplear aproximaciones basadas en la continuidad de las funciones del problema no podemos extraer conclusiones para puntos próximos Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 3

Programación entera La solución no tiene que estar en un vértice, ni contigua a un vértice Solución relajada Solución entera Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 4

Programación entera Métodos de solución: Comparar todas las alternativas (no es eficiente) Procedimientos eficientes para seleccionar o descartar alternativas Basados en la aproximación del problema mediante problemas lineales (que sabemos resolver) Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 5

Programación entera Procedimiento más simple: Inconvenientes: ignorar la condición de que las variables sean enteras, y redondear la solución Inconvenientes: ¿tiene significado la solución no entera? ¿cómo se redondea la solución? ¿cómo se obtiene una solución redondeada factible? ¿cuándo es óptima una solución redondeada? Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 6

Programación entera Método más sofisticado: introducir restricciones adicionales que no eliminen soluciones enteras (cubierta convexa) Si las soluciones enteras son vértices, podemos aplicar el método Simplex Inconvenientes: ¿Cómo se calculan las restricciones necesarias? ¿Cuántas hacen falta? Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 7

Programación entera Cubierta convexa Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 8

Programación entera Métodos más eficientes: Combinación de ideas se añaden restricciones que aproximan la cubierta convexa (planos de corte), o se añaden restricciones que eliminan puntos que no pueden ser solución (branch and bound) se resuelven problemas lineales relajados Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 9

Programación entera Método de “branch and bound” Se trata de: dividir la región factible, y descartar aquellas partes en las que no puede encontrarse la solución Partes que no pueden descartarse: se calcula la solución por el método Simplex, o se subdividen en nuevas partes añadiendo restricciones Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 10

Programación entera Procedimiento: Dado el problema min c Tx s.a Ax = b x  0 xi entera i se resuelve su versión relajada (P0) Si la solución de (P0) es entera, se termina Si no lo es, se subdivide el problema en varios Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 11

Programación entera División del problema Supongamos que la solución del problema relajado es xk*, y que (xk*)i no es entera En la solución (entera) se cumplirá una de las dos condiciones siguientes: xi   (xk*)i  , xi   (xk*)i  + 1 donde x  denota la parte entera de x Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 12

Programación entera División del problema Se generan los dos problemas siguientes: P1 = P0  {xi  (xk*)i }, P2 = P0  {xi  (xk*)i +1} En general, se tiene una lista de problemas pendientes de resolver Se toman los problemas de la lista, y se resuelven hasta que la lista queda vacía Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 13

Programación entera Ejemplo gráfico Solución P0 Solución P1 Solución P2 Solución P3 P4 no factible Solución entera Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 14

Programación entera P4: NF P0: NE P1: NE P3: E P6: NF P8: E P12: B Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 15

Programación entera ¿Qué sucede al resolver subproblemas? Subproblema no factible: nada Subproblema con solución no entera: se generan nuevos subproblemas Subproblema con solución entera: se compara con la mejor solución entera hasta el momento Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 16

Programación entera Eliminación de nodos Método no eficiente si es necesario examinar todos los subproblemas Número de subproblemas:  2n Eliminar subproblemas: si la función objetivo óptima del problema relajado cumple ciertas condiciones Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 17

Programación entera Eliminación de subproblemas Basada en mejor solución entera Mejor valor de la función objetivo para una solución entera (hasta el momento): z Si para un subproblema se cumple c Txk* > z descartar el subproblema (y todos los subproblemas que se generen de él) Todas sus soluciones enteras son peores que z Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 18

Programación entera Selección de subproblema Análisis en profundidad del árbol de subproblemas Se toma el último subproblema generado Se obtienen rápidamente soluciones enteras Alternativa: búsqueda en extensión Se examinan primero todos los problemas de un nivel dado Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 19

Programación entera Arbol de subproblemas - Búsqueda en profundidad: P0, P1, P3, P4, P2, P5, P7 P9, P10, P11, P12, P8, P6 - Búsqueda en extensión: P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12 Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 20

Programación entera Generación de nuevos subproblemas: ¿Qué variable no entera se escoge para generar los subproblemas? Aquella que permita obtener la solución más rápidamente Aquella que dé un menor valor de la función objetivo (más cerca de la solución) Como el valor de la función objetivo relajada aumenta, variable con menor aumento Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 21

c T (x - x )  (xi - xi ) mink (-ck /nik ) Programación entera Estimación de cambios en la f. objetivo: xi  xi La variable i es básica y pasa a ser no básica Una variable no básica debe pasar a ser básica xi + (B -1N )i xN = (B -1b )i c T (x - x )  (xi - xi ) mink (-ck /nik ) Se escoge la variable i con el menor cambio Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 22

Programación entera Resolución de subproblemas Dado un subproblema resuelto, añadimos una restricción al subproblema La última solución no cumple la restricción Aplicamos el método dual del Simplex: Ponemos la restricción en forma estándar Añadimos la restricción a la tabla Aplicamos el método dual Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 23

Programación entera Ejemplo: Solución del problema relajado: max 8x1 + 9x2 s.a 76 x1 + 68 x2  767 -38 x1 + 32 x2  29 2 x2  3 x  0 entera Solución del problema relajado: x1 = 9/2 , x2 = 25/4 3 = -299/2508 , 4 = -70/2508 Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 24

Programación entera Nuevas restricciones: x1 + s4 = 4 , s4  0 x1  4 , x1  5 Primer subproblema: x1 + s4 = 4 , s4  0 Nueva solución del primer subproblema: x1 = 4 , x2 = 181/32 4 = -9/32 , 4 = -299/16 Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 25

Programación entera Métodos de planos de corte Alternativa a métodos branch and bound Introducir nuevas restricciones sin dividir el problema sin eliminar soluciones enteras Objetivo: solución del problema relajado = solución del problema entero Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 26

Programación entera Planos de corte Condiciones sobre las nuevas restricciones (cortes): No eliminar soluciones enteras Eliminar la última solución Forma de las restricciones: Restricciones lineales generales Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 27

Programación entera Planos de corte de Gomory Nuevas restricciones se generan a partir de solución del problema relajado Suponemos que todas las variables han de ser enteras y no negativas Basados en estudiar la parte entera y la fraccionaria de las restricciones Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 28

Programación entera Planos de corte de Gomory Supongamos una solución relajada no entera Variable básica i-ésima no entera Restricción correspondiente xi + k nik xk = bi Lado derecho no entero (variable no entera) Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 29

xi + k nik xk = bi  xi + k nik xk = bi Programación entera Planos de corte de Gomory Justificación de la expresión del corte Por ser las x positivas, xi + k nik xk = bi  xi + k nik xk = bi Por ser las x enteras, xi + k nik xk = bi  xi + k nik xk = bi Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 30

Programación entera Planos de corte de Gomory Combinando la restricción inicial con la nueva, k (fn )ik  (fb )i Nueva restricción a añadir al problema La cumplen todas las soluciones enteras No la cumple la última solución Resolución eficiente: método dual del Simplex Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 31

Programación entera Ejemplo de planos de corte Problema entero anterior. Solución: x1 = 9/2 , x2 = 25/4 16/2508 -34/2508 N = 19/2508 38/2508 38/2508 76/2508 Nueva restricción 16/2508 s1 + 2474/2508 s2  1/2 16 s1 + 2474 s2 - 2508 s4  1254 , s4  0 Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 32

Programación entera Ejemplo min -x1 - x2 s.a 4x1 - 2x2 - s1 = 3 Corte 1 , x1 Corte 1 - x2 Corte 2 , x2 min -x1 - x2 s.a 4x1 - 2x2 - s1 = 3 4x1 + 2x2 + s2 = 9 x , s  0 Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 33

Programación entera Limitaciones del procedimiento La ecuación que define el corte es válida si todas las variables son enteras Los datos del problema (A, b, c ) han de ser enteros Las variables de holgura han de introducirse sobre restricciones con coeficientes enteros Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 34

Programación entera Convergencia Al resolver un problema relajado Problema no factible el problema entero no es factible Problema no acotado el problema entero no está acotado (sólo para el primer problema) Problema óptimo con solución entera es la solución del problema entero Problema óptimo con solución no entera introducir cortes Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 35

Programación entera Convergencia finita Si se siguen las reglas: Se introducen cortes también sobre la función objetivo Se selecciona la primera de las variables básicas que toman valores no enteros La función objetivo se toma como la primera variable Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 36

Programación entera Cortes sobre la función objetivo Se introduce una nueva restricción x0 - i ci xi = 0 Variable x0 siempre básica. Corte: 1 -c T 0 1 -cbT A = , b = , B = 0 A b 0 B 1 0 -cnT + cbTB -1N cbTB -1b B -1A = , B -1b = 0 I B -1N B -1b Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 37

-cnT + cbTB -1N = -n , cbTB -1b = z Programación entera Cortes sobre la función objetivo De los resultados anteriores, el corte k (f- )k xk  fz se obtiene de las partes fraccionales de -cnT + cbTB -1N = -n , cbTB -1b = z Valores de los multiplicadores, cambiados de signo Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 38

Programación entera Problemas enteros mixtos Si algunas variables no son enteras, kI fik xk + fi 0/(1-fi 0) kJ (1-fik)xk + kK nik xk - fi 0/(1-fi 0) kL nik xk  fi 0 I = {i E : fik < fi 0 }, J = {i E : fik  fi 0 }, K = {i E : nk > 0 }, L = {i E : nk  0 } No es posible introducir cortes sobre la función objetivo (convergencia) Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 39

Programación entera Método Simplex dual Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 40