You are on page 1of 81

Investigación de Operaciones

IND2209

Capitulo III

El Método Simplex
Modelo de Programación Lineal

• Un modelo de programación matemática es


lineal si todas las relaciones funcionales que
contiene (función objetivo y restricciones) son
lineales.
n
Min c
j 1
j  xj

n
s.a : a
j 1
ij  x j  bi i  1, 2, , m

xj  0 j  1, 2, , n

2
Modelo de Programación Lineal

 x1 
 x2 
 x3 
Opt  c1 , c2 , c3 , , cn     
Opt c x
T
 
 
s.a : A x  b x 
 n
x0
 b1 
 a11 a12 a13  a1n   x1   b2 
a a a  a   x2   b3 
 21 22 23 2n
   x3     
s.a :      
     
a amn   xn    
 m1 am 2 am 3  
 bm 
x1 , x2 , x3 ,  xn  0
3
Instancia de un Modelo de
Programación Lineal
Ejemplo :
Min 3 x  4  y  7  z x
 
s.a : 8 x  6  y  3 z  5
Min  3, 4, 7   y

z
7 x  4 y  4 z  4 cT  
x, y , z  0
x
 8 6 3     5 
s.a :   y    
 7 4 4   z   4 
 
A
x, y , z  0

4
Sinopsis del Método Simplex

• En n dimensiones es computacionalmente imposible evaluar


la F.O. en cada uno de los puntos extremos (son
demasiados).

• El método Simplex encuentra la solución óptima utilizando


un algoritmo de búsqueda local.

• Empezando en un punto extremo cualquiera, el Simplex se


mueve de un punto extremo a otro adyacente con mejor
valor objetivo hasta que el procedimiento no se puede
repetir.

5
Sinopsis del Método Simplex

• Empiece en cualquier punto extremo.


• Muévase a un punto extremo adyacente con
x2 mejor valor en la F.O.
• Continúe hasta que no se encuentre un punto
extremo adyacente con mejor valor en la F.O.

x1

6
Sinopsis del Método Simplex

Algunas preguntas relevantes


• ¿Cómo encontrar un vértice inicial?
x2 • ¿Cómo encontrar y evaluar los vértices
adyacentes?
• si hay más de una dirección de mejoramiento,
¿Cuál elegir? ¿Cuál es mejor?

Simplex se define sobre un sistema de


restricciones lineales de igualdad, y
restricciones de no negatividad

x1

7
Veamos un ejemplo

Max 3 x  5 y
x  2 y  10 1
x y 7  2
(0,7)
y 4  3
x 5  4
R(2) R(4) x, y  0
(0,5)

(0,4) (2,4) R(3)

(4,3)

(5,2) R(1)

(0,0)
(7,0) (10,0)
(5,0)

8
Sistemas de Ecuaciones Lineales

Un sistema de m ecuaciones lineales simultáneas con n


incógnitas, x1, x2 .... xn tiene la siguiente forma:

a11  x1  a12  x2  a1n  xn  b1  a11 a12 a13  a1n   b1 


a21  x1  a22  x2  a2 n  xn  b2 a   x1   b2 
a22 a23  a2 n  x   
 21  2
      . . . . .   x3    
     
      . . . . .  
       
        xn    
am1  x1  am 2  x2  amn  xn  bm  am1 am 2 am 3 amn 
 bm 

Ax  b
Donde los aij, y los bi son constantes conocidas.
9
Sistemas de Ecuaciones Lineales

Definición:
El rango en A, denotado rang(A) es el máximo número de filas
linealmente independientes de A.

Supuesto:
El rango de A es m.

(en caso que no lo sea, existirán restricciones redundantes que pueden ser
eliminadas, simplemente se tratará de un problema / sistema infactible …)

10
Sistemas de Ecuaciones Lineales

Caso 0: Si m =n, es decir, A es una matriz cuadrada, se tiene:


(igual numero de variables y restricciones)

x  A b 1

Un enfoque para resolver este tipo de sistemas es el de Gauss


Jordan, esto es utilizando operaciones filas y/o columnas tal
que la matriz A se transforme en la matriz identidad. Al aplicar
las mismas operaciones al vector b en este quedará reflejada
la solución del sistema de ecuaciones.

11
Sistemas de Ecuaciones Lineales

En particular si se asume que a11 ≠ 0, se tiene que el sistema es


equivalente a:
a1 j
â1 j  j  2,3,...., m
a11

x1  aˆ12  x2  aˆ1n  xn  bˆ1 âij  aij 


a1 j
ai1
i  2,..., n
j  2,..., m
aˆ22  x2  aˆ2 n  xn  bˆ2
a11

    
aˆm 2  x2  aˆmn  xn  bˆm b
bˆ1  1
a11
b
bˆi  bi  1 ai1 i  2,..., n
a11

12
Sistemas de Ecuaciones Lineales

Repitiendo el procedimiento sucesivamente (en m iteraciones o pasos),


y también eliminando los elementos sobre la diagonal se tiene
tendremos la solución al sistema de ecuaciones:

x1*  bˆ1
x2*  bˆ2
x3*  bˆ3
...
...
xm*  bˆm

13
Sistemas de Ecuaciones Lineales

Otra forma de resolver el sistema es encontrar explícitamente


la matriz A-1:

 A | I    I | A1 
 

Y luego:
1
x  A b
*

En este caso, la solución al sistema es única.

14
Sistemas de Ecuaciones Lineales

Caso general: m < n (mas variables que restricciones)


Usando Aj para denotar la j-ésima columna de A, se tiene que el
sistema Ax = b se puede expresar como

A1  x1  A2  x2  A3  x3    An  xn  b
Como rang(A) = m, se tiene que en A existe al menos un
conjunto de m columnas linealmente independiente.

Sea B una matriz cualquiera de m columnas linealmente independiente


de A.
Después de permutar convenientemente las columnas de A, se tiene
que el sistema Ax = b es equivalente a

 xB 
 B N   x  b  B N      b B  xB  N  xN  b
 xN 
15
Sistemas de Ecuaciones Lineales

 B N   x  b  B  xB  N  xN  b
B y N se denominan Matriz Básica y No-Básica respectivamente
xB y xN se denominan vector de Variables Básicas y vector de
Variables No-Básicas, respectivamente.

Multiplicando (por la izquierda…) ambos lados de la ecuación por


B-1 se obtiene:
1 1
xB  B N  x N  B b
Una solución se llama “básica” si es del tipo::
Naturalmente el sistema anterior también
  B b
1
 xB
x   admite un serie de soluciones que no son
 N   0  del tipo “básica”
16
Sistemas de Ecuaciones Lineales

Un sistema de m ecuaciones y n incógnitas con m < n , tiene a lo


más

n  n!
m 
  m !  n  m !

Soluciones Básicas.

En esencia, estamos encontrando soluciones al sistema, las cuales


poseen a lo más m variables no nulas, de un total de n.

En consecuencia tenesmos n-m variables nulas.

17
Sistemas de Ecuaciones Lineales

Veamos un ejemplo simple: 4x  3y  6z  5


3x  4 y  5z  6
3
Tenemos a lo más    3 soluciones básicas:
 2
4x  3y 5  4 3  6 x
3x  4 y 6 B  N   5  xB   y  , xN   z 
 3 4    

6 z  5  4 6 3  x
 N   4  xB   z  , xN   y 
4x
B
3x 5 z  6  3 5    

 3 6  4  y
 3  B  z  , xN   x 
3y  6z  5 B  
 N x
4 y  5z  6  4 5    
18
Sistemas de Ecuaciones Lineales

4x  3y 5
3x  4 y 6 x*  2 / 7, y*  9 / 7, z*  0

4x 6 z  5
x*  11/ 2, y*  0, z*  9 / 2
3x 5 z  6

3y  6z  5 x*  0, y*  1/ 9, z*  2 / 9
4 y  5z  6

19
Volvamos a nuestro ejemplo
Max 3 x  5 y Encontremos todos los vértices por medio
x  2 y  10 1 de la definición de las matrices básicas B
x y 7  2
y 4  3
x 5  4
x, y  0

(0,7)
R(4)

R(2)
(0,5)

(0,4) (2,4) R(3)

(4,3)

(5,2) R(1)

(10,0)

(0,0) (7,0)
(5,0)

20
Sistemas de Ecuaciones Lineales

z Si nos concentráramos en el interior del


polígono, todas las soluciones factibles
 11 9  se podrían obtener mediante la
  , 0, 
 2 2  combinación lineal de dichos tres puntos

(vértices o puntos extremos)

 1 2 Sin embargo, si quisiéramos optimizar


 0,  ,  una F.O. lineal, las soluciones optimas
 9 9 

corresponderían al menos a uno de
x dichos vértices

Esta manera de resolver sistemas


lineales, permiten encontrar al menos un
y 2 9 
 , ,0 óptimo para cualquier problema lineal.
7 7 
 
Esta es la esencia del método Simplex
21
Sistemas de Inecuaciones Lineales

a11  x1  a12  x2  a1n  xn  b1  a11 a12 a13  a1n   b1 


a21  x1  a22  x2  a2 n  xn  b2 a   x1   b2 
a22 a23  a2 n  x   
 21  2
      . . . . .   x3    
     
      . . . . .  
       
        xn    
am1  x1  am 2  x2  amn  xn  bm  am1 am 2 am3 amn 
 bm 

x1 , x2 , x3 , , xn  0

Ax  b
22
Sistemas de Inecuaciones Lineales

Siempre podemos transformarlo en:

a11  x1  a12  x2  a1n  xn  xn 1  b1


a21  x1  a22  x2  a2 n  xn  xn  2  b2
a31  x1  a32  x2  a3n  xn  xn 3  b2
    
    
    
am1  x1  am 2  x2  amn  xn  xn  m  bm

x1 , x2 , x3 , , xn , xn 1 , xn  2 , xn 3 , , xn  m  0

23
Sistemas de Inecuaciones Lineales

Redefiniendo: x   x1, x2 , x3 , , xn , xn1, xn2 , xn3 , , xnm 


Nuevamente, para un set de columnas linealmente independiente,
el sistema se transforma en:

 B N   x  b B  xB  N  xN  b

x0 xB  0, xN  0

En este caso el sistema que se debe resolver es:


B  xB  b
xB  0
n 
De igual modo, hay   posibles combinaciones:
m
Sólo hay que considerar la no negatividad de las variables…
24
Sistemas de Inecuaciones Lineales
Es posible que ingresar algunas variables a la Base resulte infactible,
particularmente si la resolución del sistema B·xB = b les asigne un valor
negativo a dichas variables.
Esto genera vértices no-factibles

(1)
Por ejemplo: a1·x + b1·y ≤ c1 <=> a1·x + b1·y +z1 = c1

y
P3

P2

P4
P5

(2) P6
a2·x + b2·y ≤ c2 <=> a2·x + b2·y +z2 = c2 x
P1

(3)
a3·x + b3·y ≤ c3 <=> a3·x + b3·y + z3 = c3

25
Sistemas de Inecuaciones Lineales

a1  x  b1  y  1 z1  c1 x 
a2  x  b2  y  1  z2  c2  a1 b1 1 0 0   y   c1 
 
 a2 b2 0 1 0    z1    c2 
a3  x  b3  y  1 z3  c3 a
 3 b3 0 0 1   z2   c 
z   3
 a1 b1 1  a1  x  b1  y  1 z1  c1  3
B   a2 b2 0   a2  x  b2  y   c2
 a b 0
 3 3  a3  x  b3  y   c3

En este caso, dado que z1 ≥ 0, ésta es una restricción no necesariamente activa.


De este modo debemos intersectar las restricciones (2) y (3), lo cual claramente
da un valor negativo para x e y (P1).
Luego, se debe intentar hacer cero x y/o y, apareciendo los candidatos P4, P5 y P6,
representando distintas matrices o soluciones Básicas.
En otras palabras, DADA UNA BASE B, NO ESTÁ GARANTIZADO ENCONTRAR UNA
SOLUCION FACTIBLE al sistema.

Por otra parte, se debe observar que tanto xB como xN pueden contener tanto
variables originales del sistema como, variables de holgura.
Eliminando de los componentes correspondientes a variables de holgura se obtiene
una solución básica factible del sistema original.
26
Sistemas de Inecuaciones Lineales

Teorema:

Un punto xRn, es una solución básica factible del


sistema de ecuaciones que define el espacio solución de
un problema lineal, si y sólo si x es un punto extremo
de la región de soluciones factibles.

27
Un ejemplo

Ejemplo:
Considere el siguiente sistema 2 x1  x2  230
x1  2 x2  250
x2 x2  120
x1 , x2  0
(10,120)
(c)
(0,120)
(b)
(70,90)

(a)

(115,0)

(0,0)
x1
28
Un ejemplo

Agregando variables de holgura se obtiene


2 x1  x2  x3  230 a
x1  2 x2  x4  250 b 
x2  x5  120 c
x1 , x2 , x3 , x4 , x5  0
Las potenciales soluciones básicas factibles corresponden a las siguientes
matrices B
1 2 3 1 2 4  1 2 5 1 3 4 1 3 5 1 4 5
2 1 1 2 1 0 2 1 0 2 1 0 2 1 0 2 0 0
           
 1 2 0 ,
  1 2 1 ,
  1 2 0  1 0 1, 1 0 0, 1 1 0
0 1 0 0 1 0 0 1 1 0 0 0  0 0 1  0 0 1 
        

2 3 4 2 3 5  2 4 5 3 4 5
1 1 0 1 1 0 1 0 0 1 0 0
         5
2 0 1, 2 0 0, 2 1 0 0 1 0  3   10
1 0  
 0  1 0
 1   1 0 1  
0 0 1 
29
Un ejemplo

Las soluciones básicas factibles corresponden a las siguientes matrices B

1 2 3
2 x1  x2  x3  230
2 1 1
x2   x1  2 x2  250
1 2 0 x2  120
0 1 0  x1 , x2 , x3  0
(10,120) 
(0,120)

(70,90)  x1   10 
   
 x1   10  x
 2  120 
     x3    90 
x
 2  120 
 x   90     
 3    4 
x 0 
x   0 
 5  
(115,0)

(0,0)
x1
30
Un ejemplo

Las soluciones básicas factibles corresponden a las siguientes matrices B

1 2 4
2 x1  x2  230
2 1 0
x2   x1  2 x2  x4  250
1 2 1 x2  120
0 1 0  x1 , x2 , x3  0
(10,120) 
(0,120)

(70,90)
Caso infactible

(115,0)

(0,0)
x1
31
Un ejemplo

Las soluciones básicas factibles corresponden a las siguientes matrices B

1 2 5
2 x1  x2  230
2 1 0
x2   x1  2 x2  250
1 2 0 x2  x5  120
0 1 1  x1 , x2 , x3  0
(10,120) 
(0,120)

(70,90)
 x1   70 
   
 x1   70   x2   90 
     x3    0 
 x2    90     
 x   30 
 5    x4   0 
 x   30 
 5  
(115,0)

(0,0)
x1
32
Un ejemplo

Las soluciones básicas factibles corresponden a las siguientes matrices B

1 3 4
2 x1  x3  230
2 1 0
x2   x1  x4  250
1 0 1  120
0 0 0  x1 , x3 , x4  0
(10,120) 
(0,120)

(70,90)
Caso infactible

(115,0)

(0,0)
x1
33
Un ejemplo

Las soluciones básicas factibles corresponden a las siguientes matrices B

1 3 5
2 x1  x3  230
2 1 0
x2   x1  250
1 0 0  x5  120
0 0 1  x1 , x3 , x5  0
(10,120) 
(0,120)

(70,90)
Caso infactible

(115,0)

(0,0)
x1
34
Un ejemplo

Las soluciones básicas factibles corresponden a las siguientes matrices B

1 4 5
2 x1  230
2 0 0
x2   x1  x4  250
1 1 0  x5  120
0 0 1  x1 , x4 , x5  0
(10,120) 
(0,120)

(70,90)  x1   115 
   
 x1   115  x
 2  0 
     x3    0 
x
 4  135 
 x   120     
 5    x4   135 
 x  120 
 5  
(115,0)

(0,0)
x1
35
Un ejemplo

Las soluciones básicas factibles corresponden a las siguientes matrices B

2 3 4 x2  x3  230
1 1 0 2 x2  x4  250
x2   x2  120
2 0 1
1 0 0  x2 , x3 , x4  0
(10,120) 
(0,120)

(70,90)  x1   0 
   
 x2   120  x
 2  120 
     x3   110 
x
 3  110 
 x   10     
 4    x4   10 
x   0 
 5  
(115,0)

(0,0)
x1
36
Un ejemplo

Las soluciones básicas factibles corresponden a las siguientes matrices B

2 3 5 x2  x3  230
1 1 0 2 x2  250
x2   x2  x5  120
2 0 0
1 0 1  x2 , x3 , x5  0
(10,120) 
(0,120)

(70,90)
Caso infactible

(115,0)

(0,0)
x1
37
Un ejemplo

Las soluciones básicas factibles corresponden a las siguientes matrices B

2 4 5 x2  230
1 0 0 2 x2  x4  250
x2   x2  x5  120
2 1 0
1 0 1  x2 , x3 , x4  0
(10,120) 
(0,120)

(70,90)
Caso infactible

(115,0)

(0,0)
x1
38
Un ejemplo

Las soluciones básicas factibles corresponden a las siguientes matrices B

3 4 5 x3  230
1 0 0 x4  250
x2    x5  120
0 1 0
0 0 1  x3 , x4 , x5  0
(10,120) 
(0,120)

(70,90)  x1   0 
   
 x3   230  x
 2  0 
     x3    230 
x
 4  250 
 x   120     
 5    4 
x 250 
 x   120 
 5  
(115,0)

(0,0)
x1
39
Fundamentos del Simplex

Definición

Se dice que dos puntos son adyacentes, si las


correspondientes matrices básicas comparten todas
excepto una columna; es decir, si los vectores de
variables básicas difieren en exactamente una
componente.

40
Fundamentos del Simplex

• De este modo, el ir intercambiando una en una las columnas de


la matriz A, para conformar las diferentes matrices B (dentro del
algoritmo de Simplex), asegura ir siempre visitando
consecutivamente vértices adyacentes.

• Podemos iterativamente revisar todos los vértices del poliedro.

• Falta definir un criterio de avance / parada, de modo de:

– Identificar si estamos o no en un vértice óptimo

– Evitar seguir revisando más vértices en el caso anterior

– Identificar posibles vértices adyacentes para ir revisando en


cada iteración

41
Fundamentos del Simplex

• Pensemos en lo siguiente:

• Para cada solución básica (factible) se cumple lo siguiente:

B  xB  N  xN  b
 xB  B 1  b  B 1  N  xN
xN  0
xB  B 1  b
x 
Max c x
T  Max  
cBT , cTN   B 
 xN 

 Max  
cBT  B 1  b  B 1  N  xN  cTN  xN
s .a : xB  B 1  b  B 1  N  xN

 Max  
cBT  B 1  b  cTN  cBT  B 1  N  xN
s .a : xB  B 1  b  B 1  N  xN
42
Fundamentos del Simplex

• Para cualquier solución básica factible (xB,xN) se cumplirá


entonces que:
 
cT  x  cBT  B 1  b  cTN  cBT  B 1  N  xN 
cBT  B 1  b  cBT  xB


crNT  cTN  cBT  B 1  N 
• Este costo se conoce como el costo reducido del vector de
variables no básicas.

• Indica como variaría la F.O. en caso de variar (tomando valores


no nulos) las variables no básicas (similar a un precio sombra)

• Por definición los costos reducidos de las variables básicas son


cero. crBT  0
43
Fundamentos del Simplex

Teorema

Si una solución básica factible satisface

 
crNT  cTN  cBT  B 1  N  0

es decir si todos los costos reducidos de las variables


no-básicas son no-positivos, entonces la respectiva
solución x*   xB* , x*N  es una solución óptima del
problema.

44
Fundamentos del Simplex

• Una interpretación de este resultado es la siguiente:


– Si una solución básica factible, presenta costos reducidos
positivos para alguna variable no-básica, quiere decir que
ésta podría incrementar el valor de la F.O. al tomar un valor
distinto de cero.
– Dado que estamos Maximizando, se observa entonces que
conviene aumentar el valor de dicha variable no-básica,
entrando a la base.
– Se debe definir que variable saldrá de la base…

– Si todas las variables no-básicas tienen un costo reducido


no-positivo, no se puede aumentar la F.O. de modo que nos
encontramos ante una solución óptima del problema.

45
Un ejemplo

• Veamos el ejemplo:

x2 Max x1  x2
(10,120)
s .a : 2 x1  x2  x3  230
(c)
(0,120)
x1  2 x2  x4  250
(b)
x2  x5  120
(70,90)
x1 , x2 , x3 , x4 , x5  0

(a)

(115,0)

(0,0)
x1
46
Un ejemplo

Veamos la condición de optimalidad para cada uno de los vértices factibles


12 3 3 1 2
2 1 1 1 2 1  1 2 3 
      crNT  cTN  cBT  B 1  N
B  1 2 0  B  0 1 2  B 1   0 1 2 
0 1 0  0 1  0 0 1 
  0  
x3 x1 x2 x4 x5 recordemos el cambio de columna y
cT   0,1,1, 0, 0  orden de las variables básicas.
1 2 1 1 0 0

0 1 2
 
0 1 0
  1 2 3  0 0 
      
0 0 1
 
0 0 1
  crNT   0, 0    0,1,1   0 1 2  1 0 
0 0 1 0 1
 1 0 3   1 2 0    
    0 0
 cr4 , cr5     0,1, 1   1 0    1,1
 0 1 2   0 1 0 
0 0 1  0 0 1
   
0 1
1 0 0  1 2 3   
    De este modo, el punto extremo o vértice asociado a esta
0 1 0  0 1 2  matriz básica no es óptimo. Naturalmente, la variable y
0 0 1 0 0 1 
    columna asociada a entrar a la base es la variable x5, pues
incrementaría el valor de la F.O. 47
Un ejemplo

Veamos la condición de optimalidad para cada uno de los vértices factibles

1 2 5
2 1 0
 
1 2 0
0 1 1 

48
Un ejemplo

Veamos la condición de optimalidad para cada uno de los vértices factibles

1 4 5
2 0 0
 
1 1 0
0 0 1 

49
Un ejemplo

Veamos la condición de optimalidad para cada uno de los vértices factibles

2 3 4
1 1 0
 
2 0 1
1 0 0 

50
Un ejemplo

Veamos la condición de optimalidad para cada uno de los vértices factibles

3 4 5
1 0 0
 
0 1 0
0 0 1 

51
Retomemos el método de forma tabular

Recordemos que para un set de columnas linealmente


independientes, se tiene:

 B N   x  b B  xB  b

x0 xB  0, xN  0
Identificada una matriz B que entrega una solución básica factible,
se debe proceder a:

B1   B N  b  I B 1  N   B 1  b 
  
 B1  B B1  N   B1  b  xB
  
Es decir, aplicando las mismas operaciones aplicadas sobre B para
transformarla en una Matriz Identidad, se obtiene la matriz B-1N y
el valor de xB
52
Retomemos el método de forma tabular

Por otra parte se utilizan operaciones fila para hacer cero el costo
reducido de las variables básicas, para el calculo de los costos
reducidos de las variables no básicas:


crBT  cBT  cBT  B 1  B  
crNT  cNT  cBT  B 1  N 
Esto identifica las variables no básicas candidatas a entrar a la
base.
Veamos en un ejemplo…

Max x1  3  x2
s .a : 2 x1  x2  x3  230
x1  2 x2  x4  250
x2  x5  120
x1 , x2 , x3 , x4 , x5  0
53
Retomemos el método de forma tabular

Consideremos la solución básica


Índices 1 2 3 4 5
factible : x1, x2, x5,
2 1 1 0 0   230 
    2 1 0
1 2 0 1 0   250   
B  1 2 0
 0 1 0 0 1  120  0 1 1
 
Costos 1 3 0 0 0 

Debemos transformar B en I, y operar sobre N y sobre b

1 2 3 4 5 1 2 3 4 5 1 2 3 4 5


2 1 1 0 0   230  1 1/ 2 1/ 2 0 0  115  1 1/ 2 1/ 2 0 0  115 
        
1 2 0 1 0   250  0 3 / 2 1/ 2 1 0  135  0 1 1/ 3 2 / 3 0   90 
 0 1 0 0 1  120  0 1 0 0 1  120  0 1 0 0 1  120 
1 3 0 0 0  1 3 0 0 0  1 3 0 0 0 

54
Retomemos el método de forma tabular

1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 x1  70


1 1/ 2 1/ 2 0 0  115  1 0 2 / 3 1/ 3 0  70  x1 1 0 2 / 3 1/ 3 0  70  x2  90
       x2 0   
0 1 1/ 3 2 / 3 0   90  0 1 1/ 3 2 / 3 0  90  1 1/ 3 2 / 3 0  90  x3  0
0 1 0 0 1  120  0 1 0 0 1  120  x5 0 0 1/ 3 2 / 3 1  30  x4  0
1 3 0 0 0  1 3 0 0 0  1 3 0 0 0  x5  30

Finalmente debemos calcular los costos reducidos de las variables no


básicas, asegurando que los costos reducidos de las básicas sean nulos:

1 2 3 4 5 1 2 3 4 5 1 2 3 4 5

1 0 2 / 3 1/ 3 0  70  1 0 2 / 3 1/ 3 0  70  1 0 2 / 3 1/ 3 0  70 


         
1 1/ 3 2 / 3 0  90  0 1 1/ 3 2 / 3 0  90  0 1 1/ 3 2 / 3 0  90 
0
0 0 1/ 3 2 / 3 1  30  00 1/ 3 2 / 3 1  30  0 0 1/ 3 2 / 3 1  30 
1 3 0 0 0  0 0 3 2 / 3 1/ 3 0  70 0 0 1/ 3 5 / 3 0  340

Verificamos que no estamos en el óptimo, y que la variable x3 es


candidata a entrar a la base.

55
Retomemos el método de forma tabular

¿Cómo elegimos que variable sale de la base?


• Factibilidad y conveniencia 1 2 3 4 5
1 0 2 / 3 1/ 3 0  70 
  
0 1 1/ 3 2 / 3 0  90 
0 0 1/ 3 2 / 3 1  30 
0 0 1/ 3 5 / 3 0  340

Tenemos tres posibilidades:


• Que salga x1 x1  2 / 3  x3  70 ¿ x1  0? ¿ x3 ?
• Que salga x2 x2  1/ 3  x3  90 ¿ x2  0? ¿ x3 ?
• Que salga x5 1/ 3  x3  x5  30 ¿ x5  0? ¿ x3 ?

 bi   70 30 
xq  min   x3  min  ,*,   90 sale x5
i / aiq  0 a
 iq   2 / 3 1/ 3 

56
Retomemos el método de forma tabular

Proseguimos con nuestra nueva solución básica factible: x1,x2,x3

1 2 3 4 5
1 0 2 / 3 1/ 3 0  70 
  
0 1 1/ 3 2 / 3 0  90 
0 0 1/ 3 2 / 3 1  30 
0 0 1/ 3 5 / 3 0  340

57
Algunas preguntas

¿Como encontramos una solución inicial básica factible?


Caso 1:
(asumiremos que b ≥0…)

Max / Min cT  x
s.a : A x  b
x0

Caso 2:
(asumiremos que b ≥0…)

Max / Min cT  x
s.a : A x  b
x0

58
Método de las dos fases

Max cT  x
s.a : A x  b
x0
Fase I:
Definimos un problema alternativo para el cual la obtención de una
solución inicial básica factible es trivial…
El algoritmo termina cuando…
m
Min s
i 1
i

s.a : A x  s  b
s, x  0
¿Qué podemos inferir del valor (solución) óptimo del problema anterior?
59
Método de las dos fases

Un ejemplo:

Max x1  3  x2  x3
s .a : 2 x1  x2  3 x3  230
x1  2 x2  2 x3  250
x1 , x2 , x3  0

60
Algunas situaciones especiales

• Problema no acotado… x1  70  2 / 3  x3
x1 , x3  0
1 2 3 4 5
x1
1 0 2 / 3 1/ 3 0  70 
   x2
0 1 1/ 3 2 / 3 0  90  x2  90  1/ 3  x3
x5
0 0 1/ 3 2 / 3 1  30  x2 , x3  0
0 0 1/ 3 5 / 3 0  340 90

x1  2 / 3  x3  70
x2  1/ 3  x3  90
70
1/ 3  x3  x5  30 x5  30  1/ 3  x3
x3 , x5  0
x1  70  2 / 3  x3
30
 x2  90  1/ 3  x3
x5  30  1/ 3  x3
x3
• Si todos los elementos de una columna entrante, o
candidata a entrar a la base, son negativos… 61
Algunas situaciones especiales

• Múltiples soluciones …
1 2 3 4 5
• Ingresemos x3 a la base
1 0 2 / 3 1/ 3 0  70 
   (sale x5)
0 1 1/ 3 2 / 3 0  90 
00 1/ 3 2 / 3 1  30 
0 0 0 5 / 3 0  340

1 2 3 4 5 • Debemos diagonalizar la


1 0 2 / 3 1/ 3 0  70  columna entrante…
  
0 1 1/ 3 2 / 3 0  90 
00 1/ 3 2 / 3 1  30 
• ¿Qué pasa con los costos
0 0 0 5 / 3 0  340
reducidos?

62
Algunas situaciones especiales

• Soluciones degeneradas
1 2 3 4 5
• Ingresemos x3 a la base
1 0 2 / 3 1/ 3 0  70 
   (sale x5)
0 1 1/ 3 2 / 3 0  90 
00 1/ 3 2 / 3 1   0 
0 0 0 5 / 3 0  340

1 2 3 4 5 • Debemos diagonalizar la


1 0 2 / 3 1/ 3 0  70  columna entrante…
  
0 1 1/ 3 2 / 3 0  90 
00 1/ 3 2 / 3 1   0 
0 0 0 5 / 3 0  340

63
Algunas situaciones especiales

• Soluciones degeneradas
• Esto puede ocurrir cuando al ingresar una variable a la base, dos
variables básicas se hacen cero simultáneamente, luego
cualquiera de las dos puede salir
• En una solución básica no esta garantizado que todas las
variables básicas sean no nulas
• Esto curre cuando mas de n restricciones (n variables) se activan
para determinar el óptimo
• Para una misma solución real (vértice), existe mas de una forma
de representarla en términos de variables básicas y no básicas:
• Un ejemplo con 5 variables y 3 restricciones:
¿Cuáles son las
 x1   10 
    variables básicas? Si esta solución es la óptima,
 x2   0 
 x3    20   x1   x1   x1  tenemos tres soluciones
          básicas óptimas para
 x4   0  xB   x2  ,  x3  ,  x3 
representarla
x   0 
 5  
x  x  x 
 3  4  5
64
Algunas situaciones especiales

• Problema infactible …

• ¿Dónde detectamos un problema infactible?

65
Algoritmo Simplex

Determinar una
solución básica xk
factible Inicial x0
k=0

si ¿es xk
óptima?

no
Determinar la
Determine la variable Variable saliente
Terminar
entrante
Determinar la nueva

solución básica xk+1


¿Es
k = k+1
si el problema no
no
acotado?

66
Dualidad en Programación Lineal

• Recordando el ejemplo de las cuerdas


2 4
6
B
A1

3 5

• El estirar al máximo las cuerdas, alejando B de A


– Entrega la máxima distancia factible de ubicar el punto B del A
(problema de maximización)
– Las cuerdas tensas entregarán la combinación de cuerdas que
conectan A y B de Mínima Extensión o ruta mas corta (problema de
minimización)
• Esto manifiesta el concepto de Dualidad
• Dos problemas duales entre si, que de algún modo resuelven el
mismo problema
67
Dualidad en Programación Lineal

• Veamos las formulaciones matemáticas

Problema de Ruta Mínima Problema de Máxima Distancia


Min L ij  f ij Max DB  DA  DA  0 
( ij )A
Sujeto a :
sujeto a:
D j  Di  Lij   i, j   A
1 jA

 f jk   fij  b j  1 jB
k /  jk A i /  ij A  0 j  A, B

fij  0

• Todo PL posee un equivalente Dual


• ¿Cómo obtenerlo o construirlo formalmente?
• ¿Es posible obtener un interpretación lógica para el PD?
68
Dualidad en Programación Lineal

• Consideremos el problema de la dieta, con dos tipos de


vitaminas y tres tipo de alimentos:
Min 100  x1  80  x2  95  x3  Costo 
s .a : 2  x1  4  x2  3  x3  10 VA 
x1  2  x2  5  x3  25 VB 
x1 , x2 , x3  0

• Pensemos en una empresa farmacéutica que pretendiera ofrecer


un sistema alternativo en base a consumo de vitaminas A y B
• Este debe definir el precio de las vitaminas de modo que el
encargado de la dieta esté dispuesto a reemplazar su dieta por
las vitaminas (ya e yb)
• Naturalmente intentará definir dichos precios de modo de
maximizar sus ingresos.

69
Dualidad en Programación Lineal

• Reemplazar un kilo del alimento 1 por vitaminas implica 2


unidades de vitamina A y una unidad de vitamina B, de modo
que el valor o precio intrínseco será:
2  y A  yB
• Si este valor es superior a 100 el encargado preferirá el alimento 1
2  y A  yB  100
• Para el caso del alimento 2 y 3 respectivamente, las restricciones
serán:
4  y A  2  yB  80
3  y A  5  yB  95
• Como se pretende satisfacer 10 unidades de vitamina A y 25 de
vitamina b, el ingreso total del farmacéutico será:

Max 10  y A  25  yB con y A , yB  0
70
Dualidad en Programación Lineal

• Luego, el modelo será


 yA 
Max 10  y A  25  yB
Max 10, 20    y 
 B
s .a : 2  y A  yB  100 2 1 100 
4  y A  2  yB  80    yA   
s .a :  4 2 
  yB    80 
3  y A  5  yB  95  
3 5  95 
y A , yB  0    
y A , yB  0

• Este corresponde al Problema Dual del problema de le dieta


• ¿Cuál es el vector de costos del problema dual?
• ¿Cuál es el lado derecho del problema dual?

71
Dualidad en Programación Lineal

Algunas observaciones:
• El Problema Dual (PD) de un problema de minimización es un problema
de maximización (y viceversa)
• El problema original se conoce como Problema Primal (PP)
• El Dual del PD es el PP
• En el PD hay tantas variables como restricciones del PP
• En el PD hay tantas restricciones como variables del PP
• Cada variable del PD (variable dual) esta asociada exactamente a una
sola restricción del PP
• Cada restricción del PD (variable dual) esta asociada exactamente a una
sola variable del PP
• La matriz de restricciones del PD corresponde a la traspuesta de la Matriz
de restricciones del PP
• Las variables duales son los precios sombra de las restricciones del PP
• Las variables primales son los precios sombra de las restricciones del PD
72
Dualidad en Programación Lineal

Algunas reglas para construir el Dual

Problema de Minimización Problema de Maximización


≥ ≥0
Restricción ≤ Variable ≤0
= Irrestricta
≥0 ≤
Variable ≤0 Restricción ≥
Irrestricta =

Max 10  y A  25  yB
Min 100  x1  80  x2  95  x3
s .a : 2  y A  yB  100
s .a : 2  x1  4  x2  3  x3  10
4  y A  2  yB  80
x1  2  x2  5  x3  25
3  y A  5  yB  95
x1 , x2 , x3  0
y A , yB  0
73
Dualidad en Programación Lineal

• Veamos el caso de las cuerdas:


Problema de Ruta Mínima Problema de Máxima Distancia
Min L
( ij )A
ij  f ij Max DB  DA  DA  0 
Sujeto a :
sujeto a:
D j  Di  Lij   i, j   A
1 jA
 f jk  

fij  b j  1 jB  Di 
k /  jk A i /  ij A  0 j  A, B

fij  0

74
Dualidad en Programación Lineal

• Consideremos los siguientes casos:

Problema Primal Problema Dual


Max c  x  x  c
T T
Min bT  y  yT  b
s.a : A x  b s.a : A yc
T

x0 y0

75
Relaciones de Dualidad

Teorema de Dualidad Débil


Sea x una solución factible del PRIMAL (Max), e y una solución
factible del DUAL (Min). Entonces, se cumple:

cT  x  bT  y
Demostración:
Como X es factible del primal  A ·x ≤ b (1)
Como Y es factible del Dual  AT·y ≥ c (2)
De (1) y (2) se tiene:

   
c  x  A  y  x  yT  A  x  yT   A  x   yT  b  bT  y
T
T T

c

 cT  x  bT  y
76
Relaciones de Dualidad

Corolario1:
Dado un par de problemas PRIMAL-DUAL, si uno es factible no acotado
(cualquiera de los dos), el otro es infactible.

Demostración:
Supongamos que tenemos un PP no acotado.
Demostraremos que el PD es infactible.

Asumamos que tenemos una solución factible del PD y*.


De este modo por Teorema de Dualidad Débil, se tiene que:

cT  x  bT  y*  v* x / Ax  b , x  0
Luego, tenemos una cota para el valor de la F.O. del problema primal,
para cualquier solución factible del sistema respectivo, es decir ninguna
solución factible del PP puede tener un valor de la F.O. mayor a v*
Esto contradice que el problema sea no acotado.
En consecuencia, si tenemos un problema no acotado, no será posible
encontrar una solución factible en su respectivo PD. 77
Relaciones de Dualidad
Corolario2:
Sea x* una solución factible del PP, e y* una solución factible del PD.
Si cTx* = bTy*, entonces x* e y* son soluciones óptimas del PP y del
PD, respectivamente.
Demostración:
Sabemos que cT·x ≤ bT·y, para cualquier solución factible del PD y , y
para cualquier solución factible del PP x.
En particular para y*. Luego,

cT  x  bT  y* x / A  x  b , x  0
Ahora si cTx* = bTy*, entonces:

cT  x  bT  y*  cT  x* x / A  x  b , x  0
De este modo, tenemos una solución factible del PP que posee una F.O.
mayor o igual a cualquiera otra solución factible del PP.
Luego x* es una solución óptima del PP.
Similarmente se puede demostrar que y* es una solución óptima del PD.
78
Relaciones de Dualidad

Teorema (Dualidad Fuerte):


Si un problema de P.L. tiene una solución óptima, entonces el
correspondiente DUAL también tiene una solución óptima, y los
respectivos valores objetivos son idénticos.
Demostración:
Si tenemos una solución optima del PP, x*, la respectiva F.O. nos entrega
una cota para el valor de la F.O. del PD.

v*  cT  x*  bT  y y / AT  y  c , y  0
¿podremos encontrar una solución y* factible del PD que cumpla… ?

c T  x *  bT  y *
Tomaremos una solución óptima del PP, con una estructura de solución
básica, es decir:
x 
x*   B  para alguna matriz B 1  xB  0 
0 
¿Es esto siempre posible?
79
Relaciones de Dualidad

Sea la siguiente solución:

 
T
1
y  cB B
* T
 y*T  cBT B1
Sabemos que:
cr T  cT 0   cBT  B 1   A I   0  pues estamos en un óptimo 
y*T  cr
T
B  cBT  cBT  B 1  B  0 y crNT  cN T  cBT  B 1  N  0 

 cBT  B 1  A  cT  cBT  B 1  I  0

 
T
1
trasponiendo: A  cB  B
T T
c
AT  y*  c  y *T  I  0

Tenemos una solución factible del problema dual


¿Cuánto vale su F.O.? 80
Relaciones de Dualidad

Además se tiene que:

 
T
1
b y
T *
b  c B
T
B
T

1
 cB  B  b
T

 cB  xB  c  x
T T *

bT  y*  cT  x*
De este modo la solución y* es factible y alcanza el
valor óptimo del PD.

Además demostramos que el valor óptimo del PP es


igual al del PD.

81

You might also like