17/01/2020 PROGRAMACION ENTERA INVESTIGACION DE OPERACIONES 2 Programación Entera DEFINICION Y APLICACIONES TIPOS DE PROGRAMAS ENTEROS Logro de sesión: Al finalizar la sesión, el estudiante modela y resuelve problemas de programación lineal que incluyen variables enteras, mediante la aplicación del algoritmo de ramificación y acotamiento, y/o mediante la inclusión de funciones necesarias en el software correspondiente, alcanzando la solución óptima. PROGRAMACION ENTERA APLICACIONES ALGORITMO DE RAMIFICACION Y ACOTAMIENTO PROGRAMACION ENTERA DEFINICION Y APLICACIONES DEFINICION SOLUCION POR REDONDEO O TRUNCAMIENTO Un programa lineal entero es aquel en que algunas o todas las variables están restringidas a tener valores enteros (o discretos), o incluso están más restringidas tomando exclusivamente los valores 0 ó 1 El empleo de variables enteras hace más complejo el problema de programación lineal, debido a la ausencia de continuidad. DEFINICION Y APLICACIONES DEFINICION APLICACIONES • • • • • • Cajeros a asignar en turnos de atención Camiones a comprar para reparto de mercadería Escritorios a elaborar para surtir un pedido Computadoras a reparar en una semana Acciones a comprar con propósito de inversión Tiraje de libros 1 17/01/2020 PROGRAMACION ENTERA PROGRAMACION ENTERA TIPOS DE PROGRAMAS ENTEROS PROGRAMA LINEAL ENTERO PURO (PE) Modelo en el cual todas las variables de decisión tienen que adoptar valores enteros. DEFINICION Y APLICACIONES TIPOS DE PROGRAMAS ENTEROS PROGRAMA LINEAL ENTERO MIXTO (PEM) Modelo en el cual solamente algunas de las variables de decisión están restringidas a valores enteros, las demás pueden asumir cualquier número no negativo. SOLUCION POR REDONDEO O TRUNCAMIENTO ALGORITMO DE RAMIFICACION Y ACOTAMIENTO PROGRAMACION ENTERA PROGRAMA LINEAL ENTERO BINARIO (PEB) Modelo en el cual las variables de decisión están restringidas a los valores 0 ó 1. PROGRAMACION ENTERA SOLUCION POR REDONDEO O TRUNCAMIENTO DEFINICION Y APLICACIONES PRIMERA APROXIMACION La solución de cualquier programa puede obtenerse ignorando el requerimiento de variables enteras y resolviendo el programa lineal resultante. Si la solución óptima al programa lineal fuese entera, entonces esta solución es también la solución óptima al programa entero original. TIPOS DE PROGRAMAS ENTEROS SOLUCION POR REDONDEO O TRUNCAMIENTO ALGORITMO DE RAMIFICACION Y ACOTAMIENTO SEGUNDA APROXIMACION Se pueden redondear la primera aproximación a los enteros factibles más próximos. Este procedimiento se emplea especialmente cuando la primera aproximación involucra números muy grandes, pero puede ser inexacta cuando los números son pequeños (como se observará gráficamente en el siguiente ejemplo). 2 17/01/2020 PROGRAMACION ENTERA PROGRAMACION ENTERA EJEMPLO ILUSTRATIVO Aquí se aprecia que la solución óptima no se obtiene necesariamente por redondeo o por truncamiento. Un fabricante de muebles tiene 6 unidades de madera y 28 horas disponibles, durante las cuales fabricará estantes decorativos. Estima que el modelo A requiere 2 unidades de madera y 7 horas de tiempo disponible, mientras que el modelo B requiere 1 unidad de madera y 8 horas. Los precios de los estantes son $120 y $80, respectivamente. ¿Cuántos estantes de cada modelo debe fabricar con estos recursos si desea maximizar sus ingresos? Declaración de variables: A: # estantes del modelo A B: # estantes del modelo B Función objetivo: Max Z = 120A + 80B Restricciones: 2A + 1B ≤ 6 7A + 8B ≤ 28 A, B ≥ 0 B Si las variables pudieran adoptar valores continuos 6 5 4 3 2 1 1 PROGRAMACION ENTERA Declaración de variables: A: # estantes del modelo A B: # estantes del modelo B Función objetivo: Max Z = 120A + 80B Restricciones: 2A + 1B ≤ 6 7A + 8B ≤ 28 A, B ≥ 0, y enteros Solución inicial: La solución anterior deja de ser factible Declaración de variables: A: # estantes del modelo A B: # estantes del modelo B Función objetivo: Max Z = 120A + 80B Restricciones: 2A + 1B ≤ 6 7A + 8B ≤ 28 A, B ≥ 0 Solución inicial: A = 2.22; B = 1.56; Z = $391.11 2 3 4 5 A PROGRAMACION ENTERA B Reducción de la región factible considerando solamente enteros 6 5 4 3 2 1 1 2 3 4 5 A Declaración de variables: A: # estantes del modelo A B: # estantes del modelo B Función objetivo: Max Z = 120A + 80B Restricciones: 2A + 1B ≤ 6 7A + 8B ≤ 28 A, B ≥ 0, y enteros Solución inicial: A = 2.22; B = 1.56; Z = $391.11 Solución por redondeo: A = 2; B = 2; No es una solución factible B El punto solución se encuentra fuera de la malla factible 6 5 4 3 2 1 1 2 3 4 5 A 3 17/01/2020 PROGRAMACION ENTERA Declaración de variables: A: # estantes del modelo A B: # estantes del modelo B Función objetivo: Max Z = 120A + 80B Restricciones: 2A + 1B ≤ 6 7A + 8B ≤ 28 A, B ≥ 0, y enteros Solución inicial: A = 2.22; B = 1.56; Z = $391.11 Solución por redondeo: A = 2; B = 2; No es una solución factible Solución por truncamiento: A = 2; B = 1; Z=$320 PROGRAMACION ENTERA B Punto factible existente pero no lleva a Z al máximo valor 6 5 4 3 2 1 1 2 3 4 5 A PROGRAMACION ENTERA Declaración de variables: A: # estantes del modelo A B: # estantes del modelo B Función objetivo: Max Z = 120A + 80B Restricciones: 2A + 1B ≤ 6 7A + 8B ≤ 28 A, B ≥ 0, y enteros Solución inicial: A = 2.22; B = 1.56; Z = $391.11 Solución por redondeo: A = 2; B = 2; No es una solución factible Solución por truncamiento: A = 2; B = 1; Z=$320 Solución óptima: A = 3; B = 0; Z=$360 B Punto óptimo encontrado, considerando a las variables enteras 6 5 4 3 2 1 1 2 3 4 5 A PROGRAMACION ENTERA ALGORITMO DE RAMIFICACION Y ACOTAMIENTO DEFINICION Y APLICACIONES RAMIFICACION Proceso de generación de nuevos programas a partir de la solución de un programa para el cual se tiene por lo menos una variable con valores decimales. TIPOS DE PROGRAMAS ENTEROS SOLUCION POR REDONDEO O TRUNCAMIENTO ACOTAMIENTO Acción de establecer como límite el valor de la función objetivo de una solución entera hallada mediante ramificación para descartar a otras posibles soluciones. ALGORITMO DE RAMIFICACION Y ACOTAMIENTO 4 17/01/2020 PROGRAMACION ENTERA PROGRAMACION ENTERA ALGORITMO DE RAMIFICACION Y ACOTAMIENTO EJEMPLO Representación de ramificación en búsqueda de una solución entera. Max Z = 10x1 + x2 Sujeto a: 2x1+ 5x2 < 11 ALGORITMO DE RAMIFICACION Y ACOTAMIENTO EJEMPLO Representación de ramificación en búsqueda de una solución entera. Max Z = 10x1 + x2 Sujeto a: 2x1+ 5x2 < 11 x1 < 5 (1) x1 y x2 > 0, y enteros Z* = 55 1 1 x1 = 5.5 x2 = 0 x1 = 5.5 x2 = 0 PROGRAMACION ENTERA Z* = 50.2 2 x1 y x2 > 0, y enteros Z* = 55 x1 = 5 x2 = 0.2 PROGRAMACION ENTERA ALGORITMO DE RAMIFICACION Y ACOTAMIENTO EJEMPLO Representación de ramificación en búsqueda de una solución entera. Max Z = 10x1 + x2 Sujeto a: 2x1+ 5x2 < 11 x1 > 6 (2) ALGORITMO DE RAMIFICACION Y ACOTAMIENTO EJEMPLO Representación de ramificación en búsqueda de una solución entera. Z* = 50 Max Z = 10x1 + x2 (3) Z* = 50.2 2 x1 y x2 > 0, y enteros Z* = 55 x1 = 5 x2 = 0.2 1 x1 = 5.5 x2 = 0 Sujeto a: 2x1+ 5x2 < 11 x1 < 5 x2 < 0 x1 y x2 > 0, y enteros 4 (4) Z* = 50.2 x1 = 5 x2 = 0 2 Z* = 55 x1 = 5 x2 = 0.2 1 No factible 3 x1 = 5.5 x2 = 0 No factible 3 5 17/01/2020 PROGRAMACION ENTERA PROGRAMACION ENTERA ALGORITMO DE RAMIFICACION Y ACOTAMIENTO EJEMPLO Representación de ramificación en búsqueda de una solución entera. Z* = 50 Max Z = 10x1 + x2 Sujeto a: 2x1+ 5x2 < 11 x1 < 5 x2 > 1 x1 y x2 > 0, y enteros 4 (5) Z* = 50.2 x1 = 5 x2 = 0 DEFINICION Y APLICACIONES 2 Z* = 55 Z* = 31 No factible x1 = 3 x2 = 1 5 1 x1 = 5.5 x2 = 0 TIPOS DE PROGRAMAS ENTEROS x1 = 5 x2 = 0.2 3 SOLUCION POR REDONDEO O TRUNCAMIENTO ALGORITMO DE RAMIFICACION Y ACOTAMIENTO 6