1. 1
Solución de PPL:
Método Dual-Simplex
Docente : Lic. Gabriel Solari Carbajal
Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería de Sistemas e Informática
Investigación Operativa I
2
EL METODO DUAL-SIMPLEX
Este método elaborado por Carlton E. Lemke en 1954,
se utiliza para hallar la solución de un PPL, que es
óptimo pero infactible. En la actualidad todos los
software comerciales utilizan éste método.
Método Dual-Simplex
2. 2
3
1) Dado un PPL de maximización o minimización
transformarlo, mediante las reglas de equivalencia a
su forma canónica:
cXZMax/Min =
bAX≤
0X ≥
sujeto a
Método Dual-Simplex
Las restricciones con ≥, convertir a ≤ multiplicando
por (-1) ambos lados de la restricción.
Procedimiento.-
4
2) Expresar el PPL del paso 1 a la forma estándar
mediante la aplicación de la regla 4 de las reglas de
equivalencia:
sujeto a
nn2211 xcxcxcZMax/Min +++= L
11nn1n212111 bxxaxaxa =++++ +L
22nn2n222121 bxxaxaxa =++++ +L
M
mmnnmn2m21m1 bxxaxaxa =++++ +L
Método Dual-Simplex
3. 3
5
El vector de las variables de holgura y/o exceso (xn+1,
xn+2,..., xn+m) se convierte en la primera base del
PPL, tomando como valores el vector de recursos.
Las variables básicas de exceso resultan infactibles
tomando valores negativos.
Método Dual-Simplex
6
3) Escribir la función objetivo en la forma:
o en forma similar:
0cXZ =−
0xcxcxcZ nn2211 =−−−− L
Método Dual-Simplex
4. 4
7
4) Construir la tabla inicial con los coeficientes del
problema estándar obtenido en los pasos 2 y 3, esta
tabla tiene la siguiente estructura:
Z x1 x2 xn xn+1 xn+2 xn+m Sol.
Z 1 -c1 -c2 -cn 0 0 0 0
xn+1 0 a11 a12 a1n 1 0 0 b1
xn+2 0 a21 a22 a2n 0 1 0 b2
xn+m 0 am1 am2 amn 0 0 1 bm
Θ
Método Dual-Simplex
8
El tablero resultante debe ser óptimo pero infactible.
Si el problema es de maximización, los coeficientes
zj-cj son no negativos.
Si el problema es de minimización, los coeficientes
zj-cj son no positivos.
Algunas variables básicas toman valores negativos
resultando infactibles.
NOTA:
Si el tablero no es óptimo, operar con el método
Simplex (anterior) hasta que lo sea.
Método Dual-Simplex
5. 5
9
5) Condición de factibilidad
Seleccione como variable de salida de la base,
aquella variable que tenga el valor más negativo.
Método Dual-Simplex
Z x1 x2 x3 x4 x5 x6 Sol.
Z 1
x4 0 -3
x5 0 -6
x6 0 3
Θ
Ejemplo:
10
La variable básica con valor más negativo
corresponde a x5 (-6), entonces es la variable que
debe salir de la base.
Si hay empate entre 2 o más variables básicas para
salir de la base, elija arbitrariamente cualquiera de
ellas.
Si todas las variables básicas son no negativas, la
solución óptima ha sido hallada.
Método Dual-Simplex
6. 6
11
Método Dual-Simplex
6) Condición de optimalidad
Seleccione como variable de entrada a la base,
aquella variable no básica que le corresponde el
cociente más pequeño de los que resultan de dividir
los coeficientes zj-cj con los coeficientes
estrictamente negativos de la matriz de coeficientes
tecnológicos correspondientes a la variable que sale.
12
Método Dual-Simplex
Ejemplo: En un problema de maximización
Z x1 x2 x3 x4 x5 x6 Sol.
Z 1 1 3 2 0 0 0
x4 0 -3
x5 0 -2 4 -3 0 1 0 -6
x6 0 3
Θ
{ } 500.0667.00.500,min
3-
2
,
2-
1
min ==
⎭
⎬
⎫
⎩
⎨
⎧
7. 7
13
El menor cociente corresponde a la variable x1
(0.500), entonces esta es la variable que debe
ingresar a la base.
Si hay empate en los cocientes entre 2 o más
variables, elija arbitrariamente cualquiera de ellas.
Si no se tienen coeficientes tecnológicos
estrictamente negativos (no hay variable que ingrese
a la base), la solución es no acotada.
Método Dual-Simplex
14
7) Construcción de la nueva tabla Simplex
La intersección de la fila que corresponde a la
variable que debe salir con la columna que
corresponde a la variable que debe ingresar
determina un elemento que se conoce como pivot.
Mediante operaciones elementales construir la nueva
tabla Dual-Simplex, donde se verifique que la
variable que ingresa a la base le corresponde un
vector unitario y un valor zj-cj igual a cero.
El valor 1 de este vector unitario se encuentra en la
ubicación del pivot.
Método Dual-Simplex
8. 8
15
Las operaciones que se utilizan son:
La nueva fila pivot se obtiene dividiendo cada valor
de la fila pivot entre el valor pivot.
Método Dual-Simplex
16
Z x1 x2 x3 x4 x5 x6 Sol.
Z 1 4 2 3 0 0 0 0
x4 0 -3
x5 0 -1 2 -2 0 1 0 -6
x6 0 3
Z 1 0
x4 0 0
x3 5 0.5 -1 1 0 -0.5 0 3
x6 0 0
Θ
Método Dual-Simplex
9. 9
17
Las restantes filas se obtienen de la siguiente forma:
Restar a cada valor de una fila no pivot el producto
de su correspondiente valor en la columna pivot por
su correspondiente valor columna en la nueva fila
pivot.
Método Dual-Simplex
18
Z x1 x2 x3 x4 x5 x6 Sol.
Z 1 -3 -2 -5 0 0 0 0
x4 0 1 1 430 430
x5 0 3 0 2 0 1 0 460 230
x6 0 0 420
1 - 1 x 1.5 = -0.5
Z 1 0 0 0
x4 0 -0.5 0
x3 5 1.5 0 1 0 0.5 0 230
x6 0 0
Θ
Método Dual-Simplex
10. 10
19
Una vez completa la nueva tabla regresar al paso 5.
Método Dual-Simplex
20
PROBLEMA.-
Se desea averiguar las cantidades de ciertos alimentos
que deben comerse para satisfacer ciertos
requerimientos nutritivos a un costo mínimo.
Supongamos que las consideraciones se limitan a
leche, carne, huevos y a las vitaminas A, C y D.
Supongamos que el número de miligramos de
vitaminas contenidas en cada unidad de alimentos se
da en la tabla siguiente:
Método Dual-Simplex
11. 11
21
A 1 1 10 1
C 100 10 10 50
D 10 100 10 10
Costo en soles 40 44 20
VITAMINA
Mínimo
requerido a
diario (mg)
Galón de
leche
Libra de
carne
Docena de
huevos
Método Dual-Simplex
22
SOLUCION.-
xL : cantidad de leche en galones
xC : cantidad de carne en libras
xH : cantidad de huevos por docena
Variables de decisión
Método Dual-Simplex
12. 12
23
Restricción por requerimiento mínimo de vitamina A:
110xxx HCL
≥++
Restricciones
Restricción por requerimiento mínimo de vitamina C:
5010x10x100x HCL
≥++
Restricciones de no negatividad:
Restricción por requerimiento mínimo de vitamina D:
1010x100x10x HCL
≥++
0x,x,x HCL
≥
Método Dual-Simplex
24
HCL
20x44x40xZMin ++=
Función objetivo
Método Dual-Simplex
13. 13
25
El programa queda:
sujeto a
HCL
20x44x40xZMin ++=
110xxx HCL
≥++
5010x10x100x HCL
≥++
1010x100x10x HCL
≥++
0x,x,x HCL
≥
Método Dual-Simplex
26
A la forma canónica:
sujeto a
HCL
20x44x40xZMin ++=
110xxx HCL −≤−−−
5010x10x100x HCL −≤−−−
1010x100x10x HCL −≤−−−
0x,x,x HCL
≥
Método Dual-Simplex
14. 14
27
A la forma estándar:
sujeto a
HCL
20x44x40xZMin ++=
1x10xxx 1HCL
−=+−−−
50x10x10x100x 2HCL
−=+−−−
10x10x100x10x 3HCL
−=+−−−
0x,x,x HCL
≥
Método Dual-Simplex
28
Construyendo el tablero inicial se tiene:
Se observa que la variable que debe salir de la base es
x2 y la variable que debe ingresar a la base es xL. El
valor pivot es -100. La solución actual es Z = 0.
Método Dual-Simplex
Z xL xC xH x1 x2 x3 Sol.
Z 1 -40 -44 -20 0 0 0 0
x1 0 -1 -1 -10 1 0 0 -1
x2 0 -100 -10 -10 0 1 0 -50
x3 0 -10 -100 -10 0 0 1 -10
0.40 4.40 2.00
15. 15
29
Se observa que la variable que debe salir de la base es
x3 y la variable que debe ingresar a la base es xC. El
valor pivot es -99. La solución actual es Z = 20.
realizando las correspondientes operaciones
matriciales, se obtiene:
Método Dual-Simplex
Z xL xC xH x1 x2 x3 Sol.
Z 1 0 -40 -16 0 -0.4 0 20
x1 0 0 -9/10 -99/10 1 -1/100 0 -1/2
xL 40 1 1/10 1/10 0 -1/100 0 1/2
x3 0 0 -99 -9 0 -1/10 1 -5
0.40 1.78 4.00
30
Se observa que la variable que debe salir de la base es
x1 y la variable que debe ingresar a la base es xH. El
valor pivot es –108/11. La solución actual es Z =
2180/99.
realizando las correspondientes operaciones
matriciales, se obtiene:
Método Dual-Simplex
Z xL xC xH x1 x2 x3 Sol.
Z 1 0 0 -136/11 0 -178/495 -40/99 2180/99
x1 0 0 0 -108/11 1 -1/110 -1/110 -5/11
xL 40 1 0 1/11 0 -1/99 1/990 49/99
xC 44 0 1 1/11 0 1/990 -1/99 5/99
1.26 39.56 44.44
16. 16
31
Se observa que no hay variable candidata para salir
(factible), y el tablero ya es óptimo, por lo tanto se ha
llegado a la solución óptima.
Realizando, nuevamente, las correspondientes
operaciones matriciales, se obtiene:
Método Dual-Simplex
Z xL xC xH x1 x2 x3 Sol.
Z 1 0 0 0 -34/27 -47/135 -53/135 610/27
xH 20 0 0 1 -11/108 0 0 5/108
xL 40 1 0 0 1/108 -6/589 0 53/108
xC 44 0 1 0 1/108 0 -6/589 5/108
32
La solución es:
108/53xL
=
108/5xC
=
108/5xH
=
27/610Z =
0x1
=
0x2
=
0x3
=
Método Dual-Simplex