Sei sulla pagina 1di 153

Tema 2:

Optimizacin lineal
JOHN ZAMORA CORDOVA
UTP

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, x2 ,..., xn c1x1 c2 x2 ... cn xn
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 xn
Sujeto a :
a11 x1 ... a1n xn ~ 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 matricial:
Maximizar (o minimizar) c T 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: 10xC+9xT
Mano de obra: 14xC+10xT

Ejemplo

Funcin objetivo (hay que maximizarla):


f xC , xT 27xC 21xT 10xC 9 xT 14xC 10xT
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 0
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

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 1
x1
+ x2 2
x1, x2 0

Representacin grfica
x2
5
4

3
2

E
F

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

Maximizar c1 x1 ... cn xn
Sujeto a :
a11 x1 ... a1n xn b1
...
am1 x1 ... amn xn bm
x1 ,..., xn 0

Notacin matricial

Maximizar cT 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
Sujeto a:
1/2 x1 + x2
1
x1
+ x2
2
x1, x2 0

Maximizar x1 + 2x2 + 0S1


Sujeto a:
1/2 x1 + x2 +S1 = 1
x1
+ x2
2
x1, x2 , S1 0

Maximizar x1 + 2x2 + 0S1 + 0S2


Sujeto a:
1/2 x1 + x2 +S1
=1
x1
+ x2
+S2 = 2
x1, x2 , S1 , S2 0

Ejemplos de paso a la forma


estndar
Maximizar 7x1 9x2
Sujeto a:
4 x1 + 8x2
2
3x1 + x2
8
x1, x2 0

Maximizar 7x1 9x2 + 0S1


Sujeto a:
4 x1 + 8x2 S1 = 2
3x1 + x2
8
x1, x2 , S1 0

Maximizar 7x1 9x2 + 0S1 + 0S2


Sujeto a:
4 x1 + 8x2 S1
=2
3x1 + x2
+S2 = 8
x1, x2 , S1 , S2 0

Ejemplos de paso a la forma


estndar
Maximizar 3x1 5x2
Sujeto a:
10 x1 + 18x2
=7
4x1 + 5x2
9
x1 , x2 0

Maximizar 3x1 5x2 + 0s2


Sujeto a:
10 x1 +18x2
=7
4x1 + 5x2 + S2 = 9
x1, x2 , s2 0

Maximizar 3x1 5x2 + 0s2


Sujeto a:
10 x1 +18x2
=7
4x1 + 5x3 +s2 = 9
x1, x2 , S2 0

Ejemplos de paso a la forma


estndar
Minimizar 7x1 4x2
Sujeto a:
8 x1 + 2x2 1
x1 + 5x2 = 6
x1, x2 0

Maximizar 7x1 + 4x2


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

Maximizar 7x1 + 4x2 + 0S1


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

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 xn
Sujeto a :
a11 x1 ... a1n xn b1
...
am1 x1 ... amn xn bm
x1 ,..., xn 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

2.1. Elegir variable que sale


2.2. Elegir variable que entra
2.3. Actualizar tabla

3. 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

z1 c1

z2 c 2

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 1
x1
+ x2 2
x1, x2 0

Ejemplos
Tabla 1
1

Base

cB

P0

P1

P2

P3

P4

P3

-1/2

P4

-1

-2

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


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

Ejemplos
Tabla 2
1

Base

cB

P0

P1

P2

P3

P4

P2

-1/2

P4

3/2

-1

-2

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


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

Ejemplos
Tabla 3
1

Base

cB

P0

P1

P2

P3

P4

P2

4/3

2/3

1/3

P1

2/3

-2/3

2/3

10/3

2/3

4/3

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

Base
P3
P4

cB
0
0

P0
4
1

P1
-2
-1

P2
1
1

P3
1
0

P4
0
1

P5
0
0

P5

6
0

2
-1

1
-6

0
0

0
0

1
0

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


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

Ejemplos
Tabla 2
1

Base
P3
P2

cB
0
6

P0
3
1

P1
-1
-1

P2
0
1

P3
1
0

P4
-1
1

P5
0
0

P5

5
6

3
-7

0
0

0
0

-1
6

1
0

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


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

Ejemplos
Tabla 3
1

Base
P3
P2

cB
0
6

P0
14/3
8/3

P1
0
0

P2
0
1

P3
1
0

P4
-4/3
2/3

P5
1/3
1/3

P1

5/3
53/3

1
0

0
0

0
0

-1/3
11/3

1/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

Base

cB

P0

P1

P2

P3

P4

P3

10

P4

24

12

-5

-4

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


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

Ejemplos
Tabla 2
5

Base

cB

P0

P1

P2

P3

P4

P3

3/2

-1/4

P1

1/2

1/12

10

-3/2

5/12

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


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

Ejemplos
Tabla 3
5

Base

cB

P0

P1

P2

P3

P4

P2

8/3

2/3

-1/6

P1

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

Base
P3
P4

cB
0
0

P0
60
32

P1
3
4

P2
6
2

P3
1
0

P4
0
1

P5
0
0

P5

16
0

1
-20

2
-24

0
0

0
0

1
0

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


Criterio de salida: mn { 10, 16, 8 } = 8, luego sale x5

Ejemplos
Tabla 2
20

24

Base
P3
P4

cB
0
0

P0
12
16

P1
0
3

P2
0
0

P3
1
0

P4
0
1

P5
-3
-1

P2

24

8
192

1/2
-8

1
0

0
0

0
0

1/2
12

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


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

Ejemplos
Tabla 3
20

24

Base
P3
P1

cB
0
20

P0
12
16/3

P1
0
1

P2
0
0

P3
1
0

P4
0
1/3

P5
-3
-1/3

P2

24

16/3
704/3

0
0

1
0

0
0

-1/6
8/3

2/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 xi , 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

Base

cB

P0

P1

P2

P3

P4

P3

-1

P4

-6

-3

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


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

Ejemplos
Tabla 2
6

Base

cB

P0

P1

P2

P3

P4

P3

3/2

1/2

P1

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

Base

cB

P0

P1

P2

P3

P4

P2

8/3

2/3

1/3

P1

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

Base

cB

P0

P1

P2

P3

P4

P3

-5

P4

-4

-1

-1

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


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

Ejemplos
Tabla 2
1

Base

cB

P0

P1

P2

P3

P4

P3

-19

P1

-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)

Ejemplo 1
Problema:
Maximizar 6x1 + x2 sujeto a:
-x1 + x2
1
2x1 + x2
6
x1, x2 0

Ejemplo 1
Fase 1:
Minimizar 1 + x1 - x2 + s1
-x1 + x2 - s1 + a1
= 1
2x1 + x2
+ s2 = 6

x1, x2 ,s1 , a1 , s2 0

Ejemplo 1
Tabla 1 de la Fase I

cB

xB
z j -cj

-1

x1

x2

s1

a1

s2

-1

-1

Bi

a1

-1

-1

s2

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


Criterio de salida: mn { 1, 6 } = 1, luego sale a1

Ejemplo 1
Tabla 2 de la Fase I

cB

xB
z j -cj

-1

x1

x2

s1

a1

s2

Bi

-1

-1

-1

x2

-1

-1

s2

-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 a1

Ejemplo 1
Tabla 1 de la Fase II

cB

xB
zj -cj

x1

x2

s1

s2

Bi

-7

-1

-1

x2

-1

-1

s2

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


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

Ejemplo 1
Tabla 2 de la Fase II

cB

xB
zj -cj

x1

x2

s1

s2

Bi

4/3

7/3

38/3

x2

-2/3

1/3

8/3

x1

1/3

1/3

5/3

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


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

Ejemplo 2
Problema:
Maximizar 4x1 + x2 + 6x3 sujeto a:
-2x1 - x2 + 2x3

1
x1
+ x2 + x 3

6
x1, x2 , x3 0

Ejemplo 2
Fase 1:
Minimizar 7 + x1 - 3x3 + s1 + s2
-2x1 - x2 + 2x3 - s1
+ a1
= 1
x1
+ x2 + x 3
- s2
+ a2 = 6
x1, x2 , x3 ,s1 , s2 ,a1 ,a2 >= 0

Ejemplo 2
Tabla 1 de la Fase I

cB

xB

zj -cj

-3

x1

x2

x3

s1

s2

a1

a2

-1

-1

-1

Bi

a1

-2

-1

-1

a2

-1

Criterio de entrada: mn { 3 } = 3, luego entra x3


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

Ejemplo 2
Tabla 2 de la Fase I

cB

xB

zj - cj

-3

x1

x2

x3

s1

s2

a1

a2

Bi

3/2

1/2

-1

-3/2

-3/2

-3

x3

-1

-1/2

-1/2

1/2

1/2

a2

3/2

1/2

-1

-1/2

11/2

Criterio de entrada: mn { 2, 3/2, 1/2 } = 2, luego entra x1


Criterio de salida: mn { 11/4 } = 11/4, luego sale a2

Ejemplo 2
Tabla 3 de la Fase I

cB

xB

zj - cj

-3

x1

x2

x3

s1

s2

a1

a2

Bi

-1

-1

-7

1/4

1/2 13/4

-3

x3

1/4

-1/4 -1/2

x1

3/4

1/4

-1/2 -1/4 1/2

11/4

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 a1 y a2

Ejemplos 2
Tabla 1 de la Fase II

cB

xB
zj -cj

x1

x2

x3

s1

s2

Bi

7/2

-1/2

-5

61/2

x3

1/4

-1/4

-1/2

13/4

x1

3/4

1/4

-1/2

11/4

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


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

Ejemplo 3
Problema:
Maximizar x1 + x2 sujeto a:
x1
- x2
6
2x1 - 2 x2
10
x1, x2 0

Ejemplo 3
Fase 1:
Minimizar 6 - x1 + x2 + s1
x1
- x2 -s1 + a1
= 6
2x1 - 2 x2
+ s2 = 10

x1, x2 , s1 , a1 , s2 0

Ejemplo 3
Tabla 1 de la Fase I

cB

xB

zj - cj

-1

x1

x2

s1

a1

s2

-1

-1

Bi

a1

-1

-1

s2

-2

10

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


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

Ejemplo 3
Tabla 2 de la Fase I

cB

xB

zj - cj

-1

x1

x2

s1

a1

s2

Bi

-1

-1/2

-5

a1

-1

-1/2

-1

x1

-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

INTERPRETACION ECONOMICA
DE LA DUALIDAD
Z = Ganancia total debida a todas las actividades.
x j = Nivel de la actividad j (para j = 1, 2,......, n).
cj = Ganancia unitaria debida a la actividad j.
bi = Cantidad del recurso i disponible para asignar a
las actividades (para i = 1, 2, ......, m)
aij = Cantidad del recurso i consumido por cada
unidad de la actividad j.
Para el problema primal se tiene:

INTERPRETACION ECONOMICA
DE LA DUALIDAD

INTERPRETACION ECONOMICA
DE LA DUALIDAD

INTERPRETACION ECONOMICA
DE LA DUALIDAD

MAX
<=
Xj >= 0

MIN
>=
Yi >= 0

INTERPRETACION ECONOMICA
DE LA DUALIDAD

INTERPRETACION ECONOMICA
DE LA DUALIDAD

INTERPRETACION ECONOMICA
DE LA DUALIDAD

Formulacin dual par maximizacion


Una empresa fabrica 2 tipos de maquinas; maquinas de
lujo y maquinas estandar.
Cada maquina de lujo requiere 18 horas de mano de obra
y 9 horas de prueba y cada maquina estandar requiere 3
horas de mano de obra y 4 horas de prueba. La
disponibilidad semanal de horas de mano de obra es de
800 horas y la disponibilidad semanal de horas de prueba
es de 600 horas la demanda semanal de maquinas de lujo
es de 80 unidades. La utilidad por maquina de lujo es de
400 y la utilidad por cada maquina estandar es de 200.
Formule el modelo dual del problema

Formulacin dual par maximizacion


Min W = 800y1 + 600y2+ 80y3
Y1 = es el precio de una unidad de hora de M/O
W = Es el valor de todos los recursos
disponibles
800[hrs. M/O/semana ] * y1[US$/hrs M/O ]
800y1 [US$ / semana ]
Es el valor de las horas de M/O disponibles

Formulacin dual par maximizacion

600[hrs. Prueba/semana ] * y2[US$/hrs prueba] =


600y2[US$ / semana ]
80[unid. Dem maq lujo/semana ] * y3[US$/Dem
maq lujo] = 80y3[US$ / semana ]

Formulacin dual par maximizacion

(El valor total de una maquina de lujo podr ser)

18y1 + 9y2 + 3y3 >= 400


Cada termino representa las proporciones en
que intervienen los recursos en la composicion
de una maquina de lujo.
Tener en cuenta que ste valor total de cada
maquina de lujo debe ser como mnimo igual al
beneficio, ya de otra manera, si el valor fuera
menor Al beneficio se estara trabajando con
prdida

Formulacin dual par maximizacion

(El valor total de una maquina estandar podr ser)

3y1 + 4y2

>= 200

Cada termino representa las proporciones en


que intervienen los recursos en la composicion
de una maquina estandar.
Tener en cuenta que ste valor total de cada
maquina estandar debe ser como mnimo igual
al beneficio, ya de otra manera, si el valor fuera
menor Al beneficio se estara trabajando con
prdida

Formulacin dual par minimizacin


Mi alimentacion requiere que todo lo que coma pertenesca a 4 grupos bsicos de alimentos
(calorias, chocolate, azucar, grasa ). Actualmente se dispone de los siguientes alimentos.
Formule el modelo dual

Calorias Chocolate
unidades
onzas

Azucar
onzas

Bizcocho

400

Grasa
o
nzas
2

Precio
unidad

Helado Ch

200

$0.20

Refresco

150

$0.30

Pastel Queso

500

$0.80

Requerimiento

500

10

$0.50

Formulacin dual par minimizacin


Max W = 500y1 + 6y2+ 10y3 + 8y4
Y1 = es el precio de una unidad de caloria
W = Es el valor de todos los nutrientes
requeridos
500[unid caloricas/da ] * y1[US$/unid caloricas]
500y1 [US$ / da ]
Es el valor del requerimiento diario de calorias

Formulacin dual par minimizacin

6[onz chocolate/da ] * y2[US$/da]


=
6y2[US$ / da ]
10[onz azucar/da ] * y3[US$/onz azucar/da] =
80y3[US$ / semana ]
8[onz grasas/da ] * y4[US$/onz grasas/da] =
80y3[US$ / semana ]

Formulacin dual par minimizacin

(El valor total de un bizcocho podr ser)

400y1 + 3y2 + 2y3 + 2y4

<= 0.5

Cada termino representa las proporciones en que


intervienen los recursos en la composicion de un
bizcocho.
Tener en cuenta que usted no puede cobrar ms
de $0.50 por esta combinacion de sustancias
nutritivas. Por que sino solamente se compraria
un bizcocho.y listo

Formulacin dual par minimizacin

(El valor total de una bola de helado podr ser)

200y1 + 2y2 + 2y3 + 4y4

<= 0.2

Cada termino representa las proporciones en que


intervienen los recursos en la composicion de una
bola de helado.
Tener en cuenta que usted no puede cobrar ms
de $0.20 por esta combinacion de sustancias
nutritivas. Por que sino solamente se compraria
una bola de helado y listo

Formulacin dual par minimizacin

(El valor total de una botella de refresco podr ser)

150y1

+ 4y3 + y4

<= 0.3

Cada termino representa las proporciones en que


intervienen los recursos en la composicion de una
botella de refresco.
Tener en cuenta que usted no puede cobrar ms
de $0.30 por esta combinacion de sustancias
nutritivas. Por que sino solamente se compraria
una botella de refresco y listo

Formulacin dual par minimizacin

(El valor total de una pieza de pastel de queso


podr ser)

500y1

+ 4y3 + 5y4

<= 0.8

Cada termino representa las proporciones en que


intervienen los recursos en la composicion de una
pieza de pastel de queso.
Tener en cuenta que usted no puede cobrar ms
de $0.80 por esta combinacion de sustancias
nutritivas. Por que sino solamente se compraria
una pieza de pastel de queso y listo.

Propiedades

Propiedades

Propiedades

Propiedades

Propiedades

Relaciones entre ellos

Relaciones entre ellos

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.

Potrebbero piacerti anche