PROGRAMACION LINEAL B. PROGRAMACION
La programación lineal consiste en una función objetivo lineal a optimizar en presencia de un conjunto de restricciones lineales y su máximo exponente es 1, además ninguna variable de decisión está multiplicada por otra. OPTIMIZACION DE SISTEMAS La programación lineal (PL) se considera como una técnica de IO IO,, de apoyo a la toma de decisiones para la optimización de sistemas lineales. Este puede resolverse como una rutina en la mayoría de los computadores incluyendo calculadoras de bolsillo, puesto que muchos de estos problemas involucran una gran cantidad de variables y parámetros. La PL es base importante del desarrollo de otras técnicas de optimización incluidas la programación entera, la estocástica la de flujo de redes y cuadrática. La PL es una u na herramienta de optimización lineal determinística. Es decir todos los parámetros del modelo se suponen conocidos con certeza. Sin embargo en la vida real es raro encontrar un problema donde prevalezca una verdadera certeza respecto a los datos [H.A.TAHA 1995] Formulación General de un modelo de programación lineal En general un problema de P.L puede es de maximización o de minimización y las restricciones pueden ser del tipo ≥ o ≤ o =. Las variables pueden ser no negativas o sin restricción de signo. La forma general de un modelo de PL se expresa: Max o min Z = c1x1 + c2x2 + ... + c nxn Sujeto a a11x1 + a12x2 + ... +a 1n (≥ ,≤ o =) b1 a21x1 + a22x2 + ... +a 2n (≥ ,≤ o =) b2
.............................................................. am1x1 + a12x2 + ... +a1n (≥ ,≤ o =) bm x1, x2, ... , x n ≥ 0 Donde aij, bi, c j (i = 1,...,m, j = 1,...,n) son constantes determinadas por la naturaleza del problema. Nota: z y las restricciones son funciones lineales de las variables x 1, x2, ... , x n, la inclusión de las restricciones hace imposible la solución vía los métodos del cálculo diferencial en varias variables.
Forma canónica (estándar) del modelo de Programación Lineal La forma general del modelo puede siempre expresarse de la siguiente manera: Maximizar Z = c1x1 + c2x2 + ... + cnxn Sujeto a a11x1 + a12x2 + ... +a 1n ≤ b1 a21x1 + a22x2 + ... +a 2n ≤ b2 .......................................... am1x1 + a12x2 + ... +a1n ≤ bm x1, x2, ... , x n ≥ 0 El modelo se escribe abreviadamente así: Max Z = Σ j=1,nc jx j Sujeto a
Σ j=1,naijx j ≤ bi (i = 1,...,m)
x j ≥ 0, (j = 1,...,n)
Problemas de Programación lineal Ejemplo B1: Problema de transporte
Un fabricante tiene tres plantas P1, P2, P3 y cinco bodegas B1,...,B5, el problema es establecer la planta Pi que debe producir el suministro para cada bodega. La capacidad de las plantas es limitada. En la tabla aparecen la capacidad de producción de las plantas y los requerimientos de ventas de las bodegas en miles de cajas: Planta
Producción
Bodega
Venta
P1
100
B1
50
P2
60
B2
10
P3
50
B3
60
B4
30
B5
20
Total
170
Total
210
El costo de despacho de 1000 cajas desde cada planta a cada bodega aparece en la siguiente tabla: Destino Origen US$
B1
B2
B3
B4
B5
P1
240
300
160
500
360
P1
420
440
300
200
220
P3
300
340
300
480
400
La compañía desea determinar un programa de embarques que minimice los costos generales de transporte de la empresa.
Formulación Sea xij el número de cajas enviadas desde la planta i a la bodega j y c ij el costo de enviar la mercadería desde la planta i a la bodega j, ( i=1..3, j = 1..5). El costo total es la suma de los productos del costo de embarque por el número de cajas enviadas por cada ruta. Entonces el objetivo es Min Z = 240x11 + 300x12 + 160x13 + 500x14 + 360x15 + 420x21 + 440x22 + 300x23 + 200x24 + 220x25 + 300x31 + 340x32 + 300x33 + 480x34 + 400x35 Hay dos conjuntos de restricciones para este problema: El primer conjunto garantiza el cumplimiento de las necesidades de venta de las bodegas, es decir la suma de las cajas enviadas por cada planta Pi a la bodega B j debe ser igual a las ventas de esa Bodega. Entonces las restricciones de ventas son: Venta B1: x11 + x21 + x31 = 50 Venta B2: x12 + x22 + x32 = 10 Venta B3: x13 + x23 + x33 = 60 Venta B4: x14 + x24 + x34 = 30 Venta B5: x15 + x25 + x35 = 20
El segundo conjunto de restricciones garantiza que las fábricas no excederán su respectiva capacidad e producción. Entonces las restricciones de producción son: Planta P1: x 11 + x12 + x13 + x14 + x15 ≤ 100 Planta P2: x 21 + x22 + x23 + x24 + x25 ≤ 60
Planta P3: x 31 + x32 + x33 + x34 + x35 ≤ 50 Finalmente todas las x ij deben ser todas mayores o iguales a 0. Ejemplo B2: Un problema de mezclas
Al mezclar diferentes hidrocarburos se obtiene gasolina de diferentes grados. En este ejemplo se supone que una refinería dispone sólo de dos tipos de gasolina cuyas características se presentan en la siguiente tabla: Mezclas disponibles
Octanaje
Presión de vapor
Cantidad disponible (Barriles)
Tipo 1
104
5
30,000
Tipo 2
94
9
70,000
Con la combinación de estos productos se pueden producir dos tipos de gasolina: para automóvil y aviación. Las cualidades de estos productos aparecen en la siguiente tabla: Producto final
Mínimo octanaje
Máxima presión de vapor
Máxima venta (Barriles)
Precio de venta (Barril)
Aviación
102
6
20,000
45.10
Automóvil
96
8
Sin tope
32.40
El octanaje y la presión de vapor del producto resultante es proporcional a la cantidad de cada gasolina utilizada en la mezcla. Por ejemplo para partes iguales de ambas gasolinas: Octanaje: 0.5*104 + 0.5*94 = 99 Presión de vapor: 0.5*5 + 0.5*9 = 7 La empresa desea maximizar los ingresos por la venta de gasolina como producto final
Formulación
Sean x1 el número de barriles de gasolina del tipo 1 para aviación. X2 el número de barriles de gasolina del tipo 2 para aviación. X3 el número de barriles de gasolina del tipo 1 para automóvil. X4 el número de barriles de gasolina del tipo 2 para automóvil. La venta correspondiente a gasolina para aviación es 45.10*(x1 + x2) y la venta correspondiente a gasolina para automóvil es 32.40(x3 + x4) entonces la función objetivo es: Maximizar: Z = 45.10x1 + 45.10x2 + 32.40x3 + 32.40x4 Existen varias restricciones: Demanda de gasolina para aviación: X1 + x2 ≤ 20,000 Cantidad disponible por tipo de gasolina: X1 + x3 ≤ 30,000 X2 + x4 ≤ 70,000 Restricción de octanaje: Aviación: (104x1 + 94x2)/(x1 + x2) ≥ 102 ⇔ 2x1 - 8x2 ≥ 0 Automóvil: (104x3 + 94x4)/(x3 + x4) ≥ 96 ⇔ 8x3 - 2x4 ≥ 0 Restricción de presión de vapor: Aviación: (5x1 + 9x2)/(x1 + x2) ≤ 6 ⇔ -x1 + 3x2 ≤ 0 Automóvil: (5x3 + 9x4)/(x3 + x4) ≤ 8 ⇔ -3x3 + x4 ≤ 0 No negatividad: X1, x2, x3, x4 ≥ 0
Ejemplo B3: Un problema de programación de producción
Una empresa se compromete a despachar por 6 meses un producto. Los costos de producción varían mes a mes, la capacidad de producción en horario normal es de 100 unidades mensuales y de 15 unidades adicionales por mes en tiempo extra. La siguiente tabla contiene los requerimientos de despacho y costo unitario de producción: Mes:
1
2
3
4
5
6
Despacho (unidades)
95
85
110
115
90
105
Costo unitario (normal) US$
30
30
32
32
31
32
Costo unitario (extra) US$
35
35
37
37
36
37
Costo unitario de inventario US$
2
2
2
2
2
2
La empresa desea cumplir con los requerimientos a un costo mínimo y no tiene unidades disponibles al principio y no desea tenerlas al finalizar el sexto mes. Formulación :
Sean x1, x2, x3, x4, x5, x6 la producción normal de cada mes, Y1, y2, y3, y4, y5, y6 la producción extra de cada mes, I1, I2, I3, I4, I5, I6 las unidades en inventario de cada mes. Se debe minimizar la suma del costo de producción normal más el costo de producción extra y el costo de inventario, entonces la función objetivo es: Z = 30x1 + 30x2 + 32x3 + 32x4 + 31x5 + 32x6 + 35y1 + 35y2 + 37y3 + 37y4 + 36y5 + 37y6 + 2I1 + 2I2 + 2I3 + 2I4 + 2I5 + 2I6 Restricciones de producción normal: x1, x2, x3, x4, x5, x6
≤
100
Restricciones de producción extra:
y1, y2, y3, y4, y5, y6
≤
15
Restricciones de inventario y compromisos de despacho: (producción) = (Uso) es decir: (Inventario inicial)+(Prod. Normal)+(Producción extra) = (despacho) + (Inventario final) Mes1: x1 + y1 = 95 + I1 (Inventario inicial 0) Mes2: I1 + x2 + y2 - I2 = 85 Mes3: I2 + x3 + y3 - I3 = 110 Mes4: I3 + x4 + y4 - I4 = 115 Mes5: I4 + x5 + y5 - I5 = 90 Mes6: I5 + x6 + y6 - I6 = 105 I6 = 0 (Inventario final) x1, ..., x6 ≥ 0 y1, ..., y6 ≥ 0 I1, ..., I6
≥
0
Ejercicio B1:
Formule un modelo de sistema lineal integrado para el modelo de una fábrica de productos de madera que trabaja con dos especies de árboles y fabrica dos productos: madera aserrada y madera prensada, la función objetivo se obtiene de tomar el precio de los productos terminados por la cantidad producida menos los costos de operación del sistema que se desea maximizar. Los costos de operación provienen de la explotación del bosque más la compra al mercado externo, los costos de producción de madera aserrada y de madera prensada y las ventas se obtienen del mercado externo e interno. Considere restricciones de Disponibilidad de los dos tipos de troncos, costos de embarque tanto de explotación como de venta, costos de almacenaje, capacidad de producción de la planta y demanda.
METODOS PARA LA SOLUCION DE PL Solución gráfica y solución Algebraica de un Problema de PL En las soluciones gráficas vemos que basta considerar los puntos extremos de la región factible para buscar la solución optima. A continuación se verá un método algebraico para encontrar dichas soluciones: El primer consiste en transformar el problema a su forma típica es decir las desigualdades se transforman en desigualdades con el lado derecho positivo. Max Z = 6x1 + 10x2 Sujeto a: 2x1 ≤ 8 4x2 ≤ 24 6x1 + 4x2 ≤ 36 x1, x2 ≥ 0 Forma tipica: Max Z = 6x1 + 10x2 Sujeto a: 2x1 + h1 = 8 4x2 + h2 = 24 6x1 + 4x2 + h3 = 36 x1, x2, h1, h2, h3
≥
0
Las variables h1, h2, h3 se llaman variables de holgura y se usan para convertir las desigualdades en igualdades. La región determinada por x1, x2, h1, h2, h3 ≥ 0 y las restricciones es la misma determinada por las restricciones iniciales. Para obtener los puntos extremos de la región, se observa que cada punto extremo tiene dos variables iguales a 0. Entonces los puntos pueden determinarse haciendo simultáneamente dos de las cinco variables iguales a 0. El procedimiento determina una solución básica a partir del sistema de m ecuaciones con n incógnitas definido por la forma típica, haciendo n - m variables iguales a 0. Las n - m variables son variables no básicas y las m restantes son llamadas variables básicas. Ejemplo B4
Max Z = 5x1 + 3x2 Sujeto a: 2x1 - 3x2 ≤ 4 x1 + x2 ≤ 10 x1, x2 ≥ 0 Forma típica:
Max Z = 5x1 + 3x2 Sujeto a: 2x1 - 3x2 + x3 = 4 x1 + x2 + x4 = 10 x1, ... , x4 ≥ 0 M = 2 (2 Ecuaciones) n = 4 (4 incognitas) Se efectúan los siguientes cálculos.
No.
Variables No Básicas
Variables Básicas
Valores de las VB
Valores de Z
1
X1, x2 = 0
X3, x4
X3 = 4, x4 =10
0
2
X3, x2 = 0
X1, x4
X1 = 2, x4 = 8
10
3
X3, x4 = 0
X1, x2
X1 = 34/5, x2=16/5
218/5*
4
X1, x3 = 0
X2,x4
X2 = -4/3
---
5
X2, x4 = 0
X1,x3
X3 = -16 (no factible)
---
6
X1, x4 = 0
X2,x3
X2 = 10, x3 = 34
30
Se observa que se han resuelto 6 sistemas de ecuaciones, en general se resolverían Cnm, (¿por qué?) por ejemplo si m = 5 y n = 10 se resolverían C10,5 = 252 sistemas de ecuaciones.
Introducción al Método Simplex El método simplex comienza con una solución básica factible y está diseñado para buscar en forma eficiente, nuevas soluciones que mejoran el valor de la función objetivo. El método consiste en encontrar una solución básica factible de partida, determinar la variable básica que debe salir y cual es la variable básica que debe entrar en la iteración. Finalmente proporciona una forma de identificar una solución óptima. Ejemplo B5:
Max: z = 3x 1 + 4x2 Sujeto a: 4x1 + 2x2 ≤ 80 2x1 + 5x2 ≤ 120 x1, x2 ≥ 0
Primer paso:
Expresar el problema en forma típica: Z
-3x1
-4x2
4x1
+2x2
2x1
+5x2
x1
x2
+x3 +x4
=
0
=
80
=
120
≥
0
El método simplex comienza haciendo las variables de decisión iguales a 0 para z = 0 y establece como variables básicas (VB) las variables de holgura x3 y x4 Solución inicial: Z=0 (x1, x2, x3, x4) = (0, 0, 80, 120) Tabla inicial del método: VB
Z
X1
X2
X3
X4
Sol
Z
1
-3
-4
0
0
0
X3
0
4
2
1
0
80
X4
0
2
5
0
1
120
Las columnas X1 y X2 corresponden a los coeficientes de las variables de decisión del problema expresado en su forma típica, las columnas X3 y X4 corresponden a los coeficientes de las variables de holgura. La última columna corresponde a la solución inicial y los b i Segundo paso:
Determinación de la nueva variable básica y la variable que se retira de la solución básica factible. Variable que entra:
La variable que entra es la correspondiente al coeficiente más negativo de la fila Z. -4 ⇒ Entra x2, x2 es la columna pivote.
Variable que sale:
Se divide los b i de la columna solución por los coeficientes de la columna pivote que sean estrictamente positivos y se toma el menor resultado. La variable correspondiente a esta fila es la que sale. Es la primera que llega a 0 cuando la variable que entra crece. Esta es la fila pivote. Entra (pivote)
Sale (pivote)
VB
Z
X1
X2
X3
X4
Sol
Z
1
-3
-4
0
0
0
X3
0
4
2
1
0
80
80/2 = 40
X4
0
2
5
0
1
120
120/5 = 24
El coeficiente de valor 5 de la fila x4 es el pivote. Tercer paso: Proceso Iterativo
1. Se divide la fila pivote por el pivote y se reduce a 0 el resto de la columna pivote. En ejemplo se multiplica por -2 y se suma a la fila x3, análogamente se reduce la fila z. Primera iteración:
VB
Z
X1
X2
X3
X4
Sol
Z
1
-7/5
0
0
4/5
96
X3
0
16/5
0
1
-2/5
32
X2
0
2/5
1
0
1/5
24
Solución: Z = 96 (x1, x2, x3, x4) = (0, 24, 32, 0) Revisión de optimalidad:
Se llega al óptimo cuando todos los coeficientes de la función objetivo no son negativos, puesto que si algún coeficiente es negativo, en el lado derecho de la ecuación, este sería positivo, por lo que un aumento de la variable correspondiente haría incrementar el valor de la función objetivo.
Entra (pivote)
Sale (pivote)
VB
Z
X1
X2
X3
X4
Sol
Z
1
-7/5
0
0
4/5
96
X3
0
16/5
0
1
-2/5
32
32*5/16 = 10
X4
0
2/5
1
0
1/5
24
24*4/2 = 48
Segunda iteración:
El coeficiente de valor 16/5 de la fila x3 es el pivote. Eliminamos columna pivote: VB
Z
X1
X2
X3
X4
Sol
Z
1
0
0
7/16
5/8
110
X1
0
1
0
5/16
-1/8
10
X2
0
0
1
-1/8
13/40
20
Revisión de optimalidad: Ahora todos los coeficientes de la función objetivo son no negativos entonces la solución es la optima: Z* = 110 X1* = 10 X2* = 20 X3 = x4 = 0
Ejemplo B6
Max Z = 10x1 + 15x2 Sujeto a: 2x1 + 2x2 ≤ 160 x1 + 2x2 ≤ 120 4x1 + 2x2 ≤ 180 x1, x2 ≥ 0 Forma típica: Variables de holgura: x3, x4, x5. Z - 10x1 - 15 x2 = 0 2x1 + 2x2 + x3 = 160 x1 + 2x2 + x4 = 120 4x1 + 2x2 + x5 = 280 x1, ... , x5 ≥ 0 Tabla inicial:
VB
Z
X1
X2
X3
X4
X5
Sol
Z
1
-10
-15
0
0
0
0
X3
0
2
2
1
0
0
160
X4
0
1
2
0
1
0
120
X5
0
4
2
0
0
1
280
Columna pivote: x2 Fila pivote: x4
Iteraciones: Segunda iteración:
VB
Z
X1
X2
X3
X4
X5
Sol
Z
1
-5/2
0
0
15/2
0
900
X3
0
1
0
1
-1
0
40
X2
0
1/2
1
0
1/2
0
60
X5
0
3
0
0
-1
1
160
Tercera iteración:
VB
Z
X1
X2
X3
X4
X5
Sol
Z
1
0
0
5/2
5
0
1000
X1
0
1
0
1
-1
0
40
X2
0
0
1
-1/2
1
0
40
X5
0
0
0
-3
2
1
40
La solución optima es (x1, x2, x3, x4, x5) * = (40, 40, 0, 0, 40) Z* = 1000 Ejercicios B2
1. Max z = 3x1 + 10x2 Sujeto a: x1 + 4x2 ≤ 8 x1 + 2x2 ≤ 4 x1, x2 ≥ 0 2. Max Z = 3x1 + 5x2
Sujeto a X1 -2x2 ≤ 5 2x1 ≤ 12 x1, x2 ≥ 0 3. Max 2x1 + 3x2 Sujeto a: X1 + 2x2 + x3 = 4 X1 + x2 = 3 X1, x2, x3 ≥ 0.