Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ingeniería de Organización: Grado en Ingeniería de La Tecnologías de Telecomunicación. Dr. Pedro L. González-R
Ingeniería de Organización: Grado en Ingeniería de La Tecnologías de Telecomunicación. Dr. Pedro L. González-R
Pedro L. González-R
1
Tema 2: Métodos generales de programación lineal
Contenido 2
1. Introducción.
Puntos Extremos y Soluciones Básicas
◦ En tema anterior vimos ejemplo sencillo de PL
2 variables
Pocas restricciones
→ Resolvimos gráficamente
◦ Problemas reales → mayor complejidad: mayor número de
variables y restricciones
Para su resolución se necesita alguna herramienta matemática
◦ Disponemos de una técnica algebraica muy eficiente: Método
Simplex (George Dantzig 1947)
◦ Objeto de profundizar en métodos algorítmicos:
Formular correctamente los modelos
Interpretar mejor los resultados
Análisis de postoptimalidad
Pedro L. González-R 3
1. Introducción.
Puntos Extremos y Soluciones Básicas
◦ En ejemplo de generación de energía (tema anterior)
Consideremos sólo las restricciones de humo y pulverizador
Max : 24 x1 + 20 x2
s.a.
R1 : [Humo] 0.5 x1 + 1x2 12
R2 : [Pulver.] 1.5 x1 + 1x2 24
x1 , x2 0
Pedro L. González-R 4
1. Introducción.
Puntos Extremos y Soluciones Básicas
◦ Otro concepto importante: Puntos Extremos (PE)
Son los vértices del polígono (poliedro con + vars) que forman la región
factible
A nivel intuitivo:
En el ejemplo:
Conjunto de PE = {A,B,C,D}
Pedro L. González-R 5
1. Introducción.
Puntos Extremos y Soluciones Básicas
◦ ¿Cómo generar algebraicamente los PE?
Expresamos las restricciones del PL en formato estándar (incluimos
variables de holgura)
Realizamos transformaciones de Gauss-Jordan → Forma Canónica
Ejemplo en forma estándar: Max : 24 x + 20 x
1 2
s.a.
R1 : 0.5 x1 + x2 + h1 = 12
R2 : 1.5 x1 + x2 + h2 = 24
x1 , x2 0
- En forma matricial
R1 0.5 1 1 0 12
R2 1.5 1 0 1 24
Pedro L. González-R 6
1. Introducción.
Puntos Extremos y Soluciones Básicas
VB x1 x2 h1 h2 bi
h1 0.5 1 1 0 12
h2 1.5 1 0 1 24
Hacemos x1 = 0 y x2 = 0
SB = (0,0,12,24) = VA
Por tanto: 0
Z 0 = 24 x1 + 20 x2 = 0 Z A = 0
¿Qué variables pueden entrar en la base?
¿Cuál elegir?
Pedro L. González-R 8
1. Introducción.
Puntos Extremos y Soluciones Básicas
◦ Soluciones Básicas
Pueden entrar las variables que no pertenecen a la base.
Podríamos elegir la que más aporte a la FO, en nuestro caso x1
− 12
h1 = 12 − 0.5x1 0 − x1 x1 24 ¿Por qué decimos que h ≥ 0?
0.5
− 24
h2 = 24 − 1.5x1 0 − x1 x1 16 ¿Cuánto puedo aumentar ?
1.5
Obviamente sale h2
Pedro L. González-R 9
1. Introducción.
Puntos Extremos y Soluciones Básicas
◦ Soluciones Básicas
La nueva Solución Básica estará compuesta por: SB = ( x1 ,0, h1 ,0 )
1
VB x1 x2 h1 h2 bi
[ 2]
[3] = [1] − h1 0 2 / 3 1 − 1/ 3 4
3
[4] = [2] / 1.5 x1 1 2/3 0 2 / 3 16
Pedro L. González-R 10
1. Introducción.
Puntos Extremos y Soluciones Básicas
◦ Soluciones Básicas (iteración 1)
La nueva Solución Básica estará compuesta por:
SB1 = (16,0,4,0) = VB
Z 1 = 24·16 = 384
En vez de calcular la FO directamente vamos a ponerla en función de las
variables que pueden entrar x2 y h2 (VNB)
Z = 24 x1 + 20 x2 Por tanto:
Dejamos x1 = f ( x2 , h2 ) 2 2
Z 1 = 24 x1 + 20 x2 = 2416 − x2 − h2 + 20 x2 =
de [2] :1.5x1 = 24 − x2 − h2 3 3
2 2 Z 1 = 384 − 16 x2 − 16h2 + 20 x2 =
x1 = 16 − x2 − h2
3 3 Z 1 = 384 + 4 x2 − 16h2
Pedro L. González-R 11
1. Introducción.
Puntos Extremos y Soluciones Básicas
◦ Soluciones Básicas
¿Hay alguna posibilidad de mejora de la FO? Z 1 = 384 + 4 x2 − 16 h2
Pedro L. González-R 12
1. Introducción.
Puntos Extremos y Soluciones Básicas
◦ Soluciones Básicas
La nueva Solución Básica estará compuesta por: SB = ( x1 , x2 ,0,0 )
2
VB x1 x2 h1 h2 bi
3
[5] = [3] x2 0 1 3 / 2 −1/ 2 6
2
[6] = [4] − [3] x1 1 0 −1 1 12
Pedro L. González-R 13
1. Introducción.
Puntos Extremos y Soluciones Básicas
◦ Soluciones Básicas (iteración 2)
La nueva Solución Básica estará compuesta por:
SB 2 = (12,6,0,0) = VC
Z 2 = 24·12 + 20·6 = 408
En vez de calcular la FO directamente vamos a ponerla en función de las
variables que pueden entrar h1 y h2 (VNB)
Por tanto:
Partiendo de Z 1 :
Z = 384 + 4 x2 − 16 h2
1 Z 2 = 384 + 4 x2 − 16h2
Dejamos x2 = f ( h1 , h2 ) 3 1
Z 2 = 384 + 4 6 − h1 + h2 − 16h2 =
de [5] : 2 2
3 1 Z 2 = 384 + 24 − 6h1 + 2h2 − 16h2 =
x2 = 6 − h1 + h2
2 2 Z 2 = 408 − 6h1 − 14h2
Pedro L. González-R 14
1. Introducción.
Puntos Extremos y Soluciones Básicas
◦ Soluciones Básicas
¿Hay alguna posibilidad de mejora de la FO? Z 2 = 408 − 6h1 − 14 h2
Pedro L. González-R 15
2. Método Simplex
◦ Observaciones
c j : Coeficient e de la variabl e x j en la FO
ci : Coeficient e de la VB x j en la FO situada en la fila i (R [i ])
aij : Coeficient e de la variabl e x j en la fila i (R [i ]) en base actual
m
a ·c
i =1
ij i = cBt a j
n
x1 = b1 − (a1m +1 xm +1 + ... + a1n xn ) = b1 − a 1j xj
j = m +1
n
x2 = b2 − (a2 m +1 xm +1 + ... + a2 n xn ) = b2 − a 2j xj
j = m +1
....
n
xm = bm − (amm +1 xm +1 + ... + amn xn ) = bm − a mj xj
j = m +1
Pedro L. González-R 17
2. Método Simplex
◦ Costes Relativos
n m n
FO = c j x j = ci xi + c x j j =
j =1 i =1 j = m +1
m
n
n
= ci bi − aij x j + c x j j =
i =1 j = m +1 j = m +1
m m n n
= ci bi − c a ·x i ij j + c x j j =
i =1 i =1 j = m +1 j = m +1
nm
= Z + c j − ci aij x j =
0
j = m +1 i =1
= Z + (c j − S j )x j
0
n Coste
Unitario
j = m +1
m
rj = c j − ci aij
n
=Z + 0
r x
j = m +1
j j
Coste Sintético i =1
Z = 24 x1 + 20 x2 Por tanto:
Dejamos x1 = f ( x2 , h2 ) Z 1 = 24 x1 + 20 x2 = 24(16 − 2 / 3x2 − 2 / 3h2 ) + 20 x2 =
de [2] :1.5x1 = 24 − x2 − h2 Z 1 = 384 − 16 x2 − 16h2 + 20 x2 =
x1 = 16 − 2 / 3 x2 − 2 / 3h2 Z 1 = 384 + 4 x2 − 16h2
de [3] : 2 / 3 x2 + h1 − 1 / 3h2 = 4
¿Por qué el coeficiente de x2 es 4 y no 20?
h1 = 4 − 2 /3x2 + 1 / 3h2
Pedro L. González-R 21
2. Método Simplex
◦ CAMBIO DE BASE:
◦ Cuando pasamos de una SB0 a otra SB1, se producen los siguientes cambios
en los niveles de actividad de las VB y de la FO:
i básica : xi1 = xi0 − aij · j
j entrante : x1j = j
Z = j ·rj = j ·(c j − S j )
◦ En el ejemplo:
Al entrar x2 las VB (x1, h1) varían de la siguiente manera:
V. básicas :
x11 = x10 − a1 j · j = 16 − ( 2 / 3)·6 = 12 (donde j es la columna de x2 )
h11 = 4 − ( 2 / 3)·6 = 0
VNB que entra :
x21 = j = 6
Incremento de la FO :
Z = 6·(20 − ( 2 / 3)·24 − ( 2 / 3)·0) = 24 Z 1 = 384 + 24 = 408
Pedro L. González-R 22
2. Método Simplex
◦ TABLA DEL SIMPLEX:
◦ Los cálculos el método Simplex se realizan más ordenadamente en el
denominado ‘Tableau Simplex’
Z = 24 x1 + 20 x2 + 0h1 + 0h2
− Z + 24 x1 + 20 x2 + 0h1 + 0h2 = 0
Pedro L. González-R 23
2. Método Simplex
◦ TABLA DEL SIMPLEX (it 1):
Columna Pivote: var. que entra
VB x1 x2 h1 h2 bi xBi /aij
[1] h1 0.5 1 1 0 12 24
Pedro L. González-R 24
2. Método Simplex
◦ TABLA DEL SIMPLEX (it 1):
VB x1 x2 h1 h2 bi xBi /aij
[1] h1 0.5 1 1 0 12 24
[2] h2 1.5 1 0 1 24 16 →
[3] rj 24 20 0 0 0
Pedro L. González-R 25
2. Método Simplex
◦ TABLA DEL SIMPLEX (it 2):
VB x1 x2 h1 h2 bi xBi /aij
Pedro L. González-R 26
Sol. Bás Factible
2. Método Simplex
◦ RESUMEN Det. Var. que entra
ALGORITMO SIMPLEX:
algún
No aij>0
Sol. No acotada
de la j que
entra?
Cambio de Base
Pedro L. González-R 27
3. Solución Básica Factible Inicial
◦ En ejemplo seguido hemos obtenido una SB inicial (factible) a partir de las
variables de holgura.
◦ Obtendremos siempre una SB inicial a partir de la forma canónica, cdo el
problema se encuentre en su forma estándar:
min ( Max) Z
s.a.
Se convierte en igualdad añadiendo las
Ax b var. de holgura → forma canónica
xj 0
bi 0
Pedro L. González-R 28
3. Solución Básica Factible Inicial
VB x1 x2 h1 bi xBi /aij
h1 2 3 1 5
3 2 0 18
rj 10 20 0
Pedro L. González-R 29
3. Solución Básica Factible Inicial
◦ Vemos que para completar una sol. Básica necesitamos una variable “de
holgura” más → empleamos VARIABLES ARTIFICIALES (VA)
◦ Se introducen con el fin de que sea una VB inicial para la ecuación.
3x1 + 2 x2 18
◦ Otra interpretación: 3x1 + 2 x2 = 18
3x1 + 2 x2 18
3x1 + 2 x2 + h2 = 18 h2 3 2 0 1 18
x j , h1 , h2 0 rj 10 20 0 0 0
Pedro L. González-R 30
3. Solución Básica Factible Inicial
Pedro L. González-R 31
3. Solución Básica Factible Inicial
VB x1 x2 h1 h2 h3 h4 bi xBi /aij
h1 0.3 0.1 1 0 0 0 27
h2 0.5 0.5 0 1 0 0 6
h4 0.6 0.4 0 0 -1 1 6
rj 0.4 0.5 0 0 0 0 0
Pedro L. González-R 32
3. Solución Básica Factible Inicial
◦ Resumen:
◦ 2 métodos:
Método de la M
Método de las 2 Fases
Pedro L. González-R 33
3. Solución Básica Factible Inicial
◦ MÉTODO DE LA M:
M = nº muy elevado
Pedro L. González-R 34
3. Solución Básica Factible Inicial
◦ MÉTODO DE LA M:
◦ Ejemplo:
Problema Original Problema Ampliado
(introducimos las V de holgura + VA)
Pedro L. González-R 35
3. Solución Básica Factible Inicial
◦ MÉTODO DE LA M:
Pedro L. González-R 36
3. Solución Básica Factible Inicial
◦ MÉTODO DE LA M:
[1] h1 1 0 1 0 0 4
[2] h2 0 2 0 1 0 12
[3] hva3 3 2 0 0 1 18
[4] rj 3 5 0 0 -M 0
Actualizo*
[5]=[3]·M+[4] 3+3M 5+2M 0 0 0 18M
Pedro L. González-R 37
3. Solución Básica Factible Inicial
◦ MÉTODO DE LA M:
[1] h1 1 0 1 0 0 4 4 →
[2] h2 0 2 0 1 0 12 ∞
[3] hva3 3 2 0 0 1 18 6
Pedro L. González-R 38
3. Solución Básica Factible Inicial
◦ MÉTODO DE LA M:
[1] x1 1 0 1 0 0 4 ∞
[7]=[2] h2 0 2 0 1 0 12 6
[6]=[3]-3[1] hva3 0 2 -3 0 1 6 3 →
Pedro L. González-R 39
3. Solución Básica Factible Inicial
◦ MÉTODO DE LA M:
[10]=[1] x1 1 0 1 0 0 4 4
[11]=[7]-2[9] h2 0 0 3 1 -1 6 2 →
[9]=[6]/2 x2 0 1 -3/2 0 1/2 3 -
◦ Entra h1 y sale h2
◦ El pivote es 3, actualizamos la base
Pedro L. González-R 40
3. Solución Básica Factible Inicial
◦ MÉTODO DE LA M:
◦ Aplicamos el algoritmo Simplex:
Pedro L. González-R 41
3. Solución Básica Factible Inicial
◦ MÉTODO DE LA M:
◦ Solución Óptima del problema ampliado:
Z * = 36
x* = (2,6,2,0,0)
◦ Como la Sol. Óptima del problema ampliado tiene todas las VA = 0 → la Sol.
Óptima del Problema ampliado = Sol. Óptima del problema original.
Pedro L. González-R 42
3. Solución Básica Factible Inicial
◦ MÉTODO DE LA M:
◦ Ejercicio para casa.
◦ Supongamos en el ejemplo de la planta de generación de energía en el que
tratamos en esta ocasión de determinar la solución de coste mínimo para
obtener una producción de, al menos 216 unidades/h (en miles de lb de
vapor/h), siendo el coste por tonelada de 24 $ para el carbón de tipo A y de
15$ para el B.
min Z = 24 x1 + 15 x2
s.a.
0.5 x1 + x2 12
1.5 x1 + x2 24
24 x1 + 20 x2 216
xj 0
Pedro L. González-R 43
3. Solución Básica Factible Inicial
◦ MÉTODO DE LAS DOS FASES:
◦ El proceso seguido por el Método de la M consistía en 2 pasos:
1.- Encontrar sol factible SIN VA.
2.- Desde sol factible hasta óptimo.
◦ El método de las dos fases es un proceso directo para realizar estos dos
pasos sin introducir explícitamente la M.
◦ El método de las dos fases emplea 2 FO diferentes
◦ FASE 1:
Utiliza el método simplex para resolver el problema ampliado con la siguiente FO:
min Z = h vaj
La sol. Óptima que se obtenga para este problema (si Z=0) será una sol. Básica
factible para el problema original.
◦ FASE 2:
Se eliminan las VA que valen 0 y se aplica el simplex a partir de la sol . Básica factible
obtenida en Fase 1 hasta encontrar sol. Óptima.
La FO es la del problema Real
Pedro L. González-R 44
3. Solución Básica Factible Inicial
◦ Ejemplo:
Problema Original Problema Ampliado
(introducimos las V de holgura + VA)
Pedro L. González-R 45
3. Solución Básica Factible Inicial
[1] h1 1 0 1 0 0 4
[2] h2 0 2 0 1 0 12
[3] hva3 3 2 0 0 1 18
[4] rj 0 0 0 0 1 0
Actualizo
[5]=[4]-[3] -3 -2 0 0 0 -18
Pedro L. González-R 46
3. Solución Básica Factible Inicial
[1] h1 1 0 1 0 0 4 4 →
[2] h2 0 2 0 1 0 12 -
[3] hva3 3 2 0 0 1 18 6
[5] rj -3 -2 0 0 0 -18
Ojo! En F1 estamos minimizando
Pedro L. González-R 47
3. Solución Básica Factible Inicial
[1] x1 1 0 1 0 0 4 -
[7]=[2] h2 0 2 0 1 0 12 6
[6]=[3]-3[1] hva3 0 2 -3 0 1 6 3 →
[8]=[5]+3[1] rj 0 -2 3 0 0 -6
Pedro L. González-R 48
3. Solución Básica Factible Inicial
[1] x1 1 0 1 0 0 4
[10]=[7]-2[9] h2 0 0 3 1 -1 6
[11]=[8]+2[9] rj 0 0 0 0 1 0
Pedro L. González-R 49
3. Solución Básica Factible Inicial
VB x1 x2 h1 h2 bi xBi /aij
[1] x1 1 0 1 0 4
[2] h2 0 0 3 1 6
[3] x2 0 1 -3/2 0 3
[4] rj 3 5 0 0 0
Actualizo
[5]=[4]-3[1] 0 5 -3 0 -12
Pedro L. González-R 50
3. Solución Básica Factible Inicial
VB x1 x2 h1 h2 bi xBi /aij
[1] x1 1 0 1 0 4 4
[2] h2 0 0 3 1 6 2 →
[3] x2 0 1 -3/2 0 3 -
Ojo! En F2 estamos maximizando
◦ Entra h1 y sale h2
◦ El pivote es 3, actualizamos la base
Pedro L. González-R 51
3. Solución Básica Factible Inicial
VB x1 x2 h1 h2 bi xBi /aij
[8]=[1]-[7] x1 1 0 0 -1/3 2
[7]=[2]/3 h1 0 0 1 1/3 2
[9]=[3]+(3/2)[7] x2 0 1 0 1/2 6
Z * = 36
x* = (2,6,2,0,0)
Pedro L. González-R 52
3. Solución Básica Factible Inicial
◦ PROCEDIMIENTO GENERAL DE RESOLUCIÓN DE PL
No Factible - Método de la M
Sol. Bás Inicial
- Método de las dos fases
Sí
Sí Sol.
Alg. Simplex Básica
Factible?
No
Pedro L. González-R 53
4. Forma Matricial
xj 0 j = 1...n
Pedro L. González-R 54
4. Forma Matricial
xB
Ax = b B D = b xB
xD Z ' = c x = (cB cD ) = cB x B + cD xD =
t
Bx B + Dx D = b ·(B −1 ) xD
B −1 Bx B + B −1 Dx D = B −1b = cB B −1b − cB (B −1 D )xD + cD x D =
Ix B + B −1 Dx D = B −1b = Z 0 + (cD − c B B −1 D )xD
x B = B −1b − B −1 Dx D = Z 0 + rD xD
Para una solución Básica, xD = 0
xB = B −1b
Z = cBt xB
Pedro L. González-R 55