Programación Lineal Lic. Mario E. Ninaquispe Soto Investigación de Operaciones
1
METODO SIMPLEX
La programación lineal se puede resolver a través del algoritmo simplex; su importancia radica
en que proporciona soluciones etapa por etapa, donde la solución básica factible está en
consideración, y cada etapa nos da una mejor solución óptima.
El álgebra matricial y el proceso de eliminación completa de Gauss-Jordan para resolver un
sistema de ecuaciones simultáneas lineales son las raíces del método simplex de la PL.
Para utilizar el método simplex, es necesario cambiar todas las desigualdades en igualdades.
Para hacer esta transformación a igualdad, donde automáticamente aumentamos una matriz
identidad a nuestro modelo, como requisitos para obtener la matriz A/I/B (A es la matriz de
coeficientes tecnológicos, I es la matriz identidad y B es el vector de disponibilidad o vector
columna de términos independientes) tenemos que utilizar variables de exceso y variables
artificiales.
Se dice de holgura pues toman la diferencia entre la parte derecha de la ecuación o los
sobrantes de los recursos disponibles. Se utiliza variables de holgura (exceso) para convertir
las desigualdades en igualdades y se utiliza variables artificiales cuando la variable de la
holgura no proporciona coeficientes positivos en la matriz identidad. Es decir, las variables que
están en la base; los coeficientes de la fila de la función objetivo correspondiente de la matriz
identidad, deben ser positivos, así como la variable artificial tiene una función matemática, se
tiene que asegurar que nunca aparezca en la solución final. Esta condición se puede cumplir
dando un coeficiente de costo artificial a la función objetivo.
1. Forma canónica de un PPL
Un PPL diremos que está escrito en la forma canónica de la siguiente manera:
Maximizar (Minimizar) nn xcxcxcxcZ ........332211
Sujeto a (s.a.):
0,
........
..........
..........
..........
........
........
........
,3,2,1
2211
31212111
22222121
11212111
n
mnmnmm
nn
nn
nn
xxxx
bxaxaxa
bxaxaxa
bxaxaxa
bxaxaxa
2. Forma Estándar de un PPL
Un PPL diremos que está escrito en la forma estándar, si está escrito de la siguiente manera:
Maximizar (Minimizar) nn xcxcxcxcZ ........332211
Sujeto a (s.a.):
Programación Lineal Lic. Mario E. Ninaquispe Soto Investigación de Operaciones
2
0,
........
..........
..........
..........
........
........
........
,3,2,1
2211
31212111
22222121
11212111
n
mnmnmm
nn
nn
nn
xxxx
bxaxaxa
bxaxaxa
bxaxaxa
bxaxaxa
3. Reglas para convertir un PPL a la forma estándar El primer paso para resolver un PPL mediante el método simplex es escribir el PPL en la forma estándar; como no siempre el programa original está en esta forma, se hace necesario un conjunto de reglas; para convertirlo.
Conversión de una desigualdad en igualdad y solución de un PPL
Veremos dos casos:
a. El problema tiene todas sus restricciones de tipo “ ”:
Convertir toda desigualdad, de la forma:
11212111 ........ bxaxaxa nn …(1)
Se puede convertir en igualdad, mediante la adición de una nueva variable no negativa
iS ; llamada variable Slack u Holgura; de esta manera (1) se convierte en:
111212111 ........ bSxaxaxa nn … (2)
Ejemplo:
252 21 xx Equivale a 252 321 Sxx
b. El problema tiene restricciones: “ ”
Convertir toda desigualdad, de la forma:
11212111 ........ bxaxaxa nn … (3)
Se puede convertir en igualdad, mediante la sustracción de una nueva variable iS no
negativa llamada variable de Exceso o Surplus y la adición de una variable iR no
negativa llamada variable Artificial; de esta manera (3) se convierte en:
1111212111 ........ bRSxaxaxa nn … (4)
Ejemplos:
2452 321 xxx es equivalente a 2452 54321 RSxxx
4753 321 xxx es equivalente a 4753 54321 RSxxx
Programación Lineal Lic. Mario E. Ninaquispe Soto Investigación de Operaciones
3
c. El problema tiene restricciones: “ ”.
Convertir toda desigualdad, de la forma:
11212111 ........ bxaxaxa nn … (3)
Se puede convertir a igualdad, mediante la adición de una nueva variable iR no negativa
llamada variable Artificial; de esta manera (3) se convierte en:
111212111 ........ bRxaxaxa nn … (4)
Ejemplos:
266 321 xxx es equivalente a 266 1321 Rxxx
4. Pasos para el desarrollo del problema mediante el Algoritmo Simplex:
Sea el siguiente PPL:
Maximizar (Minimizar) nn xcxcxcxcZ ........332211
Sujeto a (s.a.):
0,
........
..........
..........
..........
........
........
........
,3,2,1
2211
31212111
22222121
11212111
n
mnmnmm
nn
nn
nn
xxxx
bxaxaxa
bxaxaxa
bxaxaxa
bxaxaxa
Paso 1: Convertir el problema de su forma canónica, a su forma estándar.
Maximizar (Minimizar) nn xcxcxcxcZ ........332211
Sujeto a (s.a.):
Programación Lineal Lic. Mario E. Ninaquispe Soto Investigación de Operaciones
4
0,
........
..........
..........
..........
........
........
........
,3,2,1
2211
31212111
22222121
11212111
n
mnmnmm
nn
nn
nn
xxxx
bxaxaxa
bxaxaxa
bxaxaxa
bxaxaxa
Paso2: Pase el lado derecho de la función objetivo, hacia la izquierda )0( CXZ , y
cree la matriz del algoritmo simplex:
Matriz del algoritmo Simplex
Variables Originales / Exceso Variables Artificiales / Holgura
Tabla - 1
TABLA SIMPEX
Valor de Criterio
Variables de Decisión Variables de
Holgura( exceso) Solución
Variables Z x1 x2.............. -xn X11 X2
1 Xm
1 b¡
F.O. 1 -c1 -c2.............. -cn O O.......... O O
1° Base
O a11 a12.............. a1n 1 O......... O bI
O
a21 a22.............. a2n O 1......... O b2
· · · · · · · ·
Z 1x 2x … nx 1nx 2nx … mnx
RHS
1 11 cz
22 cz
… nn cz
11 nn cz
22 nn cz
… mnmn cz
0Z
1nx 0 11a 12a … na1
I
1b
2nx 0 21a 22a … na2 2b
… … … … … … …
mnx
0 1ma 2ma … mna mb
Programación Lineal Lic. Mario E. Ninaquispe Soto Investigación de Operaciones
5
· · · · · · · ·
O am1 am2.............. amn O ...... 1 bm
Tabla - 2
Notas.-
1. Los coeficientes que están en la base, constituyen los elementos de una matriz
identidad en cada etapa del proceso Símplex.
2. No se debe tener signos negativos en la columna solución, ya que de acuerdo con los
principios de la programación lineal, no podríamos tener una producción por ejemplo de
- 5 unidades.
Se llega a la solución óptima cuando los coeficientes de la función objetivo en la tabla Símplex, son positivos o cero.
Paso 3: Seleccionar la variable decisión que ingresará a la base; en el caso de
maximización, seleccione como variable de entrada (a la nueva solución),
aquella cuyo costo reducido )( kk CZ , sea el más negativo (y en casos de
minimización, selecciones el más positivo). En este caso se habrá encontrado la
columna pivote. Ir al Paso – 4.
En el caso de maximización, la búsqueda de la columna pivote culminará, si no
existe ninguna candidata de entrada, es decir si los costos reducidos
)0( kCXZ , son no negativos o ceros, entonces la búsqueda ha
terminado y los valores óptimos de! programa )(**
BXyZ , han sido hallados.
Si el caso es de minimización, la búsqueda culmina cuando todos los costos
reducidos )0( kCXZ son negativos o ceros.
En caso de empate, entre varios vectores candidatos, para entrar a la base:
elíjase uno de ellos arbitrariamente. Ir al Paso 4
Paso 4: Una vez seleccionado la variable kx , que entrará a la nueva solución.
Seleccione la variable de salida mnx de la solución actual que saldrá de la
base; utilizando la siguiente regla:
0,/0 iii
i
i
i bXb
XMin
b
X
Ir al paso – 5. En caso de existir empate, entre varios vectores candidatos;
elíjase uno de ellos arbitrariamente. Ir al paso 5
Si ibi 0 ; se trata de un programa con dominio admisible no acotado y
valor óptimo no acotado (crece indefinidamente). La búsqueda finaliza. La mejor solución básica, ha sido encontrada.
Paso 5 La intersección en la tabla de la variable que entra y la variable que sale,
determina el elemento pivote en ib . Aplique operaciones matriciales
elementales, en el pivote ib , con el objeto de convertir la columna kX en el
Programación Lineal Lic. Mario E. Ninaquispe Soto Investigación de Operaciones
6
vector unitario ke , el cual tiene todas sus componentes ceros; excepto el
elemento pivote, cuyo valor fue convertido en “1”. Volver al paso (4).
Tabla de criterios para el Símplex
Tipo de restricción
Valor de la función Objetivo
Maximización Minimización
l. Menor o igual sumar una variable de holgura.
Variable de holgura toma coeficiente cero en FO
Variable de holgura toma coeficiente cero en FO
2. Mayor o igual : sumar una variable de holgura(exceso) negativa y una variable artificial positiva
Coeficiente cero para la variables de exceso y -M para la variable artificial
Coeficiente cero para Var. Exceso y +M para variable artificial
3. Igual , necesita variable Artificial positiva
Coeficiente -M en la FO para la variable artificial
Coeficiente +M en FO para la variable artificial
Observación. M debe ser un número positivo, relativamente grande. Los siguientes tableros
Símplex, son equivalentes
VARIANTES DEL MÉTODO SIMPLEX.-
1.- Degeneración: Ocurre cuando 2 variables pueden salir por tene la misma rezón mínima
Ejem:
Max 21 93 xxZ
s.a.
0,
42
84
21
21
21
xx
xx
xx
Z X1 X2 S1 S2 Sol
Z 1 -3 -9 0 0 0
S1 0 1 4 1 0 8 8/4=2
S2 0 1 2 0 1 4 8/4=2
2.- Solución no Acotada:
Max 21 21 xxZ
s.a.
0,
402
10
21
21
21
xx
xx
xx
Programación Lineal Lic. Mario E. Ninaquispe Soto Investigación de Operaciones
7
Z X1 X2 S1 S2 Sol
Z 1 -1 -2 0 0 0
S1 0 1 -1 1 0 10
S2 0 2 -1 0 1 40
Cuando todos los coeficientes son negativos y ceros, en cualquier iteración entre los candidatos que puedan ingresar a la base, nos indica que el problema tiene solución NO ACOTADA
3.- Soluciones Factibles no Existentes:
Max 21 23 xxZ
s.a.
0,
1243
22
21
21
21
xx
xx
xx
Al resolver el problema anterior, la iteración final se muestra como sigue:
Z X1 X2 S2 S1 R1 Sol
Z 1 1+5M 0 M 2+4M 0 4-4M
S1 0 2 1 0 1 0 2
R1 0 -5 0 -1 -4 1 4
Como R1 (variable artificial), tiene solución final diferente a cero (R1 = 4); se dice que el problema no tiene solución.
Programación Lineal Lic. Mario E. Ninaquispe Soto Investigación de Operaciones
8
MÉTODO DE LAS DOS FASES:
Este método se utiliza para solucionar problemas que contengan variables artificiales, a las cuales permite eliminarlas. El método de utlización se basa en dos fases, en la primera se realizan iteraciones que permitan eliminar las variables artificiales, mientras que la segunda permite continuar con la solución generada durante la primera fase y hallar la solución del problema. Fase I: Paso 1.- Formular un nuevo problema reemplazando la función objetivo original por la suma de
las variables artificiales y manteniendo las mismas restricciones del problema original. Paso 2.- La nueva función objetivo se minimizará y estará sujeto a las restricciones iniciales. Paso 3.- Solucionar el nuevo problema mediante el procedimiento del método simplex
conocido. Paso 4.- Si el problema tiene espacios factibles,, entonces el valor final encontrado será cero,
de otro modo si el valor mínimo es mayor a cero, el problema se termina, lo cual indica que el vacío es el conjunto solución de todo el problema inicial.
Fase II: Paso 5.- Si la solución de la Fase I indica que el problema tiene espacio factible, se usa la
última solución básica factible obtenida en la Fase I, como una solución inicial para el problema original, en este caso la función objetivo original debe ser expresado en términos de las variables no básicas usando el procedimiento usual de operaciones finas.
Ejemplos:
0,
32
634
33
..
2
21
21
21
21
21
xx
xx
xx
xx
as
xxZMax
Sol: Conversión a la forma estándar:
0,
32
634
33
..
2
21
221
2121
121
2121
xx
Sxx
RSxx
Rxx
as
MRMRxxZMax
Programación Lineal Lic. Mario E. Ninaquispe Soto Investigación de Operaciones
9
Fase I
0,
32
634
33
..
21
221
2121
121
21
xx
Sxx
RSxx
Rxx
as
RRrMin o
x1 x2 S1 R1 R2 S2 Sol.
ro 1 0 0 0 -1 -1 0 0 Convertir los a ceros los valores de R1 y R2
R1 0 3 1 0 1 0 0 3
R2 0 4 3 -1 0 1 0 6
S3 0 1 2 0 0 0 1 3
ro 1 7 4 -1 0 0 0 9
R1 0 3 1 0 1 0 0 3 3/3 =1
R2 0 4 3 -1 0 1 0 6 6/4 =1.5
S3 0 1 2 0 0 0 1 3 3/1 = 3
ro 1 0 1.67 -1 -2.33 0 0 2
x1 0 1 0.33 0 0.33 0 0 1 3.03
R2 0 0 1.67 -1 -1.33 1 0 2 1.20
S3 0 0 1.67 0 -0.33 0 1 2 1.20
ro 1 0 0 0 -1 -1 0 0
x1 0 1 0 0.2 0.6 -0.2 0 0.6
x2 0 0 1 -0.6 -0.8 0.6 0 1.2
S3 0 0 0 1 1 -1 1 0
Como ro = 0, entonces el problema tienes soluciones acotadas, entonces continuamos con la Fase II
Fase II: Armaremos el tablero simplex tomando en cuando la solución final de la Fase I, sin tomar en cuenta las columnas de las variables artificiales. Convertir en cero las variables que se encuentren dentro de la base, y encontrar la variable que entra y la variable que sale.
x1 x2 S1 S2 Sol.
Z 1 -2 -1 0 0 0
x1 0 1 0 0.2 0 0.6 0.60
x2 0 0 1 -0.6 0 1.2 #¡DIV/0!
S3 0 0 0 1 1 0 #¡DIV/0!
Z 1 0 0 -0.2 0 2.4
x1 0 1 0 0.2 0 0.6 3.00
x2 0 0 1 -0.6 0 1.2 -2.00
S3 0 0 0 1 1 0 0.00
Z 1 0 0 0 0.2 2.4
x1 0 1 0 0 -0.2 0.6 #¡DIV/0!
Programación Lineal Lic. Mario E. Ninaquispe Soto Investigación de Operaciones
10
x2 0 0 1 0 0.6 1.2 #¡DIV/0!
S3 0 0 0 1 1 0 0.00
PROBLEMA DUAL
Para Todo problema de programación lineal, existe otro problema denominado dual. Las relaciones entre el problema dual y el original (denominado primal) son extremadamente útiles en gran variedad de soluciones; por ejemplo se verá que la solución óptima del problema dual es la que proporciona los precios sombra ya descritos anteriormente.
Supongamos el problema primal de la forma que se muestra en la izquierda, su problema dual se representará en la forma que se muestra a su derecha:
Problema Primal Problema Dual
njparax
miparaibxaAS
xcZMaximizar
j
n
j
jij
n
j
jj
,...,2,1,0
,...,2,1..1
1
miparay
njparajcyaAS
ybyMinimizar
i
n
j
jij
m
i
ii
,...,2,1,0
,...,2,1..1
1
0
Ejemplos:
0,
30
2025
4532
609
..
65
21
2
21
21
21
210
xx
x
xx
xx
xx
as
xxxMax
0,,,
61239
552
..
30204560
4321
4321
321
43210
yyyy
yyyy
yyy
as
yyyyyMin
Problema Dual cuando el Primal está en forma estándar
Problema Primal estándar Problema Primal canónica
2222121
1212111
2211
..
bxaxa
bxaxa
as
xcxcZMax
22222121
11212111
11212111
2211
..
ybxaxa
ybxaxa
ybxaxa
as
xcxcZMax
Programación Lineal Lic. Mario E. Ninaquispe Soto Investigación de Operaciones
11
Entonces el problema dual será:
signoenairrestrictesyyyy
yyy
cyayaya
cyayaya
as
ybybybyMin
1111
211
2222112112
1221111111
2211110
;
0,,
..
signoenairrestrictesyyyy
yyy
cyayya
cyayya
as
ybybybyMin
1111
211
22221112
12211111
2211110
;
0,,
)(
)(
..
Por tanto, el problema dual queda de la siguiente manera:
signoenairrestrictesy
y
cyaya
cyaya
as
ybybybyMin
1
2
2222112
1221111
2211110
0
..
Reglas para la construcción de un problema dual:
1. EL número de variables del problema dual, es igual al número de restricciones del problema original y viceversa.
2. Los coeficientes de la FO en dual será el vector de disponibilidad de recursos del problema original.
3. Si el problema original es Máx, entonces el dual será Min; si el problema original es Min, entonces el dual será Máx.
4. Los coeficientes de la primera función de restricción del problema dual, serán los coeficientes de la variable en las restricciones del problema original, y en forma análoga para las otras restricciones.
5. Los segundos miembros de las restricciones duales, son los coeficientes del a función objetivo del problema primal.
6. El sentido de la i-ésima restricción dual, es igual, si y sólo si la ´-ésima variable del problema original no tiene restricción de signo.
7. Si el problema original es un problema de Máx (Min), entonces luego de aplicar la regla 6, asigne a las restricciones duales, el sentido opuesto a la variable correspondientes del problema original.
8. La i-ésima variable del problema original, no tendrá restricción de signo, si y sólo si, la i-ésima restricción del problema original es una igualdad.
9. Si el problema original es Máx (Min), entonces luego de aplicar la regla 8 asigne a las demás variables el signo contrario (el mismo signo) que la restricción correspondiente en el problema original.
Programación Lineal Lic. Mario E. Ninaquispe Soto Investigación de Operaciones
12
Problema Primal o Dual
Maximizar Z ó )( 0y
Problema Dual o Primal
Minimizar 0y ó Z
Restricción i
Forma
Forma
Forma
Variable iy ó )( ix
0iy
Irrestricta en signo
0iy
Variable jx ó )( jy
0jx
Irrestricta en signo
0jx
Restricción i
Forma
Forma
Forma
Ejemplo:
signoenairrestrictxxx
xxx
xxx
xxx
xxx
as
xxxZMax
321
321
321
321
321
321
;0,
10243
4065
632
123124
..
243
Solución:
1. N° variables del dual = N° restricciones del primal
2. 4321 1040612 yyyy
3. Máx Dual = Min
43210 1040612 yyyyyMin
4., 5.,6.y 7. Restricciones:
2263
44312
33524
4321
4321
4321
yyyy
yyyy
yyyy
8. 4y irrestricta en signo.
9.
signoenairrestrictyyyy 4321 ,0,0,0
La solución óptima Dual en la tabla simplex
Relación entre los valores óptimos del primal y dual:
Programación Lineal Lic. Mario E. Ninaquispe Soto Investigación de Operaciones
13
Propiedades: 1. Supongamos que los problemas Primal y Dual están en la forma canónica o en la forma estándar. Los
valores objetivos de estos problemas son 0x e 0y para el primal y dual respectivamente; entonces:
a. Para soluciones factibles cualesquiera, no necesariamente básicas, 00 yx
b. Si la solución óptima de ambos problemas es alcanzada los valores objetivos del primal y el dual
serán iguales: 00 yMinxMax
2. Consideremos el problema primal (maximización) en forma canónica, cuyas restricciones son:
ij
n
j
ij bxa 1
; multiplicamos ambos miembros por iy sumando sobre i :
0
111
)( yybxay i
m
i
ij
n
j
ij
n
i
i
… (1)
3. Consideremos el problema dual asociado (minimización) cuyas restricciones son: ji
m
i
i cya 1
;
multiplicamos por jx y sumamos sobre j :
0
11
)( xxcyax jji
m
i
i
n
j
j
… (2)
Por tanto de (1) y (2) tenemos: 00 yx
Reglas generales para determinar la solución óptima de un problema: 1. Si la variable dual corresponde a la variable de holgura inicial en el primal, su valor óptimo está dado
directamente por el coeficiente de esta variable de holgura en la ecuación )(Zxo óptimo.
2. Si la variable dual corresponde a una variable artificial inicial en el problema primal, su valor óptimo
está dado por el coeficiente de esta variable artificial en la ecuación oy óptimo después de eliminar la
constante M . Eliminar M equivale a añadir el coeficiente de costo original de la variable artificial al
coeficiente correspondiente de la función objetivo, este coeficiente de costo está dado por M para
maximización y por M para minimización; de lo cual se concluye lo siguiente:
a. Si cualquier variable es usada como variable inicial, y si su coeficiente en la función
objetivo original es jc entonces el valor óptimo de la variable dual correspondiente es
obtenida añadiendo jc correspondiente en la ecuación 0x .
b. Se observa que los coeficientes de holgura para los valores óptimos del Dual directamente,
desde que los coeficientes de la FO son ceros.
Programación Lineal Lic. Mario E. Ninaquispe Soto Investigación de Operaciones
14
Problema de Transporte
Frecuentemente se presentan al plantear la distribución de bienes y servicios de varias localizaciones de
suministro, hacia varias ubicaciones de la demanda. Típicamente la cantidad de los bienes disponibles en
cada localización de suministro (origen) es limitada, y la cantidad de los bienes necesarios de cada una de
las localizaciones de demanda (destino) es conocida. Por lo general en un problema de transporte, el
objetivo es minimizar el costo de embarcar los bienes desde los orígenes, hasta los destinos.
Ejemplo:
Sea la empresa REPSOL; este problema involucra el trasporte de un producto (gas) desde 3 plantas hasta
4 centros de distribución. REPSOL tiene plantas en la pampilla, el callao y conchan, la capacidad de
producción para el siguiente período de planificación es como sigue:
Origen Planta Capacidad de producción
de 3 meses / unidad
1 Pampilla 5,000
2 Callao 6,000
3 Conchán 2,500
Total 13,500
La empresa distribuye su producto a través de 4 centros regionales de producción, localizados en Lima,
Chiclayo, Huancayo y Arequipa, el pronóstico de la demanda de 3 meses de los centros de distribución es
como sigue:
Origen Planta Capacidad de producción
de 3 meses / unidad
1 Lima 6,000
2 Chiclayo 4,000
3 Huancayo 2,000
4 Arequipa 1,500
Total 13,500
La gerencia desearía determinar cuánto de su producción deberá embarcarse desde cada una de las
plantas hasta cada uno de los centros de distribución:
Plantas (nodos) Centros de distribución
de origen (nodos de destino)
1. La
Pampill
3.
Conchá
2.
Callao
1. Lima
2. Chiclayo
3.
Huancayo
4.
Arequipa
1,500
6,000
5,000
6,000
4,000
2,500
2,000
Programación Lineal Lic. Mario E. Ninaquispe Soto Investigación de Operaciones
15
Los bienes embarcados desde los orígenes, hacia los destinos, representan el flujo en la red, los círculos son los nodos y las líneas que los conectan son los arcos, la dirección del flujo (de origen a destino) queda representada por las flechas. Para el problema de transporte de REPSOL, el objetivo es determinar las rutas a usar y la cantidad a embarcar en cada uno de ellas, y que dé cómo resultado el costo mínimo de transporte total.
Origen Tabla de costos
Lima Chiclayo Huancayo Arequipa
La Pampilla 3 2 7 6 Callao 7 5 2 3
Conchán 2 5 4 5
Para resolver este problema, se puede utilizar un modelo de programación lineal; utilizaremos variables de decisión con dobles subíndices, indicando por ejemplo:
11x : Número de unidades que se embarca de la planta 1 hasta el destino 1
12x : Número de unidades que se embarca del origen 1 al destino 2 (la Pampilla – Chiclayo); así
respectivamente En general: Para un problema de transporte con “m” orígenes y “n” destinos, las variables de decisión se pueden escribir como:
"" ijx : Número de unidades embarcadas desde el origen “i” hasta el destino “j”
Donde: i = 1, 2,3,…, n j = 1, 2,3,…, m Como el objetivo del problema de transporte es minimizar el costo total de transportar; para el ejemplo tenemos:
Costo de transporte por unidad transportada desde la Pampilla:
14131211 6723 xxxx
Costo de transporte por unidad transportada desde el Callao:
24232221 3257 xxxx
Costo de transporte por unidad transportada desde Conchán:
34333231 5452 xxxx
La suma de estos costos nos da la función objetivo, que demuestra el costo total de transporte para REPSOL:
343332312423222114131211 545232576723 xxxxxxxxxxxxZMin
s.a. Restricciones de suministro:
000,514131211 xxxx
000,624232221 xxxx
500,234333231 xxxx
Programación Lineal Lic. Mario E. Ninaquispe Soto Investigación de Operaciones
16
Restricciones de demanda:
000,6312111 xxx
000,4322212 xxx
000,2332313 xxx
500,1342414 xxx
1,2,3,4j 1,2,3;i ;0 ijx
Resultados hallados mediante software especializado: 500,39Z
000,2
500,2
0
0
0
500,1
500,3
23
22
21
14
13
12
11
x
x
x
x
x
x
x
0
0
0
500,2
500,1
34
33
32
31
24
x
x
x
x
x
Ruta Unidades
embarcadas Costo
Unitario $ Costos
Totales $ desde hasta
Pampilla Lima 3,500 3 10,500 Pampilla Chiclayo 1,500 2 3,000 Callao Chiclayo 2,500 5 12,500 Callao Huancayo 2,000 2 4,000 Callao Arequipa 1,500 3 4,500
Conchán Lima 2,500 2 5,000
Totales 13,500 17 39,500
Variantes al problema de transportes Las variantes al problema de transportes pueden implicar una o más de las siguientes situaciones:
1. Oferta o suministro total no igual a la demanda total Se presenta muy seguido; si el suministro total es mayor a la demanda total, no es necesaria ninguna modificación a la formulación del problema lineal, aparecerá en el solución del P.L. un suministro excedente como una holgura. La holgura correspondiente a cualquier origen en particular se puede interpretar como suministro u oferta sin utilizar, es decir una cantidad que no se ha embarcado desde el origen. Si el suministro total es inferior a la demanda total, el modelo de P.L. de un problema de transporte, no tendrá una solución factible. En este caso, modificaremos la representación en red, agregando un origen ficticio, con un suministro igual a la diferencia entre la demanda total y el suministro total. Al agregar el origen ficticio a cada destino, el modelo de P.L. tendrá una solución factible. A cada uno de los arcos que salga del origen ficticio, se le asigna un costo unitario igual a “0”, de manera que el valor de la solución óptima del problema modificado, represente el costo de
Programación Lineal Lic. Mario E. Ninaquispe Soto Investigación de Operaciones
17
embarques correspondiente a unidades realmente embarcadas (ningún embarque realmente se hará desde el origen ficticio). Al poner en práctica la solución óptima, aquellos destinos que muestren embarques recibidos del origen ficticio, serán los que experimenten carencia o demanda insatisfecha.
2. Maximizar la F.O.
En algunos problemas de transporte, el objetivo que maximice la utilidad o los ingresos. Empleando valores de la utilidad o de ingresos unitarios como coeficientes de la F.O., simplemente resolveremos un problema lineal de Maximización en vez de Minimización. Este cambio no afecta a las restricciones.
3. Rutas con capacidad limitada
La formulación de P.L. de problemas de transporte, también puede tomar en consideración capacidades o cantidades mínimas para una o más de las rutas; por ejemplo, supongamos que en el ejemplo de REPSOL, la ruta Conchán – Lima (del origen 3 al destino 1), tenía un capacidad de 1,000 unidades debido a disponibilidad limitada de espacio en su modo de transporte normal.
4. Rutas no aceptables Quizás no pueda ser posible establecer una ruta desde cualquiera de los orígenes hasta cualquiera de los destinos a fin de manejar esta situación; simplemente hacemos desaparecer el arco correspondiente de la red y eliminamos la variable correspondiente de la formulación del PPL.
Supongamos que hay “m” máquinas y “n” destinos
n1,2,3,...,j destino el en variables, en demandada o requerida Cantidad
m , ... 1,2,3,i origen el en unidades en almacenada Cantidad
j
i
b
a
Sea ijc Costo de transporte por unidad del producto ijx
Variables de decisión:
:ijx Nº variables embarcadas desde el origen “i” hasta el destino “j”; con “i = 1,2,3,…,m” y “j = 1,2,3,…,n”
El problema de transportes tiene el siguiente planteamiento:
0
,...,2,1;
,...,2,1;
..
ij
m
i
jij
n
j
iij
m
i
n
j
ijij
x
mjbx
miax
as
xcZMin
demanda
suministro
Ejemplo: i = 2 orígenes; j = 3 destinos
Programación Lineal Lic. Mario E. Ninaquispe Soto Investigación de Operaciones
18
3,2,1;2,1
0
..
32313
22212
12111
2232221
1131211
232322222121131312121111
ji
x
bxx
bxx
bxx
axxx
axxx
as
xcxcxcxcxcxcZMin
ij
Origen 1 (variables) Origen 2 (variables)
Solución Z x11 x12. x13 x21 x22 x23
1 -c11 -c12 -c13 -c21 -c22 -c23 O
1 1 1 aI
1 1 1 a2
1 1 bI
1 1 b2
1 1 b3
Tabla de transporte:
1 2 3
1 x11 c11
x12. c12
x13 c13
2 x21 c21
x22 c22
x23 c23
Modelo de transporte Balanceado
n
j
j
m
i
i ba11
Un modelo de transporte balanceado indica que las unidades almacenadas en todos los orígenes deben ser igual en número a las demandas de todos los destinos.
Orígenes
j: D e s t i n o s
i
Programación Lineal Lic. Mario E. Ninaquispe Soto Investigación de Operaciones
19
Esta condición es impuesta pues es fundamental en el desarrollo de la técnica de transporte. Cualquier problema puede ser balanceado convirtiéndolo artificialmente a un problema con igual número de unidades almacenadas que demandadas. Si la demandas excede a lo almacenado, se agrega un origen ficticio, el cual almacena la cantidad excedente si hay almacenamiento sobrante, un destino ficticio es usado para absorber las cantidades excedentes. Los costos de transporte del origen ficticio a todos los destinos son “0”, esto es equivalente a no embarcar desde el origen ficticio. Similarmente los costos de transporte de todos los orígenes a un destino ficticio son ceros. La técnica de transporte: Los pasos básicos de la técnica de trasporte son: Paso 1: Determinar una solución factible inicial Paso 2: Determinar la variable entrante elegida entre las variables no básicas. Si todas las variables
satisfacen la condición de optimalidad, entonces el problema terminó, en caso contrario pasar al paso 3.
Paso 3: Determinar una variable saliente usando la condición de factibilidad seleccionada entre la variable de solución básica corriente, entonces encontrar la nueva solución.
Solución básica inicial La definición del modelo de transporte, requiere que el total de las unidades almacenadas, debe ser igual al total de las cantidades demandadas; este requerimiento resulta en una ecuación dependiente, lo cual significa que el modelo de transporte tiene “m+n-1” ecuaciones independientes, por lo tanto, una solución básica inicial factible debe incluir “m+n-1” variables básicas. Usando la tabla de transporte se puede obtener una solución básica inicial, por cualquiera de los siguientes métodos:
1.- Método de la esquina nor-oeste:
Se empieza en la casilla (1,1) calculando ),(min 1111 bax
Si 11 ba ; calculamos un nuevo 1b , que es igual a :
11
'
1 abb ; y se pasa a la casilla (2,1)
Si 11 ba ; calculamos un nuevo 1a , que es igual a :
11
'
1 baa ; y se pasa a la casilla (1,2)
Debemos hallar el número de ecuaciones independientes, y por ende, el número de variables básicas que debe tener nuestro problema: “m+n-1” Obs: Si x(i,j): i<j entonces x(i+1,j) i>j entonces x(i,j+1)
Programación Lineal Lic. Mario E. Ninaquispe Soto Investigación de Operaciones
20
j i
Ejemplo: 2.- Método de aproximación Vogel (MAV)
Para cada columna, es necesario buscar los dos costos ijc más bajos y calcular su diferencia, de
igual manera para cada fila; se tendrán entonces “m+n” diferencias. Se debe buscar la columna o
fila cuya diferencia sea mayor, e introducir a la base ijx correspondiente a la casilla de costos más
bajos (i, j). Eliminar la fila o columna, repetir el proceso para la tabla resultante, y se procede de esta forma hasta obtener la solución básica factible. Ejemplo:
1 2 3 4
1
10
0
20
11
15
2 12
7
9
20
25
3 0
14
16
18
5
5 15 15 10
1 2 3 4 5 ia
1
7
10
9
8
6
30
2 5
3
6
7
7
20
3 1
4
5
9
12
40
jb 15 25 5 20 25
Programación Lineal Lic. Mario E. Ninaquispe Soto Investigación de Operaciones
21
3.- Método de Salto de Piedras (Stepping Stone) Paso 1.- Se determina una solución inicial, utilizando cualquier método anterior. Paso 2.- Se determinan las variables entrante y saliente para la tabla utilizando las condiciones de
optimalidad y factibilidad.
Paso 3.- Se termina el proceso cuando todos los costos son mayores o iguales a cero 0ijc
Ejemplos: Iteración 1 Paso1:
Paso 2: Condiciones de optimalidad = La variable que ENTRA es de la menor costo : ijc menor
de todos
Variables no básicas
LOOP ijc
13x
1312222313 xxxxx 180792013 c
14x
1412222414 xxxxx 207201114 c
21x
2122121121 xxxxx 570101221 c
31x
31342422121131 xxxxxxx 1518207010031 c
32x
3234242232 xxxxx 9182071432 c
33x
3334242333 xxxxx 9182091613 c
Paso 3: Condiciones de factibilidad = La variable que SALE de la base se elije entra las V.B.
ubicadas entre las casillas negativas del loop al que pertenece la variable entrante, como aquella que tiene el menor valor.
555
31342422121131
xxxxxxx
1 2 3 4
1
5 10
10 0
20
11
15
2 12
5
7
15 9
5 20
25
3 0
14
16
5 18
5
5 15 15 10
Entra
Programación Lineal Lic. Mario E. Ninaquispe Soto Investigación de Operaciones
22
En caso de empate, se elige arbitrariamente cualquier variable. En esta caso, 34x sale.
Paso 4: Se reconstruye la nueva tabla, sumando o restando según el signo de cada una de las
variables del loop entrante, el valor de la variable saliente.
Se continúa hasta encontrar todos los ijc mayor o iguales a ceros.
Iteración 2: Paso1:
Paso2:
Variables no básicas
LOOP ijc
13x
1312222313 xxxxx 180792013 c
14x
1412222414 xxxxx 207201114 c
21x
2122121121 xxxxx 570101221 c
32x
3212113132 xxxxx 2401001432 c
33x
33311112222333 xxxxxxx 240100791633 c
34x
34242212113134 xxxxxxx 1520701001834 c
1 2 3 4
1
0
3411 xx
10 15
3412 xx
0
20
11
2
12 0
3422 xx
7
15 9 10
3424 xx
20
3 5
3431 xx
0
14
16 0
3434 xx
18
1 2 3 4
1
0 10
15 0
20
11
2
12
0 7
15 9
10 20
3 5 0
14
16
18
Entra
Programación Lineal Lic. Mario E. Ninaquispe Soto Investigación de Operaciones
23
Paso 3:
00
2122121121
xxxxx
Sale 011 x
Paso 4:
Iteración 3:
Paso1:
Paso2:
Variables no básicas
LOOP ijc
11x
1121221211 xxxxx 512701011 c
13x
1312222313 xxxxx 180792013 c
14x
1412222414 xxxxx 207201114 c
1 2 3 4
1
0
1111 xx
10 15
1112 xx
0
20
11
2 0
1121 xx
12 0
1122 xx
7
15 9
10
20
3 5
0
14
16 0
18
1 2 3 4
1
10
15 0
20
11
2 0
12
0 7
15 9
10 20
3 5 0
14
16
18
Entra
Programación Lineal Lic. Mario E. Ninaquispe Soto Investigación de Operaciones
24
32x
3222213132 xxxxx 1971201432 c
33x
3323213133 xxxxx 1991201633 c
34x
3424213134 xxxxx 10201201834 c
Paso 3:
1510
1412222414
xxxxx
Sale 1024 x
Paso 4:
Si realizamos la siguiente iteración, se mostrará que todos los ijc son mayores o iguales a cero, por tanto
el resultado final ya fue encontrado, donde:
3155*015*910*712*010*115*0
5
15
10
0
10
5
31
23
22
21
14
12
Z
x
x
x
x
x
x
1 2 3 4
1
10
5 0
20
10 11
2 0
12
10 7
15 9
20
3 5 0
14
16
18
Programación Lineal Lic. Mario E. Ninaquispe Soto Investigación de Operaciones
25
Problemas de Asignación Existen ciertas clases de problemas de transporte balanceados, llamados problemas de asignación, en el que todas las ofertas y las demandas son iguales a 1. Así, un problema de asignación se caracteriza por el conocimiento del costo de asignación de cada punto de oferta a cada punto de demanda. La matriz de costos del problema de asignación se llama matriz de costos. Sean las variables:
1 2 3
1 x11 c11
x12. c12
x13 c13
2 x21 c21
x22 c22
x23 c23
3 x31 c31 x32 c32 x33 c33
F.O.
3,2,1;2,1
10
1
1
1
1
1
..
2313
2212
2111
232221
131211
232322222121131312121111
ji
xox
xx
xx
xx
xxx
xxx
as
xcxcxcxcxcxcZMin
ijij
ijx = 1; si se asigna la oferta “i” para satisfacer la demanda del trabajo “j”
ijx = 0; si no se asigna la oferta “i” para satisfacer la demanda del trabajo “j”
Como todas las ofertas y las demandas del problema de asignación son números enteros, todas las variables en la solución óptima del problema debes ser valores enteros.
Como el lado derecho de toda restricción es igual a “1”, cada ijx debe ser un entero no negativo, no mayor
que 1 y, por lo tanto, cada ijx debe ser igual a “0” o “1”. Esto implica que se puede ignorar las restricciones
ijx =0 o ijx =1.
El Método Húngaro : Para resolver problemas de asignación (min), utilizaremos el método Húngaro:
Paso 1: Encuentre primero el elemento mas pequeño en cada renglón de la matriz m x m. Construya una matriz al restar de cada costo el costo mínimo de su renglón. Encuentre, para esta
Trabajo
Maquina
Programación Lineal Lic. Mario E. Ninaquispe Soto Investigación de Operaciones
26
nueva matriz, el costo mínimo en cada columna; construya una nueva matriz (llamada matriz de costos reducidos) al restar de cada costo el costo mínimo de su columna. Paso 2: Dibuje el número mínimo de líneas (horizontales, verticales o ambas) que se necesitan para cubrir todos los ceros en la matriz de costos reducidos. Si se requieren m líneas para cubrir todos los ceros, se dispone de una solución óptima entre los ceros cubiertos de la matriz. Si se necesitan menos de m líneas para cubrir todos los ceros, siga con el Paso 3. Paso 3: Encuentre el menor elemento no cero (llámelo k) en la matriz de costos reducidos, que no está cubierto por las líneas dibujadas en el Paso 2. Ahora reste k de cada elemento no cubierto de la matriz de costos reducidos y sume k a cada elemento de la matriz de costos reducidos cubierto por dos líneas. Regrese al paso 2.
Ejemplos:
1. Una empresa tiene cuatro máquinas y tiene que terminar cuatro trabajos. Hay que asignar cada máquina para que termine un trabajo completo. El tiempo requerido para preparar cada máquina para terminar cada trabajo se muestra en la siguiente tabal:
Tiempo (Hrs.)
Trabajo 1 Trabajo 2 Trabajo 3 Trabajo 4
Máquina 1 14 5 8 7
Máquina 2 2 12 6 5
Máquina 3 7 8 3 9
Máquina 4 2 4 6 10
La empresa quiere minimizar el tiempo total de preparación que se requiere para terminar los cuatro trabajos. Utilice la programación lineal para resolver este problema.
2. Se cuenta con cinco empelados para realizar cuatro trabajos. En la tabla se da el tiempo que tarde cada persona en realizar cada trabajo. Determinar la asignación de los empelados a los trabajos que minimiza el tiempo total requerido para realizar los cuatro trabajos.
Tiempo (Hrs.)
Trabajo 1 Trabajo 2 Trabajo 3 Trabajo 4
Persona 1 22 18 30 18
Persona 2 18 - 27 22
Persona 3 26 20 28 28
Persona 4 16 22 - 14
Persona 5 21 - 25 28
3. Un federación deportiva de natación reúne un equipo de relevos para los 400 metros de nado
combinado; cada nadador debe nadar 100 metros de pecho, espalda, mariposa, o libres. La federación cree que cada nadador realizará los tiempos dados en la siguiente tabla:
Tiempo (seg.)
Libre Pecho Mariposa Espalda
Nadador 1 54 54 51 53
Nadador 2 51 57 52 52
Nadador 3 50 53 54 56
Nadador 4 56 54 55 53
Recommended