You are on page 1of 70

Investigacin Operativa 2008/09

Tema 3: Mtodo del Simplex Revisado.

El mtodo revisado o mtodo del simples con multiplicadores: Conceptos bsicos.


Vector de Multiplicadores.
Se basa en los mismos principios que el simplex, pero en cada iteracin no se calcula
toda la tabla, y la informacin que se necesita para pasar de una solucin factible bsica a
otra se obtiene directamente de las ecuaciones originales.

Informacin de inters:
* Cj
* columna de la v. que entra
*b

Ejemplo:
Max Z = 3x1 + 2x2
- x1 + 2x2 + x3 = 4
3x1 + 2x2 + x4 = 14
x1 - x2 + x5 = 3
xi 0
Tabla 2

1 0 1
= CB B-1 = (0,0,3) 0 1 -3
0 0 1

= (0,0,3)

Tabla 3

1 -1/5 3/5
= CB B-1 = (0,2,3) 0 1/5 -3
0 1/5 2/5

= (0,1,0)

15

Investigacin Operativa 2008/09

CB
0
0
0

CB
0
0
3

CB
0
2
3

CB
0
2
3

Cj
Base
x3
x4
x5
_
Cj

3
x1
-1
3
1

2
x2
2
2
-1

0
x3
1
0
0

0
x4
0
1
0

0
x5
0
0
1

b
4
14
3

Z=0

Base
x3
x4
x1
_
Cj

x1
0
0
1

x2
1
5
-1

x3
1
0
0

x4
0
1
0

x5
1
-3
1

b
7
5
3

-3

Z=9

Base
x3
x2
x1
_
Cj

x1
0
0
1

x2
0
1
0

x3
1
0
0

x4
-1/5
1/5
1/5

x5
8/5
-3/5
2/5

b
6
1
4

-1

Z = 14

Base
x5
x2
x1
_
Cj

x1
0
0
1

x2
0
1
0

x3
5/8
3/8
-1/4

x4
-1/8
1/8
1/4

x5
1
0
0

b
15/4
13/4
5/2

-1

Z = 14

16

Investigacin Operativa 2008/09

Desarrollo del mtodo.


El mtodo del simplex revisado trabaja con la idea fundamental de que cualquier
tabla del simplex correspondiente a una solucin factible bsica puede generarse
directamente de las ecuaciones originales por medio de operaciones matriciales.

Max (o Min) Z = Cx
Ax = b
x0

C = (C1, C2, ..., Cn)

1xn x=

x1
...
xm

nx1

xn

A=

A=

a11
a21
...

a12
a22
...

...
...
...

a1n
a2n
...

mxn b=

b1
b2
...

am1

am2

...

amn

m<n

bm

[ P1

P2

Pn ]

Pi =

mx1

a1i
a2i

ami

mx1
i = 1, ..., n

Supongamos que tenemos una solucin factible con variables bsicas x1 ... xm
La matriz bsica B ser:

B = (P1 ...
matrix m x m

xB
x=
xN

a11
a21
Pm) = ...
am1

x1
x2

xm
xm+1

xn

a12
a22
...
am2

...
...
...
...

a1m
a2m
...
amm

xB variables bsicas
xN variables no bsicas = 0

17

Investigacin Operativa 2008/09


_
b1
__

_
b2
-1
La solucin bsica actual es xB = b =B b =
__
bm
y xN =

...

( 0 ).
_
b

xB
Z = Cx = (CB CN)

= (CB, CN)
xN

_
= CB xB + CN xN = CB b

y cualquier columna:
_
_
Pj = B-1 Pj
j de las variables no bsicas
Se llama vector de multiplicadores al vector = (1, 2, ..., m)
= CB B-1
(mxm)
(1xm)
A partir de este vector, se pueden calcular los beneficios relativos:
Cj = Cj - CBPj = Cj - CBB-1Pj = Cj - Pj
j de variables no bsicas

18

Investigacin Operativa 2008/09

Ejemplo:
Min Z = -3x1 + x2 + x3
sujeto a
x1 2x2 + x3 11
-4x1 + x2 + 2x3 3
2x1
- x3 = -1
xi 0
Min Z = -3x1 + x2 + x3 + Mx6 + Mx7
x1 - 2x2 + x3 + x4
= 11
-4x1 + x2 + 2x3
x5 + x6
=3
-2x1
+ x3
+ x7 = 1
xi 0
A=

[ P1

P1 =

1
-4
-2

P7 =

0
0
1

P2

P2 =

-2
1
0

b=

11
3
1

P6 ]
P3 =

1
2
1

P4 =

1
0
0

Base inicial { x4, x6, x7} B = (P4 P6 P7) =

P5 =

0
-1
0

P6 =

1
0
0

0
1
0

0
0
1

_
b = B-1b = b

-1

B =I

La tabla 1 del mtodo del simplex revisado ser:


Base
x4
x6
x7

1
0
0

B-1
0
1
0

0
0
1

_
b
11
3
1

A completar
ms adelante

= (1, 2, 3) = CBB-1= (C4, C6, C7) B-1 = (0, M, M)I = (0, M, M)


Los beneficios relativos de las variables no bsicas:
_
Cj = Cj - Pj

j = 1, 2, 3, 5

19

0
1
0

Investigacin Operativa 2008/09

_
C1 = -3 (0, M, M)

1
-4
-2

= -3 + 6M

_
C2 = 1 (0, M, M)

-2
1
0

=1M

_
C3 = 1 (0, M, M)

1
2
1

= 1 3M

_
C5 = 0 (0, M, M)

0
-1
0

=M

Entra x3 en la base. La columna pivote es:


1
P3 = B P3 = 0
0

0
1
0

0
0
1

1
2
1

1
2
1

Tabla 1.

x4
x6
x7

_
b
11
3
1

B-1

Base
1
0
0

0
1
0

0
0
1

_
Columna pivote P3
1
2
1

Var. que entra


x3

Regla mnima proporcin min{11/1, 3/2, 1/1} sale x7


Nueva base {x4, x6, x3} B = [P4 P6 P3] =

-1

B =
_
11
-1
-1
b=B b=B 3
1

1
0
0

0
1
0

10
1
1

-1
-2
1

20

1
0
0

0
1
0

1
2
1

Investigacin Operativa 2008/09


_
b
10
1
1

B-1

Base
x4
x6
x3

1
0
0

0
1
0

-1
-2
1

= CBB-1 = (C4, C6, C3)B-1 = (0, M, 1)B-1 = (0, M, -2M+1)


_
1
C1 = -3 - (0, M, -2M+1) -4
-2
_
C2 = 1 M

= -1

_
C5 = M

_
entra x2 en la base P2 = B-1 P2 = B-1

-2
1
0

-2
1
0

Tabla 2.
B-1

Base
x4
x6
x3

1
0
0

0
1
0

0
0
1

_
b
10
1
1

_
P2
-2
1
0

var que entra


x2

Regla mnima proporcin min{10/-2, 1/1, 1/0} sale x6


-1

Nueva base {x4, x2, x3} B = [P4 P2 P3] B =


_
b = B-1b =

12
1
1

B-1

Base
x4
x2
x3
= (0, 0, 1)

1
0
0

1
0
0
2
1
0

2
1
0
-5
-2
1

-5
-2
1

_
b
12
1
1

= (0, 1, -1)

21

1
0
0

2
1
0

-5
-2
1

Investigacin Operativa 2008/09


_
C1 = -1 entra x1

_
P1 =

1
0
0

2
1
0

-5
-2
1

1
-4
-2

3
0
-2

_
C5 = 1

Tabla 3.
B-1

Base
x4
x2
x3

1
0
0

2
1
0

-5
-2
1

_
b
12
1
1

Var que entra


x1

_
P1
3
0
-2

Nueva base {x1, x2, x3}

Tabla 4.
B-1

Base
1

x1
x2
x3

-5/3
-2
-7/3

/3
1
4
/3

-5/3
-2
-7/3

/3
0
2
/3
1

/3
= (-3, 1, 1) 0
2
/3
_
C4 = 1/3
_
C5 = 1/3

/3
1
4
/3
2

_
b
4
1
9
= [-1/3, 1/3, 2/3]

Por lo tanto, la tabla 4 es ptima y la solucin ptima es:


x1 = 4
x2 = 1
x3 = 9
x4 = x5 = 0
_
4
Z = CBb = (-3, 1, 1) 1
9

= -2

22

Investigacin Operativa 2008/09


Ventajas del mtodo revisado del Simplex doble el mtodo del Simplex regular.
1. El simplex revisado trabaja sobre una tabla cuyo tamao lo determina el nmero
de restricciones.
2. Si se calcula B-1 en cada iteracin directamente de los datos del principio, no se
acumulan errores de redondeo.
3. Los conceptos tericos del mtodo ayudan a entender conceptos de teora de la
dualidad y anlisis de sensibilidad.

23

Investigacin Operativa 2008/09

Tema 4: Teora de la Dualidad.

2x1
La teora de la dualidad se centra en el hecho de que, asociado a cualquier problema
de programacin lineal, existe otro problema de programacin lineal que se llama su dual,
de manera que al resolver el primero se resuelve tambin el segundo sin coste
computacional adicional.
Problemas primal-dual simtrico. Propiedades y relaciones de los problemas primal y
dual.
Un problema de programacin lineal est escrito en forma simtrica si todas las
variables son no negativas, y todas las restricciones son desigualdades (si el problema es de
maximizar, con , y si es de minimizar, con ).
PRIMAL
Max Z = Cx
Ax b
x0

Min Z = Cx
Ax b
x0

Max Z = (C1, C2, , Cn)

x1

xn

a11
a21
...
am1

x1
x2

xn

x1
x2

xn

a12
a22
...
am2

...
...
...
...

a1n
a2n
...
amn

b1
b2
...
bm

24

Investigacin Operativa 2008/09

DUAL
Min W = by
yA C
y = (y1, y2, , ym)
y0

Min W = b1y1 + b2y2 + + bmym


a11y1 + a21y2 + ... + am1ym C1
a12y1 + a22y2 + ... + am2ym C2
...
...
...
...

a1ny1 + a2ny2 + ... + amnym Cn


y1, y2, , ym 0

1.
2.
3.
4.
5.
6.

Reglas generales de construccin del problema dual.


Definir una variable dual no negativa por cada restriccin del problema primal.
Hacer que el vector de costes del problema primal pase a ser el vector de las
constantes de la derecha del problema dual.
Hacer que el vector de constantes de la derecha del primal sea el vector de costes del
dual.
La traspuesta de la matriz de coeficientes del primal es la matriz de coeficientes del
dual.
Invertir la direccin de las desigualdades de las restricciones.
Invertir Maximizar por Minimizar (y viceversa).
Problema Primal
Max Z = Cx
Ax b
x0

Problema Dual
Min W = by
yA C siendo A la matriz
y 0 traspuesta de la matriz A
del problema primal (yA
Atyt)

Amxn
x n variables
b m restricciones

y m variables
C n restricciones

Teoremas de la dualidad.
Teorema 1 (Teorema dbil de la dualidad).
Consideremos los problemas de programacin lineal primal-dual simtricos:
Max Z = Cx
Ax b
x0

Min W = yb
yA C
y0
25

Investigacin Operativa 2008/09

Se tiene que el valor de la funcin del objetivo del problema dual (para toda solucin
factible del dual) es siempre mayor o igual que el valor de la funcin del objetivo primal (en
cualquier solucin factible del problema primal).
Demostracin.
Sean x0 e y0 solucin factible del primal y dual, respectivamente
x0 solucin factible del problema primal Ax0 b
(1)
x0 0
y0 solucin factible del problema dual y0A C
(2)
y0 0
(la solucin factible cumple las restricciones)
(1) y0Ax0 y0b
(2) y0Ax0 Cx0
Entonces

(pues y0 0)
(pues x0 0)
Cx0 y0Ax0 y0b
Z0 (primal)

W0 (dual)

(Z y W funciones objetivo)
Corolarios.
1) El valor de la funcin del objetivo Z del problema primal para cualquier solucin
factible del primal es una cota inferior para el valor mnimo de la funcin del
objetivo dual.
2) Anlogamente, el valor de la funcin del objetivo del problema dual para
cualquier solucin factible es una cota superior para el valor mximo de la
funcin del objetivo primal.
3) Si el problema primal tiene solucin no acotada entonces el problema dual no
tiene ninguna solucin factible.
4) Anlogamente, si el problema dual tiene solucin no acotada entonces el primal
no tiene ninguna solucin factible.
5) Si el problema primal tiene solucin, y el dual no, entonces el primal es no
acotado.
6) Si el problema dual tiene solucin, y el primal no, entonces el dual es no acotado.
7) Si el primal no tiene solucin el problema dual no tiene solucin o es no
acotado.
8) Si el problema dual no tiene solucin el problema primal no tiene solucin o
es no acotado.

26

Investigacin Operativa 2008/09

Ejemplo 1.
Primal

Dual

Max Z = x1 + 2x2 + 3x3 + 4 x4


Sujeto a
x1 + 2x2 + 2x3 + 3x4 20
2x1 + x2 + 3x3 + 2x4 20
xi 0
Min W = 20y1 + 20y2
Sujeto a
y1 + 2y2 1
2y1 + y2 2
2y1 + 3y2 3
3y1 + 2y2 3
yi 0

ej.

x0 = (x10, x20, x30, x40)


(1, 1, 1, 1)
Z (x0) = 10
cualquier solucin factible del problema dual verifica W 10 Wopt 10

Ejemplo 2.
Primal

Dual

Max Z = x1 + x2
- x1 + x2 + x3 2
-2x1 + x2 - x3 1
xi 0
Min W = 2y1 + y2
- y1 + 2y2 1
y1 + y2 1
y 1 - y2 0
yi 0

El primal tiene solucin (por ejemplo x0 = (0, 0, 0) es una solucin factible del
primal).
Pero el dual no tiene ninguna solucin factible (si yi 0, - y1 - 2y2 siempre 0).
Por el corolario 5, el primal tiene solucin no acotada.
Ejemplo 3.
Primal

Dual

Min Z = -2x1 3x2


x1 - x2 2
- x1 + x 2 1
x1, x2 0
Max W = 2y1 + y2
y1 - y2 -2
- y1 + y2 -3
yi 0

27

Investigacin Operativa 2008/09

Ambos, primal y dual, no tienen soluciones factibles (corolarios 7 y 8).


Teorema 2 (Criterio de optimalidad).
Si existen soluciones factibles x0 e y0 para el problema primal y dual,
respectivamente, tales que Cx0 = y0b x0 e y0 son soluciones ptimas del problema primal
y dual, respectivamente.
Demostracin (ejercicio)

Primal

En el Ejemplo 1
Max Z = x1 + 2x2 + 3x3 + 4 x4
Sujeto a
x1 + 2x2 + 2x3 + 3x4 20
2x1 + x2 + 3x3 + 2x4 20
xi 0

Dual

Min W = 20y1 + 20y2


Sujeto a
y1 + 2y2 1
2y1 + y2 2
2y1 + 3y2 3
3y1 + 2y2 3
yi 0

si tomamos:
x0 = (0, 0, 4, 4)

Z0 = 28

y0 = (12, 02)

W0 = 28

x0 e y0 ptimas del primal y dual respectivamente

Teorema 3 (Teorema fundamental de la dualidad).


Si el problema primal y el dual tienen soluciones factibles, entonces los dos tienen
soluciones ptimas cuyos valores de la funcin objetivo coinciden.
Teorema 4 (Teorema de las holguras complementarias).
Sean x0 e y0 soluciones factibles del problema primal y dual:
Max Z = Cx
Min W = yb
Ax b
yA C
x0
y0
x0 e y0 son soluciones ptimas (y0A C)x0 + y0(b Ax0) = 0
Demostracin.
(y0A - C)x0 + y0(b - Ax0) = 0 y0Ax0 Cx0 + y0b y0Ax0 = 0 - Cx0 + y0b = 0 Cx0 =
y0 b

28

Investigacin Operativa 2008/09


Entonces x0 e y0 ptimas Cx0 = y0b
por el teorema 3 de la dualidad
por el teorema 2
Condiciones de holguras complementarias.
Supongamos x0 solucin factible del problema primal e y0 solucin factible del
problema dual:
Ax0 b
n variables
y0A C m variables
x0 0
m ecuaciones
y0 0
n ecuaciones

x1
x20
A
xn0

b1
b2

bm

(y10, y20 , , ym0)A (C1, C2, , Cn)

Si lo escribimos con holguras:


x10
x20
A
xn0

U1 0
U2 0

Um 0

b1
b2

bm

(*)

siendo Ui0 0 i = 1, 2, , m el vector de holguras


(y10, y20 , , ym0)A (V10, V20, , Vn0) = (C1, C2, , Cn)
siendo Vi0 0 i = 1, 2, , n el vector de holguras
(*)
(**)

(**)

Ax0 + U0 = b U0 = b - Ax0
y0A V0 = C V0 = y0A - C

El teorema 4 dice:
x0 e y0 son soluciones ptimas ptimas (y0A - C)x0 + y0(b - Ax0) = 0 V0x0 + y0U0 = 0

(V10, V20, , Vn0)

x1 0
x2 0

xn 0

(y10, y20 , , ym0)

U1 0
U2 0

Um 0

Vj 0xj 0 = 0

j=1n

j=1

j=1

yj 0Uj 0 = 0

j=1m

Vj 0xj 0 + yj 0Uj 0 = 0
Vj 0 xj 0 = 0
v. primal j-sima
holgura dual j-sima

yj 0Uj 0 = 0
v. dual j-sima
29

=0
sistema o condiciones
de holguras
complementarias

holgura primal

Investigacin Operativa 2008/09

1)
2)
3)
4)

Se obtiene:
Si xj 0 > 0 Vj 0 = 0
Si Vj 0 > 0 xj 0 = 0
Si yj 0 > 0 Uj 0 = 0
Si Uj 0 > 0 yj 0 = 0

Ejemplo 1:
Max Z = x1 + 2x2 + 3x3 + 4 x4
Sujeto a

x1 + 2x2 + 2x3 + 3x4 + U1 = 20


2x1 + x2 + 3x3 + 2x4 + U2 = 20

x1 + 2x2 + 2x3 + 3x4 20


2x1 + x2 + 3x3 + 2x4 20
xi 0

xi, Ui 0

Min W = 20y1 + 20y2


Sujeto a

y1 + 2y2 1
2y1 + y2 2
2y1 + 3y2 3
3y1 + 2y2 3
yi 0

y1 + 2y2 - V1 = 1
2y1 + y2 - V2 = 2
2y1 + 3y2 - V3 = 3
3y1 + 2y2 - V4 = 4

La solucin ptima del dual es:

yi, Vi 0

y10 = 12
y20 = 02
W0 = 28

Condiciones de holgura complementarias:


U1 0 y10 = 0
U2 0 y20 = 0
x1 0 V10 = 0
x2 0 V20 = 0
x3 0 V30 = 0
x4 0 V40 = 0
y10 = 12 > 0 U1 0 = 0
y20 = 02 > 0 U2 0 = 0
y10 + y20 = 16 > 1 V10 > 0 x1 0 = 0
2y10 + y20 = 26 > 2 V20 > 0 x2 0 = 0
2y10 + 3y20 = 3 V30 = 0 x3 0 0
3y10 + 2y20 = 4 V40 = 0 x4 0 0
Y nos queda del sistema de ecuaciones del problema primal:
2x3 0 + 3x4 0 = 20
x3 0 = 4
3x3 0 + 2x4 0 = 20
x4 0 = 4
30

Investigacin Operativa 2008/09

x0 = (0, 0, 4, 4)

Zopt = 28

(que tiene que coincidir con el valor ptimo de la


funcin objetivo dual)

Problemas asimtricos primal-dual.


Consideremos un problema de programacin lineal no simtrico, por ejemplo:

Primal
Max Z = 2x1 3x2
Sujeto a
6x1 3x2 15
2x1 + 3x2 5
- x1 + 4x2 = -1
x1 cq signo, x2 0
Cualquier problema no simtrico puede convertirse en uno equivalente que s lo sea
Max Z = Cx
Ax b
x0
x1 = x1' x2'
x2 = - x3'
- x1 + 4x2 = -1

x1', x2' 0
x3 ' 0
- x1 + 4x2 -1 x1 - 4x2 1
- x1 + 4x2 -1

2x1 + 3x2 5 - 2x1 3x2 -5


Max Z = 2x1' 2x2' 3x3'
Sujeto a
6x1' 6x2' + 3x3' 15
-2x1' + 2x2' + 3x3' -5
x1' - x2' + 4x3' 1
- x1' + x2' - 4 x3' -1
xi' 0

Dual
Min W = 15w1 - 5w2 w3 + w4
Sujeto a
6w1 2w2 + w3 - w4 2
-6w1 + 2w2 - w3 + w4 -2
3w1 + 3w2 + 4w3 4w4 3
wi 0
Min W = wb
wA C
w0
Llamamos

y1 = w1 0
y2 = - w2 0
y3 = w3 - w4 0

31

Investigacin Operativa 2008/09


Min W = 15y1 + 5y2 y3
Sujeto a
6y1 + 2y2 + y3 2
-6y1 2y2 - y3 -2
3y1 3y2 + 4y3 3
Min W = 15y1 + 5y2 y3
6y1 + 2y2 + y3 = 2
3y1 3y2 + 4y3 3
y1 0, y2 0, y3 cq signo

6y1 + 2y2 + y3 = 2
3y1 3y2 + 4y3 3

Max Z = 2x1 3x2


6x1 3x2 15
2x1 + 3x2 5
- x1 + 4x2 = -1
x1 cq signo, x2 0

PRIMAL (Maximizar)
DUAL (Minimizar)
A matriz de coeficientes
Traspuesta
Vector de constantes de la Vector de coeficientes de la f.
derecha
objetivo
Vector de coeficientes de la f. Vector de constantes de la
objetivo
derecha
i-sima restriccin con =
Variable i-sima de cualquier
signo
i-sima restriccin con
Variable i-sima 0
i-sima restriccin con
Variable i-sima 0
Variable j de cualquier signo
Restriccin j con =
Variable j 0
Restriccin j con
Variable j 0
Restriccin j con

32

Investigacin Operativa 2008/09

Ejercicio 1.
Primal
Max Z = x1 + 4x2 + 3x3
2x1 + 3x2 5x3 2
3x1 - x2 + 6x3 1
x1 + x2 + x3 = 4
x1 0, x2 0, x3 cq signo

Dual
Min W = 2y1 + y2 + 4y3
2y1 + 3y2 + y3 1
3y1 - y2 + y3 4
-5y1 + 6y2 + y3 = 3
y1 0, y2 0, y3 cq signo

Ejercicio 2.
Primal
Min Z = 2x1 + x2 - x3
x1 + x2 - x3 = 1
x1 - x2 + x3 2
x2 + x3 3
x1 0, x2 0, x3 cq signo

Dual
Max W = y1 + 2y2 + 3 y3
y1 + y2 2
y1 - y2 + y3 1
-y1 + y2 + y3 = -1
y1 cq signo, y2 0, y3 0
Los teorema del 1 al 4 de la teora de la dualidad tambin se aplican a los problemas
asimtricos, con las modificaciones correspondientes.
En el Ejercicio 2:
x1 0 = 2
x2 0 = 0
solucin factible primal
0
x3 = 1
y10 = 1
y20 = 0
y30 = 0

solucin factible dual

Por el teorema 1 de la dualidad Z0 W0 Cx0 = 3 > y0b = 1


En el Ejercicio 1:
x1 0 = 0

33

Investigacin Operativa 2008/09


x2 0 = 0
x3 0 = 4
Z0 = 12

solucin factible primal

y1 0 = 0
y20 = 0
y30 = 3
W0 = 12
Por el teorema 2 ambas son soluciones ptimas.
Si el problema viene en forma estndar:
Max Z = Cx (Min) su dual es
Ax = b
x0

Min W = yb
yA C
y cq signo
Max W = yb
yA C
y cq signo

34

Investigacin Operativa 2008/09

Clculo de la solucin ptima del problema dual a partir de la tabla ptima del
problema primal.
Consideremos el problema de programacin lineal en forma estndar:
Min Z = Cx
(dual) Max W = yb
Ax = b
yA C
x0
y cq signo
xB
Sea x0 =
la solucin ptima del primal.
xN
xB = B-1b, siendo B la base ptima
_
Cj = Cj Pj 0
j por ser solucin ptima donde = CBB-1
En notacin matricial C A 0 A C el vector es una solucin factible
del problema dual.
Adems W() = b = CBB-1b = CBxB = Zptimo es ptima del problema dual.

35

Investigacin Operativa 2008/09

Ejemplo:
Primal
Min Z = -3x1 + x2 + x3
x1 - 2x2 + x3 11
-4x1 + x2 + 2x3 3
-2x1 + x3 = 1
xi 0

Dual
Max W = 11y1 + 3y2 + y3
y1 - 4y2 2 y3 - 3
-2y1 + y2
1
y1 + 2y2 + y3 1
y1 0, y2 0, y3 cq signo
Resolvemos el problema primal: la solucin ptima es B = [P1 P2 P3]
x1 = 4
x2 = 1
x3 = 9
Z0 = -2
-1
1
1
-2
1
/3 2/3
-5/3
= CBB-1 = (-3, 1, 1) -4
1
2
= (-3, 1, 1) 0 1
-2 = [-1/3, 1/3, 2/3]
2
4
-2
0
1
/3 /3
-7/3
Se comprueba que es solucin factible del problema dual y que
W() = 11(-1/3) + 3(1/3) + 1(2/3) = -2

36

Investigacin Operativa 2008/09


Cmo ver la solucin dual ptima en la tabla ptima del simplex del problema primal.
_
Base
Solucin (b)

_
Cj

Sean {i1, i2, , im} los ndices de las variables bsicas de la primera tabla del Simplex:
1 tabla

Base
xi1
xi2

xim

x1

x2

xi1
1
0

xi2
0
1

xim
0
0

_
xn

En cualquier tabla, B-1 aparece en las columnas de las variables bsicas iniciales.

En particular, en la ltima tabla:


Base

xi1

xi2

xim

Ci1
_

Ci2

_
37

Cim

Investigacin Operativa 2008/09


(Ci1, Ci2, , Cim) = (Ci1, Ci2, , Cim) [Pi1 Pim]
1
0
(Ci1, Ci2, , Cim)
0

0
1

0
0
_ _
_
= (Ci1, Ci2, , Cim) (Ci1, Ci2, , Cim)
1

Tema 5: Mtodo del Simplex Dual.

Conceptos fundamentales. Bases factibles dual y primal.


Consideremos un problema de programacin lineal estndar:
Min Z = Cx
Ax = b
x0

Amxn

x=
b=

b1

bm

A = (P1 Pn)
C = (C1, , Cn)
x1

xn

m<n

Sea B A una submatriz de A formada por m columnas de A linealmente


independientes. Se dice que B es una base factible primal (o base factible del problema
primal) si B-1b 0.
Sea B A una submatriz de A formada por m columnas de A linealmente
independientes. Se dice que B es una base factible dual (o base factible del problema dual)
si:
C CBB-1A 0
(C CBB-1A 0 si el p. primal fuese de maximizar)
Consecuencias de las definiciones.
Que B sea factible primal significa que se le puede asociar una solucin:
x=

xB
xN

con xB = B-1b 0

Que B sea factible dual significa que C CBB-1A 0 C CBB-1A.

38

Investigacin Operativa 2008/09


Llamando yB = CBB-1 C yBA yBA C yB as definida es una solucin
factible del problema dual. Adems C yBA 0
como los beneficios relativos del problema primal se calculan como
_
C = C A, = C CBB-1A = C yBA 0 xB = B-1b es una solucin factible y ptima
del problema primal.
Luego como Wo = yBb = CBB-1 = CBxB = Zopt
yB y xB son soluciones ptimas del primal y dual.
Resumiendo, si una matriz B es a la vez una base factible primal y dual, sus
soluciones asociadas xB = B-1b e yB = CBB-1 son ptimas del primal y dual, respectivamente.
Desarrollo del mtodo dual del Simplex.
Consideremos el ejemplo
Min Z = x1 + 4x2 + 3x4
Sujeto a:
x1 + 2x2 x3 + x4 3
-2x1 - x2 + 4 x3 + x4 2
xi 0
Introducimos variables de holgura x5 y x6:
x1 + 2x2 x3 + x4 - x5 = 3
-2x1 - x2 + 4 x3 + x4 - x6 = 2
xi 0
Multiplicamos por -1:
-x1 - 2x2 + x3 - x4 + x5 = -3
2x1 + x2 - 4 x3 - x4 + x6 = -2
xi 0
CB
0
0

Cj
base
x5
x6
_

1
x1
-1
2

4
x2
-2
1

0
x3
1
-4

3
x4
-1
-1

0
x5
1
0

0
x6
0
1

Cj

b
-3
-2

B = [P5 P6] = I B = I b = B b 0 pero C - CBB = C = (1,4,0,3,0,0) 0


-1

-1

-1

Luego B no es factible primal (porque 0), pero s factible dual.


_
_
Si tenemos, por tanto, una tabla del Simplex Dual donde Cj 0 y b 0 estaramos
ante la solucin ptima.

39

Investigacin Operativa 2008/09

Situacin general.
_
Base

x1

xr

xm

xm+1

xs

xn
b
_

x1

y1,m+1

y1s

y1n

b1

xr

yr,m+1

yrs

yr n
br
Alguno
menor
que cero

_
xm

yn,m+1

yns

ymn
bm

_
0

Cj

Cm+1

Cs

Cn

(min)

El mtodo del simplex dual va a calcular una solucin factible bsica dual adyacente,
reemplazando una variable bsica por una variable no bsica.
1. Seleccin de la variable bsica que deja la base.
_
Se elige la variable bsica con el mayor valor negativo bi.
Sea br = min {bi} xr deja la base, y la fila r es la fila pivote.
bi < 0
2. Seleccin de la variable no bsica que entra en la base (Regla de la mxima proporcin).

40

Investigacin Operativa 2008/09

Entra en la base xs tal que

c
cs
= max j
yrs y rj < 0 yrj

y el valor yrs es el pivote para construir la nueva tabla.


En nuestro ejemplo:
_
1) El mayor valor negativo de los bi es -3 x5 deja la base
_
_
2) Variable no bsica yij
Cj
Cj/yij
x1
-1
1
-1
x2
-2
4
-2
x4
-1
3
-3
max {-1, -2, -3} = -1 x1 entra en la base y el pivote es -1. Aqu el pivote es negativo.

41

Investigacin Operativa 2008/09


Tabla 2 del m.s.d.
Cj

0
_

CB

base

x1

x2

x3

x4

x5

x6

1
0

x1
x6
_

1
0

2
-3

-1
-2

1
-3

-1
2

0
1

Cj

sale x6
proporciones:
x2
x3
x4

_
Cj
2
1
2

yij
-3
-2
-3

b
3
-8

-2/3 = -066
-1/2 = -05
-2/3 = -066

max {-066, -05} = -05 entra x3 y el pivote es -2.


Tabla 3 del m.s.d.
_
CB

base

x1

x2

x3

x4

x5

x6

1
0

x1
x3
_

1
0

0
1

-2
-1

-1/2
-1/2

/2
3
/2

/2
3
/2

1
1
0
0
/2
/2
_ _
Tabla ptima Cj y b 0
Solucin ptima del problema de programacin lineal.

Cj

/2

b
7
4

0
0

Z=7

OBSERVACIONES.
1.-) Resolucin de problemas de maximizacin por el mtodo del simplex dual.
*La regla de salida es igual
* Cambia la regla de entrada, que ahora va a ser de la mnima proporcin

Entra en la base xs tal que

cj
cs
= min
yrs yrj <0 yrj

2.-) Qu sucede si falla el criterio de entrada? Es decir, todos los yij de la fila de la
variable que sale son 0.
Entonces el problema no tiene solucin. Por qu: ejercicio?

42

Investigacin Operativa 2008/09


3.-)
Cmo se puede saber, utilizando el mtodo del simplex dual, que el problema
original tiene solucin no acotada? Ejercicio: pensarlo usando los corolarios 1-8 del
teorema 1 de la dualidad

43

Investigacin Operativa 2008/09

Tema 6: Anlisis de Sensibilidad y Programacin Paramtrica


1. Anlisis de sensibilidad.
Se refiere al estudio de los cambios en la solucin ptima y en el valor ptimo de Z
debido a cambios en los datos del problema inicial, pero sin resolver el problema de nuevo
desde el principio.
Ejemplo.
Una compaa fabrica 3 productos A, B y C. Los beneficios por unidad de estos
productos son 2, 3 y 1 respectivamente, y para su fabricacin son necesarios 2 recursos:
trabajo y material. Supongamos que los valores ptimos a fabricar de los productos A, B y
C se obtienen resolviendo el problema:
Max Z = 2x1 + 3x2 + x3
1
Sujeto a:
/3x1 + 1/3x2 + 1/3x3 1
1
/3x1 + 4/3x2 + 7/3x3 3
xi 0

(trabajo)
(material)

xi unidades a fabricar del producto i


Cj

CB

base

x1

x2

x3

x4

x5

0
0

x4
x5
_

/3
7
/3

1
0

0
1

b
1
3

Z=0

/4
/4

0
1

-1/4
7
/4

1
0

-1/4
3
/4

/4

-17/4

-9/4

Z = 27/4

x1
x2
_

1
0

0
1

-1
2

4
-1

-1
1

1
2

Cj

-3

-5

-1

Z=8

Tabla1

Cj

/3
1
/3
2

/3
4
/3

Tabla2

0
3

x4
x2
_

Cj

1
9

/4
/4

Tabla3

2
3

x1 = 1

x2 = 2

Zopt = 8

Solucin ptima

44

Investigacin Operativa 2008/09

P1 =

/3
/3

P2 =

/3
/3

P3 =

/3
/3

1
P4 =

0
P5 =

C = (2,3,1,0,0)
1
b=
3

Max Z = Cx
Ax = b
x0

C = (C1, C2, ..., Cn)

1xn x=

x1
...
xm

nx1

xn

A=

A=

a11
a21
...

a12
a22
...

...
...
...

a1n
a2n
...

mxn b=

b1
b2
...

am1

am2

...

amn

m<n

bm

[ P1

P2

Pn ]

Pi =

a1i
a2i

ami

mx1

mx1
i = 1, ..., n

Supongamos que tenemos una solucin factible obtenida a partir de una base B
La solucin bsica

xB = b = B 1b

Z = CBb

cualquier columna:
45

Investigacin Operativa 2008/09

Pj = B 1Pj

j de las variables no bsicas

= CB B-1
Los beneficios relativos:

c j = c j Pj = c j cB B 1Pj = c j cB Pj

46

j de variables no bsicas

Investigacin Operativa 2008/09

1. Modificaciones en los coeficientes de la funcin del objetivo.


1.1 Cambio en el Cj de una variable no bsica.
Variable no bsica de inters x3 (forma parte del problema pero no est en la base)
_
_
C3 = -3
Mientras C3<0 la solucin actual (x1 y x2 en la base) sigue siendo ptima
_
_
-1
C3 = C3 CBP3 = C3 - (2,3)
= C3 - 4
2
columna de x3 en la tabla ptima

_
C3 = C3 - 4 0 C3 4

si C3 > 4 entra x3 en la base

_
Si, por ejemplo C3 = 6 C3 = 2

y haramos una tabla ms:


_

base
CB
2
6

x1

x2

x3

x4

x5

x1
x3
_

1
0

/2
/2

0
1

/2
-1/2

- /2
1
/2

b
2
1

Cj

-1

-4

-2

Z = 10

ptima
1.2 Cambio en el Cj de una variable bsica.
Analicemos, por ejemplo, como se altera la tabla ptima modificando C1:
_
_
x1 y x2 estn en la base C1 = C2 = 0
_
_
C3 = C3 - CBP3 = 1 (C1,3)

-1
2

_
4
C4 = 0 (C1,3)
-1

= -4C1 + 3

_
-1
C5 = 0 (C1,3)
1

= C1 - 3

= C1 - 5

47

Investigacin Operativa 2008/09


_ _
_
La tabla 3 seguir siendo ptima mientras C3, C4 y C5 0 (estamos maximizando).
_
C3 0 C1 - 5 0 C1 5
_
C1 0 -4C1 + 3 0 C1 3/4
_
C5 0 C1 - 3 0 C1 3

si C1 [3/4,3] la tabla 3 sigue siendo ptima, si


nos salimos del intervalo [3/4,3] la tabla ya
no es ptima

3/4
0

/4

Si, por ejemplo C1 = 1 la solucin de la tabla 3 (x1 = 1, x2 = 2) sigue valiendo,


_
1
pero cambia Zopt = CBb = (1,3)
=7
2
1.3 Cambio en Cj tanto de variables bsicas como no bsicas.
Hagamos, por ejemplo, C1=1, C2=4, C3=2
En la tabla 3 hay que cambiar
_
_
_
C1 = C2 = 0 (el Ci de las variables bsicas siempre es 0)
_
-1
C3 = 2 (1,4)
= -5 < 0
2
_
4
C4 = 0 (1,4)
=0
-1
_
-1
C5 = 0 (1,4)
= -3 < 0
1
La solucin de la tabla 3 sigue siendo ptima. Ahora Zopt = 9 y tendramos una
solucin ptima alternativa haciendo entrar a x4. Si alguno de los Ci fuese > 0 la tabla no
sera ptima y habra que seguir calculando tablas. _
En general, hay que recalcular la fila de los Cj. Si la tabla deja de ser ptima, habra
que continuar con el simplex.

2. Modificaciones en las constantes de la derecha de las restricciones.


Como, en cada tabla del simplex:
48

Investigacin Operativa 2008/09


Base = { xi1, xi2, , xim } B = [Pi1, Pi2, , Pim]
_

xB = b = B 1b

es el vector solucin

Supongamos que en el problema del ejemplo se puede realizar 1 hora ms de trabajo


(b1 crece una unidad).
b1
2
b1 = 1 b1 = 2
b=
=
3
b2
En la tabla ptima, B = (P1 P2) y
_
Luego b = B-1b =

-1

-1

-1

-1

B =

5
=

-1

As, la nueva solucin ptima es:


x1 = 5
x2 = 1
x3 = 0
Zopt = 13
Entonces, por unidad aumentada en la disponibilidad del recurso 1, el beneficio que se
obtiene es: 13-8 = 5 unidades.
Definicin- Se llama precio sombra, marginal o de equilibrio de la restriccin (recurso) i
al cambio que se produce en el valor de la funcin del objetivo por unidad aumentada en la
disponibilidad del recurso i.
Se prueba que los precios sombra de los recursos i = 1, , m son la solucin ptima
opt
yi del dual i = 1, , m
En nuestro caso:
(y1opt,y2opt)

=CBB

-1

-1

-1

= (2,3)

= (5,1)

Ahora bien, para que los precios sombra no den informacin errnea, debemos
calcular cul es el campo de variacin de los bi en el que la solucin sigue siendo ptima.
Lo calculamos, por ejemplo, para b1:
b1
b* =
3
Para que la tabla 3 siga siendo ptima, es preciso que B-1b* 0
4 -1
b1
4b1 3
4b1 3 0 b1 3/4
-1
B b* =
=
0
-b1 + 3 0 b1 3
-1
1
3
-b1 + 3
49

Investigacin Operativa 2008/09

Si b1 [3/4,3] la solucin seguir siendo ptima


x2 = -b1 + 3
x3 = 0
x1 = 4b1 3
Zopt = 2(4b1 3) + 3(-b1 + 3) = 5b1 + 3
Sea, por ejemplo b1 = 4, ahora B-1b =

13
-1

La tabla 3 queda:
_
base

x1

x2

x3

x4

x5

x1
x2
_

1
0

0
1

-1
2

4
-1

-1
1

Cj

-3

-5

-1

b
13
-1

Esta tabla no es factible primal, pero s factible dual aplicamos el Mtodo del
Simplex Dual:
x2 deja la base y entra x4
_
base

x1

x2

x3

x4

x5
b
9
0
1
0
Zopt = 18

x1
x4

3. Modificaciones en la matriz de coeficientes de las restricciones.


3.1Adicin de una nueva actividad (variable).
Supongamos que la compaa puede sacar a la venta un nuevo producto D, que
requiere 1 unidad de trabajo y 1 unidad de material, con beneficio/unidad = 3.
1
Esto equivale a aadir una variable x6 y una columna
en la tabla 1.
_
1
La tabla 3 seguir siendo ptima si es C6 0:
_
1
C6 = C6 P6 = 3 (5,1)
= -3
1
_
Luego la solucin de la tabla 3 sigue siendo ptima. Si C6 > 0 se aplicara el simples.
3.2 Variaciones en las condiciones de las variables existentes.
3.2.1 Cambios correspondientes a una variable no bsica.
50

Investigacin Operativa 2008/09

Se hace como en 3.1


3.2.2 Cambios correspondientes a variables bsicas.
Mejor resolver el problema de nuevo, porque al cambiar la matriz bsica B se
cambian todas las columnas de la tabla.
3.3 Adicin de nuevas restricciones.
Supongamos que se aade una restriccin referente a los servicios administrativos,
de tal modo que los productos A, B y C requieren 1, 2 y 1 hora de servicios
respectivamente, mientras las horas totales disponibles son 10.
x1 + 2x2 + x3 10
Si la solucin ptima de la tabla 3 satisface la restriccin, sigue siendo ptima:
11 + 22 + 10 10, cumple la restriccin
Si la restriccin fuese x1 + 2x2 + x3 4:
11 + 22 + 10 4
Aadimos la nueva restriccin a la tabla 3:
_
CB

base

2
3
0

x1

x2

x3

x4

x5

x6

x1
x2
x6
_

1
0
1

0
1
2

-1
2
1

4
-1
0

-1
1
0

0
0
1

Cj

-3

-5

-1

b
1
2
4

(3F 1F - 2(2F))
_
CB

base

x1

x2

x3

x4

x5

x6

x1
x2
x6

1
0
0

0
1
0

-1
2
-2

4
-1
-2

-1
1
-1

0
0
1

-3

-5

-1

b
1
2
-1

_
Cj
x1
x2
x5

2
1
1
51

Investigacin Operativa 2008/09


Zopt = 7
En la tabla 3, Zopt = 8 Zopt = -1
Esto siempre es cierto: al aadir una restriccin a un problema de programacin
lineal el nuevo valor de la funcin del objetivo es igual o peor que el anterior.

Observaciones.
Tiempo de resolucin de un p.p.l f(m3), siendo m el nmero de restricciones
A) Quitar restricciones inactivas o secundarias.
B) Resolver
C) Aadir y comprobar si las restricciones de A) son verificadas por la solucin ptima.

Programacin paramtrica.
1. Costes (Beneficios) paramtricos
Z = [C + C*] x
Ax = b
x0
C = (C1, C2, , Cn)

C = (C1*, C2*, , Cn*)
Primero se resuelve el problema para = 0. Sea B la base ptima:
_
_
_
Cj 0 (Maximizando)
Cj = Cj - CBPj
_
_
_
_
_
_
Cj() = (Cj + Cj*) (CB + CB*)Pj = (Cj - CBPj) + (Cj* - CB* Pj) = Cj + Cj*
Ejemplo:
Max Z = (2 + )x1 + (3 - )x2 + (1 + )x3
1
/3x1 + 1/3x2 + 1/3x3 1
1
/3x1 + 4/3x2 + 7/3x3 3
xi 0
Cj*
Cj

1
2

-1
3

1
1
52

0
0

0
0

Investigacin Operativa 2008/09


_
CB*

CB

base

1
-1

2
3

x1
x2

x1

x2

x3

x4

x5

1
0

0
1

-1
2

4
-1

-1
1

B
1
2

-3

-5

-1

Z = 8 = CBb

-5

-2

Z * = 1 = C B* b

_
Cj
_
Cj*

_
_
Por ejemplo, C3* = C3* - CB*P3 = 1 (1,-1)

-1
=4
2

Z() = Z + Z* = 8 -
_
C3() = -3 + 4 0 3/4
_
C4() = -5 -5 0 -1
_
C5() = -1 + 2 0 1/2
La solucin sigue siendo ptima si [-1, 1/2].
Si > /2 C5() > 0 ( entra x5 y sale x2)
1

_
base

x1

x2

x3

x4

x5

x1
x5
_

1
0

1
1

1
2

3
-1

0
1

b
3
2

Cj
_

-1

-6

Z=6

Cj*

base

x1

x2

x3

x4

x5

-1/4

-1/4

-2
0
-3
0
Z* = 3
_
_
_
La solucin es ptima si C2(), C3(), C4() 0 ocurre si 1/2 y Z = 6 + 3
_
Para < -1 C4()>0 ( sale x1 y entra x4)
_
x4

/4

53

b
/4

Investigacin Operativa 2008/09


x2
_

/4

Cj
_

/4

Cj*

/4

Z() = 27/4 - 9/4

/4

-17/4

-9/4

11

/4

Solucin ptima si C1(), C3(), C5() 0

-1

54

/4

/4

/4

Z = 27/4
Z* = -9/4

Investigacin Operativa 2008/09

2. Variacin paramtrica del vector de recursos.


Z = Cx
Ax = b + b*
x0

b=

b1

bm

b* =

Primero resolvemos para = 0. Sea B la base ptima:


_
xB = b = B-1b
_
_
_
-1
-1
-1
Para b + b*, xB = b = B (b + b*) = B b + B b* = b + b*
_
_
Si b + b* 0 la base B seguir siendo ptima.
Ejemplo:
1
Hagamos b* =
-1

b + b* =

Resolver para = 0:

55

1+
3-

b1 *

bm*

Investigacin Operativa 2008/09

base

x1

x2

x3

x4

_
b*
5
-2
Z * = 4 = CBb *

x5

x1
x2
_

1
0

0
1

-1
2

4
-1

-1
1

b
1
2

Cj

-3

-5

-1

Z = 8 = CBb

_
b = B-1b =
_
b* = B-1b =

-1

-1

-1

-1

-1

=
-2

x1 = 1 + 5 0 - 1/5
x2 = 2 - 2
01
Zopt = 8 + 4
[- 1/5,1]
Si > 1 x2 < 0 y la solucin actual no es factible, pero s factible dual. Usando el Mtodo
del Simplex Dual obtenemos:
_

3
-1

b
9
-2

b*
-3
2

-6

Z = 18

Z* = -6

CB

base

x1

x2

x3

x4

x5

2
0

x1
x4
_

1
0

4
-1

7
-2

0
1

Cj

-5

-13

x1 = 9 - 3
0 si 3
x2 = -2 + 2 0 si 1
[1,3]
Z = 18 -6
Si > 3 x1 < 0 y la solucin actual no factible. Como en la fila de x1 no hay coeficientes
negativos, el problema es NO FACTIBLE.
Si < - 1/5 x1 < 0 ( por el Mtodo del Simplex Dual sale x1 y entra x5)
base
x5

x1
-1

x2
0

x3

x4

-4
56

b
-1

b*
-5

x5
1

Investigacin Operativa 2008/09


x2
_

Cj
x2 = 3 + 3

-1
0

-2

-9

Z=9

Z* = 9

x5 = -1 - 5

si -1 < - 1/5

Z = 9 + 9
Si < -1 x2 < 0 problema NO FACTIBLE

57

Investigacin Operativa 2008/09

Tema 7. Programacin lineal entera.


Un p.p.l. entera es aquel en el que todas las variables de decisin (programacin
entera pura) o algunas de ellas (programacin entera mixta) toman exclusivamente valores
enteros.
Una forma de tratar este problema es el redondeo (quedarse con la parte entera por
arriba abajo teniendo cuidado de que la solucin que as se obtenga sea factible)
Algoritmo de ramificacin y acotacin (Branco and Bound Algorithm).
Maximizar Z = 3x1+2x2

Sujeto a

x1 2
x2 2
x1+ x2 3.5
x1,x2 0 y enteros.

Soluciones enteras

58

Investigacin Operativa 2008/09

Z=3x1+2x2

Z(0,0)=0
Z(0,1)=2
Z(0,2)=4
Z(1,0)=3
Z(1,1)=5
Z(1,2)=7
Z(2,0)=6
Z(2,1)=8 ptimo

Algoritmo.
Primero resolvemos el problema olvidndonos de la restriccin de variables
enteras (PL-1)

59

Investigacin Operativa 2008/09

Regin factible ABCDE


ptimo x1 =2, x2=1.5 ZOptimo=9
Sabemos que aadir las restricciones de que las variables sean enteras no puede mejorar la
funcin del objetivo. Tenemos as que Z0=9 es una cota superior para el valor ptimo del
problema inicial.
Creamos ahora 2 nuevos problemas

x2=1.5

x21
x22

60

Investigacin Operativa 2008/09

PL-2
Maximizar Z = 3x1+2x2

PL-3
Maximizar Z = 3x1+2x2

x1 2
x2 2
x1+ x2 3.5
x2 1
x1,x2 0

x1 2
x2 2
x1+ x2 3.5
x2 2
x1,x2 0

PL-2

61

Investigacin Operativa 2008/09


PL-3
Regin factible = segmento AB

La solucin ptima de PL-2 es


x1 =2, x2=1 ZOptimo=8

As tenemos una s.f. entera de PL-1 (Fijarse que cada solucin


entera factible de PL-1 est contenida en PL-2 en PL-3). Aunque PL-2
pueda contener otras soluciones enteras, sus valores de la funcin
objetivo no pueden ser ms grandes que 8, Z=8 es una cota inferior
del valor mximo de Z en el PL-1.
Luego 8 Zoptimo9
En PL-3 la solucin ptima es
x1 =1.5, x2=2 ZOptimo=8.5

x1 no es factible (no es entero) para PL-1 pero Z=8.5>8, hay que construir 2
nuevos problemas

PL-4
PL-3 + restriccin x1 1

PL-5
PL-3 + restriccin x1 2

62

Investigacin Operativa 2008/09

PL-5 No tiene regin factible.


PL-4

Solucin ptima entera:


x1 =1, x2=2 ZOptimo=7

pero es peor que 8.

Por tanto la solucin ptima es la de PL-2 x1 =2, x2=1 ZOptimo=8


El rbol obtenido es el siguiente:

63

Investigacin Operativa 2008/09

DETALLES GENERALES
MIP (Mixed Integer Program)
Maximizar Z = CX
Sujeto a
AX = b
X 0
Xj entera para j perteneciente a I = {ndices de las variables enteras}
Se resuelve el MIP sin condiciones enteras. A este problema le llamamos PL-1 con
solucin ptima Z1. Supongamos que la solucin ptima toma valores no enteros en alguna
variable entera, y por lo tanto no es solucin del MIP. S es, en cambio, una cota superior
del valor ptimo de Z en el MIP.
Se elige una variable entera Xj que dio no entera. Si Xj = j, se construyen 2 nuevos
problemas:

64

Investigacin Operativa 2008/09

PL-2:
Maximizar Z = CX
AX = b
Xj jX0

PL3:
Maximizar Z = CX
AX = b
Xj j+
X0

Para elegir la variable Xj en la que hacer la bifurcacin hay las siguientes reglas:
1). A ojo o al azar.
2). Por prioridades, segn...
La variable representa una decisin importante en el problema.
Su coste (o beneficio) es ms grande que en las dems variables.
Decisin segn resolucin anterior del problema.
Como PL-2 y PL-3 son PL-1 con una nueva restriccin aadida, podemos usar el MSD
(Mtodo del Simplex Dual) para encontrar sus soluciones ptimas.
Supongamos que las soluciones ptimas de PL-2 y de PL-3 siguen siendo fraccionarias. El
siguiente paso consiste en seleccionar PL-2 o PL-3 para hacer una nueva ramificacin. Para
ello:
a). Se elige aquel problema cuyo valor ptimo sea el mejor.
b). Se selecciona el problema resuelto ms recientemente (Last-in-First-out rule, LIFO)
Continuamos as la sucesin de ramificaciones y resolucin de p.p.l hasta resolver uno que
tenga solucin entera. El valor de la funcin objetivo en este caso ser una cota inferior del
valor ptimo del MIP original. En este momento podemos dejar de considerar todos
aquellos nodos cuyos valores de Z no sean mejores que la cota inferior. Se dice que esos
nodos han sido saturados.
DEFINICIN: un nodo intermedio est explcita o implcitamente saturado siempre que
se satisfaga una de las siguientes condiciones:
1). La solucin ptima del p.p.l correspondiente es entera.
2). El p.p.l correspondiente es no factible.
3). El valor ptimo de Z para el p.p.l correspondiente no es mejor que la cota inferior
actual.

65

Investigacin Operativa 2008/09

Del rbol mostrado en la figura superior:


El Nodo 4 est saturado. Cualquier solucin del problema MIP no puede ser mejor
que esta.
El Nodo 5 est saturado por ser no factible.
Supongamos que Z6 < Z4, el Nodo 6 est saturado implcitamente.
En el caso de que Z7 > Z4, habra que ramificar a partir del Nodo7.
Notas
- La eficacia del mtodo radica en la rapidez con que se saturen los nodos.
- Es importante mantener el nmero de variables enteras lo menor posible.
- Proporcionar cotas ajustadas superiores e inferiores de Zoptimo.
- Al contrario que un p.p.l general, la adicin de nuevas restricciones a un MIP
generalmente reducir el tiempo de computacin, especialmente cuando las nuevas
restricciones contengan variables enteras.
- A veces llega con que:
[(CotaSuperior Z - CotaInferior Z) / CotaSuperior Z] < [% pequeo del ptimo
continuo]

66

Investigacin Operativa 2008/09

Tema 8: Problemas Especiales de Programacin Lineal.

Problemas de Transporte.
Consideremos:
M almacenes con existencias a1, a2, , aM
N mercados con demandas b1, b2, , bN
Sea Cij coste por unidad enviada del almacn i al mercado j
i = 1M
j = 1N
Se trata de calcular la cantidad a enviar desde cada almacn hasta cada mercado
minimizando el coste total del transporte.
ALMACN

MERCADO

Sea xij = n de unidades o cantidad enviada desde el almacn i al mercado j


M N

Funcin objetivo: Min Z = Cij xij


i=1 j=1

Sujeto a:
Las restricciones vienen dadas por las capacidades de los almacenes y las exigencias de los
mercados.
1

xi1

xij

xi1 + xi2 + + xij + + xiN ai


cantidad total
enviada desde el
almacn i-simo

i=1,2,,M

existencia
en el almacn
i-simo

67

xiN

Investigacin Operativa 2008/09

x1j

xij

xMj

j=1,2,,N

x1j + x2j + + xij + + xMj bj


cantidad total
que recibe el
mercado j

cantidad
demandada por
el mercado j

M N

Queda Min Z = Cij xij


i=1 j=1

sujeto a:

xij ai
j=1
M

xij bj
i=1

i=1M
j=1N

xij 0 i,j
M+N restricciones

MxN variables

Es evidente que el problema es factible (tiene solucin) si:


M

i=1

j=1

ai bj

almacenado demandado
M

i=1

j=1

Si ai = bj se tiene un problema de transporte estndar:


M N

Min Z = Cij xij


i=1 j=1

sujeto a:

xij = ai

j=1
M

xij = bj

i=1

i=1M
j=1N

xij 0 i,j

68

Investigacin Operativa 2008/09

Desarrollaremos tcnicas de resolucin para problemas de este tipo, por ello, si no se


cumple que:
ai = bj
por ejemplo si:

i=1

j=1

ai > bj

(I)

(La cantidad enviada es mayor que la cantidad demandada. Habr una cierta cantidad que no
se enviar. Se crea entonces un mercado ficticio, llamado N+1, con demanda precisamente
igual a esa cantidad).
a1

a2

aM

b1

b2

bN

bN+1

= ai - bj con Ci,N+1 = 0 i=1N


i=1

j=1

mercado
ficticio

El problema se reescribe:

exceso de mercanca

xi,N+1 i=1,,M
lo que sobra en el almacn i

M N+1

Min Z = Cij xij


i=1 j=1

sujeto a:

N+1

xij = ai

j=1
M

xij = bj

i=1

i=1M
j=1N+1

xij 0 i,j
Si:

i=1

j=1

ai < bj

( II )

69

Investigacin Operativa 2008/09


(La cantidad enviada es menor que la demandada. No se cumplirn todas las demandas y
habr una cierta prdida en algn mercado. Se crea entonces un almacn ficticio, llamado
M+1, con la cantidad que falta).

70

Investigacin Operativa 2008/09

almacn
ficticio
N

a1

a2

aM

aM+1

= bj - ai con CM+1,j = 0 y xM+1,j es la


j=1

b1

b2

bN

i=1

la prdida en el mercado j

El problema se reescribe:
M+1 N

Min Z = Cij xij


i=1 j=1

sujeto a:

xij = ai

i=1M+1

j=1

M+1

xij = bj

j=1N

i=1

xij 0 i,j
El problema de Transporte estndar puede expresarse en forma de tabla con los
datos (ai, bj, Cij).
Mercados
Almacene
s
1

2
x12

x11
C11

3
x13

C21

Existencias

x1N

C12
x22

x21

C13
x23

a1
C1N

x12N

C22

C23

a2
C2N

xi1

xi2
Ci1

xiN

xi1
Ci2

Ci3

ai
CiN

xM1

xM2
CM1

xM3
CM2

xMN
CM3

71

aM
CMN

Investigacin Operativa 2008/09


Demandas

b1

b2

b3

bN

Sumas xij por filas = existencias RESTRICCIONES DE ALMACENAJE


Sumas xij por columnas = demandas RESTRICCIONES DE DEMANDAS

72

Investigacin Operativa 2008/09

Obtencin de una solucin factible bsica inicial:


El problema de transporte tiene M+N restricciones una solucin factible bsica
necesita, en principio, M+N variables bsicas.
M N

i=1 j=1

i=1

Ahora bien, dado que xij = ai


M

(sumamos todas las ecuaciones xij = ai)


j=1

j=1N

xij = bj
i=1

N M

j=1 i=1

j=1

i=1

xij = bj = ai
Sistema de ecuaciones / suma de las M primeras filas = suma de las N restantes
1 ecuacin es linealmente dependiente de las dems El problema de transporte
estndar tiene M+N-1 restricciones linealmente independientes Una solucin factible
bsica necesita M+N-1 variables bsicas.
Hay diferentes mtodos para resolver la solucin factible bsica inicial, nosotros slo
vemos 2.

(1)

Obtencin de una
solucin
factible bsica inicial

(2)

Comprobar si es
ptima

NO

(3)

SI

Se mejora
obteniendo
otra solucin
factible
73

FIN

Investigacin Operativa 2008/09

bsica
(1) Hay varios mtodos: esquina noroeste, coste mnimo, de Vogel, de aproximacin de
Russell
(2) Mtodo U-V
(3) Algoritmo de Steeping-Stone
Mtodo de la esquina noroeste.
Consiste en elegir como variables bsicas (>0) aquellas que ocupen la esquina
noroeste en la tabla de transporte estndar.
M1
A1

A2

10

M2

M3

M4

capacidades

= a1
+
= a2
+

A3

demandas

15

b1

b2

b3

= a3

b4

Elegimos x11 = min{3,4} = 3


A1
A2
A3

M1
3

M2
0

M3
0

M4
0

4-3=1

M2
0

M3
0

M4
0

3-3=0
7
5

Elegimos x21 = min{a2, b1} = min{7,1} = 1


b1 es el b1 despus de restarle lo que enviamos
A1
A2
A3

M1
3
1
0
1-1=0

Elegimos x22 = min{a2, b2} = min{6,3} = 3

74

0
7-1=6
5

Investigacin Operativa 2008/09

A1
A2
A3

M1
3
1
0
0

M2
0
3
0
0

M3
0

M4
0

M3
0
3

M4
0
0

4-3=1

M3
0
3
1
0

M4
0
0
4
4

0
6-3=3
5

Elegimos x23 = min{b2, a3} = min{3,4} = 3


A1
A2
A3

M1
3
1
0
0

M2
0
3
0
0

0
0
5

Elegimos x33 = min{a3, b3} = min{1,5} = 1


A1
A2
A3

M1
3
1
0
0

M2
0
3
0
0

0
0
5-1=4

M+N-1 = 4+3-1 = 6 variables bsicas > 0.


Z = 32 + 110 + 38 + 35 + 16 + 48 = 93

Mtodo del coste mnimo.


Consiste en ir eligiendo como variables bsicas (>0) aquellas que tengan menor
coste.
A1
A2
A3

M1
2
10
7
4

Menor coste C14 = 1

M2
2
8
6
3

M3
2
5
6
4

M4
1
4
8
4

M3

M4

x14 = min{3,4} = 3
M1

M2
75

3
7
5

Investigacin Operativa 2008/09


A1
A2
A3

Menor coste de celdas sin ocupar C24 = 4

M1
0

A1
A2
A3

A1
A2
A3

A1
A2
A3

M1
0

M2
0

M3
0
4
0

M1
0

M2
0
0
3

M1
0
2
2
4

A1
A2
A3

M3
0

0
7
5

x24 = min{7,1} = 1

M2
0

0
M2
0
0
3
0

M4
3
1
0
1

0
7
5
0

M4
3
1
0
0

M3
0
4
0
0

M4
3
1
0
0

M3
0
4
0
0

M4
3
1
0
0

0
6

2
5

0
2
5

0
2
2

Z = 79

Mtodo de Steeping-Stone (Mejora de la solucin factible bsica inicial).


Primero es preciso saber si la solucin factible bsica inicial es ptima o no. En el
ejemplo anterior:
M1
0
A1

M2
0

M3
0

M4
3
3

76

Investigacin Operativa 2008/09


2

1
7

A2
10

0
5

A3
7
4

6
3

6
4

8
4

Actualmente x11 = 0, si hacemos x11 = 1


M1
+1
-1

A1
A2

M4
-1
+1

_
C11 = C11(cambio en x11) + C14(cambio en x14) + C21(cambio en x21) + C24(cambio en
x24) = 2(1) + 1(-1) + 10(-1) + 4(+1) = -5
beneficio
relativo
de C1

Se pueden calcular todos los beneficios relativos de las variables no bsicas


simultneamente, mediante el mtodo U-V o MODI (Modified Distribution Method).
Mtodo U-V.
Se calculan nmeros:
Ui
i=1M
j=1N
tales que: Cij = Ui + Vj para cada variable bsica
Vj
_
Se tendr que Cij = Cij - (Ui + Vj) para cada variable no bsica.
M2

M1

M3

M4

A1

A1

A2
10

M4

U1 + V4 = 1
U2 + V1 = 10
U2 + V3 = 5
U2 + V4 = 4
U3 + V1 = 7
U3 + V2 = 6

A3
7

_
C11 - (U1 + V1) = 2 (0+7) = -5
_
C12 = 2 - (0 + 6) = -4

Hacemos
U1 = 0 V4 = 1 U2 = 3 V1 =7 y V3 = 2
U3 = 0 V2 = 6

77

Investigacin Operativa 2008/09


_
C13 = 2 (0 + 2) = 0
_
C22 = 8 (3 + 6) = -1
_
C33 = 6 (0 + 2) = 4
_
C34 = 8 (0 + 1) = 7

V1 = 7

V2 = 6

V3 = 2

V4 = 1

U1 = 0

U2 = 3
10

U3 = 0

Las casillas sin marca sern las variables no bsicas.

2-7-0 = -5

2-6-0 = -4

V1 = 7

V2 = 6

-5

V3 = 2

-4

U1 = 0

2
0

2
-1

U2 = 3

0
2

10
0

V4 = 1

8
0

1
0

5
4

4
7

U3 = 0
7

Menor beneficio relativo negativo -5 x11 entra en la base:

3-

3
78

Investigacin Operativa 2008/09


2-
2
4

3
3

1+

Mximo valor para = 2, porque


sino en x21 pasara a ser negativo
y no puede ser.

7
5

(Steeping-Stone)
Nueva solucin factible bsica:
2
0
2

1
3

Z = 69

Miramos si es ptima (mtodo U-V)


V1 = 2

U1 = 0

V2 = 1

V3 = 2

0
2

2
5

4
10

U2 = 3

U3 = 5

V4 = 1

-1

4
2

Solucin no ptima; entra x33 en la base:


2+
2-

4-
+

3
1

1-
3+

Mximo valor posible para = 1

3
1

Z = 68

y se comprueba que es la ptima.


79

Investigacin Operativa 2008/09

Problemas de Asignacin.
Formulacin general de un problema de asignacin estndar:
Se tienen N mquinas y N trabajos diferentes. Cada mquina puede realizar un nico
trabajo y cada trabajo slo puede efectuarlo una mquina. Se supone que el coste de
realizacin de cada trabajo por cada mquina vara. El problema consiste en resolver qu
trabajo realiza cada mquina de manera que el coste total de realizacin de los N trabajos
sea mnimo.
M1

M2

MN

N mquinas

T1

T2

TN

N trabajos

Mij la mquina i realiza el trabajo j con coste Cij, i = 1N, j=1,N


Si la mquina i no puede realizar el trabajo j se escribir Cij = M con M
Una manera intuitiva de resolver este problema es enumerar todas las posibilidades y
calcular Z en ellas. Cuntas asignaciones posibles hay?
Ej//
Para 2 mquinas y 2 trabajos:
M1
M2

1 asignacin: M1 T1
M2 T1
Coste = C11 + C22

T2
C12
C22

T1
C11
C21

2 asignacin: M1 T2
M2 T1
Coste = C21 + C12

Formulamos el problema de asignacin como un problema de programacin lineal.


Sea xij =

si la mquina i realiza el trabajo j

no

Dado que cada mquina realiza un nico trabajo:


N

xij = 1
j=1

i = 1N

suma de trabajos que realiza la mquina i


Dado que cada trabajo se le asigna a una nica mquina:
N

xij = 1

j = 1N

80

Investigacin Operativa 2008/09


i=1
P

cantidad de mquinas que realizan el trabajo j


Funcin objetivo:
N N
B

Min

Cij xij
B

i=1 j=1
P

T1
C11
C21
B

M1
M2

MN
B

CN1
1

T2
C12
C22

CN2
1
B

TN
C1N
C2N
B

CNN
1
B

1
1

Tabla de costes
de asignacin
estndar

1
B

En general en un problema de transporte necesitaramos 2N-1 variables bsicas > 0,


cuando en los problemas de asignacin slo habr N variables > 0. No usaremos ni
transporte ni simplex porque trabajaramos con soluciones degeneradas.

Formulacin general de un problema de asignacin no estndar:


U

a) Hay ms mquinas que trabajos creamos trabajos ficticios con coste de


realizacin cero.
b) Hay ms trabajos que mquinas creamos mquinas ficticias con coste de
realizacin trabajo/mquina ficticia = 0.

Mtodo o Algoritmo Hngaro (Knig).


El principio bsico radica en que la asignacin ptima no cambia si se suma o se
resta una constante a una fila o columna de la tabla de costes de asignacin estndar.
El mtodo consiste en restar una cantidad a las filas y/o columnas de manera que se
encuentre una asignacin ptima a simple vista. Iniciamos el algoritmo examinando cada
fila (columna) de la matriz de costes para identificar el elemento ms pequeo. Esa cantidad
se le resta a todos los elementos de dicha fila (columna). Esto origina una tabla que contiene
al menos un cero en cada fila (columna).
Ahora se intenta realizar una asignacin factible usando las celdas con coste cero. Si
es posible, se tendr una asignacin ptima.
Ejemplo:
U

T1
10
B

M1
B

T2
9
B

T3
8
B

81

T4
7
B

mnimo = 7

Investigacin Operativa 2008/09


M2
M3
M4
B

3
2
4

4
1
3

5
1
5

6
2
6

mnimo = 3
mnimo = 1
mnimo = 3

A cada xij le restamos el mnimo de su fila:


B

T2
2
1
0
0

T1
3
0
1
1
B

M1
M2
M3
M4
B

T3
1
2
0
2

T4
0
3
1
3

Utilizando los ceros intentamos realizar una asignacin factible:


M1
M2
M3

M4
B

T4
T1
T2
T3
T2
B

M3 T3
M4 T2

y sta es la asignacin ptima.


Ejemplo:
4 mquinas, 4 trabajos
U

M1
M2
M3
M4
B

T2
9
8
4
3

T1
10
5
5
2
B

T3
7
7
6
4
B

T4
8
7
5
5
B

mnimo = 7
mnimo = 5
mnimo = 4
mnimo = 2

Cogemos el mnimo por filas y se lo restamos:


T1
3
0
1
0

T2
2
3
0
1

M1
M2
M3
M4

T3
0
2
2
2

T4
1
2
1
3

M2 T1
M4 T1
B

Como dos mquinas estaran realizando el mismo trabajo no sera una asignacin
ptima. Cogemos el mnimo por columnas:
M1 T3
T1
T2
T3
T4
T4
M1
3
2
0
0
M2 T1
M2
0
3
2
1
M3 T2
M3
1
0
2
0
T4
M4
0
1
2
2
M4 T1
B

82

Investigacin Operativa 2008/09

Lo que se hace ahora es trazar lneas de modo que se cubran todas las celdas con
ceros. El teorema de Knig establece que el nmero mnimo de lneas necesario es igual al
nmero mximo de trabajos que pueden asignarse usando dichas celdas.
T1
3
0
1
0

T2
2
3
0
1

M1
M2
M3
M4
B

T3
0
2
2
2

T4
0
1
0
2

Ahora se selecciona el elemento ms pequeo no cubierto por las lneas, que en este
ejemplo es el 1. Se resta este nmero de todos los elementos no cubiertos, y se le suma a los
cubiertos que sean interseccin de dos lneas.
Es equivalente a
restar 1 de la 2 y 4 fila y
T1
T2
T3
T4
sumar 1 a la 1 columna,
M1
4
2
0
0
por lo que la asignacin
M2
0
2
1
0
ptima no vara.
M3
2
0
2
0
M4
0
0
1
1
B

M1 T3
T4
B

M3 T2
T4
B

M4 T1
T2
B

M2 T1
T4

Las asignaciones seran:

M1
M2
M3
M4
B

T3
T1
T4
T2

M1
M2
M3
M4

T3
T4
T2
T1
B

Zopt = 20
B

83

Investigacin Operativa 2008/09

84

You might also like