Programación Entera (PE) Sorprendentemente, existen una amplia gama de problemas prácticos que pueden modelarse usando variables enteras. Este tipo de modelos suelen llamarse de Programación Discreta. Se han visto hasta el momento ciertas aplicaciones de modelación con variables enteras binarias, y ahora se verán estrategias todavía mas poderosas en las cuales las variables binarias van a jugar un papel primordial. Modelos PIP Programacion Entera Pura (Pure Integer Programming) Modelos con sólo variables enteras Modelos MIP Programacion Entera Mixta (Mixed Integer Programming) Modelos con variables enteras y continuas Notas del profesor Juan José Bravo /1 Considere un problema con variables discretas Esta es la aplicación mas obvia de la PE, donde en un modelo sólo es permitido que las variables tomen valores enteros. Esto es cuando las variables representan objetos o unidades indivisibles, por ejemplo: aviones, mesas, personas, maquinas, etc. Opciones para solucionarlo Veamos este Ejemplo 1: Maximizar X1 + X2 Sujeta a: -2X1 + 2X2 1-8X1 + 10X2 13 X1, X2 0, enteros Opción 1: quitar la condición de enteros (problema relajado) y resolver el problema como si tuviera variables continuas. Luego redondear las cifras a enteros. Opcion 2: resolver el problema directamente con la restricción de enteros con la técnica Branch and Bound. Solución Continua con la Opción 1: X1 = 4 y X2 = 4.5 con la Opción 2: X1= 1 y X2 = 2 1
Ejemplo 2: Maximizar Z = X2 - X1 + X2 0.5 X1 + X2 3.5 X1, X2 0, enteros Si resolviéramos el problema relajado, hallaríamos el óptimo gráficamente en el punto ( 1.5, 2). Redondeando obtendríamos o bien el punto (1,2) o el punto (2,2) Ejemplo 3: Maximizar Z = X 1 + 5 X 2 X 1 + 10X 2 20 X 1 2, enteros El óptimo del problema relajado es el punto (2, 1.8) Redondeando obtendríamos punto (2,2). Sin embargo (2,2) no es el óptimo entero, ya que no es un punto factible del problema 2
Método Branch and Bound De los problemas anteriores vemos que no siempre es bueno redondear. Si se resuelve el problema relajado de un PIP y se obtiene directamente una solución en la cual todas las variables son números enteros, entonces la solución óptima del problema relajado será también la solución óptima del PIP. Actualmente el método mas utilizado para resolver satisfactoriamente problemas de PE en general es el Método Branch and Bound ó Ramificación y Acotamiento, enteros Branch and Bound /1 El método de ramificación y acotamiento empieza por resolver el problema relajado, siendo en este caso la solución: 3
, enteros X1 = 3.75 X2 = 2.25 Elegimos arbitrariamente entre X 1 y X 2 (ó entre las variables que dieron solución no-entera y que deben ser enteras) para crear dos subproblemas. Se escogerá X 1. X1 = 3.75 X 1 3 ó Subproblema 1 Subproblema 2 X 1 3, enteros Solución No Entera Z = 41 Sol. Subproblema 2 Se escoge arbitrariamente entre los Subproblemas que arrojaron solución No Entera (se recomienda en el que tenga un mayor Z), y se escoge en él, tambien arbitrariamente alguna variable que haya dado solucion No Entera (se recomienda la que tenga mayor coeficiente en la función objetivo). Se escoge entonces el Subproblema 1 y en él la variable X 2. 4
, enteros Solución No Entera Z = 41 Sol. Subproblema 2 Se escoge arbitrariamente entre los Subproblemas que arrojaron solución No Entera (se recomienda en el que tenga un mayor Z), y se escoge en él, tambien arbitrariamente alguna variable que haya dado solucion No Entera (se recomienda la que tenga mayor coeficiente en la función objetivo). Se escoge entonces el Subproblema 1 y en él la variable X 2. Subproblema 3 Subproblema 4 X 1 3 Z = 41 Sol. Subproblema 2 Sol. Subproblema 3 No factible Sol. Subproblema 4.44 X 2 = 1 Z = 40.55 X 1 4 X 1 5 5
Subproblema 5 X 1 5 Subproblema 6 X 1 4 Sol. Subproblema 3 No factible Solución Optima Entera X 1 3 Z = 41 Sol. Subprob 2 Sol. Subproblema 4.44 X 1 5 X 2 = 1 Z = 40.55 X 1 4 SOLUCION OPTIMA Sol. Subproblema 5 X 1 = 5 X 2 = 0 Z = 40 Sol. Subproblema 6 X 2 = 1 Z = 37 6