La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 Programación entera En muchos problemas reales las.

Presentaciones similares


Presentación del tema: "Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 Programación entera En muchos problemas reales las."— Transcripción de la presentación:

1 Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 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? 1

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

3 Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 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 3

4 Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 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 4

5 Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 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) 5

6 Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 Programación entera Procedimiento más simple: 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? 6

7 Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 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? 7

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

9 Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 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 9

10 Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 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 10

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

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

13 Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 Programación entera División del problema Se generan los dos problemas siguientes: P 1 = P 0 {x i (x k * ) i }, P 2 = P 0 {x i (x k * ) 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 13

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

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

16 Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 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 16

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

18 Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 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 T x k * > z descartar el subproblema (y todos los subproblemas que se generen de él) Todas sus soluciones enteras son peores que z 18

19 Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 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 19

20 Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 Programación entera Arbol de subproblemasP0P8 P5 P1 P6 P4P3 P7 P2 P9 P11 P10 P12 -Búsqueda en profundidad: - 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 20

21 Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 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 21

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

23 Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 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 23

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

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

26 Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 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 26

27 Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 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 27

28 Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 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 28

29 Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 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 x i + k n ik x k = b i Lado derecho no entero (variable no entera) 29

30 Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 Programación entera Planos de corte de Gomory Justificación de la expresión del corte Por ser las x positivas, x i + k n ik x k = b i Por ser las x enteras, x i + k n ik x k = b i x i + k n ik x k = b i 30

31 Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 Programación entera Planos de corte de Gomory Combinando la restricción inicial con la nueva, k (f n ) ik (f b ) 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 31

32 Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 Programación entera Ejemplo de planos de corte Problema entero anterior. Solución: x 1 = 9/2, x 2 = 25/4 16/ /2508 N = 19/ / / /2508 Nueva restricción 16/2508 s /2508 s 2 1/2 16 s s s , s

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

34 Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 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 34

35 Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 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 35

36 Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 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 36

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

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

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

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


Descargar ppt "Universidad Carlos III de Madrid – Ingeniería Informática Investigación Operativa - Curso 2003/2004 Programación entera En muchos problemas reales las."

Presentaciones similares


Anuncios Google