Vous êtes sur la page 1sur 124

Tema 2:

Optimizacin lineal

Sumario
El

modelo de programacin lineal


Formulacin de modelos
Mtodo grfico
Mtodo del simplex

Casos anmalos
Mtodo de las dos fases

Dualidad

El modelo de
programacin lineal

Introduccin

Definicin: Se dice que una funcin f: RnR es lineal sii


para algn conjunto de constantes {c1,c2,...,cn} se tiene
que:
f x1 , x 2 ,..., x n c1 x1 c2 x 2 ... cn x n
Ejemplos: f(x,y)=x2y es lineal, pero f(x,y)=x2+2y no es
lineal.
Definicin: Sea f: RnR una funcin lineal, y bR una
constante. Entonces se dice que las desigualdades
f(x1,...,xn)b, f(x1,...,xn)b, son desigualdades lineales, y
que la igualdad f(x1,...,xn)=b es una igualdad lineal. En
general nos referiremos a las tres con el nombre de
restricciones lineales

Concepto de problema de
programacin lineal

Definicin: Un problema de programacin lineal es


un problema de optimizacin en el que:

Se debe maximizar (o minimizar) una funcin lineal de las


variables de decisin que se llama funcin objetivo
Los valores de las variables deben satisfacer un conjunto
de restricciones lineales

Frecuentemente nos encontraremos que en el


problema de programacin lineal aparecen tambin
restricciones de signo para las variables, del tipo
xi0. En realidad estas restricciones son un tipo de
restricciones lineales.

Forma general de un problema


de programacin lineal

La forma ms general de un problema de


programacin lineal ser:
Maximizar (o minimizar) c1 x1 ... cn x n
Sujeto a :
a11 x1 ... a1n x n ~ b1
...
am1 x1 ... amn xn ~ bm
x1 ,..., xn 0 (que pueden aparecer o no)

donde el smbolo ~ puede denotar a , o =.

Forma matricial

A los coeficientes de la funcin objetivo (ci) se les llama


costes. A los trminos independientes de las
restricciones (bi), recursos. A los elementos de la matriz
de coeficientes que define las restricciones (aij),
coeficientes tcnicos. Para simplificar la notacin, si
llamamos c al vector de costes, b al vector de recursos,
y A a la matriz de coeficientes tcnicos, podemos
escribir el problema en la llamada forma
T matricial:
Maximizar (o minimizar) c x

Sujeto a :
Ax ~ b
x 0 (puede aparecer o no)

Regin factible

Mientras no se indique lo contrario, consideraremos que


las restricciones del tipo xi0 se incluyen (si aparecen en
el problema) dentro del conjunto de restricciones Ax ~ b,
con lo cual el problema quedara:
Maximizar (o minimizar) cT x

Sujeto a Ax ~ b
Definicin: Dado un problema de programacin lineal,
llamaremos regin factible del problema y la
denotaremos por S al conjunto de puntos que cumplen
todas las restricciones del problema, es decir:
S {x R n | Ax ~ b}

Soluciones ptimas

Definicin: Dado un problema de programacin lineal,


diremos que un punto x0S es una solucin ptima sii
se cumple que f(x0)f(x) xS (para el caso de
minimizar) o bien f(x0)f(x) xS (para el caso de
maximizar). En tal caso, a f(x0) se le llamar valor
ptimo de la funcin objetivo.
Si existe una sola solucin ptima, diremos que el
problema tiene solucin nica. Si no existe solucin
ptima, pero S, diremos que el problema tiene
solucin ilimitada. Si S=, diremos que el problema no
tiene solucin.

Formulacin de
modelos

Introduccin
Cuando

se desea resolver un problema del


mundo real, se formula en primer lugar un
modelo
Un modelo es una simplificacin de la
realidad que se intenta que sea lo
suficientemente exacta como para poder
extraer de l conclusiones tiles
En particular nos interesan los modelos
cuantitativos, en los que la realidad es
modelada mediante nmeros

Modelos cuantitativos

En los modelos cuantitativos para problemas de


optimizacin intervienen:

Variables de decisin, cuyos valores numricos


finales nos proporcionan la solucin
La funcin objetivo, que es una cantidad que se
desea maximizar (beneficio, rendimiento, etc.) o
minimizar (coste, tiempo,...). En el caso de minimizar
costes, hay que tener en cuenta que los costos fijos
no se incluyen, ya que no dependen de la decisin
que se tome
Un conjunto de restricciones, las cuales definen qu
soluciones son posibles (factibles)

Gua para la formulacin de


modelos

Seguiremos estos pasos:

Expresar cada restriccin verbalmente, poniendo especial


cuidado en distinguir entre requerimientos (), limitaciones
() o exigencias de igualdad (=).
Expresar el objetivo verbalmente
Identificar verbalmente las variables de decisin
Expresar las restricciones mediante smbolos, es decir, en
trminos de las variables de decisin
Expresar la funcin objetivo simblicamente
Comprobar la coherencia de las unidades en las
restricciones y la funcin objetivo

Ejemplo
Ejemplo:

Una empresa dedicada a la


fabricacin de juguetes de madera produce
dos tipos de juguetes: coches y trenes

Los coches se venden a 27 y usan 10 de


materiales. Por cada coche hay un coste de
mano de obra de 14
Los trenes se venden a 21 , usan 9 de
material y el coste de mano de obra es 10

Ejemplo

La produccin de ambos juguetes necesita dos


tipos de trabajo: carpintera y acabado

Coche: 2 horas acabado, 1 hora carpintera


Tren: 1 hora acabado, 1 hora carpintera

La empresa dispone de un mximo de 80 horas


semanales de carpintera y 100 horas semanales de
acabado.
La demanda de trenes es ilimitada, pero la de
coches est limitada a 40 unidades a la semana
La empresa desea maximizar el beneficio

Ejemplo

Solucin:
Variables de decisin (deben describir las
decisiones que se van a tomar):

xC=n de coches producidos cada semana

xT=n de trenes producidos cada semana

Funcin objetivo:

Ganancias semanales: 27xC+21xT

Costes semanales:
Materiales:
Mano

10xC+9xT

de obra: 14xC+10xT

Ejemplo

Funcin objetivo (hay que maximizarla):


f xC , xT 27 xC 21xT 10 xC 9 xT 14 xC 10 xT
f xC , xT 3xC 2 xT

Restricciones:

Cada semana no se pueden usar ms de 100 horas de


acabado: 2xC+xT100

Cada semana no se pueden usar ms de 80 horas de


carpintera: xC+xT80

La demanda de coches est limitada: xC40

La produccin no puede ser negativa: xC0, xT0

Ejemplo
Coherencia

de unidades:

Las variables de decisin xc, xT estn en


horas/semana
La funcin objetivo est en /semana
Las restricciones estn expresadas en horas
Se observa que estamos usando coherentemente
las unidades

Mtodo grfico

Introduccin

Un primer intento de resolucin de los problemas de


programacin lineal es el mtodo grfico. Su inters
es limitado, ya que con l slo podemos resolver
problemas de dos variables (a lo sumo tres)
Definicin: Sea una funcin f: RnR. Llamamos
contorno k-simo de f y denotamos Ck al conjunto
de puntos tales que f(x)=k, donde kR
Para el caso de una funcin lineal de dos variables,
los contornos que se generan variando k forman un
haz de rectas paralelas

Algoritmo

El mtodo grfico consta de los siguientes pasos:

Dibujar la regin factible, S


Dibujar un contorno de la funcin objetivo
Determinar la direccin de crecimiento de los contornos

Una vez determinada la direccin de crecimiento de


los contornos, la solucin estar en el ltimo punto
de la regin factible que toquen los contornos antes
de abandonarla, siguiendo la direccin y sentido de
crecimiento o decrecimiento segn si nuestro
objetivo es maximizar o minimizar, respectivamente

Determinacin del crecimiento


Para

determinar la direccin de crecimiento


de los contornos, lo podemos hacer de dos
formas:

Dibujando dos contornos


Dibujando el vector gradiente, que como
sabemos marca siempre la direccin y sentido de
crecimiento de la funcin:
f f
grad f
,
x y

Ejemplo
Vamos

a resolver este problema:


Maximizar f(x,y)=x + 6y sujeto a:
2 x+ y 6
-x+ y

x, y 0
Si dibujamos la regin factible S, el contorno
0 y la direccin de crecimiento de la funcin
objetivo obtenemos la siguiente grfica

Ejemplo
y
5
4
3
(2,2)

2
grad f
1

C0
0

5 x

Ejemplo

En la grfica podemos ver que la funcin objetivo


aumenta su valor hacia arriba. La solucin del
problema de minimizar estar en el primer punto de
S que toquen los contornos al aumentar el valor (en
este caso, el origen de coordenadas), mientras que
la solucin del problema de maximizar estar en el
ltimo punto que toquen, en este caso el (2,2).
Por tanto, la solucin ptima de este problema es el
punto (2,2) y el valor ptimo de la funcin objetivo
es f(2,2)=14. En este caso la solucin ptima es
nica y adems S tiene rea finita (est acotado),
pero hay otros casos, como se ve a continuacin

Solucin ilimitada, S no
acotado

Solucin nica, S no acotado

Infinitas soluciones, S no
acotado

Infinitas soluciones, S
acotado

Sin solucin (S=)

Ejemplo
Problema:

Maximizar x1 + 2x2 sujeto a:


-1/2 x1 + x2
x1

+ x2 2

x1, x2 0

Representacin grfica
x2
5
4
3
2
1

E
C

A
0
0

D
2

x1

Puntos extremos
Punto

x1

x2

S1

S2

0.0

0.0

1.0

2.0

0.0

inf

inf

0.0

-inf

inf

0.0

1.0

0.0

1.0

2.0

2.0

0.0

2.0

0.0

2.0

0.0

2.0

-1.0

0.0

4.0

0.7

1.3

0.0

0.0

3.3

Ejemplo
Problema:

Maximizar x1 + 6x2 sujeto a:


-2x1 + x2 4
-x1 + x2 1
2x1 + x2 6
x1, x2 0

Representacin grfica
x2
10
9
8
7
G
6
I
5
4 C
3
J
2E
1
A
F
0
x1
0 1 2 3 4 5 6 7 8 9 10

Puntos extremos
Punto

x1

x2

S1

S2

S3

0.0

0.0

4.0

1.0

6.0

0.0

inf

inf

0.0

-inf

-inf

inf

0.0

4.0

0.0

-3.0

2.0

24.0

inf

inf

inf

0.0

-inf

inf

0.0

1.0

3.0

0.0

5.0

6.0

3.0

0.0

10.0

4.0

0.0

3.0

0.0

6.0

-2.0

-5.0

0.0

36.0

-3.0

-2.0

0.0

0.0

14.0

-15.0

0.5

5.0

0.0

-3.5

0.0

30.5

1.7

2.7

4.7

0.0

0.0

17.7

Ejemplo
Problema:

Maximizar 5x1 + 4x2 sujeto a:


3x1 + 3x2 10
12x1 + 6x2 24
x1, x2 0

Representacin grfica
x2
5
4

E
C

2
1
A
0
0

D
2

B
3

x1

Puntos extremos
Punto

x1

x2

S1

S2

0.0

0.0

10.0

24.0

0.0

3.3

0.0

0.0

-16.0

16.7

0.0

3.3

0.0

4.0

13.3

2.0

0.0

4.0

0.0

10.0

0.0

4.0

-2.0

0.0

16.0

0.7

2.7

0.0

0.0

14.0

Ejemplo
Problema:

Maximizar 20x1 + 24x2 sujeto a:


3x1 + 6x2 60
4x1 + 2x2 32
x1

+ 2x2 16

x1, x2 0

Representacin grfica
x2
20
18
E
16
14
12
C
10
G
H
8
J
6
4
2
A
D
F
B
0
x1
0 2 4 6 8 10 12 14 16 18 20

Puntos extremos
Punto

x1

x2

S1

S2

S3

0.0

0.0

60.0

32.0

16.0

0.0

20.0

0.0

0.0

-48.0

-4.0

400.0

0.0

10.0

0.0

12.0

-4.0

240.0

8.0

0.0

36.0

0.0

8.0

160.0

0.0

16.0

-36.0

0.0

-16.0

384.0

16.0

0.0

12.0

-32.0

0.0

320.0

0.0

8.0

12.0

16.0

0.0

192.0

4.0

8.0

0.0

0.0

-4.0

272.0

inf

-inf

inf

-inf

inf

-inf

5.3

5.3

12.0

0.0

0.0

234.7

Ejemplo
Problema:

Maximizar 6x1 + 3x2 sujeto a:


-x1 + x2 1
2x1 + x2 6
x1, x2 0

Representacin grfica
x2
10
9
8
7
E
6
5
4
F
3
2 C
1
A
D
0
x1
0 1 2 3 4 5 6 7 8 9 10

Puntos extremos
Punto

x1

x2

S1

S2

0.0

0.0

1.0

6.0

0.0

inf

inf

0.0

-inf

inf

0.0

1.0

0.0

5.0

3.0

3.0

0.0

4.0

0.0

18.0

0.0

6.0

-5.0

0.0

18.0

1.7

2.7

0.0

0.0

18.0

Ejemplo
Problema:

Maximizar x1 + x2 sujeto a:
5x1 - x2 0
x1

- 4 x2 0

x1, x2 0

Representacin grfica
x2
10
9
8
7
6
5
4
3
2
1 A=B=D=F
0
x1
0 1 2 3 4 5 6 7 8 9 10

Puntos extremos
Punto

x1

x2

S1

S2

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

inf

inf

0.0

inf

inf

0.0

0.0

0.0

0.0

0.0

inf

inf

inf

0.0

inf

0.0

0.0

0.0

0.0

0.0

Ejemplo
Problema:

Maximizar 6x1 + x2 sujeto a:


-x1 + x2 1
2x1 + x2 6
x1, x2 0

Representacin grfica
x2
10
9
8
7
E
6
5
4
F
3
2
1 C
A
D
0
x1
0 1 2 3 4 5 6 7 8 9 10

Puntos extremos
Punto

x1

x2

S1

S2

0.0

0.0

-1.0

6.0

0.0

inf

inf

0.0

-inf

inf

0.0

1.0

0.0

5.0

1.0

3.0

0.0

-4.0

0.0

18.0

0.0

6.0

5.0

0.0

6.0

1.7

2.7

0.0

0.0

12.7

Ejemplo
Problema:

Maximizar x1 + x2 sujeto a:
x1

- x2 6

2x1 - 2 x2 10
x1, x2 0

Representacin grfica
x2
10
9
8
7
6
5
4
3
2
1
A
D
B
0
x1
0 1 2 3 4 5 6 7 8 9 10

Puntos extremos
Punto

x1

x2

S1

S2

0.0

0.0

-6.0

10.0

0.0

6.0

0.0

0.0

-2.0

6.0

inf

inf

0.0

-2.0

inf

5.0

0.0

-1.0

0.0

5.0

inf

inf

-1.0

0.0

inf

inf

inf

-6.0

10.0

inf

Mtodo del simplex

Introduccin
El

mtodo del simplex es un algoritmo


general para resolver cualquier problema de
programacin lineal

Admite cualquier nmero de variables


Es un mtodo iterativo que nos conduce
progresivamente hasta la solucin final
En cada iteracin examina un punto extremo de
la regin factible S
Antes de usarlo es preciso pasar el problema a la
llamada forma estndar, que estudiaremos a
continuacin

Forma estndar

Definicin: Un problema de programacin lineal


est en forma estndar sii est expresado
como:Notacin escalar
Notacin matricial
Maximizar c1 x1 ... cn x n
Sujeto a :
a11 x1 ... a1n x n b1
...
am1 x1 ... amn x n bm
x1 ,..., x n 0

Maximizar c T x
Sujeto a :
Ax b
x0

Paso a la forma estndar


Las

dificultades que podemos encontrar para


pasar un problema a forma estndar, y las
soluciones correspondientes son:

Aparece una inecuacin del tipo aiTxbi. En tal


caso, aadimos una nueva variable, llamada
variable de exceso, si, con la restriccin si 0, de
tal manera que la inecuacin se convierte en la
ecuacin aiTxsi=bi. La nueva variable aparece
con coeficiente cero en la funcin objetivo.

Paso a la forma estndar

Aparece una inecuacin del tipo aiTxbi. En tal caso,


aadimos una nueva variable, llamada variable de
holgura, si, con la restriccin si0, de tal manera que
la inecuacin se convierte en la ecuacin aiTx+si=bi.
La nueva variable aparece con coeficiente cero en la
funcin objetivo.
Aparece una variable xi que no tiene restriccin de no
negatividad. En este caso, sustituimos xi en todas las
restricciones y en la funcin objetivo por la diferencia
de dos variables nuevas xn+1 y xn+2, que s tienen
restriccin de no negatividad: xn+10, xn+20.

Paso a la forma estndar

El problema es de minimizar, y no de maximizar. En


este caso, tendremos en cuenta que minimizar una
funcin objetivo F es lo mismo que maximizar la
funcin objetivo F. Por tanto, basta con multiplicar
por 1 la funcin objetivo.

Siguiendo estas guas podemos pasar cualquier


problema de programacin lineal a la forma
estndar. Debemos tener en cuenta que las nuevas
variables que se insertan para resolver un
inconveniente no pueden reutilizarse para resolver
otro

Ejemplos de paso a la forma


estndar
Maximizar x1 + 2x2

Maximizar x1 + 2x2 + 0x3

Sujeto a:
1/2 x1 + x2 1

Sujeto a:
1/2 x1 + x2 +x3 = 1

x1

+ x2 2

x1, x2 0

x1 + x2 2
x1, x2 , x3 0

Maximizar x1 + 2x2 + 0x3 + 0x4


Sujeto a:
1/2 x1 + x2 +x3
x1 + x2

+x4 = 2

x1, x2 , x3 , x4 0

=1

Ejemplos de paso a la forma


estndar
Maximizar 7x1 9x2

Maximizar 7x1 9x2 + 0x3

Sujeto a:
4 x1 + 8x2 2

Sujeto a:
4 x1 + 8x2 x3

3x1 + x2

3x1 + x2

x1, x2 0

x1, x2 , x3 0

Maximizar 7x1 9x2 + 0x3 + 0x4


Sujeto a:
4 x1 + 8x2 x3
3x1

+ x2

=2
+x4 = 8

x1, x2 , x3 , x4 0

=2

Ejemplos de paso a la forma


estndar
Maximizar 3x1 5x2

Maximizar 3x1 5x3 + 5x4

Sujeto a:
10 x1 + 18x2 = 7

Sujeto a:
10 x1 +18x3 18x4 = 2

4x1 + 5x3 5x4 9

4x1 + 5x2
x1 0

x1, x3 , x4 0

Maximizar 3x1 5x3 + 5x4 + 0x5


Sujeto a:
10 x1 +18x3 18x4
4x1 + 5x3 5x4
x1, x3 , x4 , x5 0

=2
+x5 = 9

Ejemplos de paso a la forma


estndar
Minimizar 7x1 4x2

Maximizar 7x1 + 4x2

Sujeto a:
8 x1 + 2x2 1

Sujeto a:
8 x1 + 2x2 1

x1 + 5x2 = 6

x1 + 5x2 = 6

x1, x2 0

x1, x2 0

Maximizar 7x1 + 4x2 + 0x3


Sujeto a:
8 x1 + 2x2 + x3 = 1
x1 + 5x2
x1, x2 , x3 0

=6

Situacin inicial para aplicar el


mtodo simplex

Partimos de un problema de programacin lineal, con m


ecuaciones y n incgnitas (o variables de decisin)
expresado en forma estndar:
Maximizar c1 x1 ... cn x n
Sujeto a :
a11 x1 ... a1n x n b1
...
am1 x1 ... amn x n bm
x1 ,..., x n 0
Adems el mtodo simplex exige que bi0 i{1, ..., m}

Versin bsica del algoritmo


simplex
1.

Construir la primera tabla


2. Mientras CondicinParada=Falso hacer

3.

2.1. Elegir variable que sale


2.2. Elegir variable que entra
2.3. Actualizar tabla

Dar resultado

Construccin de la primera
tabla

Dado el problema tal como se explica en Situacin


inicial, lo primero que hay que hacer es localizar un
conjunto de m variables de tal manera que si
eliminramos las dems y reorganizsemos las
ecuaciones, nos quedara la matriz de coeficientes
del sistema de ecuaciones convertida en la matriz
identidad. Estas m variables formarn la primera
base, y la solucin del sistema de ecuaciones se
que obtendra con esos cambios es una solucin
bsica factible (SBF).

Construccin de la primera
tabla

Llamaremos i1, i2,..., im a los ndices de las m


variables de la base, de tal manera que la variable ij
es la que tiene un uno de coeficiente en la ecuacin
nmero j.
En las tablas aparecen los valores zi, que pueden
calcularse mediante la siguiente ecuacin: zj=cBTPj,
donde T indica trasposicin de vectores.
Construimos la primera tabla de esta manera (lo
que va en negrita son rtulos que se ponen tal
cual):

Modelo de tabla
c1

c2

...

cn

Base

cB

P0

P1

P2

Pn

Pi1

ci1

bi1

a11

a12

a1n

Pi2

ci2

bi2

a21

a22

a2n

...

Pim

cim

bim

am1

am2

amn

z0

z 1 c 1

z2 c2

zn cn

Condicin de parada. Criterio


de entrada

Condicin de parada: El bucle se detiene cuando


la tabla actual es tal que en su ltima fila no
aparece ningn valor estrictamente negativo
Eleccin de la variable que entra: En caso de que
el algoritmo no se haya detenido, hay que elegir qu
variable, de entre las que no estn en la base, va a
entrar en dicha base. Para ello nos fijamos en los
valores estrictamente negativos que haya en la
ltima fila. Escogeremos la variable j
correspondiente al ms negativo (es decir, mayor
valor absoluto) de estos valores.

Criterio de salida

Eleccin de la variable que sale: Una vez elegida


la variable j que entra, nos fijamos en la columna
cuyo ttulo es Pj. Dividimos el vector P0 entre el Pj,
componente a componente. De entre las fracciones
con denominador estrictamente positivo que
resulten (es decir, las correspondientes a
componentes estrictamente positivas de Pj),
escogemos la mnima. La fila donde hemos
obtenido este valor mnimo es la de la variable de la
base que sale.

Actualizacin de la tabla

Construimos una tabla nueva, en la que las dos primeras filas


son las mismas que en la antigua (son los ci y los rtulos).
Las columnas con ttulos cB y Base slo se ven alteradas en
un elemento cada una: el elemento de la fila correspondiente
a la variable que ha cambiado en la base.
La subtabla formada por los ajk y los biz debe ser alterada de
tal modo que en cada una de sus filas haya un uno en el
elemento de la columna de la variable de la base que
corresponde a esa fila, y un cero en los elementos de las
columnas de las dems variables de la base. Esto debe
hacerse usando siempre transformaciones elementales (es
decir, las que se usan para resolver sistemas de ecuaciones
lineales por Gauss-Jordan).

Actualizacin de la tabla
Tras

haber hecho esto, la ltima fila de la


tabla global se actualiza recalculando sus
valores con las frmulas que se usaron para
la construccin de la primera tabla.
Ntese que, como lo nico que hacemos son
transformaciones elementales, en realidad lo
que estamos haciendo en cada iteracin del
mtodo simplex es expresar el sistema de
ecuaciones de otra manera.

Resultado del mtodo


Los

valores ptimos de las variables que


forman la base vienen dados por la columna
P0 de la ltima tabla. El resto de las variables
tienen valor ptimo cero.
El valor ptimo de la funcin objetivo (funcin
que estbamos maximizando) es el z0 de la
ltima tabla.

Ejemplos
Problema:

Maximizar x1 + 2x2 sujeto a:


-1/2 x1 + x2
x1

+ x2 2

x1, x2 0

Ejemplos
Tabla 1
1

XB

cB

bi

X1

X2

S1

S2

S1

-1/2

S2

-1

-2

ZJ -CJ

Criterio de entrada: mn { -1, -2 } = -2, luego entra x2


Criterio de salida: mn { 1, 2 } = 1, luego sale S1

Ejemplos
Tabla 2
1

XB

cB

bi

X1

X2

S1

S2

X2

-1/2

S2

3/2

-1

-2

ZJ -CJ

Criterio de entrada: mn { -2 } = -2, luego entra x1


Criterio de salida: mn { 2/3 } = 2/3, luego sale S2

Ejemplos
Tabla 3
1

XB

cB

bi

X1

X2

S1

S2

X2

4/3

2/3

1/3

X1

2/3

-2/3

2/3

10/3

2/3

4/3

ZJ -CJ

Se cumple la condicin de parada. Valor ptimo: 10/3


Solucin ptima: (2/3, 4/3, 0, 0)T

Ejemplos
Problema:

Maximizar x1 + 6x2 sujeto a:


-2x1 + x2 4
-x1 + x2 1
2x1 + x2 6
x1, x2 0

Ejemplos
Tabla 1
1

XB

cB

bi

X1

X2

S1

S2

S3

S1

-2

S2

-1

S3

ZJ -CJ
0
-1
-6
0
0
0
Criterio de entrada: mn { -1, -6 } = -6, luego entra x2
Criterio de salida: mn { 4, 1, 6 } = 1, luego sale S 2

Ejemplos
Tabla 2
1

XB

cB

bi

X1

X2

S1

S2

S3

S1

-1

-1

X2

-1

S3

-1

ZJ -CJ
6
-7
0
0
6
Criterio de entrada: mn { -7 } = -7, luego entra x1
Criterio de salida: mn { 5/3 } = 5/3, luego sale S3

Ejemplos
Tabla 3
1

XB

cB

bi

X1

X2

S1

S2

S3

S1

14/3

-4/3

1/3

X2

8/3

2/3

1/3

X1

5/3

-1/3

1/3

ZJ -CJ
53/3
0
0
0
11/3 7/3
Se cumple la condicin de parada. Valor ptimo: 53/3
Solucin ptima: (5/3, 8/3, 14/3, 0, 0) T

Ejemplos
Problema:

Maximizar 5x1 + 4x2 sujeto a:


3x1 + 3x2 10
12x1 + 6x2 24
x1, x2 0

Ejemplos
Tabla 1
5

XB

cB

bi

X1

X2

S1

S2

S1

10

S2

24

12

-5

-4

Criterio de entrada: mn { -5, -4 } = -5, luego entra x1


Criterio de salida: mn { 10/3, 2 } = 2, luego sale S2

Ejemplos
Tabla 2
5

XB

cB

bi

X1

X2

S1

S2

S1

3/2

-1/4

X1

1/2

1/12

10

-3/2

5/12

ZJ -CJ

Criterio de entrada: mn { -3/2 } = -3/2, luego entra x2


Criterio de salida: mn { 8/3, 4 } = 8/3, luego sale S 1

Ejemplos
Tabla 3
5

XB

cB

bi

X1

X2

S1

S2

X2

8/3

2/3

-1/6

X1

2/3

-1/3

1/6

14

1/6

Se cumple la condicin de parada. Valor ptimo: 14


Solucin ptima: (2/3, 8/3, 0, 0)T

Ejemplos
Problema:

Maximizar 20x1 + 24x2 sujeto a:


3x1 + 6x2 60
4x1 + 2x2 32
x1

+ 2x2 16

x1, x2 0

Ejemplos
Tabla 1
20

24

XB

cB

bi

X1

X2

S1

S2

S3

S1

60

S2

32

S3

16

0
-20
-24
0
0
0
Criterio de entrada: mn { -20, -24 } = -24, luego entra x2
Criterio de salida: mn { 10, 16, 8 } = 8, luego sale S3

Ejemplos
Tabla 2
20

24

XB

cB

bi

X1

X2

S1

S2

S3

S1

12

-3

S2

16

-1

X2

24

1/2

1/2

192
-8
0
0
0
12
Criterio de entrada: mn { -8 } = -8, luego entra x1
Criterio de salida: mn { 16/3, 16 } = 16/3, luego sale S 2

Ejemplos
Tabla 3
20

24

Base

cB

P0

X1

X2

S1

S2

S3

S1

12

-3

X1

20

16/3

1/3

-1/3

X2

24

16/3

-1/6

2/3

704/3
0
0
0
8/3 28/3
Se cumple la condicin de parada. Valor ptimo: 704/3
Solucin ptima: (16/3, 16/3, 12, 0, 0)T

Casos anmalos

Problemas con infinitas


soluciones

En la tabla final hay algn valor nulo en la ltima fila, que


corresponde a una variable que no est en la base. En
tal caso, podramos introducir dicha variable en la base,
y nos saldra otra base que dara tambin el valor
ptimo. Esto quiere decir que el problema tiene infinitas
soluciones, todas ellas con el mismo valor ptimo de la
funcin objetivo. Sea K el nmero de vectores solucin
obtenidos de esta manera (habiendo K1 ceros extra), y
sean dichos vectores x1, x2, ..., xK. Entonces las infinitas
soluciones del problema sern:
K

i 1

i 1

i x i , donde i 0,1, i 1

Ejemplos
Problema:

Maximizar 6x1 + 3x2 sujeto a:


-x1 + x2 1
2x1 + x2 6
x1, x2 0

Ejemplos
Tabla 1
6

XB

cB

bi

X1

X2

S1

S2

S1

-1

S2

-6

-3

Criterio de entrada: mn { -6, -3 } = -6, luego entra x1


Criterio de salida: mn { 3 } = 3, luego sale S2

Ejemplos
Tabla 2
6

XB

cB

bi

X1

X2

S1

S2

S1

3/2

1/2

X1

1/2

1/2

18

Se cumple la condicin de parada. Valor ptimo: 18.


Primera solucin ptima: xA=(3, 0, 4, 0)T
En la ltima fila, el cero que no est en la base indica otra
solucin ptima. Para hallarla, hacemos entrar a x2

Ejemplos
Tabla 3
6

XB

cB

bi

X1

X2

S1

S2

X2

8/3

2/3

1/3

X1

5/3

-1/3

1/3

18

Segunda solucin ptima: xB=(5/3, 8/3, 0, 0)T. Tambin


son soluciones ptimas todos los puntos del segmento
AxA+BxB, con A , B 0, A + B = 1.

Problemas con solucin


ilimitada
Al

intentar elegir la variable que sale, nos


podemos encontrar con que la columna Pj de
la variable j que tena que entrar tiene todos
sus elementos negativos o nulos. En tal caso
el problema tiene solucin ilimitada, es decir,
se puede hacer crecer el valor de la funcin
objetivo tanto como se quiera sin violar
ninguna restriccin. Para ello, bastara con
hacer crecer ilimitadamente la variable que
tena que entrar en la base.

Ejemplos
Problema:

Maximizar x1 + x2 sujeto a:
5x1 - x2 0
x1

- 4 x2 0

x1, x2 0

Ejemplos
Tabla 1
1

XB

cB

bi

X1

X2

S1

S2

S1

-5

S2

-4

-1

-1

Criterio de entrada: mn { -1, -1 } = -1, y elegimos que


entre x1
Criterio de salida: mn { 0/1 } = 0, luego sale S2

Ejemplos
Tabla 2
1

XB

cB

bi

X1

X2

S1

S2

S1

-19

X1

-4

-5

Criterio de entrada: mn { -5 } = -5, luego entra x2


Criterio de salida: No hay fracciones con denominador
estrictamente positivo, luego el problema tiene
solucin ilimitada

Mtodo de las dos


fases

Introduccin
Si

al intentar aplicar el mtodo simplex nos


encontramos con que no es posible
encontrar una solucin bsica factible (SBF)
inicial, es preciso usar el mtodo de las dos
fases.
Para ello, usamos el siguiente algoritmo:

1. Aadir variables artificiales al problema


2. Fase I.
3. Fase II.

Adicin de variables
artificiales
Se

trata de aadir al problema tantas


variables como sean necesarias para
construir una SBF. Sus coeficientes en las
ecuaciones sern los que convengan para
nuestro propsito.
Por consiguiente, tendremos que cada
variable artificial tendr coeficiente 1 en una
ecuacin y coeficiente 0 en todas las dems

Fase I

Se trata de aplicar el mtodo simplex para resolver un


problema auxiliar que consiste en minimizar la suma de
las variables artificiales. Para que la tabla ptima
aparezca lo antes posible conviene que, en caso de
empate en el criterio de salida y que una de las variables
empatadas sea artificial, saquemos la artificial.
Una vez resuelto este problema auxiliar, caben dos
posibilidades

El valor ptimo de la funcin objetivo es distinto de cero. En tal


caso el problema original no tena solucin.
El valor ptimo de la funcin objetivo es cero. En tal caso
podemos pasar a la Fase II.

Fase II
Consiste

en aplicar el mtodo simplex,


usando la funcin objetivo del problema
original, pero empezando con una primera
tabla que se obtiene quitando de la ltima
tabla de la Fase I las columnas de las
variables artificiales
La solucin obtenida en la Fase II ser la
solucin del problema original (tngase en
cuenta que en la Fase II no aparecen
variables artificiales)

Ejemplos
Problema:

Maximizar 6x1 + x2 sujeto a:


-x1 + x2 1
2x1 + x2 6
x1, x2 0

Ejemplos
Tabla 1 de la Fase I
0

-1

Base

cB

P0

P1

P2

P3

P4

P5

P5

-1

-1

-1

P4

-1
1
-1
1
0
Criterio de entrada: mn { -1 } = -1, luego entra x2
Criterio de salida: mn { 1, 6 } = 1, luego sale x5

Ejemplos
Tabla 2 de la Fase I
0

-1

Base

cB

P0

P1

P2

P3

P4

P5

P2

-1

-1

P4

-1

0
0
0
0
0
1
Se cumple la condicin de parada. Valor ptimo: 0 (el
problema tiene solucin).
Construimos la primera tabla de la Fase II quitando la
variable artificial x5

Ejemplos
Tabla 1 de la Fase II
6

Base

cB

P0

P1

P2

P3

P4

P2

-1

-1

P4

-7

-1

Criterio de entrada: mn { -7, -1 } = -7, luego entra x1


Criterio de salida: mn { 5/3 } = 5/3, luego sale x4

Ejemplos
Tabla 2 de la Fase II
6

Base

cB

P0

P1

P2

P3

P4

P2

8/3

-2/3

1/3

P1

5/3

1/3

1/3

38/3

4/3

7/3

Se cumple la condicin de parada. Valor ptimo: 38/3


Solucin ptima: (5/3, 8/3, 0, 0)T

Ejemplos
Problema:

Maximizar 4x1 + x2 + 6x3 sujeto a:


-2x1 - x2 + 2x3

x1

+ x2 + x3

x1, x2 , x3 0

Ejemplos
Tabla 1 de la Fase I
0

-1

-1

Base

cB

P0

P1

P2

P3

P4

P5

P6

P7

P6

-1

-2

-1

-1

P7

-1

-1

-7 1
0
-3
1
1
0
Criterio de entrada: mn { -3 } = -3, luego entra x3

Criterio de salida: mn { 1/2, 6 } = 1/2, luego sale x6

Ejemplos
Tabla 2 de la Fase I
0

-1

-1

P2

P3

P4

P5

P6

P7

Base

cB

P0

P1

P3

1/2

-1 -1/2

-1/2

1/2

P7

-1 11/2

1/2

-1

-1/2

3/2

-11/2 -2 -3/2 0 -1/2 1


3/2
0
Criterio de entrada: mn { -2, -3/2, -1/2 } = -2, luego
entra x1
Criterio de salida: mn { 11/3 } = 11/3, luego sale x7

Ejemplos
Tabla 3 de la Fase I

Base cB

-1

-1

P0

P1

P2

P3

P4

P5

P6

P7
1/2

P3

13/4

1/4

-1/4 -1/2 1/4

P1

11/4

3/4

1/4 -1/2 -1/4 1/2

Se cumple la condicin de parada. Valor ptimo: 0 (el


problema tiene solucin).
Construimos la primera tabla de la Fase II quitando las
variables artificiales x6 y x7

Ejemplos
Tabla 1 de la Fase II
4

Base

cB

P0

P1

P2

P3

P4

P5

P3

13/4

1/4

-1/4

-1/2

P1

11/4

3/4

1/4

-1/2

61/2

7/2

-1/2

-5

Criterio de entrada: mn { -1/2, -5 } = -5, luego entra x5


Criterio de salida: No hay fracciones con denominador
estrictamente positivo, luego el problema tiene solucin
ilimitada

Ejemplos
Problema:

Maximizar x1 + x2 sujeto a:
x1

- x2 6

2x1 - 2 x2 10
x1, x2 0

Ejemplos
Tabla 1 de la Fase I
0

-1

Base

cB

P0

P1

P2

P3

P4

P5

P5

-1

-1

-1

P4

10

-2

-6

-1

Criterio de entrada: mn { -1 } = -1, luego entra x1


Criterio de salida: mn { 6, 5 } = 5, luego sale x4

Ejemplos
Tabla 2 de la Fase I
0

-1

Base

cB

P0

P1

P2

P3

P4

P5

P5

-1

-1

-1/2

P1

-1

1/2

-1

1/2

Se cumple la condicin de parada. Valor ptimo: -1.


Como no resulta valor ptimo 0, el problema original
no tiene solucin.

Dualidad

Problemas primal y dual

Sea un problema de programacin lineal, que


llamaremos problema primal:
Maximizar cT x

Sujeto a :
Ax b, x 0

El correspondiente problema dual es:


Minimizar bT y
Sujeto a :
AT y c, y 0

Ntese que el dual del dual coincide con el primal

Resultados
Teorema dbil de dualidad: El valor de la
funcin objetivo del dual para cualquier solucin
factible es siempre mayor o igual que el valor de
la funcin objetivo del primal para cualquier
solucin factible.
Teorema fuerte de dualidad: Si el primal tiene
una solucin ptima x*, entonces el dual
tambin tiene una solucin ptima y*, tal que
cTx*=bTy*.

Comentarios

El teorema dbil de dualidad implica que si el primal


tiene solucin ilimitada, entonces el dual no tiene
solucin.
Del mismo modo, si el dual tiene solucin ilimitada,
entonces el primal no tiene solucin.
No obstante, es posible que ni el primal ni el dual
tengan solucin.
Cada componente de x se corresponde con una
variable de exceso del dual.
Cada componente de y se corresponde con una
variable de holgura del primal.

Complementariedad

Teorema de complementariedad: Sean x = (x1,


x2, ..., xn), y = (y1, y2, ..., ym) soluciones factibles
del primal y el dual, respectivamente. Sean (w1,
w2, ..., wm) las variables de holgura
correspondientes del primal, y sean (z1, z2, ...,
zn) las variables de exceso correspondientes del
dual. Entonces x e y son ptimas para sus
respectivos problemas si y slo si xjzj = 0, j =
1, 2, . . . , n, y adems wiyi = 0, i = 1, 2, ..., m.

Complementariedad

El teorema de complementariedad nos permite


obtener rpidamente una solucin ptima del
problema dual si conocemos una solucin ptima
del problema primal.
Para ello, si tenemos que en una solucin ptima
del primal xj>0, entonces en el dual zj=0. Adems si
en la solucin ptima del primal wi>0, entonces en
el dual yi=0.
De esta manera slo quedarn por determinar los
valores ptimos de unas pocas variables del
problema dual.