Solución algebraica a los problemas de programación lineal con el

Anuncio
Tema II: Programación Lineal
Contenido: Solución algebraica a los problemas de programación lineal con el método
simplex.
Introducción
El método simplex resuelve cualquier problema de PL con un conjunto finito de
variables de decisión. De manera general el procedimiento consiste en escoger una
solución factible y básica por un proceso iterativo, mejorarla en cada ciclo hasta
obtener la solución óptima si existe.
Problema de PL en forma estándar
Se dice que un problema está en forma estándar cuando:
a) Todas las variables son no negativas
b) Todas las restricciones están presentadas como igualdades
c) Los valores de la derecha de la ecuación son contantes positivos
Para que una desigualdad de la forma ≤ (menor o igual) se convierta en una igualdad
se le agrega en el lado izquierdo una variable Si llamada variable de holgura. Esta
variable representa la cantidad de recurso ocioso o sobrante en la solución.
Así mismo, una desigualdad de la forma ≥ (mayor o igual) se convierte en una igualdad
restando en el lado izquierdo una variable Si llamada variable de excedente y sumando
otra variable Ai llamada variable artificial. Si representa la cantidad en que se sobrepasa
a la exigencia o a la norma mínima establecida. Ai no tiene significado económico, se
agrega solamente para garantizar las condiciones de no negatividad. Si la restricción es
una igualdad solo se agrega una variable artificial.
Cambios en la función objetivo:
Los coeficientes de las variables de holgura y excedente deben aparecer con
coeficiente cero en la función objetivo. En el caso de las variables artificiales deben
aparecer con coeficientes muy grandes representados con la letra “M”. Si el problema
es de maximizar el coeficiente asignado es “-M” y si el problema es de minimizar el
coeficiente será “+M”.
Ejemplo:
Consideremos el siguiente problema en el cual X1 y X2 son las unidades a fabricar de
los productos A y B, respectivamente.
Max
Z = 50X1 + 70X2 + 40X3
Sujeto a
4X1 + 5X2 + 10X3 ≤ 1000
8X1 + 7X2 + 5X3 ≥ 500
2 X1 + 5X2 + 4X3 ≤ 300
X1 , X2 , X3 ≥ 0
El modelo estandarizado sería:
Max
Z = 50X1 + 70X2 + 40X3 + 0S1 – 0S2 – MA1 + 0S3
Sujeto a
4X1 + 5X2 + 10X3 + S1
≤ 1000
8X1 + 7X2 + 5X3 – S2 + A1 ≥ 500
2X1 + 5X2 + 4X3 + S3
≤ 300
X1 , X2 , X3 , S1 , S2 , S3 , A1 ≥ 0
Tabla inicial simplex
Conceptos Básicos:
a) Una solución básica factible (SBF) se obtiene si en el sistema de m ecuaciones
con n variables (n ≥ m), se asigna arbitrariamente el valor de cero a n – m
variables.
b) Las n – m variables que toman el valor cero en el sistema son conocidas como
variables no básicas (VNB) y las m variables restantes son llamadas variables
básicas (VB) y estás pasan a formar parte de la base en la tabla inicial simplex.
c) Al plantear la tabla inicial las variables básicas (VB) siempre serán las variables
de holgura y/o las variables artificiales. Las variables no básicas serían las
variables de decisión y de excedente.
En el ejemplo anterior el número de variables en el modelo estandarizado es n = 7, y el
número de ecuaciones es m= 3
El número de variables no básicas (VNB) sería n-m es decir 7- 3 = 4
Estas variables son:(X1, X2, X3, S2)
El número de variables básicas (VB) sería m = 3, las cuales son: (S1, A1, S3)
Tabla inicial Simplex
Cj
50
70
40
0
0
-M
0
VB
X1
X2
X3
S1
S2
A1
S3
bi
0
S1
4
5
10
1
0
0
0
1000
-M
A2
8
7
5
0
-1
1
0
500
0
S3
2
5
4
0
0
0
1
300
Zj
-8M
-7M
-5M
0
M
-M
0
-500M
Cj - Zj
50 + 8M
70 + 7M
40 + 5M
0
-M
0
0
En el primer renglón Cj se colocan todos los coeficientes de las variables que aparecen
en la F.O.
En el segundo renglón se colocan todas las variables que están en la F.O.
En la primera columna Cj se ubican los coeficientes de las VB.
En la segunda columna se ubican las variables básicas (VB) que en este caso serían:
S1 (variable de holgura en la Ecuación 1)
A2 (variable artificial en la Ecuación 2)
S3 (variable de holgura en la Ecuación 3)
El resto de variables se clasifican como variables no básicas (VNB), es decir que se les
asigna el valor cero arbitrariamente.
En la tercera columna se colocan los coeficientes de la variable X1 que le correspondan
en cada ecuación, de igual manera se procede con el resto de variables hasta llegar a
la última columna bi que se forma con los valores del lado derecho de cada ecuación.
Los valores que aparecen en el renglón Zj se obtienen al sumar los productos de los
coeficientes de la columna Cj con los coeficientes de cada variable en su columna
correspondiente. Así para la columna X1 el valor de Z1 correspondiente se obtiene de la
siguiente manera:
Z1 = 0 (4) + (-M) (8) + 0 (2)
Z1 = - 8M
Z2 = 0 (5) + (-M) (7) + 0 (5)
Z2 = - 7M
Z3 = 0 (10) + (-M) (5) + 0 (4)
Z3 = - 5M
Z4 = 0 (1) + (-M) (0) + 0 (0)
Z4 = 0
Z5 = 0 (0) + (-M) (-1) + 0 (0)
Z5 = M
Z6 = 0 (0) + (-M) (1) + 0 (0)
Z6 = - M
Z7 = 0 (4) + (-M) (0) + 0 (1)
Z7 = 0
Z8 = 0 (1000) + (-M) (500) + 0 (300)
Z8 = - 500M
Los valores del renglón Cj – Zj se obtienen restando los valores del primer renglón Cj
con los valores del renglón Zj
En consecuencia se obtiene:
C1 – Z1 = 50 – (- 8M) = 50 + 8M
C2 – Z2 = 70 – (- 7M) = 70 + 7M
C3 – Z3 = 40 – (- 5M) = 40 + 5M
C4 – Z4 = 0 – 0 = 0
C5 – Z5 = 0 – (M) = - M
C6 – Z6 = – M + 0 = - M
C7 – Z7 = 0 - 0 = 0
Solución Básica Factible Inicial (SBFI)
En la tabla simplex los valores ubicados en la columna bi corresponde al valor o
solución de cada variable básica ubicada en la columna VB.
En consecuencia la solución básica factible que se presenta en la tabla inicial simplex
(SBFI) es la siguiente:
X1 = 0
X2 = 0
X3 = 0
S1 = 1000 (VB) S2 = 0 (VNB)
(Estas son VNB)
S3 = 300 (VB)
A1 = 500 (VB)
Zoptimo = - 500 M
Mejoramiento de la solución inicial
Una tabla simplex es óptima si cumple que:
1) ∀ (𝐶𝑗 − 𝑍𝑗 ) ≤ 0 cuando el problema es de Maximizar
2) ∀ (𝐶𝑗 − 𝑍𝑗 ) ≥ 0 cuando el problema es de Minimizar
La tabla inicial nunca es óptima y para mejorar la solución que presenta, una nueva
variable debe entrar a la base (es decir de VNB pasar a VB) y otra variable debe salir
de la base (es decir de VB pasar a VNB).
En este proceso se aplican los siguientes criterios:
1) Criterio de optimalidad (para seleccionar la variable entrante)
a) Si el problema es de maximizar, visualizar el mayor valor del renglón Cj - Zj y
seleccionar la variable que corresponde a ese valor, al inicio de la columna
(en el renglón VB).
b) Si el problema es de minimizar, visualizar el menor valor del renglón Cj – Zj y
seleccionar la variable correspondiente a ese valor al inicio de la columna (en
el renglón VB).
2) Criterio de factibilidad (para seleccionar la variable saliente)
Cuando ya se tiene seleccionada la variable entrante se efectúan los cocientes
entre los valores de la columna bi y los valores de la columna correspondiente a
la variable entrante Xj, seguidamente visualizar el menor cociente obtenido y
seleccionar la variable básica en la columna VB correspondiente al menor
cociente.
No se deben considerar cocientes negativos, ni cocientes indefinidos (división entre
cero).
En el ejemplo dado, la F.O. es de maximizar por lo tanto:
La variable entrante es X1, porque es la que corresponde al mayor valor en el renglón
Cj – Zj (50 + 8M)
La variable saliente se selecciona después de efectuar los cocientes (1000 / 4 = 250),
(500 / 8 = 62.5), (300 / 2 =150). Luego la variable saliente será A2 porque es la que
corresponde al menor cociente.
Tabla inicial Simplex
V.E.
Cj
50
70
40
0
0
-M
0
VB
X1
X2
X3
S1
S2
A1
S3
bi
0
S1
4
5
10
1
0
0
0
1000 ÷ 4
-M
A2
8
7
5
0
-1
1
0
500 ÷ 8
0
S3
2
5
4
0
0
0
1
300 ÷ 2
Zj
-8M
-7M
-5M
0
M
-M
0
-500M
Cj - Zj
50 + 8M
70 + 7M
40 + 5M
0
-M
0
0
Ejercicio:
1)
Max
Z = 250X1 + 200X2
s.a.
X1 +
2X2 ≥ 12
- X1 +
X2 ≤ 2
6X1 +
4X2 ≥ 48
X1, X2 ≥ 0
2)
Min
s.a.
Z = 400X1 + 300X2
3X1 +
2X2 ≤ 330
2X1 +
X2 ≥ 80
2X1 +
4X2 ≤ 240
X1, X2 ≥ 0
V.S.
Descargar